From 2348fa0bac35e103cd826580f21c6bffff574a1e Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 25 十月 2024 15:53:33 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.messages                                    |   30 
 BLL/HStation.BLL.Core/HStation.BLL.Core.csproj                                                                                |    2 
 BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile.cs                                                       |   82 ++-
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileViewModel.cs               |  102 ++++
 WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.fakesconfig                                 |    0 
 Service/HStation.Service.TransferFile.Core/paras_hstation_transferfile_settings.json                                          |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.SelectXhsProjectTransferFileViewModel.datasource |   10 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.cs                             |   29 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.cs                     |   70 +++
 BLL/HStation.BLL.TransferFile.Core/00-core/ConfigHelper.cs                                                                    |    8 
 BLL/HStation.BLL.TransferFile.Core/03-localclient/02-revit/TransferRevitFile.cs                                               |   12 
 Service/HStation.Service.Revit.Core/HStation.Service.Revit.Core.csproj                                                        |    3 
 BLL/HStation.BLL.TransferFile.Core/01-interface/02-revit/ITransferRevitFile.cs                                                |   10 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.resx                           |   39 +
 WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.dll                                         |    0 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj                                                         |    1 
 BLL/HStation.BLL.TransferFile.Core/03-localclient/01-user/TransferFileUser.cs                                                 |   73 +-
 BLL/HStation.BLL.TransferFile.Core/04-bll/01-user/TransferFileUser.cs                                                         |   44 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user                                                    |    3 
 BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile_File.cs                                                  |   23 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.Designer.cs                    |   23 
 BLL/HStation.BLL.TransferFile.Core/02-httpclient/02-revit/TransferRevitFile.cs                                                |   17 
 WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.xml                                         |   60 ++
 Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs                                                     |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.resx                   |  123 +++++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.Designer.cs            |  550 +++++++++++++++++++++++++
 26 files changed, 1,185 insertions(+), 133 deletions(-)

diff --git a/BLL/HStation.BLL.Core/HStation.BLL.Core.csproj b/BLL/HStation.BLL.Core/HStation.BLL.Core.csproj
index b3ad802..9bf8967 100644
--- a/BLL/HStation.BLL.Core/HStation.BLL.Core.csproj
+++ b/BLL/HStation.BLL.Core/HStation.BLL.Core.csproj
@@ -7,7 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Yw.BLL.Core" Version="3.1.0" />
+    <PackageReference Include="Yw.BLL.Core" Version="3.1.2" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/BLL/HStation.BLL.TransferFile.Core/00-core/ConfigHelper.cs b/BLL/HStation.BLL.TransferFile.Core/00-core/ConfigHelper.cs
index d6c1824..f1e65c2 100644
--- a/BLL/HStation.BLL.TransferFile.Core/00-core/ConfigHelper.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/00-core/ConfigHelper.cs
@@ -10,6 +10,14 @@
             get { return Settings.TransferFileParasHelper.TransferFile.CAL.HttpClient.HttpUrl; }
         }
 
+        /// <summary>
+        ///
+        /// </summary>
+        public static string CALType
+        {
+            get { return Settings.TransferFileParasHelper.TransferFile.CAL.CALType; }
+        }
+
         public static string DataFolder
         {
             get { return Settings.TransferFileParasHelper.TransferFile.DataFolder; }
diff --git a/BLL/HStation.BLL.TransferFile.Core/01-interface/02-revit/ITransferRevitFile.cs b/BLL/HStation.BLL.TransferFile.Core/01-interface/02-revit/ITransferRevitFile.cs
index 8cdb9a0..f5fea4c 100644
--- a/BLL/HStation.BLL.TransferFile.Core/01-interface/02-revit/ITransferRevitFile.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/01-interface/02-revit/ITransferRevitFile.cs
@@ -14,7 +14,15 @@
 
         public Task<List<TransferRevitFileDto>> GetByIds(List<long> ids);
 
-        public Task<List<TransferRevitFileDto>> GetFluzzyList(QueryTransferRevitFileFluzzyListInput input);
+        public Task<List<TransferRevitFileDto>> GetFluzzyList
+            (
+                string FileName,
+                string FileCode,
+                string FileSuffix,
+                string UploadUserName,
+                DateTime? StartTime,
+                DateTime? EndTime
+            );
 
         public Task<PageListOutput<TransferRevitFileDto>> GetFluzzyPageList(QueryTransferRevitFileFluzzyPageListInput input);
 
diff --git a/BLL/HStation.BLL.TransferFile.Core/02-httpclient/02-revit/TransferRevitFile.cs b/BLL/HStation.BLL.TransferFile.Core/02-httpclient/02-revit/TransferRevitFile.cs
index c9c6d1e..d6716ed 100644
--- a/BLL/HStation.BLL.TransferFile.Core/02-httpclient/02-revit/TransferRevitFile.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/02-httpclient/02-revit/TransferRevitFile.cs
@@ -45,11 +45,24 @@
             return await GetUrl("GetByIds@V1.0").Get<List<TransferRevitFileDto>>(paras);
         }
 
-        public async Task<List<TransferRevitFileDto>> GetFluzzyList(QueryTransferRevitFileFluzzyListInput input)
+        public async Task<List<TransferRevitFileDto>> GetFluzzyList
+            (
+                string FileName,
+                string FileCode,
+                string FileSuffix,
+                string UploadUserName,
+                DateTime? StartTime,
+                DateTime? EndTime
+            )
         {
             var paras = new List<(string Name, object Value)>()
             {
-                (nameof(input),input),
+                (nameof(FileName),FileName),
+                (nameof(FileCode),FileCode),
+                (nameof(FileSuffix),FileSuffix),
+                (nameof(UploadUserName),UploadUserName),
+                (nameof(StartTime),StartTime),
+                 (nameof(EndTime),EndTime)
               };
             return await GetUrl("GetFluzzyList@V1.0").Get<List<TransferRevitFileDto>>(paras);
         }
diff --git a/BLL/HStation.BLL.TransferFile.Core/03-localclient/01-user/TransferFileUser.cs b/BLL/HStation.BLL.TransferFile.Core/03-localclient/01-user/TransferFileUser.cs
index aba3182..0723c6a 100644
--- a/BLL/HStation.BLL.TransferFile.Core/03-localclient/01-user/TransferFileUser.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/03-localclient/01-user/TransferFileUser.cs
@@ -7,6 +7,8 @@
     {
         private readonly HStation.Service.TransferFileUser _service = new();
 
+        #region Query
+
         /// <summary>
         /// 鑾峰彇鎵�鏈�
         /// </summary>
@@ -48,14 +50,16 @@
         /// <summary>
         /// 閫氳繃 Name 鑾峰彇
         /// </summary>
-        public async Task<TransferFileUserDto> GetByName(string input)
+        public async Task<TransferFileUserDto> GetByName(string Name)
         {
             return await Task.Factory.StartNew(() =>
              {
-                 var model = _service.GetByName(input);
+                 var model = _service.GetByName(Name);
                  return model == null ? null : new TransferFileUserDto(model);
              });
         }
+
+        #endregion
 
         #region Insert
 
@@ -65,19 +69,29 @@
         public async Task<long> Insert(AddTransferFileUserInput input)
         {
             return await Task.Factory.StartNew(() =>
-         {
-             if (_service.IsExistName(input.Name))
              {
-                 throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"Name:{input.Name}", "鍚嶇О宸插瓨鍦�");
-             }
-             var model = input.Adapt<AddTransferFileUserInput, Model.TransferFileUser>();
-             model.SortCode = _service.GetMaxSortCode() + 1;
-             var id = _service.Insert(model);
-             return id;
-         });
+                 if (_service.IsExistName(input.Name))
+                 {
+                     throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"Name:{input.Name}", "鍚嶇О宸插瓨鍦�");
+                 }
+                 var model = input.Adapt<AddTransferFileUserInput, Model.TransferFileUser>();
+                 model.SortCode = _service.GetMaxSortCode() + 1;
+                 var id = _service.Insert(model);
+                 return id;
+             });
         }
 
-        #endregion Insert
+        public Task<bool> Inserts(List<AddTransferFileUserInput> list)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Task<bool> BulkInserts(List<AddTransferFileUserInput> list)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
 
         #region Update
 
@@ -102,6 +116,16 @@
                 var bol = _service.Update(rhs);
                 return bol;
             });
+        }
+
+        public Task<bool> Updates(List<UpdateTransferFileUserInput> list)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Task<bool> BulkUpdates(List<UpdateTransferFileUserInput> list)
+        {
+            throw new NotImplementedException();
         }
 
         /// <summary>
@@ -171,7 +195,7 @@
             });
         }
 
-        #endregion Update
+        #endregion
 
         #region Exist
 
@@ -199,7 +223,7 @@
             });
         }
 
-        #endregion Exist
+        #endregion
 
         #region Delete
 
@@ -219,16 +243,6 @@
             });
         }
 
-        public Task<bool> Updates(List<UpdateTransferFileUserInput> list)
-        {
-            throw new NotImplementedException();
-        }
-
-        public Task<bool> BulkUpdates(List<UpdateTransferFileUserInput> list)
-        {
-            throw new NotImplementedException();
-        }
-
         public Task<bool> DeleteByIds(List<long> Ids)
         {
             throw new NotImplementedException();
@@ -239,16 +253,7 @@
             throw new NotImplementedException();
         }
 
-        public Task<bool> Inserts(List<AddTransferFileUserInput> list)
-        {
-            throw new NotImplementedException();
-        }
 
-        public Task<bool> BulkInserts(List<AddTransferFileUserInput> list)
-        {
-            throw new NotImplementedException();
-        }
-
-        #endregion Delete
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.TransferFile.Core/03-localclient/02-revit/TransferRevitFile.cs b/BLL/HStation.BLL.TransferFile.Core/03-localclient/02-revit/TransferRevitFile.cs
index ba9a3c8..c756416 100644
--- a/BLL/HStation.BLL.TransferFile.Core/03-localclient/02-revit/TransferRevitFile.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/03-localclient/02-revit/TransferRevitFile.cs
@@ -60,11 +60,19 @@
         /// <summary>
         /// 鑾峰彇妯$硦鍒楄〃
         /// </summary>
-        public async Task<List<TransferRevitFileDto>> GetFluzzyList(QueryTransferRevitFileFluzzyListInput input)
+        public async Task<List<TransferRevitFileDto>> GetFluzzyList
+             (
+                string FileName,
+                string FileCode,
+                string FileSuffix,
+                string UploadUserName,
+                DateTime? StartTime,
+                DateTime? EndTime
+            )
         {
             return await Task.Factory.StartNew(() =>
             {
-                var list = _service.GetFluzzyList(input.FileName, input.FileCode, input.FileSuffix, input.UploadUserName, input.StartTime, input.EndTime);
+                var list = _service.GetFluzzyList(FileName, FileCode, FileSuffix, UploadUserName, StartTime, EndTime);
                 var vmList = list?.Select(x => new TransferRevitFileDto(x)).ToList();
                 return vmList;
             });
diff --git a/BLL/HStation.BLL.TransferFile.Core/04-bll/01-user/TransferFileUser.cs b/BLL/HStation.BLL.TransferFile.Core/04-bll/01-user/TransferFileUser.cs
index c005ce7..257327a 100644
--- a/BLL/HStation.BLL.TransferFile.Core/04-bll/01-user/TransferFileUser.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/04-bll/01-user/TransferFileUser.cs
@@ -1,5 +1,4 @@
 锘縰sing Yw.BLL;
-using Yw.Dto;
 
 namespace HStation.BLL
 {
@@ -13,7 +12,7 @@
         /// <summary>
         /// 鑾峰彇鎵�鏈�
         /// </summary>
-        public async Task<List<Vmo.TransferFileUserVmo>> GetAll()
+        public async Task<List<TransferFileUserVmo>> GetAll()
         {
             var dtoList = await _cal.GetAll();
             return Dto2Vmos(dtoList);
@@ -22,7 +21,7 @@
         /// <summary>
         /// 閫氳繃 ID 鑾峰彇
         /// </summary>
-        public async Task<Vmo.TransferFileUserVmo> GetByID(long ID)
+        public async Task<TransferFileUserVmo> GetByID(long ID)
         {
             var dto = await _cal.GetByID(ID);
             return Dto2Vmo(dto);
@@ -31,7 +30,7 @@
         /// <summary>
         /// 閫氳繃 Ids 鑾峰彇
         /// </summary>
-        public async Task<List<Vmo.TransferFileUserVmo>> GetByIds(List<long> Ids)
+        public async Task<List<TransferFileUserVmo>> GetByIds(List<long> Ids)
         {
             var dto = await _cal.GetByIds(Ids);
             return Dto2Vmos(dto);
@@ -40,9 +39,9 @@
         /// <summary>
         /// 閫氳繃 Name 鑾峰彇
         /// </summary>
-        public async Task<Vmo.TransferFileUserVmo> GetByName(string input)
+        public async Task<TransferFileUserVmo> GetByName(string Name)
         {
-            var dto = await _cal.GetByName(input);
+            var dto = await _cal.GetByName(Name);
             return Dto2Vmo(dto);
         }
 
@@ -51,21 +50,21 @@
         /// <summary>
         /// 鎻掑叆涓�鏉�
         /// </summary>
-        public async Task<long> Insert(Vmo.TransferFileUserVmo input)
+        public async Task<long> Insert(TransferFileUserVmo input)
         {
             var dto = Vmo2AddDto(input);
             var id = await _cal.Insert(dto);
             return id;
         }
 
-        #endregion Insert
+        #endregion
 
         #region Update
 
         /// <summary>
         /// 鏇存柊涓�鏉�
         /// </summary>
-        public async Task<bool> Update(Vmo.TransferFileUserVmo input)
+        public async Task<bool> Update(TransferFileUserVmo input)
         {
             var dto = Vmo2UpdateDto(input);
             return await _cal.Update(dto);
@@ -80,50 +79,55 @@
         }
 
         /// <summary>
-        /// 鏇存柊鎺掑簭
+        /// 鎵归噺鏇存柊鎺掑簭鐮�
         /// </summary>
-        public async Task<bool> UpdateSorter(List<UpdateSortCodeInput> inputList)
+        public async virtual Task<bool> UpdateSorter(List<Yw.Vmo.Sorter> Sorters)
         {
-            return await _cal.UpdateSorter(inputList);
+            var dtoList = Sorters.ToDtoList();
+            var bol = await _cal.UpdateSorter(dtoList);
+            return bol;
         }
 
         /// <summary>
         /// 婵�娲�
         /// </summary>
-        public async Task<bool> Active(ActiveTransferFileUserInput input)
+        public async Task<bool> Active(string Name)
         {
+            var input = new ActiveTransferFileUserInput() { Name = Name };
             return await _cal.Active(input);
         }
 
         /// <summary>
         /// 澶辨晥
         /// </summary>
-        public async Task<bool> Invalid(InvalidTransferFileUserInput input)
+        public async Task<bool> Invalid(string Name, DateTime InvalidTime)
         {
+            var input = new InvalidTransferFileUserInput() { Name = Name, InvalidTime = InvalidTime };
             return await _cal.Invalid(input);
         }
 
-        #endregion Update
+        #endregion
 
         #region Exist
 
         /// <summary>
         /// 鍒ゆ柇 Name 鏄惁瀛樺湪
         /// </summary>
-        public async Task<bool> IsExistName(string input)
+        public async Task<bool> IsExistName(string Name)
         {
-            return await _cal.IsExistName(input);
+            return await _cal.IsExistName(Name);
         }
 
         /// <summary>
         ///  鍒ゆ柇 Name 鏄惁瀛樺湪 ExceptID
         /// </summary>
-        public async Task<bool> IsExistNameExceptID(NameExceptInput input)
+        public async Task<bool> IsExistNameExceptID(string Name, long ExceptID)
         {
+            var input = new NameExceptInput() { Name = Name, ExceptID = ExceptID };
             return await _cal.IsExistNameExceptID(input);
         }
 
-        #endregion Exist
+        #endregion
 
         #region Delete
 
@@ -136,5 +140,5 @@
         }
     }
 
-    #endregion Delete
+    #endregion 
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile.cs b/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile.cs
index 43f4917..fda8d0e 100644
--- a/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile.cs
+++ b/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile.cs
@@ -1,5 +1,4 @@
 锘縰sing HStation.Dto.TransferFile;
-using Yw.BLL;
 
 namespace HStation.BLL
 {
@@ -10,10 +9,12 @@
     {
         private readonly HStation.CAL.ITransferRevitFile _cal = CALCreateHelper.CreateCAL<HStation.CAL.ITransferRevitFile>();
 
+        #region Query
+
         /// <summary>
         /// 鑾峰彇鎵�鏈�
         /// </summary>
-        public async Task<List<Vmo.TransferRevitFileVmo>> GetAll()
+        public async Task<List<TransferRevitFileVmo>> GetAll()
         {
             var dtoList = await _cal.GetAll();
             return Dto2Vmos(dtoList);
@@ -22,7 +23,7 @@
         /// <summary>
         /// 閫氳繃 ID 鑾峰彇
         /// </summary>
-        public async Task<Vmo.TransferRevitFileVmo> GetByID(long ID)
+        public async Task<TransferRevitFileVmo> GetByID(long ID)
         {
             var dto = await _cal.GetByID(ID);
             return Dto2Vmo(dto);
@@ -31,7 +32,7 @@
         /// <summary>
         /// 閫氳繃 Ids 鑾峰彇
         /// </summary>
-        public async Task<List<Vmo.TransferRevitFileVmo>> GetByIds(List<long> ids)
+        public async Task<List<TransferRevitFileVmo>> GetByIds(List<long> ids)
         {
             var dtoList = await _cal.GetByIds(ids);
             return Dto2Vmos(dtoList);
@@ -40,61 +41,84 @@
         /// <summary>
         /// 鑾峰彇妯$硦鍒楄〃
         /// </summary>
-        public async Task<List<Vmo.TransferRevitFileVmo>> GetFluzzyList(QueryTransferRevitFileFluzzyListInput input)
+        public async Task<List<TransferRevitFileVmo>> GetFluzzyList
+            (
+                string FileName,
+                string FileCode,
+                string FileSuffix,
+                string UploadUserName,
+                DateTime? StartTime,
+                DateTime? EndTime
+            )
         {
-            var dtoList = await _cal.GetFluzzyList(input);
+            var dtoList = await _cal.GetFluzzyList(FileName, FileCode, FileSuffix, UploadUserName, StartTime, EndTime);
             return Dto2Vmos(dtoList);
         }
 
-        /*    /// <summary>
-            /// 鑾峰彇妯$硦鍒嗛〉鍒楄〃
-            /// </summary>
-            public async Task<PageListOutput<Vmo.TransferRevitFileVmo>> GetFluzzyPageList(QueryTransferRevitFileFluzzyPageListInput input)
-            {
-                var dtoList = await _cal.GetFluzzyPageList(input);
-                return Dto2Vmos(dtoList);
-            }*/
-
-        #region Insert
-
         /// <summary>
-        /// 鎻掑叆涓�鏉� (鍚屾椂涓婁紶鏂囦欢)
+        /// 鑾峰彇妯$硦鍒嗛〉鍒楄〃
         /// </summary>
-        public async Task<long> Insert(Vmo.TransferRevitFileVmo input)
+        public async Task<Yw.Vmo.PageListVmo<TransferRevitFileVmo>> GetFluzzyPageList
+            (
+                string FileName,
+                string FileCode,
+                string FileSuffix,
+                string UpoadUserName,
+                DateTime? StartTime,
+                DateTime? EndTime,
+                int PageIndex,
+                int PageSize
+            )
         {
-            var dto = Vmo2AddDto(input);
-            var id = await _cal.Insert(dto);
-            return id;
+            var input = new QueryTransferRevitFileFluzzyPageListInput()
+            {
+                FileName = FileName,
+                FileCode = FileCode,
+                FileSuffix = FileSuffix,
+                UploadUserName = UpoadUserName,
+                StartTime = StartTime,
+                EndTime = EndTime,
+                PageIndex = PageIndex,
+                PageSize = PageSize,
+            };
+            var dto = await _cal.GetFluzzyPageList(input);
+            return new Yw.Vmo.PageListVmo<TransferRevitFileVmo>() { Total = dto.Total, List = Dto2Vmos(dto.List) };
         }
 
-        #endregion Insert
+        #endregion
+
 
         #region Exist
 
         /// <summary>
         /// 鍒ゆ柇 FileCode 鏄惁瀛樺湪
         /// </summary>
-        public async Task<bool> IsExistFileCode(string input)
+        public async Task<bool> IsExistFileCode(string FileCode)
         {
-            return await _cal.IsExistFileCode(input);
+            return await _cal.IsExistFileCode(FileCode);
         }
 
         /// <summary>
         ///  鍒ゆ柇 FileCode 鏄惁瀛樺湪 ExceptID
         /// </summary>
-        public async Task<bool> IsExistFileCodeExceptID(FileCodeExceptIDInput input)
+        public async Task<bool> IsExistFileCodeExceptID(string FileCode, long ExceptID)
         {
+            var input = new FileCodeExceptIDInput() { FileCode = FileCode, ExceptID = ExceptID };
             return await _cal.IsExistFileCodeExceptID(input);
         }
 
-        #endregion Exist
+        #endregion
+
+        #region 鍒犻櫎
 
         /// <summary>
         /// 閫氳繃 ID 鍒犻櫎
         /// </summary>
-        public async Task<bool> DeleteByID(long input)
+        public async Task<bool> DeleteByID(long ID)
         {
-            return await _cal.DeleteByID(input);
+            return await _cal.DeleteByID(ID);
         }
+
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile_File.cs b/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile_File.cs
new file mode 100644
index 0000000..c715011
--- /dev/null
+++ b/BLL/HStation.BLL.TransferFile.Core/04-bll/02-revit/TransferRevitFile_File.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yw.BLL;
+
+namespace HStation.BLL
+{
+    public partial class TransferRevitFile
+    {
+        private string _downloadUrl = $"{ConfigHelper.HttpUrl}/Core/File/DownloadSubFile@V1.0";
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public async Task<string> Download(string StorageHouse, string StorageCode)
+        {
+            return await new HttpFileHelper().Download(_downloadUrl, StorageHouse, StorageCode, ConfigHelper.CALType);
+
+        }
+    }
+}
diff --git a/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs b/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
index 59ccc61..17fc912 100644
--- a/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
+++ b/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
@@ -2868,7 +2868,7 @@
 
             if (jobject[RevitJsonProp.Press].MatchNumeric(out double press))
             {
-                pressmeter.CurrentPress = press;
+                pressmeter.CurrentPress = Yw.Pump.CalculationHelper.Mpa2M(press);
             }
             else
             {
diff --git a/Service/HStation.Service.Revit.Core/HStation.Service.Revit.Core.csproj b/Service/HStation.Service.Revit.Core/HStation.Service.Revit.Core.csproj
index d34ad4b..2fccf50 100644
--- a/Service/HStation.Service.Revit.Core/HStation.Service.Revit.Core.csproj
+++ b/Service/HStation.Service.Revit.Core/HStation.Service.Revit.Core.csproj
@@ -7,7 +7,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Yw.Untity.Core" Version="3.0.2" />
+    <PackageReference Include="Yw.Pump.Core" Version="3.1.2" />
+    <PackageReference Include="Yw.Untity.Core" Version="3.0.3" />
   </ItemGroup>
 
 </Project>
diff --git a/Service/HStation.Service.TransferFile.Core/paras_hstation_transferfile_settings.json b/Service/HStation.Service.TransferFile.Core/paras_hstation_transferfile_settings.json
index d31b356..b7a6065 100644
--- a/Service/HStation.Service.TransferFile.Core/paras_hstation_transferfile_settings.json
+++ b/Service/HStation.Service.TransferFile.Core/paras_hstation_transferfile_settings.json
@@ -20,7 +20,7 @@
     "CAL": {
       "CALType": "HttpClient", //HttpClient/LocalClient
       "HttpClient": {
-        "HttpUrl": ""
+        "HttpUrl": "http://47.101.141.88:9098"
       },
       "LocalClient": {
       }
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.dll b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.dll
index c29c586..176b4d9 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.dll
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.dll
Binary files differ
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.fakesconfig b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.fakesconfig
index 3ffc5b2..0f08095 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.fakesconfig
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.fakesconfig
Binary files differ
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.messages b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.messages
index 2ef3fdf..d3d215f 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.messages
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.messages
@@ -1,15 +1,15 @@
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.DataTableExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.DateTimeExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.EnumerableExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.EnumExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.ListExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.PointExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.PointFExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.StringExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.StringListExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.EnumUtil 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.ReflectionUtil 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.DateTimeHelper 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.TransExp<TIn, TOut> 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.UserRegisterContext 鐢熸垚瀛樻牴: 绫诲瀷瀵� exported or assembly(Yw.Untity.Core.3.0.0.0.Fakes) 涓嶅彲瑙併��
-D:\WorkData\HStation\XHS\XHS.V1.0\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.UserRegisterContext 鐢熸垚濉厖鐮�: 绫诲瀷瀵� exported or assembly(Yw.Untity.Core.3.0.0.0.Fakes) 涓嶅彲瑙併��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.DataTableExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.DateTimeExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.EnumerableExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.EnumExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.ListExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.PointExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.PointFExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.StringExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.StringListExtension 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.EnumUtil 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.ReflectionUtil 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.DateTimeHelper 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.TransExp<TIn, TOut> 鐢熸垚瀛樻牴: 绫诲瀷娌℃湁瀵圭▼搴忛泦鍙鐨勬瀯閫犲嚱鏁般�傛瀯閫犲嚱鏁版湰韬垨鍙傛暟鍙兘涓嶅彲瑙併�傘��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.UserRegisterContext 鐢熸垚瀛樻牴: 绫诲瀷瀵� exported or assembly(Yw.Untity.Core.3.0.0.0.Fakes) 涓嶅彲瑙併��
+D:\WorkData\git\HStation\XHS\WinFrmUI\HStation.WinFrmUI.Auth.Core\Fakes\Yw.Untity.Core.fakes : warning : 鏃犳硶涓� Yw.Untity.UserRegisterContext 鐢熸垚濉厖鐮�: 绫诲瀷瀵� exported or assembly(Yw.Untity.Core.3.0.0.0.Fakes) 涓嶅彲瑙併��
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.xml b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.xml
index bd7b2bc..1afeaa4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.xml
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/FakesAssemblies/Yw.Untity.Core.3.0.0.0.Fakes.xml
@@ -538,6 +538,48 @@
         <member name="P:Yw.Untity.Fakes.ShimGuidCreater.CreateN">
             <summary>璁剧疆 GuidCreater.CreateN() 鐨� 濉厖鐮�</summary>
         </member>
+        <member name="T:Yw.Untity.Fakes.ShimHttpFileHelper">
+            <summary>Yw.Untity.HttpFileHelper 鐨勫~鍏呯爜绫诲瀷</summary>
+        </member>
+        <member name="M:Yw.Untity.Fakes.ShimHttpFileHelper.#ctor">
+            <summary>鍒濆鍖栨柊鐨勫~鍏呯爜瀹炰緥</summary>
+        </member>
+        <member name="M:Yw.Untity.Fakes.ShimHttpFileHelper.#ctor(Yw.Untity.HttpFileHelper)">
+            <summary>鍒濆鍖栫粰瀹氬疄渚嬬殑鏂板~鍏呯爜</summary>
+        </member>
+        <member name="T:Yw.Untity.Fakes.ShimHttpFileHelper.AllInstances">
+            <summary>涓烘墍鏈夊疄渚嬫垚鍛樺畾涔夊~鍏呯爜</summary>
+        </member>
+        <member name="M:Yw.Untity.Fakes.ShimHttpFileHelper.BehaveAsCurrent">
+            <summary>涓哄凡濉厖鐨勭被鍨嬬殑鎵�鏈夋柟娉曞垎閰嶁�淐urrent鈥濊涓�</summary>
+        </member>
+        <member name="M:Yw.Untity.Fakes.ShimHttpFileHelper.BehaveAsNotImplemented">
+            <summary>涓哄凡濉厖鐨勭被鍨嬬殑鎵�鏈夋柟娉曞垎閰嶁�淣otImplemented鈥濊涓�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.Behavior">
+            <summary>涓哄凡濉厖鐨勭被鍨嬬殑鎵�鏈夋柟娉曞垎閰嶈涓�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.Constructor">
+            <summary>璁剧疆 HttpFileHelper.HttpFileHelper(HttpFileHelper this) 鐨� 濉厖鐮�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.DownloadString">
+            <summary>璁剧疆 HttpFileHelper.Download(String url) 鐨� 濉厖鐮�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.DownloadStringString">
+            <summary>璁剧疆 HttpFileHelper.Download(String url, String filePath) 鐨� 濉厖鐮�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.DownloadUriString">
+            <summary>璁剧疆 HttpFileHelper.DownloadUri(String uri) 鐨� 濉厖鐮�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.DownloadUriStringString">
+            <summary>璁剧疆 HttpFileHelper.DownloadUri(String uri, String filePath) 鐨� 濉厖鐮�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.UploadStringStreamStringDictionaryOfStringString">
+            <summary>璁剧疆 HttpFileHelper.Upload(String url, Stream stream, String fileName, Dictionary`2 paras) 鐨� 濉厖鐮�</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.ShimHttpFileHelper.UploadStringStringDictionaryOfStringString">
+            <summary>璁剧疆 HttpFileHelper.Upload(String url, String filePath, Dictionary`2 paras) 鐨� 濉厖鐮�</summary>
+        </member>
         <member name="T:Yw.Untity.Fakes.ShimHttpRequestHelper">
             <summary>Yw.Untity.HttpRequestHelper 鐨勫~鍏呯爜绫诲瀷</summary>
         </member>
@@ -1663,6 +1705,24 @@
         <member name="P:Yw.Untity.Fakes.StubGuidCreater.InstanceObserver">
             <summary>鑾峰彇鎴栬缃疄渚嬭瀵熻�呫��</summary>
         </member>
+        <member name="T:Yw.Untity.Fakes.StubHttpFileHelper">
+            <summary>Yw.Untity.HttpFileHelper 鐨勫瓨鏍圭被鍨�</summary>
+        </member>
+        <member name="M:Yw.Untity.Fakes.StubHttpFileHelper.#ctor">
+            <summary>鍒濆鍖栨柊瀹炰緥</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.StubHttpFileHelper.CallBase">
+            <summary>鑾峰彇鎴栬缃竴涓�硷紝璇ュ�兼寚绀烘槸鍚﹀簲璋冪敤鍩烘柟娉曡�屼笉璋冪敤鍥為��琛屼负</summary>
+        </member>
+        <member name="M:Yw.Untity.Fakes.StubHttpFileHelper.InitializeStub">
+            <summary>鍒濆鍖� type StubHttpFileHelper 鐨勬柊瀹炰緥</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.StubHttpFileHelper.InstanceBehavior">
+            <summary>鑾峰彇鎴栬缃疄渚嬭涓恒��</summary>
+        </member>
+        <member name="P:Yw.Untity.Fakes.StubHttpFileHelper.InstanceObserver">
+            <summary>鑾峰彇鎴栬缃疄渚嬭瀵熻�呫��</summary>
+        </member>
         <member name="T:Yw.Untity.Fakes.StubHttpRequestHelper">
             <summary>Yw.Untity.HttpRequestHelper 鐨勫瓨鏍圭被鍨�</summary>
         </member>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.Designer.cs
index aa0612e..fa0fc8c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.Designer.cs
@@ -29,19 +29,24 @@
         private void InitializeComponent()
         {
             components = new Container();
-            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            EditorButtonImageOptions editorButtonImageOptions1 = new EditorButtonImageOptions();
             ComponentResourceManager resources = new ComponentResourceManager(typeof(InputXhsProjectInfoWizardPage));
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
+            EditorButtonImageOptions editorButtonImageOptions2 = new EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject5 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject6 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject7 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject8 = new DevExpress.Utils.SerializableAppearanceObject();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             setFlagsEditCtrl1 = new SetFlagsEditCtrl();
-            txtDescription = new DevExpress.XtraEditors.MemoEdit();
-            txtTagNme = new DevExpress.XtraEditors.TextEdit();
-            txtCustomer = new DevExpress.XtraEditors.TextEdit();
-            txtName = new DevExpress.XtraEditors.TextEdit();
-            btnEditSelectModelFile = new DevExpress.XtraEditors.ButtonEdit();
+            txtDescription = new MemoEdit();
+            txtTagNme = new TextEdit();
+            txtCustomer = new TextEdit();
+            txtName = new TextEdit();
+            btnEditSelectModelFile = new ButtonEdit();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
@@ -130,8 +135,10 @@
             btnEditSelectModelFile.Name = "btnEditSelectModelFile";
             editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage");
             editorButtonImageOptions1.SvgImageSize = new Size(15, 15);
-            btnEditSelectModelFile.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
-            btnEditSelectModelFile.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
+            editorButtonImageOptions2.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions2.SvgImage");
+            editorButtonImageOptions2.SvgImageSize = new Size(15, 15);
+            btnEditSelectModelFile.Properties.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", "Local", null, DevExpress.Utils.ToolTipAnchor.Default), new EditorButton(ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", "Http", null, DevExpress.Utils.ToolTipAnchor.Default) });
+            btnEditSelectModelFile.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
             btnEditSelectModelFile.Size = new Size(734, 23);
             btnEditSelectModelFile.StyleController = layoutControl1;
             btnEditSelectModelFile.TabIndex = 6;
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.cs
index fb47f8d..bb1f3b4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.cs
@@ -147,15 +147,30 @@
 
         private void btnEditSelectModelFile_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
         {
-            var suffix = Settings.XhsParasHelper.Xhs.File.Suffix;
-            var dlg = new OpenFileDialog();
-            dlg.Filter = $"妯″瀷鏂囦欢(*{suffix})|*{suffix}";
-            dlg.FilterIndex = 1;
-            if (dlg.ShowDialog() == DialogResult.OK)
+            if (e.Button.Tag.ToString() == "Local")
             {
-                var fileName = dlg.FileName;
-                this.btnEditSelectModelFile.EditValue = fileName;
+                var suffix = Settings.XhsParasHelper.Xhs.File.Suffix;
+                var dlg = new OpenFileDialog();
+                dlg.Filter = $"妯″瀷鏂囦欢(*{suffix})|*{suffix}";
+                dlg.FilterIndex = 1;
+                if (dlg.ShowDialog() == DialogResult.OK)
+                {
+                    var fileName = dlg.FileName;
+                    this.btnEditSelectModelFile.EditValue = fileName;
+                }
             }
+            else
+            {
+                var dlg = new SelectXhsProjectTransferFileDlg();
+                dlg.SetBindingData();
+                dlg.ReloadDataEvent += async (rhs) =>
+                {
+                    var fileName = await BLLFactory<HStation.BLL.TransferRevitFile>.Instance.Download(rhs.StorageHouse, rhs.StorageCode);
+                    this.btnEditSelectModelFile.EditValue = fileName;
+                };
+                dlg.ShowDialog();
+            }
+
         }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.resx
index 4a5d728..d2bb617 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.resx
@@ -122,20 +122,37 @@
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
         LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
-        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAAMDAAAC77u/
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJQCAAAC77u/
         PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
         IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
         MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
-        Y2U9InByZXNlcnZlIiBpZD0iT3BlbjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMy
-        IDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLlll
-        bGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBjbGFz
-        cz0ic3QwIj4NCiAgICA8cGF0aCBkPSJNMTkuMiwxMEgxMlY3YzAtMC42LTAuNC0xLTEtMUgzQzIuNCw2
-        LDIsNi41LDIsN3YxOGMwLDAuMiwwLDAuMywwLjEsMC40YzAsMCwwLjEtMC4xLDAuMS0wLjJsNS41LTEw
-        ICAgQzgsMTQuNSw4LjcsMTQsOS41LDE0aDEzLjdMMTkuMiwxMHoiIGNsYXNzPSJZZWxsb3ciIC8+DQog
-        IDwvZz4NCiAgPHBhdGggZD0iTTI5LjMsMTZIOS42TDQsMjZoMTkuOGMwLjUsMCwxLjEtMC4yLDEuMy0w
-        LjZsNC45LTguOUMzMC4xLDE2LjIsMjkuOCwxNiwyOS4zLDE2eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAg
-        PHBhdGggZD0iTTI4LDhjMC0zLjMtMi43LTYtNi02cy02LDIuNy02LDZjMC0yLjIsMS44LTQsNC00czQs
-        MS44LDQsNGgtNGw2LDZsNi02SDI4eiIgY2xhc3M9IkdyZWVuIiAvPg0KPC9zdmc+Cw==
+        Y2U9InByZXNlcnZlIiBpZD0iT3BlbiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg
+        MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0
+        MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cGF0aCBkPSJN
+        Mi4yLDI1LjJsNS41LTEyYzAuMy0wLjcsMS0xLjIsMS44LTEuMkgyNlY5YzAtMC42LTAuNC0xLTEtMUgx
+        MlY1YzAtMC42LTAuNC0xLTEtMUgzQzIuNCw0LDIsNC40LDIsNXYyMCAgIGMwLDAuMiwwLDAuMywwLjEs
+        MC40QzIuMSwyNS4zLDIuMiwyNS4zLDIuMiwyNS4yeiIgY2xhc3M9IlllbGxvdyIgLz4NCiAgPC9nPg0K
+        ICA8cGF0aCBkPSJNMzEuMywxNEg5LjZMNCwyNmgyMS44YzAuNSwwLDEuMS0wLjMsMS4zLTAuN0wzMiwx
+        NC43QzMyLjEsMTQuMywzMS44LDE0LDMxLjMsMTR6IiBjbGFzcz0iWWVsbG93IiAvPg0KPC9zdmc+Cw==
+</value>
+  </data>
+  <data name="editorButtonImageOptions2.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKsCAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5C
+        bGFja3tmaWxsOiM3MjcyNzI7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLlJlZHtmaWxsOiNEMTFD
+        MUM7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2xvdWR5XzFfIj4NCiAgICA8cGF0aCBkPSJNMjcsMThjLTAu
+        NCwwLTAuOCwwLjEtMS4yLDAuMmMwLjEtMC40LDAuMi0wLjgsMC4yLTEuMmMwLTIuOC0yLjItNS01LTVj
+        LTAuNSwwLTEuMSwwLjEtMS42LDAuMyAgIEMxOC40LDkuOCwxNS45LDgsMTMsOGMtMy45LDAtNywzLjEt
+        Nyw3YzAsMC4zLDAsMC43LDAuMSwxYzAsMC0wLjEsMC0wLjEsMGMtMi4yLDAtNCwxLjgtNCw0YzAsMi4y
+        LDEuOCw0LDQsNGgyMWMxLjcsMCwzLTEuMywzLTMgICBTMjguNywxOCwyNywxOHoiIGNsYXNzPSJCbHVl
+        IiAvPg0KICA8L2c+DQo8L3N2Zz4L
 </value>
   </data>
   <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.Designer.cs
new file mode 100644
index 0000000..197f6b4
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.Designer.cs
@@ -0,0 +1,550 @@
+锘縩amespace HStation.WinFrmUI
+{
+    partial class SelectXhsProjectTransferFileDlg
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new Container();
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            txtSuffix = new TextEdit();
+            btnSearch = new SimpleButton();
+            btnOk = new SimpleButton();
+            btnCancel = new SimpleButton();
+            txtUploadUserName = new TextEdit();
+            txtFileCode = new TextEdit();
+            txtFileName = new TextEdit();
+            dtEnd = new DateEdit();
+            dtStart = new DateEdit();
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            selectXhsProjectTransferFileViewModelBindingSource = new BindingSource(components);
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colFileName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colFileCode = new DevExpress.XtraGrid.Columns.GridColumn();
+            colFileSize = new DevExpress.XtraGrid.Columns.GridColumn();
+            colFileSuffix = new DevExpress.XtraGrid.Columns.GridColumn();
+            colUploadTime = new DevExpress.XtraGrid.Columns.GridColumn();
+            colUploadUserName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colStorageHouse = new DevExpress.XtraGrid.Columns.GridColumn();
+            colStorageCode = new DevExpress.XtraGrid.Columns.GridColumn();
+            colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+            emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            ((ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((ISupportInitialize)txtSuffix.Properties).BeginInit();
+            ((ISupportInitialize)txtUploadUserName.Properties).BeginInit();
+            ((ISupportInitialize)txtFileCode.Properties).BeginInit();
+            ((ISupportInitialize)txtFileName.Properties).BeginInit();
+            ((ISupportInitialize)dtEnd.Properties).BeginInit();
+            ((ISupportInitialize)dtEnd.Properties.CalendarTimeProperties).BeginInit();
+            ((ISupportInitialize)dtStart.Properties).BeginInit();
+            ((ISupportInitialize)dtStart.Properties.CalendarTimeProperties).BeginInit();
+            ((ISupportInitialize)gridControl1).BeginInit();
+            ((ISupportInitialize)selectXhsProjectTransferFileViewModelBindingSource).BeginInit();
+            ((ISupportInitialize)gridView1).BeginInit();
+            ((ISupportInitialize)Root).BeginInit();
+            ((ISupportInitialize)layoutControlItem1).BeginInit();
+            ((ISupportInitialize)layoutControlItem8).BeginInit();
+            ((ISupportInitialize)emptySpaceItem1).BeginInit();
+            ((ISupportInitialize)layoutControlItem9).BeginInit();
+            ((ISupportInitialize)layoutControlGroup1).BeginInit();
+            ((ISupportInitialize)layoutControlItem2).BeginInit();
+            ((ISupportInitialize)layoutControlItem3).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
+            ((ISupportInitialize)layoutControlItem5).BeginInit();
+            ((ISupportInitialize)layoutControlItem6).BeginInit();
+            ((ISupportInitialize)layoutControlItem10).BeginInit();
+            ((ISupportInitialize)emptySpaceItem2).BeginInit();
+            ((ISupportInitialize)layoutControlItem7).BeginInit();
+            SuspendLayout();
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(txtSuffix);
+            layoutControl1.Controls.Add(btnSearch);
+            layoutControl1.Controls.Add(btnOk);
+            layoutControl1.Controls.Add(btnCancel);
+            layoutControl1.Controls.Add(txtUploadUserName);
+            layoutControl1.Controls.Add(txtFileCode);
+            layoutControl1.Controls.Add(txtFileName);
+            layoutControl1.Controls.Add(dtEnd);
+            layoutControl1.Controls.Add(dtStart);
+            layoutControl1.Controls.Add(gridControl1);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(0, 0);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1270, 311, 650, 400);
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(1205, 665);
+            layoutControl1.TabIndex = 0;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // txtSuffix
+            // 
+            txtSuffix.Location = new Point(808, 24);
+            txtSuffix.Name = "txtSuffix";
+            txtSuffix.Properties.AutoHeight = false;
+            txtSuffix.Size = new Size(82, 22);
+            txtSuffix.StyleController = layoutControl1;
+            txtSuffix.TabIndex = 5;
+            // 
+            // btnSearch
+            // 
+            btnSearch.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Question;
+            btnSearch.Appearance.Options.UseBackColor = true;
+            btnSearch.Location = new Point(1074, 24);
+            btnSearch.Name = "btnSearch";
+            btnSearch.Size = new Size(85, 22);
+            btnSearch.StyleController = layoutControl1;
+            btnSearch.TabIndex = 7;
+            btnSearch.Text = "鏌ヨ";
+            btnSearch.Click += btnSearch_Click;
+            // 
+            // btnOk
+            // 
+            btnOk.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
+            btnOk.Appearance.Options.UseBackColor = true;
+            btnOk.Location = new Point(997, 631);
+            btnOk.Name = "btnOk";
+            btnOk.Size = new Size(96, 22);
+            btnOk.StyleController = layoutControl1;
+            btnOk.TabIndex = 9;
+            btnOk.Text = "纭畾";
+            btnOk.Click += btnOk_Click;
+            // 
+            // btnCancel
+            // 
+            btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
+            btnCancel.Appearance.Options.UseBackColor = true;
+            btnCancel.DialogResult = DialogResult.Cancel;
+            btnCancel.Location = new Point(1097, 631);
+            btnCancel.Name = "btnCancel";
+            btnCancel.Size = new Size(96, 22);
+            btnCancel.StyleController = layoutControl1;
+            btnCancel.TabIndex = 10;
+            btnCancel.Text = "鍙栨秷";
+            // 
+            // txtUploadUserName
+            // 
+            txtUploadUserName.Location = new Point(958, 24);
+            txtUploadUserName.Name = "txtUploadUserName";
+            txtUploadUserName.Properties.AutoHeight = false;
+            txtUploadUserName.Size = new Size(112, 22);
+            txtUploadUserName.StyleController = layoutControl1;
+            txtUploadUserName.TabIndex = 6;
+            // 
+            // txtFileCode
+            // 
+            txtFileCode.Location = new Point(628, 24);
+            txtFileCode.Name = "txtFileCode";
+            txtFileCode.Properties.AutoHeight = false;
+            txtFileCode.Size = new Size(112, 22);
+            txtFileCode.StyleController = layoutControl1;
+            txtFileCode.TabIndex = 4;
+            // 
+            // txtFileName
+            // 
+            txtFileName.Location = new Point(448, 24);
+            txtFileName.Name = "txtFileName";
+            txtFileName.Properties.AutoHeight = false;
+            txtFileName.Size = new Size(112, 22);
+            txtFileName.StyleController = layoutControl1;
+            txtFileName.TabIndex = 3;
+            // 
+            // dtEnd
+            // 
+            dtEnd.EditValue = null;
+            dtEnd.Location = new Point(268, 24);
+            dtEnd.Name = "dtEnd";
+            dtEnd.Properties.AutoHeight = false;
+            dtEnd.Properties.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
+            dtEnd.Properties.CalendarTimeProperties.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
+            dtEnd.Size = new Size(112, 22);
+            dtEnd.StyleController = layoutControl1;
+            dtEnd.TabIndex = 2;
+            // 
+            // dtStart
+            // 
+            dtStart.EditValue = null;
+            dtStart.Location = new Point(88, 24);
+            dtStart.Name = "dtStart";
+            dtStart.Properties.AutoHeight = false;
+            dtStart.Properties.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
+            dtStart.Properties.CalendarTimeProperties.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
+            dtStart.Size = new Size(112, 22);
+            dtStart.StyleController = layoutControl1;
+            dtStart.TabIndex = 0;
+            // 
+            // gridControl1
+            // 
+            gridControl1.DataSource = selectXhsProjectTransferFileViewModelBindingSource;
+            gridControl1.Location = new Point(12, 62);
+            gridControl1.MainView = gridView1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.Size = new Size(1181, 565);
+            gridControl1.TabIndex = 8;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // selectXhsProjectTransferFileViewModelBindingSource
+            // 
+            selectXhsProjectTransferFileViewModelBindingSource.DataSource = typeof(SelectXhsProjectTransferFileViewModel);
+            // 
+            // gridView1
+            // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colFileName, colFileCode, colFileSize, colFileSuffix, colUploadTime, colUploadUserName, colStorageHouse, colStorageCode, colDescription });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            // 
+            // colFileName
+            // 
+            colFileName.FieldName = "FileName";
+            colFileName.MinWidth = 120;
+            colFileName.Name = "colFileName";
+            colFileName.Visible = true;
+            colFileName.VisibleIndex = 0;
+            colFileName.Width = 120;
+            // 
+            // colFileCode
+            // 
+            colFileCode.FieldName = "FileCode";
+            colFileCode.MinWidth = 100;
+            colFileCode.Name = "colFileCode";
+            colFileCode.Visible = true;
+            colFileCode.VisibleIndex = 1;
+            colFileCode.Width = 100;
+            // 
+            // colFileSize
+            // 
+            colFileSize.FieldName = "FileSize";
+            colFileSize.MaxWidth = 80;
+            colFileSize.MinWidth = 80;
+            colFileSize.Name = "colFileSize";
+            colFileSize.Visible = true;
+            colFileSize.VisibleIndex = 2;
+            colFileSize.Width = 80;
+            // 
+            // colFileSuffix
+            // 
+            colFileSuffix.FieldName = "FileSuffix";
+            colFileSuffix.MaxWidth = 60;
+            colFileSuffix.MinWidth = 60;
+            colFileSuffix.Name = "colFileSuffix";
+            colFileSuffix.Visible = true;
+            colFileSuffix.VisibleIndex = 3;
+            colFileSuffix.Width = 60;
+            // 
+            // colUploadTime
+            // 
+            colUploadTime.FieldName = "UploadTime";
+            colUploadTime.MaxWidth = 150;
+            colUploadTime.MinWidth = 120;
+            colUploadTime.Name = "colUploadTime";
+            colUploadTime.Visible = true;
+            colUploadTime.VisibleIndex = 4;
+            colUploadTime.Width = 120;
+            // 
+            // colUploadUserName
+            // 
+            colUploadUserName.FieldName = "UploadUserName";
+            colUploadUserName.MaxWidth = 100;
+            colUploadUserName.MinWidth = 100;
+            colUploadUserName.Name = "colUploadUserName";
+            colUploadUserName.Visible = true;
+            colUploadUserName.VisibleIndex = 5;
+            colUploadUserName.Width = 100;
+            // 
+            // colStorageHouse
+            // 
+            colStorageHouse.FieldName = "StorageHouse";
+            colStorageHouse.MinWidth = 100;
+            colStorageHouse.Name = "colStorageHouse";
+            colStorageHouse.Visible = true;
+            colStorageHouse.VisibleIndex = 6;
+            colStorageHouse.Width = 100;
+            // 
+            // colStorageCode
+            // 
+            colStorageCode.FieldName = "StorageCode";
+            colStorageCode.MinWidth = 100;
+            colStorageCode.Name = "colStorageCode";
+            colStorageCode.Visible = true;
+            colStorageCode.VisibleIndex = 7;
+            colStorageCode.Width = 100;
+            // 
+            // colDescription
+            // 
+            colDescription.FieldName = "Description";
+            colDescription.MinWidth = 100;
+            colDescription.Name = "colDescription";
+            colDescription.Visible = true;
+            colDescription.VisibleIndex = 8;
+            colDescription.Width = 100;
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem8, emptySpaceItem1, layoutControlItem9, layoutControlGroup1 });
+            Root.Name = "Root";
+            Root.Size = new Size(1205, 665);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem1
+            // 
+            layoutControlItem1.Control = gridControl1;
+            layoutControlItem1.Location = new Point(0, 50);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Size = new Size(1185, 569);
+            layoutControlItem1.TextSize = new Size(0, 0);
+            layoutControlItem1.TextVisible = false;
+            // 
+            // layoutControlItem8
+            // 
+            layoutControlItem8.Control = btnCancel;
+            layoutControlItem8.Location = new Point(1085, 619);
+            layoutControlItem8.MaxSize = new Size(100, 26);
+            layoutControlItem8.MinSize = new Size(100, 26);
+            layoutControlItem8.Name = "layoutControlItem8";
+            layoutControlItem8.Size = new Size(100, 26);
+            layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem8.TextSize = new Size(0, 0);
+            layoutControlItem8.TextVisible = false;
+            // 
+            // emptySpaceItem1
+            // 
+            emptySpaceItem1.AllowHotTrack = false;
+            emptySpaceItem1.Location = new Point(0, 619);
+            emptySpaceItem1.Name = "emptySpaceItem1";
+            emptySpaceItem1.Size = new Size(985, 26);
+            emptySpaceItem1.TextSize = new Size(0, 0);
+            // 
+            // layoutControlItem9
+            // 
+            layoutControlItem9.Control = btnOk;
+            layoutControlItem9.Location = new Point(985, 619);
+            layoutControlItem9.MaxSize = new Size(100, 26);
+            layoutControlItem9.MinSize = new Size(100, 26);
+            layoutControlItem9.Name = "layoutControlItem9";
+            layoutControlItem9.Size = new Size(100, 26);
+            layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem9.TextSize = new Size(0, 0);
+            layoutControlItem9.TextVisible = false;
+            // 
+            // layoutControlGroup1
+            // 
+            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem6, layoutControlItem10, emptySpaceItem2, layoutControlItem7 });
+            layoutControlGroup1.Location = new Point(0, 0);
+            layoutControlGroup1.Name = "layoutControlGroup1";
+            layoutControlGroup1.Size = new Size(1185, 50);
+            layoutControlGroup1.Text = "鏌ヨ鏉′欢";
+            layoutControlGroup1.TextVisible = false;
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = dtStart;
+            layoutControlItem2.Location = new Point(0, 0);
+            layoutControlItem2.MaxSize = new Size(180, 0);
+            layoutControlItem2.MinSize = new Size(180, 24);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(180, 26);
+            layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem2.Text = "寮�濮嬫棩鏈�:";
+            layoutControlItem2.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem3
+            // 
+            layoutControlItem3.Control = dtEnd;
+            layoutControlItem3.Location = new Point(180, 0);
+            layoutControlItem3.MaxSize = new Size(180, 0);
+            layoutControlItem3.MinSize = new Size(180, 24);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(180, 26);
+            layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem3.Text = "缁撴潫鏃ユ湡:";
+            layoutControlItem3.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.Control = txtFileName;
+            layoutControlItem4.Location = new Point(360, 0);
+            layoutControlItem4.MaxSize = new Size(180, 0);
+            layoutControlItem4.MinSize = new Size(180, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(180, 26);
+            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem4.Text = "鏂囦欢鍚嶇О:";
+            layoutControlItem4.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem5
+            // 
+            layoutControlItem5.Control = txtFileCode;
+            layoutControlItem5.Location = new Point(540, 0);
+            layoutControlItem5.MaxSize = new Size(180, 0);
+            layoutControlItem5.MinSize = new Size(180, 24);
+            layoutControlItem5.Name = "layoutControlItem5";
+            layoutControlItem5.Size = new Size(180, 26);
+            layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem5.Text = "鏂囦欢缂栫爜:";
+            layoutControlItem5.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem6
+            // 
+            layoutControlItem6.Control = txtUploadUserName;
+            layoutControlItem6.Location = new Point(870, 0);
+            layoutControlItem6.MaxSize = new Size(180, 0);
+            layoutControlItem6.MinSize = new Size(180, 24);
+            layoutControlItem6.Name = "layoutControlItem6";
+            layoutControlItem6.Size = new Size(180, 26);
+            layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem6.Text = "涓婁紶鐢ㄦ埛:";
+            layoutControlItem6.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem10
+            // 
+            layoutControlItem10.Control = btnSearch;
+            layoutControlItem10.Location = new Point(1050, 0);
+            layoutControlItem10.MaxSize = new Size(89, 26);
+            layoutControlItem10.MinSize = new Size(89, 26);
+            layoutControlItem10.Name = "layoutControlItem10";
+            layoutControlItem10.Size = new Size(89, 26);
+            layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem10.TextSize = new Size(0, 0);
+            layoutControlItem10.TextVisible = false;
+            // 
+            // emptySpaceItem2
+            // 
+            emptySpaceItem2.AllowHotTrack = false;
+            emptySpaceItem2.Location = new Point(1139, 0);
+            emptySpaceItem2.MinSize = new Size(1, 1);
+            emptySpaceItem2.Name = "emptySpaceItem2";
+            emptySpaceItem2.Size = new Size(22, 26);
+            emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            emptySpaceItem2.TextSize = new Size(0, 0);
+            // 
+            // layoutControlItem7
+            // 
+            layoutControlItem7.Control = txtSuffix;
+            layoutControlItem7.Location = new Point(720, 0);
+            layoutControlItem7.MaxSize = new Size(150, 0);
+            layoutControlItem7.MinSize = new Size(150, 24);
+            layoutControlItem7.Name = "layoutControlItem7";
+            layoutControlItem7.Size = new Size(150, 26);
+            layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem7.Text = "鏂囦欢鍚庣紑:";
+            layoutControlItem7.TextSize = new Size(52, 14);
+            // 
+            // SelectXhsProjectTransferFileDlg
+            // 
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(1205, 665);
+            Controls.Add(layoutControl1);
+            Name = "SelectXhsProjectTransferFileDlg";
+            StartPosition = FormStartPosition.CenterParent;
+            Text = "閫夋嫨浜戞枃浠�";
+            ((ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)txtSuffix.Properties).EndInit();
+            ((ISupportInitialize)txtUploadUserName.Properties).EndInit();
+            ((ISupportInitialize)txtFileCode.Properties).EndInit();
+            ((ISupportInitialize)txtFileName.Properties).EndInit();
+            ((ISupportInitialize)dtEnd.Properties.CalendarTimeProperties).EndInit();
+            ((ISupportInitialize)dtEnd.Properties).EndInit();
+            ((ISupportInitialize)dtStart.Properties.CalendarTimeProperties).EndInit();
+            ((ISupportInitialize)dtStart.Properties).EndInit();
+            ((ISupportInitialize)gridControl1).EndInit();
+            ((ISupportInitialize)selectXhsProjectTransferFileViewModelBindingSource).EndInit();
+            ((ISupportInitialize)gridView1).EndInit();
+            ((ISupportInitialize)Root).EndInit();
+            ((ISupportInitialize)layoutControlItem1).EndInit();
+            ((ISupportInitialize)layoutControlItem8).EndInit();
+            ((ISupportInitialize)emptySpaceItem1).EndInit();
+            ((ISupportInitialize)layoutControlItem9).EndInit();
+            ((ISupportInitialize)layoutControlGroup1).EndInit();
+            ((ISupportInitialize)layoutControlItem2).EndInit();
+            ((ISupportInitialize)layoutControlItem3).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
+            ((ISupportInitialize)layoutControlItem5).EndInit();
+            ((ISupportInitialize)layoutControlItem6).EndInit();
+            ((ISupportInitialize)layoutControlItem10).EndInit();
+            ((ISupportInitialize)emptySpaceItem2).EndInit();
+            ((ISupportInitialize)layoutControlItem7).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private DateEdit dtEnd;
+        private DateEdit dtStart;
+        private DevExpress.XtraGrid.GridControl gridControl1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+        private SimpleButton btnSearch;
+        private SimpleButton btnOk;
+        private SimpleButton btnCancel;
+        private TextEdit txtUploadUserName;
+        private TextEdit txtFileCode;
+        private TextEdit txtFileName;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+        private BindingSource selectXhsProjectTransferFileViewModelBindingSource;
+        private DevExpress.XtraGrid.Columns.GridColumn colFileName;
+        private DevExpress.XtraGrid.Columns.GridColumn colFileCode;
+        private DevExpress.XtraGrid.Columns.GridColumn colFileSize;
+        private DevExpress.XtraGrid.Columns.GridColumn colFileSuffix;
+        private DevExpress.XtraGrid.Columns.GridColumn colUploadTime;
+        private DevExpress.XtraGrid.Columns.GridColumn colUploadUserName;
+        private DevExpress.XtraGrid.Columns.GridColumn colStorageHouse;
+        private DevExpress.XtraGrid.Columns.GridColumn colStorageCode;
+        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
+        private TextEdit txtSuffix;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.cs
new file mode 100644
index 0000000..4e0de2a
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.cs
@@ -0,0 +1,70 @@
+锘縰sing DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HStation.WinFrmUI
+{
+    public partial class SelectXhsProjectTransferFileDlg : DevExpress.XtraEditors.XtraForm
+    {
+        public SelectXhsProjectTransferFileDlg()
+        {
+            InitializeComponent();
+            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
+            this.layoutControl1.SetupLayoutControl();
+            this.gridView1.SetNormalView();
+            this.dtStart.SetOnlyShowDate();
+            this.dtEnd.SetOnlyShowDate();
+        }
+
+        public event Action<TransferRevitFileVmo> ReloadDataEvent;
+
+        private List<SelectXhsProjectTransferFileViewModel> _allBindingList = null;
+
+        public void SetBindingData()
+        {
+            this.dtStart.DateTime = DateTime.Now.AddDays(-10);
+            this.dtEnd.DateTime = DateTime.Now;
+            Search();
+        }
+
+        //鏌ヨ
+        private async void Search()
+        {
+            var fileName = this.txtFileName.Text.Trim();
+            var fileCode = this.txtFileCode.Text.Trim();
+            var fileSuffix = this.txtSuffix.Text.Trim();
+            var uploadUserName = this.txtUploadUserName.Text.Trim();
+            var startTime = this.dtStart.DateTime.Date;
+            var endTime = this.dtEnd.DateTime.Date.AddDays(1);
+            var list = await BLLFactory<HStation.BLL.TransferRevitFile>.Instance.GetFluzzyList(fileName, fileCode, fileSuffix, uploadUserName, startTime, endTime);
+            _allBindingList = new List<SelectXhsProjectTransferFileViewModel>();
+            list?.ForEach(x => _allBindingList.Add(new SelectXhsProjectTransferFileViewModel(x)));
+            this.selectXhsProjectTransferFileViewModelBindingSource.DataSource = _allBindingList;
+            this.selectXhsProjectTransferFileViewModelBindingSource.ResetBindings(false);
+        }
+
+        private void btnSearch_Click(object sender, EventArgs e)
+        {
+            Search();
+        }
+
+        private void btnOk_Click(object sender, EventArgs e)
+        {
+            var row = this.gridView1.GetFocusedRow() as SelectXhsProjectTransferFileViewModel;
+            if (row == null)
+            {
+                return;
+            }
+            this.ReloadDataEvent?.Invoke(row.Vmo);
+            this.DialogResult = DialogResult.OK;
+            this.Close();
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.resx
new file mode 100644
index 0000000..4aa3527
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileDlg.resx
@@ -0,0 +1,123 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema 
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    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
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="selectXhsProjectTransferFileViewModelBindingSource.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.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileViewModel.cs
new file mode 100644
index 0000000..1117f00
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/cloud/SelectXhsProjectTransferFileViewModel.cs
@@ -0,0 +1,102 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HStation.WinFrmUI
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class SelectXhsProjectTransferFileViewModel
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public SelectXhsProjectTransferFileViewModel() { }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public SelectXhsProjectTransferFileViewModel(HStation.Vmo.TransferRevitFileVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.FileName = rhs.FileName;
+            this.FileCode = rhs.FileCode;
+            this.FileSize = Math.Round(rhs.FileSize / 1024f / 1024f, 1).ToString() + "Mb";
+            this.FileSuffix = rhs.FileSuffix;
+            this.UploadTime = rhs.UploadTime.ToStandardString();
+            this.UploadUserName = rhs.UploadUserName;
+            this.StorageHouse = rhs.StorageHouse;
+            this.StorageCode = rhs.StorageCode;
+            this.Description = rhs.Description;
+            this.Vmo = rhs;
+        }
+
+        /// <summary>
+        /// ID
+        /// </summary>
+        [DisplayName("ID")]
+        public long ID { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢鍚嶇О
+        /// </summary>
+        [DisplayName("鏂囦欢鍚嶇О")]
+        public string FileName { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢缂栫爜
+        /// </summary>
+        [DisplayName("鏂囦欢缂栫爜")]
+        public string FileCode { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢澶у皬
+        /// </summary>
+        [DisplayName("鏂囦欢澶у皬")]
+        public string FileSize { get; set; }
+
+        /// <summary>
+        /// 鏂囦欢鍚庣紑
+        /// </summary>	
+        [DisplayName("鏂囦欢鍚庣紑")]
+        public string FileSuffix { get; set; }
+
+        /// <summary>
+        /// 涓婁紶鏃堕棿
+        /// </summary>
+        [DisplayName("涓婁紶鏃堕棿")]
+        public string UploadTime { get; set; }
+
+        /// <summary>
+        /// 涓婁紶鐢ㄦ埛
+        /// </summary>
+        [DisplayName("涓婁紶鐢ㄦ埛")]
+        public string UploadUserName { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍浠撳簱
+        /// </summary>	
+        [DisplayName("瀛樺偍浠撳簱")]
+        public string StorageHouse { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍缂栫爜
+        /// </summary>	
+        [DisplayName("瀛樺偍缂栫爜")]
+        public string StorageCode { get; set; }
+
+        /// <summary>
+        /// 璇存槑
+        /// </summary>	
+        [DisplayName("璇存槑")]
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public HStation.Vmo.TransferRevitFileVmo Vmo { get; set; }
+    }
+}
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
index a73d456..d77f096 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -90,6 +90,7 @@
   </ItemGroup>
 
   <ItemGroup>
+    <ProjectReference Include="..\..\BLL\HStation.BLL.TransferFile.Core\HStation.BLL.TransferFile.Core.csproj" />
     <ProjectReference Include="..\..\BLL\HStation.BLL.Xhs.Core\HStation.BLL.Xhs.Core.csproj" />
     <ProjectReference Include="..\..\Hydro\HStation.Hydro.Core\HStation.Hydro.Core.csproj" />
     <ProjectReference Include="..\HStation.WinFrmUI.Assets.Core\HStation.WinFrmUI.Assets.Core.csproj" />
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
index fce22c6..7db4c5e 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -19,6 +19,9 @@
     <Compile Update="02-project\01-import\01-info\InputXhsProjectInfoWizardPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="02-project\01-import\01-info\cloud\SelectXhsProjectTransferFileDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="02-project\01-import\02-map\SetXhsProjectMapLocationWizardPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.SelectXhsProjectTransferFileViewModel.datasource b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.SelectXhsProjectTransferFileViewModel.datasource
new file mode 100644
index 0000000..edab477
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.SelectXhsProjectTransferFileViewModel.datasource
@@ -0,0 +1,10 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="SelectXhsProjectTransferFileViewModel" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+  <TypeInfo>HStation.WinFrmUI.SelectXhsProjectTransferFileViewModel, HStation.WinFrmUI.Xhs.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
\ No newline at end of file

--
Gitblit v1.9.3