From 3dfa3d93337cca6363b0e138c74f80af96431b83 Mon Sep 17 00:00:00 2001
From: 展杰 <1240968267@qq.com>
Date: 星期五, 16 八月 2024 08:58:54 +0800
Subject: [PATCH] 合并上格最新代码

---
 MES.Service/service/Warehouse/MesInvItemMovesCDetailsManager.cs           |   79 +
 MES.Service/service/BasicData/MesStaffManager.cs                          |    2 
 MESApplication/MESApplication.csproj                                      |    9 
 MES.Service/Dto/service/OutItemDto.cs                                     |    3 
 MESApplication/Controllers/Base/LoginController.cs                        |   19 
 MESApplication/Filter/ErrorLog.cs                                         |   70 +
 MESApplication/bin/Debug/net8.0/MES.Service.pdb                           |    0 
 MESApplication/Controllers/Warehouse/MesInvItemMovesCDetailsController.cs |  163 ++
 MES.Service/Dto/service/PurchaseInventory.cs                              |    2 
 MES.Service/service/Warehouse/MesInvItemMovesManager.cs                   |  522 +++++++++
 MESApplication/bin/Debug/net8.0/MES.Service.dll                           |    0 
 MESApplication/Controllers/Warehouse/MesInvItemMovesController.cs         |  306 +++++
 MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs                  |   97 
 MESApplication/bin/Debug/net8.0/MESApplication.pdb                        |    0 
 MES.Service/Modes/MesInvItemOutItems.cs                                   |    7 
 MES.Service/service/Warehouse/MesInvBusiness2Manager.cs                   |   94 
 MESApplication/Filter/ActionFilter.cs                                     |  160 ++
 MES.Service/service/Warehouse/OpeningReceiptServer.cs                     |   95 +
 MES.Service/util/CollectionUtil.cs                                        |    2 
 MES.Service/service/Warehouse/MesDepotSectionsManager.cs                  |   66 +
 MES.Service/bin/Debug/net8.0/MES.Service.pdb                              |    0 
 MES.Service/Modes/MesInvItemMovesCDetails.cs                              |  237 ++++
 MESApplication/Controllers/Warehouse/OpeningReceiptController.cs          |   20 
 MES.Service/Modes/MesInvItemMoves.cs                                      |  178 +++
 MESApplication/bin/Debug/net8.0/MESApplication.dll                        |    0 
 MES.Service/bin/Debug/net8.0/MES.Service.dll                              |    0 
 MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs               |   10 
 MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs         |  308 ++--
 MES.Service/Modes/MesInvBusiness2.cs                                      |  419 +++---
 MES.Service/Modes/MesInvItemStocks.cs                                     |   38 
 MES.Service/Modes/MesQaItemsDetectDetail5.cs                              |  326 ++--
 MES.Service/Modes/MesInvItemInCDetails.cs                                 |    3 
 MES.Service/Dto/service/InventoryItem.cs                                  |    8 
 MES.Service/Modes/MesDepotSections.cs                                     |  134 +-
 MESApplication/Startup.cs                                                 |   17 
 MESApplication/bin/Debug/net8.0/MESApplication.exe                        |    0 
 MESApplication/Controllers/Base/DemoController.cs                         |    2 
 MES.Service/Dto/service/MovesDto.cs                                       |   15 
 MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs        |   42 
 MES.Service/Dto/service/WarehouseQuery.cs                                 |    4 
 40 files changed, 2,723 insertions(+), 734 deletions(-)

diff --git a/MES.Service/Dto/service/InventoryItem.cs b/MES.Service/Dto/service/InventoryItem.cs
index ca5767f..2d4a948 100644
--- a/MES.Service/Dto/service/InventoryItem.cs
+++ b/MES.Service/Dto/service/InventoryItem.cs
@@ -16,4 +16,12 @@
 
     [SugarColumn(ColumnName = "QTY")]
     public decimal Qty { get; set; } // 浣跨敤 decimal 鏉ヨ〃绀烘暟閲�
+
+    [SugarColumn(ColumnName = "sections_code")]
+    public string SectionsCode { get; set; }
+
+    [SugarColumn(ColumnName = "erp_item_no")]
+    public string ErpItemNo { get; set; }
+
+    [SugarColumn(ColumnName = "flist")] public string Flist { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Dto/service/MovesDto.cs b/MES.Service/Dto/service/MovesDto.cs
new file mode 100644
index 0000000..55141e9
--- /dev/null
+++ b/MES.Service/Dto/service/MovesDto.cs
@@ -0,0 +1,15 @@
+锘縰sing MES.Service.Modes;
+
+namespace MES.Service.Dto.service;
+
+public class MovesDto
+{
+    //鍑哄叆鍗�
+    public List<MesInvItemMoves>? FromList { get; set; }
+    public List<MesInvItemOutItems>? OutItems { get; set; }
+    public List<MesInvItemMovesCDetails>? BarcodeList { get; set; }
+    
+    //鍏ュ簱鍗�
+    public bool? InAudit{ get; set; }
+    public MesInvItemBarcodes? BarcodesInfo{ get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Dto/service/OutItemDto.cs b/MES.Service/Dto/service/OutItemDto.cs
index 804bb9c..53f1187 100644
--- a/MES.Service/Dto/service/OutItemDto.cs
+++ b/MES.Service/Dto/service/OutItemDto.cs
@@ -7,8 +7,7 @@
     public MesInvItemOuts? Form { get; set; }
     public List<MesInvItemOutItems>? SaveItems { get; set; }
     public List<MESInvItemOutItems>? SelectItems { get; set; }
-
-
+    
     public string? ItemNo { get; set; }
 
     public decimal? Quantity { get; set; }
diff --git a/MES.Service/Dto/service/PurchaseInventory.cs b/MES.Service/Dto/service/PurchaseInventory.cs
index bb590d6..3067272 100644
--- a/MES.Service/Dto/service/PurchaseInventory.cs
+++ b/MES.Service/Dto/service/PurchaseInventory.cs
@@ -12,4 +12,6 @@
     public List<MesInvItemInCDetails>? InvItemInCDetails { get; set; }
 
     public List<MesInvItemInCItems>? ItemInDetails { get; set; }
+
+    public List<MesInvItemStocks>? ItemStocks { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Dto/service/WarehouseQuery.cs b/MES.Service/Dto/service/WarehouseQuery.cs
index ea3e707..a7422e3 100644
--- a/MES.Service/Dto/service/WarehouseQuery.cs
+++ b/MES.Service/Dto/service/WarehouseQuery.cs
@@ -19,4 +19,8 @@
     public string? Type { get; set; }
     public string? DepotCode { get; set; }
     public string? SuppNo { get; set; }
+
+    public string? Factory { get; set; }
+
+    public string? Company { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesDepotSections.cs b/MES.Service/Modes/MesDepotSections.cs
index 7011883..5cb98ee 100644
--- a/MES.Service/Modes/MesDepotSections.cs
+++ b/MES.Service/Modes/MesDepotSections.cs
@@ -8,96 +8,108 @@
 [SugarTable("MES_DEPOT_SECTIONS")]
 public class MesDepotSections
 {
- /// <summary>
- ///     ID(SEQ_INV_ID)锛圗RPID锛�
- /// </summary>
- [SugarColumn(ColumnName = "DEPOT_SECTION_ID", IsPrimaryKey = true)]
+    /// <summary>
+    ///     ID(SEQ_INV_ID)锛圗RPID锛�
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPOT_SECTION_ID", IsPrimaryKey = true)]
     public decimal DepotSectionId { get; set; }
 
- /// <summary>
- ///     璐т綅缂栫爜
- /// </summary>
- [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
+    /// <summary>
+    ///     璐т綅缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
     public string DepotSectionCode { get; set; }
 
- /// <summary>
- ///     璐т綅鍚嶇О
- /// </summary>
- [SugarColumn(ColumnName = "DEPOT_SECTION_NAME")]
+    /// <summary>
+    ///     璐т綅鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPOT_SECTION_NAME")]
     public string DepotSectionName { get; set; }
 
- /// <summary>
- ///     浠撳簱缂栫爜
- /// </summary>
- [SugarColumn(ColumnName = "DEPOT_ID")]
+    /// <summary>
+    ///     浠撳簱缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPOT_ID")]
     public decimal? DepotId { get; set; }
 
- /// <summary>
- ///     鍙備笌榻愬鏍¢獙(0:鍚�,1:鏄�)
- /// </summary>
- [SugarColumn(ColumnName = "COMPLETENESS_FLAG")]
+    /// <summary>
+    ///     鍙備笌榻愬鏍¢獙(0:鍚�,1:鏄�)
+    /// </summary>
+    [SugarColumn(ColumnName = "COMPLETENESS_FLAG")]
     public short? CompletenessFlag { get; set; }
 
- /// <summary>
- ///     澶囨敞
- /// </summary>
- [SugarColumn(ColumnName = "DESCRIPTION")]
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "DESCRIPTION")]
     public string Description { get; set; }
 
- /// <summary>
- ///     鍒涘缓浜�
- /// </summary>
- [SugarColumn(ColumnName = "CREATE_BY")]
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATE_BY")]
     public string CreateBy { get; set; }
 
- /// <summary>
- ///     鍒涘缓鏃堕棿
- /// </summary>
- [SugarColumn(ColumnName = "CREATE_DATE")]
+    /// <summary>
+    ///     鍒涘缓鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATE_DATE")]
     public DateTime? CreateDate { get; set; }
 
- /// <summary>
- ///     鏈�鍚庢洿鏂颁汉
- /// </summary>
- [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+    /// <summary>
+    ///     鏈�鍚庢洿鏂颁汉
+    /// </summary>
+    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
     public string LastupdateBy { get; set; }
 
- /// <summary>
- ///     鏈�鍚庢洿鏂版椂闂�
- /// </summary>
- [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+    /// <summary>
+    ///     鏈�鍚庢洿鏂版椂闂�
+    /// </summary>
+    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
     public DateTime? LastupdateDate { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "COMPANY")]
+    /// <summary>
+    /// </summary>
+    [SugarColumn(ColumnName = "COMPANY")]
     public string Company { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "FACTORY")]
+    /// <summary>
+    /// </summary>
+    [SugarColumn(ColumnName = "FACTORY")]
     public string Factory { get; set; }
 
- /// <summary>
- ///     鍗℃澘鏁�
- /// </summary>
- [SugarColumn(ColumnName = "KB_QTY")]
+    /// <summary>
+    ///     鍗℃澘鏁�
+    /// </summary>
+    [SugarColumn(ColumnName = "KB_QTY")]
     public decimal? KbQty { get; set; }
 
- /// <summary>
- ///     浠撲綅缁処D
- /// </summary>
- [SugarColumn(ColumnName = "ZUID")]
+    /// <summary>
+    ///     浠撲綅缁処D
+    /// </summary>
+    [SugarColumn(ColumnName = "ZUID")]
     public decimal? Zuid { get; set; }
 
- /// <summary>
- ///     浠撲綅鍏ㄥ悕
- /// </summary>
- [SugarColumn(ColumnName = "DEPOT_SECTION_NAMET")]
+    /// <summary>
+    ///     浠撲綅鍏ㄥ悕
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPOT_SECTION_NAMET")]
     public string DepotSectionNamet { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "ERPID")]
+    /// <summary>
+    /// </summary>
+    [SugarColumn(ColumnName = "ERPID")]
     public decimal? Erpid { get; set; }
+
+    /// <summary>
+    ///     浠撳簱绫诲埆缂栫爜
+    /// </summary>
+    [SugarColumn(IsIgnore = true)]
+    public string? DepotCode { get; set; }
+
+    /// <summary>
+    ///     浠撳簱绫诲埆鍚嶇О
+    /// </summary>
+    [SugarColumn(IsIgnore = true)]
+    public string? DepotName { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesInvBusiness2.cs b/MES.Service/Modes/MesInvBusiness2.cs
index 82f13d9..9ca8594 100644
--- a/MES.Service/Modes/MesInvBusiness2.cs
+++ b/MES.Service/Modes/MesInvBusiness2.cs
@@ -1,194 +1,227 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using SqlSugar;
-namespace MES.Service.Modes
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     搴撳瓨浜ゆ槗璁板綍琛�
+/// </summary>
+[SugarTable("MES_INV_BUSINESS2")]
+public class MesInvBusiness2
 {
-    /// <summary>
-    /// 搴撳瓨浜ゆ槗璁板綍琛�
-    ///</summary>
-    [SugarTable("MES_INV_BUSINESS2")]
-    public class MesInvBusiness2
-    {
-        /// <summary>
-        /// ID(seq_inv_id) 
-        ///</summary>
-         [SugarColumn(ColumnName="ID",OracleSequenceName = "SEQ_ID",IsPrimaryKey = true   )]
-         public decimal Id { get; set; }
-        /// <summary>
-        /// 鐘舵�亅0-鏈氦鏄�1-宸蹭氦鏄� 
-        ///</summary>
-         [SugarColumn(ColumnName="STATUS"    )]
-         public decimal? Status { get; set; }
-        /// <summary>
-        /// 鍗曟嵁绫诲瀷ID 
-        ///</summary>
-         [SugarColumn(ColumnName="BILL_TYPE_ID"    )]
-         public decimal? BillTypeId { get; set; }
-        /// <summary>
-        /// 浜嬪姟绫诲瀷缂栫爜 
-        ///</summary>
-         [SugarColumn(ColumnName="TRANSACTION_CODE"    )]
-         public string TransactionCode { get; set; }
-        /// <summary>
-        /// 浜ゆ槗绫诲瀷|1-鍏ュ簱0-杞簱-1鍑哄簱 
-        ///</summary>
-         [SugarColumn(ColumnName="BUSINESS_TYPE"    )]
-         public decimal? BusinessType { get; set; }
-        /// <summary>
-        /// 鍗曟嵁ID 
-        ///</summary>
-         [SugarColumn(ColumnName="BILL_ID"    )]
-         public decimal? BillId { get; set; }
-        /// <summary>
-        /// 鍗曟嵁缂栫爜 
-        ///</summary>
-         [SugarColumn(ColumnName="BILL_NO"    )]
-         public string BillNo { get; set; }
-        /// <summary>
-        /// 鐢熶骇璁㈠崟鍙� 
-        ///</summary>
-         [SugarColumn(ColumnName="TASK_NO"    )]
-         public string TaskNo { get; set; }
-        /// <summary>
-        /// 瀹㈡埛缂栧彿 
-        ///</summary>
-         [SugarColumn(ColumnName="CUSTOMER_NO"    )]
-         public string CustomerNo { get; set; }
-        /// <summary>
-        /// 鍗曟嵁琛孖D 
-        ///</summary>
-         [SugarColumn(ColumnName="BILL_LINE_ID"    )]
-         public decimal? BillLineId { get; set; }
-        /// <summary>
-        /// 鐗╂枡鏉$爜 
-        ///</summary>
-         [SugarColumn(ColumnName="ITEM_BARCODE"    )]
-         public string ItemBarcode { get; set; }
-        /// <summary>
-        /// 鏈徃鐗╂枡缂栫爜 
-        ///</summary>
-         [SugarColumn(ColumnName="ITEM_NO"    )]
-         public string ItemNo { get; set; }
-        /// <summary>
-        /// 瀹㈡埛鐗╂枡缂栫爜 
-        ///</summary>
-         [SugarColumn(ColumnName="C_ITEM_CODE"    )]
-         public string CItemCode { get; set; }
-        /// <summary>
-        /// 鍘傚鎵规 
-        ///</summary>
-         [SugarColumn(ColumnName="LOT_NO"    )]
-         public string LotNo { get; set; }
-        /// <summary>
-        /// 鏄惁鐜繚(0:鍚�,1:鏄�) 
-        ///</summary>
-         [SugarColumn(ColumnName="EP_FLAG"    )]
-         public short? EpFlag { get; set; }
-        /// <summary>
-        /// 鏁伴噺 
-        ///</summary>
-         [SugarColumn(ColumnName="QUANTITY"    )]
-         public decimal? Quantity { get; set; }
-        /// <summary>
-        /// 婧愬瓙搴揅ODE 
-        ///</summary>
-         [SugarColumn(ColumnName="FROM_INV_DEPOTS_CODE"    )]
-         public string FromInvDepotsCode { get; set; }
-        /// <summary>
-        /// 婧愯揣浣岰ODE 
-        ///</summary>
-         [SugarColumn(ColumnName="FROM_INV_DEPOT_SECTIONS_CODE"    )]
-         public string FromInvDepotSectionsCode { get; set; }
-        /// <summary>
-        /// 鐩殑瀛愬簱CODE 
-        ///</summary>
-         [SugarColumn(ColumnName="TO_INV_DEPOTS_CODE"    )]
-         public string ToInvDepotsCode { get; set; }
-        /// <summary>
-        /// 鐩殑璐т綅CODE 
-        ///</summary>
-         [SugarColumn(ColumnName="TO_INV_DEPOT_SECTIONS_CODE"    )]
-         public string ToInvDepotSectionsCode { get; set; }
-        /// <summary>
-        /// 浜ゆ槗寮傚父淇℃伅 
-        ///</summary>
-         [SugarColumn(ColumnName="DESCRIPTION"    )]
-         public string Description { get; set; }
-        /// <summary>
-        /// 鍒涘缓浜� 
-        ///</summary>
-         [SugarColumn(ColumnName="CREATE_BY"    )]
-         public string CreateBy { get; set; }
-        /// <summary>
-        /// 鍒涘缓鏃堕棿 
-        ///</summary>
-         [SugarColumn(ColumnName="CREATE_DATE"    )]
-         public DateTime? CreateDate { get; set; }
-        /// <summary>
-        /// 鏈�鍚庢洿鏂颁汉 
-        ///</summary>
-         [SugarColumn(ColumnName="LASTUPDATE_BY"    )]
-         public string LastupdateBy { get; set; }
-        /// <summary>
-        /// 鏈�鍚庢洿鏂版椂闂� 
-        ///</summary>
-         [SugarColumn(ColumnName="LASTUPDATE_DATE"    )]
-         public DateTime? LastupdateDate { get; set; }
-        /// <summary>
-        /// 瓒呮崯缁熻鏍囪瘑 
-        ///</summary>
-         [SugarColumn(ColumnName="ULLAGE_STAT_FLAG"    )]
-         public short? UllageStatFlag { get; set; }
-        /// <summary>
-        /// 鍒嗗巶缂栫爜 
-        ///</summary>
-         [SugarColumn(ColumnName="FACTORY"    )]
-         public string Factory { get; set; }
-        /// <summary>
-        /// 鍏徃浠g爜 
-        ///</summary>
-         [SugarColumn(ColumnName="COMPANY"    )]
-         public string Company { get; set; }
-        /// <summary>
-        /// 绠卞彿鏉$爜 
-        ///</summary>
-         [SugarColumn(ColumnName="ITEM_BARCODE2"    )]
-         public string ItemBarcode2 { get; set; }
-        /// <summary>
-        /// 鍗℃澘鏉$爜 
-        ///</summary>
-         [SugarColumn(ColumnName="ITEM_BARCODE3"    )]
-         public string ItemBarcode3 { get; set; }
-        /// <summary>
-        /// 浠诲姟鍗曞彿 
-        ///</summary>
-         [SugarColumn(ColumnName="WORK_NO"    )]
-         public string WorkNo { get; set; }
-        /// <summary>
-        /// 浠诲姟鍗曡鍙� 
-        ///</summary>
-         [SugarColumn(ColumnName="WORK_LINE"    )]
-         public decimal? WorkLine { get; set; }
-        /// <summary>
-        /// 渚涘簲鍟� 
-        ///</summary>
-         [SugarColumn(ColumnName="SUPP_NO"    )]
-         public string SuppNo { get; set; }
-        /// <summary>
-        /// 鐢熶骇绾� 
-        ///</summary>
-         [SugarColumn(ColumnName="LINE_NO"    )]
-         public string LineNo { get; set; }
-        /// <summary>
-        /// 閲囪喘璁㈠崟id 
-        ///</summary>
-         [SugarColumn(ColumnName="EBELN_K3ID"    )]
-         public decimal? EbelnK3id { get; set; }
-        /// <summary>
-        /// 閲囪喘璁㈠崟琛宨d 
-        ///</summary>
-         [SugarColumn(ColumnName="LINE_K3ID"    )]
-         public decimal? LineK3id { get; set; }
-    }
-}
+   /// <summary>
+   ///     ID(seq_inv_id)
+   /// </summary>
+   [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_ID",
+        IsPrimaryKey = true)]
+    public decimal Id { get; set; }
+
+   /// <summary>
+   ///     鐘舵�亅0-鏈氦鏄�1-宸蹭氦鏄�
+   /// </summary>
+   [SugarColumn(ColumnName = "STATUS")]
+    public decimal? Status { get; set; }
+
+   /// <summary>
+   ///     鍗曟嵁绫诲瀷ID
+   /// </summary>
+   [SugarColumn(ColumnName = "BILL_TYPE_ID")]
+    public decimal? BillTypeId { get; set; }
+
+   /// <summary>
+   ///     浜嬪姟绫诲瀷缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "TRANSACTION_CODE")]
+    public string TransactionCode { get; set; }
+
+   /// <summary>
+   ///     浜ゆ槗绫诲瀷|1-鍏ュ簱0-杞簱-1鍑哄簱
+   /// </summary>
+   [SugarColumn(ColumnName = "BUSINESS_TYPE")]
+    public decimal? BusinessType { get; set; }
+
+   /// <summary>
+   ///     鍗曟嵁ID
+   /// </summary>
+   [SugarColumn(ColumnName = "BILL_ID")]
+    public decimal? BillId { get; set; }
+
+   /// <summary>
+   ///     鍗曟嵁缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "BILL_NO")]
+    public string BillNo { get; set; }
+
+   /// <summary>
+   ///     鐢熶骇璁㈠崟鍙�
+   /// </summary>
+   [SugarColumn(ColumnName = "TASK_NO")]
+    public string TaskNo { get; set; }
+
+   /// <summary>
+   ///     瀹㈡埛缂栧彿
+   /// </summary>
+   [SugarColumn(ColumnName = "CUSTOMER_NO")]
+    public string CustomerNo { get; set; }
+
+   /// <summary>
+   ///     鍗曟嵁琛孖D
+   /// </summary>
+   [SugarColumn(ColumnName = "BILL_LINE_ID")]
+    public decimal? BillLineId { get; set; }
+
+   /// <summary>
+   ///     鐗╂枡鏉$爜
+   /// </summary>
+   [SugarColumn(ColumnName = "ITEM_BARCODE")]
+    public string ItemBarcode { get; set; }
+
+   /// <summary>
+   ///     鏈徃鐗╂枡缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "ITEM_NO")]
+    public string ItemNo { get; set; }
+
+   /// <summary>
+   ///     瀹㈡埛鐗╂枡缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "C_ITEM_CODE")]
+    public string CItemCode { get; set; }
+
+   /// <summary>
+   ///     鍘傚鎵规
+   /// </summary>
+   [SugarColumn(ColumnName = "LOT_NO")]
+    public string LotNo { get; set; }
+
+   /// <summary>
+   ///     鏄惁鐜繚(0:鍚�,1:鏄�)
+   /// </summary>
+   [SugarColumn(ColumnName = "EP_FLAG")]
+    public short? EpFlag { get; set; }
+
+   /// <summary>
+   ///     鏁伴噺
+   /// </summary>
+   [SugarColumn(ColumnName = "QUANTITY")]
+    public decimal? Quantity { get; set; }
+
+   /// <summary>
+   ///     婧愬瓙搴揅ODE
+   /// </summary>
+   [SugarColumn(ColumnName = "FROM_INV_DEPOTS_CODE")]
+    public string FromInvDepotsCode { get; set; }
+
+   /// <summary>
+   ///     婧愯揣浣岰ODE
+   /// </summary>
+   [SugarColumn(ColumnName = "FROM_INV_DEPOT_SECTIONS_CODE")]
+    public string FromInvDepotSectionsCode { get; set; }
+
+   /// <summary>
+   ///     鐩殑瀛愬簱CODE
+   /// </summary>
+   [SugarColumn(ColumnName = "TO_INV_DEPOTS_CODE")]
+    public string ToInvDepotsCode { get; set; }
+
+   /// <summary>
+   ///     鐩殑璐т綅CODE
+   /// </summary>
+   [SugarColumn(ColumnName = "TO_INV_DEPOT_SECTIONS_CODE")]
+    public string ToInvDepotSectionsCode { get; set; }
+
+   /// <summary>
+   ///     浜ゆ槗寮傚父淇℃伅
+   /// </summary>
+   [SugarColumn(ColumnName = "DESCRIPTION")]
+    public string Description { get; set; }
+
+   /// <summary>
+   ///     鍒涘缓浜�
+   /// </summary>
+   [SugarColumn(ColumnName = "CREATE_BY")]
+    public string CreateBy { get; set; }
+
+   /// <summary>
+   ///     鍒涘缓鏃堕棿
+   /// </summary>
+   [SugarColumn(ColumnName = "CREATE_DATE")]
+    public DateTime? CreateDate { get; set; }
+
+   /// <summary>
+   ///     鏈�鍚庢洿鏂颁汉
+   /// </summary>
+   [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+    public string LastupdateBy { get; set; }
+
+   /// <summary>
+   ///     鏈�鍚庢洿鏂版椂闂�
+   /// </summary>
+   [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+    public DateTime? LastupdateDate { get; set; }
+
+   /// <summary>
+   ///     瓒呮崯缁熻鏍囪瘑
+   /// </summary>
+   [SugarColumn(ColumnName = "ULLAGE_STAT_FLAG")]
+    public short? UllageStatFlag { get; set; }
+
+   /// <summary>
+   ///     鍒嗗巶缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "FACTORY")]
+    public string Factory { get; set; }
+
+   /// <summary>
+   ///     鍏徃浠g爜
+   /// </summary>
+   [SugarColumn(ColumnName = "COMPANY")]
+    public string Company { get; set; }
+
+   /// <summary>
+   ///     绠卞彿鏉$爜
+   /// </summary>
+   [SugarColumn(ColumnName = "ITEM_BARCODE2")]
+    public string ItemBarcode2 { get; set; }
+
+   /// <summary>
+   ///     鍗℃澘鏉$爜
+   /// </summary>
+   [SugarColumn(ColumnName = "ITEM_BARCODE3")]
+    public string ItemBarcode3 { get; set; }
+
+   /// <summary>
+   ///     浠诲姟鍗曞彿
+   /// </summary>
+   [SugarColumn(ColumnName = "WORK_NO")]
+    public string WorkNo { get; set; }
+
+   /// <summary>
+   ///     浠诲姟鍗曡鍙�
+   /// </summary>
+   [SugarColumn(ColumnName = "WORK_LINE")]
+    public decimal? WorkLine { get; set; }
+
+   /// <summary>
+   ///     渚涘簲鍟�
+   /// </summary>
+   [SugarColumn(ColumnName = "SUPP_NO")]
+    public string SuppNo { get; set; }
+
+   /// <summary>
+   ///     鐢熶骇绾�
+   /// </summary>
+   [SugarColumn(ColumnName = "LINE_NO")]
+    public string LineNo { get; set; }
+
+   /// <summary>
+   ///     閲囪喘璁㈠崟id
+   /// </summary>
+   [SugarColumn(ColumnName = "EBELN_K3ID")]
+    public decimal? EbelnK3id { get; set; }
+
+   /// <summary>
+   ///     閲囪喘璁㈠崟琛宨d
+   /// </summary>
+   [SugarColumn(ColumnName = "LINE_K3ID")]
+    public decimal? LineK3id { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/MesInvItemInCDetails.cs b/MES.Service/Modes/MesInvItemInCDetails.cs
index be92da1..0bf8253 100644
--- a/MES.Service/Modes/MesInvItemInCDetails.cs
+++ b/MES.Service/Modes/MesInvItemInCDetails.cs
@@ -11,7 +11,8 @@
     /// <summary>
     ///     SEQ_OUT
     /// </summary>
-    [SugarColumn(ColumnName = "ID",OracleSequenceName = "SEQ_INV_ID", IsPrimaryKey = true)]
+    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_INV_ID",
+        IsPrimaryKey = true)]
     public decimal Id { get; set; }
 
     /// <summary>
diff --git a/MES.Service/Modes/MesInvItemMoves.cs b/MES.Service/Modes/MesInvItemMoves.cs
new file mode 100644
index 0000000..07b4ba6
--- /dev/null
+++ b/MES.Service/Modes/MesInvItemMoves.cs
@@ -0,0 +1,178 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     鐗╂枡绉诲簱涓昏〃
+/// </summary>
+[SugarTable("MES_INV_ITEM_MOVES")]
+public class MesInvItemMoves
+{
+   /// <summary>
+   ///     SEQ_INV_ID
+   /// </summary>
+   [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+    public decimal Id { get; set; }
+
+   /// <summary>
+   ///     绉诲簱鍗曞彿
+   /// </summary>
+   [SugarColumn(ColumnName = "BILL_NO")]
+    public string BillNo { get; set; }
+
+   /// <summary>
+   ///     绉诲叆瀛愬簱id
+   /// </summary>
+   [SugarColumn(ColumnName = "INV_DEPOTS_ID")]
+    public decimal? InvDepotsId { get; set; }
+
+   /// <summary>
+   ///     绉诲叆璐т綅id
+   /// </summary>
+   [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_ID")]
+    public decimal? InvDepotSectionsId { get; set; }
+
+   /// <summary>
+   ///     鍒涘缓浜�
+   /// </summary>
+   [SugarColumn(ColumnName = "CREATE_BY")]
+    public string CreateBy { get; set; }
+
+   /// <summary>
+   ///     鍒涘缓鏃堕棿
+   /// </summary>
+   [SugarColumn(ColumnName = "CREATE_DATE")]
+    public DateTime? CreateDate { get; set; }
+
+   /// <summary>
+   ///     鏈�鍚庢洿鏂颁汉
+   /// </summary>
+   [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+    public string LastupdateBy { get; set; }
+
+   /// <summary>
+   ///     鏈�鍚庢洿鏂版椂闂�
+   /// </summary>
+   [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+    public DateTime? LastupdateDate { get; set; }
+
+   /// <summary>
+   ///     鐘舵�亅0-鍒跺崟1-杩囪处
+   /// </summary>
+   [SugarColumn(ColumnName = "STATUS")]
+    public decimal? Status { get; set; }
+
+   /// <summary>
+   ///     澶囨敞
+   /// </summary>
+   [SugarColumn(ColumnName = "REMARK")]
+    public string Remark { get; set; }
+
+   /// <summary>
+   ///     鍗曟嵁绫诲瀷ID
+   /// </summary>
+   [SugarColumn(ColumnName = "BILL_TYPE_ID")]
+    public decimal? BillTypeId { get; set; }
+
+   /// <summary>
+   ///     浜嬪姟绫诲瀷ID
+   /// </summary>
+   [SugarColumn(ColumnName = "TRANSACTION_ID")]
+    public decimal? TransactionId { get; set; }
+
+   /// <summary>
+   ///     瀹℃牳浜�
+   /// </summary>
+   [SugarColumn(ColumnName = "CHECKUSER")]
+    public string Checkuser { get; set; }
+
+   /// <summary>
+   ///     瀹℃牳鏃ユ湡
+   /// </summary>
+   [SugarColumn(ColumnName = "CHECKDATE")]
+    public DateTime? Checkdate { get; set; }
+
+   /// <summary>
+   ///     绉诲叆瀛愬簱code
+   /// </summary>
+   [SugarColumn(ColumnName = "INV_DEPOTS_CODE")]
+    public string InvDepotsCode { get; set; }
+
+   /// <summary>
+   ///     绉诲叆璐т綅code
+   /// </summary>
+   [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_CODE")]
+    public string InvDepotSectionsCode { get; set; }
+
+   /// <summary>
+   ///     浜嬪姟绫诲瀷缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "TRANSACTION_NO")]
+    public decimal? TransactionNo { get; set; }
+
+   /// <summary>
+   ///     绉诲嚭瀛愬簱code
+   /// </summary>
+   [SugarColumn(ColumnName = "FROM_DEPOTS_CODE")]
+    public string FromDepotsCode { get; set; }
+
+   /// <summary>
+   ///     宸ュ巶缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "FACTORY_CODE")]
+    public string FactoryCode { get; set; }
+
+   /// <summary>
+   ///     SAP杩斿洖鍗曟嵁
+   /// </summary>
+   [SugarColumn(ColumnName = "SAPNO")]
+    public string Sapno { get; set; }
+
+   /// <summary>
+   ///     宸插洖鍐橲AP
+   /// </summary>
+   [SugarColumn(ColumnName = "SAPSTATUS")]
+    public short? Sapstatus { get; set; }
+
+   /// <summary>
+   ///     SAP杩斿洖骞翠唤
+   /// </summary>
+   [SugarColumn(ColumnName = "SAPYEAR")]
+    public short? Sapyear { get; set; }
+
+   /// <summary>
+   ///     SAP杩斿洖淇℃伅
+   /// </summary>
+   [SugarColumn(ColumnName = "SAPTEXT")]
+    public string Saptext { get; set; }
+
+   /// <summary>
+   ///     鍒嗗巶缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "FACTORY")]
+    public string Factory { get; set; }
+
+   /// <summary>
+   ///     鍏徃浠g爜
+   /// </summary>
+   [SugarColumn(ColumnName = "COMPANY")]
+    public string Company { get; set; }
+
+   /// <summary>
+   ///     鍙嶅鏍镐簨鍔$被鍨嬬紪鐮�
+   /// </summary>
+   [SugarColumn(ColumnName = "MTRANSACTION_NO")]
+    public decimal? MtransactionNo { get; set; }
+
+   /// <summary>
+   ///     鑷姩淇濆瓨瀛楁
+   /// </summary>
+   [SugarColumn(ColumnName = "ZD_NUM")]
+    public decimal? ZdNum { get; set; }
+
+   /// <summary>
+   ///     鏄惁鎺ㄩ�丒RP1-鏄紝2-鍚�
+   /// </summary>
+   [SugarColumn(ColumnName = "TS")]
+    public decimal? Ts { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/MesInvItemMovesCDetails.cs b/MES.Service/Modes/MesInvItemMovesCDetails.cs
new file mode 100644
index 0000000..1fc798b
--- /dev/null
+++ b/MES.Service/Modes/MesInvItemMovesCDetails.cs
@@ -0,0 +1,237 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     鐗╂枡绉诲簱鏉$爜鏄庣粏浠庤〃
+/// </summary>
+[SugarTable("MES_INV_ITEM_MOVES_C_DETAILS")]
+public class MesInvItemMovesCDetails
+{
+    /// <summary>
+    ///     seq_inv_id
+    /// </summary>
+    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_INV_ID",
+        IsPrimaryKey = true)]
+    public decimal Id { get; set; }
+
+    /// <summary>
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_MOVE_ID")]
+    public decimal? ItemMoveId { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡鏉$爜
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_BARCODE")]
+    public string? ItemBarcode { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+    /// </summary>
+    [SugarColumn(ColumnName = "C_ITEM_CODE")]
+    public string? CItemCode { get; set; }
+
+    /// <summary>
+    ///     淇″崕鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string? ItemNo { get; set; }
+
+    /// <summary>
+    ///     鍘傚鎵规
+    /// </summary>
+    [SugarColumn(ColumnName = "LOT_NO")]
+    public string? LotNo { get; set; }
+
+    /// <summary>
+    ///     鏁伴噺锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+    /// </summary>
+    [SugarColumn(ColumnName = "QUANTITY")]
+    public decimal? Quantity { get; set; }
+
+    /// <summary>
+    ///     鍑哄簱鏂瑰紡(1:鏈夋潯鐮�,0:鏃犳潯鐮�)
+    /// </summary>
+    [SugarColumn(ColumnName = "BARCODE_FLAG")]
+    public short? BarcodeFlag { get; set; }
+
+    /// <summary>
+    ///     鐜繚鏍囧織锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+    /// </summary>
+    [SugarColumn(ColumnName = "EP_FLAG")]
+    public short? EpFlag { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATE_BY")]
+    public string? CreateBy { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATE_DATE")]
+    public DateTime? CreateDate { get; set; }
+
+    /// <summary>
+    ///     鏈�鍚庢洿鏂颁汉
+    /// </summary>
+    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+    public string? LastupdateBy { get; set; }
+
+    /// <summary>
+    ///     鏈�鍚庢洿鏂版椂闂�
+    /// </summary>
+    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+    public DateTime? LastupdateDate { get; set; }
+
+    /// <summary>
+    ///     瀛愬簱id
+    /// </summary>
+    [SugarColumn(ColumnName = "INV_DEPOTS_ID")]
+    public decimal? InvDepotsId { get; set; }
+
+    /// <summary>
+    ///     璐т綅id
+    /// </summary>
+    [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_ID")]
+    public decimal? InvDepotSectionsId { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "CUST_NO")]
+    public string? CustNo { get; set; }
+
+    /// <summary>
+    ///     浠诲姟浠ゅ彿
+    /// </summary>
+    [SugarColumn(ColumnName = "TASK_NO")]
+    public string? TaskNo { get; set; }
+
+    /// <summary>
+    ///     绉诲嚭浠撳簱缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FROM_DEPOTS_CODE")]
+    public string? FromDepotsCode { get; set; }
+
+    /// <summary>
+    ///     绉诲嚭搴撲綅缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FROM_DEPOT_SECTIONS_CODE")]
+    public string? FromDepotSectionsCode { get; set; }
+
+    /// <summary>
+    ///     鏉$爜澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "REMARK")]
+    public string? Remark { get; set; }
+
+    /// <summary>
+    ///     鍒嗗巶缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "FACTORY")]
+    public string? Factory { get; set; }
+
+    /// <summary>
+    ///     鍏徃浠g爜
+    /// </summary>
+    [SugarColumn(ColumnName = "COMPANY")]
+    public string? Company { get; set; }
+
+    /// <summary>
+    ///     绠卞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "BOX_NO")]
+    public string? BoxNo { get; set; }
+
+    /// <summary>
+    ///     鍗℃澘鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "KO_NO")]
+    public string? KoNo { get; set; }
+
+    /// <summary>
+    ///     绉诲叆浠撳簱缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "INV_DEPOTS_CODE")]
+    public string? InvDepotsCode { get; set; }
+
+    /// <summary>
+    ///     绉诲叆搴撲綅缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_CODE")]
+    public string? InvDepotSectionsCode { get; set; }
+
+    /// <summary>
+    ///     璐ㄦ缁撴灉
+    /// </summary>
+    [SugarColumn(ColumnName = "IQC_STATUS")]
+    public string? IqcStatus { get; set; }
+
+    /// <summary>
+    ///     灏忚溅缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FCAR")]
+    public string? Fcar { get; set; }
+
+    /// <summary>
+    ///     鍏ュ簱鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "INDEP_DATE")]
+    public DateTime? IndepDate { get; set; }
+
+    /// <summary>
+    ///     鍐荤粨鎻愪氦閲嶆锛�0锛氬喕缁撴湭鎻愪氦閲嶆锛�1锛氬喕缁撳苟鎻愪氦閲嶆
+    /// </summary>
+    [SugarColumn(ColumnName = "VISABLE_SUBMIT")]
+    public short? VisableSubmit { get; set; }
+
+    /// <summary>
+    ///     鎻愪氦閲嶆浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "VISABLE_SUBMIT_BY")]
+    public string? VisableSubmitBy { get; set; }
+
+    /// <summary>
+    ///     鎻愪氦閲嶆鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "VISABLE_SUBMIT_DATE")]
+    public DateTime? VisableSubmitDate { get; set; }
+
+    /// <summary>
+    ///     浜у搧鍨嬪彿
+    /// </summary>
+    [SugarColumn(ColumnName = "BOARD_STYLE")]
+    public string? BoardStyle { get; set; }
+
+    /// <summary>
+    ///     浠诲姟鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "WORK_NO")]
+    public string? WorkNo { get; set; }
+
+    /// <summary>
+    ///     浠诲姟鍗曡鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "WORK_LINE")]
+    public decimal? WorkLine { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鍟嗙紪鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "SUPP_NO")]
+    public string? SuppNo { get; set; }
+
+    /// <summary>
+    ///     璋冨叆
+    /// </summary>
+    [SugarColumn(ColumnName = "MOVE_OK")]
+    public decimal? MoveOk { get; set; }
+
+    [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; }
+    [SugarColumn(IsIgnore = true)] public string? ItemModel { get; set; }
+    [SugarColumn(IsIgnore = true)] public string? ItemUnit { get; set; }
+    [SugarColumn(IsIgnore = true)] public string? SuppName { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/MesInvItemOutItems.cs b/MES.Service/Modes/MesInvItemOutItems.cs
index 1e640a8..51098b2 100644
--- a/MES.Service/Modes/MesInvItemOutItems.cs
+++ b/MES.Service/Modes/MesInvItemOutItems.cs
@@ -207,4 +207,11 @@
     /// </summary>
     [SugarColumn(ColumnName = "TL_QTY")]
     public decimal? TlQty { get; set; }
+
+    [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; }
+
+    [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; }
+    [SugarColumn(IsIgnore = true)] public string? ItemModel { get; set; }
+    [SugarColumn(IsIgnore = true)] public string? ItemUnit { get; set; }
+    [SugarColumn(IsIgnore = true)] public string? QuantityOk { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesInvItemStocks.cs b/MES.Service/Modes/MesInvItemStocks.cs
index c3c46e1..2a5a4d1 100644
--- a/MES.Service/Modes/MesInvItemStocks.cs
+++ b/MES.Service/Modes/MesInvItemStocks.cs
@@ -9,7 +9,7 @@
 public class MesInvItemStocks
 {
     /// <summary>
-    /// SEQ_ME_ID 
+    ///     SEQ_ME_ID
     /// </summary>
     [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_ME_ID",
         IsPrimaryKey = true)]
@@ -19,25 +19,25 @@
     ///     鐢熶骇璁㈠崟
     /// </summary>
     [SugarColumn(ColumnName = "TASK_NO")]
-    public string TaskNo { get; set; }
+    public string? TaskNo { get; set; }
 
     /// <summary>
     ///     鐗╂枡鏉$爜
     /// </summary>
     [SugarColumn(ColumnName = "ITEM_BARCODE")]
-    public string ItemBarcode { get; set; }
+    public string? ItemBarcode { get; set; }
 
     /// <summary>
     ///     瀹㈡埛鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
     /// </summary>
     [SugarColumn(ColumnName = "C_ITEM_CODE")]
-    public string CItemCode { get; set; }
+    public string? CItemCode { get; set; }
 
     /// <summary>
     ///     鏈徃鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
     /// </summary>
     [SugarColumn(ColumnName = "ITEM_NO")]
-    public string ItemNo { get; set; }
+    public string? ItemNo { get; set; }
 
     /// <summary>
     ///     瀛愬簱id
@@ -55,7 +55,7 @@
     ///     鍘傚鎵规
     /// </summary>
     [SugarColumn(ColumnName = "LOT_NO")]
-    public string LotNo { get; set; }
+    public string? LotNo { get; set; }
 
     /// <summary>
     ///     鏁伴噺
@@ -73,7 +73,7 @@
     ///     瀹㈡埛缂栫爜
     /// </summary>
     [SugarColumn(ColumnName = "CUSTOMER_NO")]
-    public string CustomerNo { get; set; }
+    public string? CustomerNo { get; set; }
 
     /// <summary>
     ///     閲嶉噺
@@ -85,13 +85,13 @@
     ///     瀛愬簱CODE
     /// </summary>
     [SugarColumn(ColumnName = "DEPOTS_CODE")]
-    public string DepotsCode { get; set; }
+    public string? DepotsCode { get; set; }
 
     /// <summary>
     ///     璐т綅CODE
     /// </summary>
     [SugarColumn(ColumnName = "DEPOT_SECTIONS_CODE")]
-    public string DepotSectionsCode { get; set; }
+    public string? DepotSectionsCode { get; set; }
 
     /// <summary>
     ///     妫�楠屾棩鏈�
@@ -115,25 +115,25 @@
     ///     宸ュ巶缂栧彿
     /// </summary>
     [SugarColumn(ColumnName = "FACTORY")]
-    public string Factory { get; set; }
+    public string? Factory { get; set; }
 
     /// <summary>
     ///     鍏徃缂栧彿
     /// </summary>
     [SugarColumn(ColumnName = "COMPANY")]
-    public string Company { get; set; }
+    public string? Company { get; set; }
 
     /// <summary>
     ///     璐ㄦ鐘舵��
     /// </summary>
     [SugarColumn(ColumnName = "IQC_STATUS")]
-    public string IqcStatus { get; set; }
+    public string? IqcStatus { get; set; }
 
     /// <summary>
     ///     灏忚溅鏉$爜
     /// </summary>
     [SugarColumn(ColumnName = "FCAR")]
-    public string Fcar { get; set; }
+    public string? Fcar { get; set; }
 
     /// <summary>
     ///     鍐荤粨鎻愪氦閲嶆锛�0锛氬喕缁撴湭鎻愪氦閲嶆锛�1锛氬喕缁撳苟鎻愪氦閲嶆
@@ -145,7 +145,7 @@
     ///     鎻愪氦閲嶆浜�
     /// </summary>
     [SugarColumn(ColumnName = "VISABLE_SUBMIT_BY")]
-    public string VisableSubmitBy { get; set; }
+    public string? VisableSubmitBy { get; set; }
 
     /// <summary>
     ///     鎻愪氦閲嶆鏃堕棿
@@ -157,13 +157,13 @@
     ///     浜у搧鍨嬪彿
     /// </summary>
     [SugarColumn(ColumnName = "BOARD_STYLE")]
-    public string BoardStyle { get; set; }
+    public string? BoardStyle { get; set; }
 
     /// <summary>
     ///     浠诲姟鍗曞彿
     /// </summary>
     [SugarColumn(ColumnName = "WORK_NO")]
-    public string WorkNo { get; set; }
+    public string? WorkNo { get; set; }
 
     /// <summary>
     ///     浠诲姟鍗曡鍙�
@@ -175,19 +175,19 @@
     ///     渚涘簲鍟�
     /// </summary>
     [SugarColumn(ColumnName = "SUPP_NO")]
-    public string SuppNo { get; set; }
+    public string? SuppNo { get; set; }
 
     /// <summary>
     ///     鐢熶骇绾�
     /// </summary>
     [SugarColumn(ColumnName = "LINE_NO")]
-    public string LineNo { get; set; }
+    public string? LineNo { get; set; }
 
     /// <summary>
     ///     鍗婃垚鍝佸叆搴撳崟鍙�
     /// </summary>
     [SugarColumn(ColumnName = "BILL_NO")]
-    public string BillNo { get; set; }
+    public string? BillNo { get; set; }
 
     /// <summary>
     ///     閲囪喘璁㈠崟id
diff --git a/MES.Service/Modes/MesQaItemsDetectDetail5.cs b/MES.Service/Modes/MesQaItemsDetectDetail5.cs
index 9421a04..68ee666 100644
--- a/MES.Service/Modes/MesQaItemsDetectDetail5.cs
+++ b/MES.Service/Modes/MesQaItemsDetectDetail5.cs
@@ -1,154 +1,174 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using SqlSugar;
-namespace MES.Service.Modes
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     鏉ユ枡妫�楠屼粠琛�
+/// </summary>
+[SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
+public class MesQaItemsDetectDetail5
 {
-    /// <summary>
-    /// 鏉ユ枡妫�楠屼粠琛�
-    ///</summary>
-    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
-    public class MesQaItemsDetectDetail5
-    {
-        /// <summary>
-        ///  
-        ///</summary>
-         [SugarColumn(ColumnName="ID" ,IsPrimaryKey = true   )]
-         public decimal Id { get; set; }
-        /// <summary>
-        /// 鏍囧噯鍊肩被鍨� 
-        ///</summary>
-         [SugarColumn(ColumnName="FTEXT_TYPE"    )]
-         public string FtextType { get; set; }
-        /// <summary>
-        /// 鏍囧噯鍊� 
-        ///</summary>
-         [SugarColumn(ColumnName="FSTAND"    )]
-         public decimal? Fstand { get; set; }
-        /// <summary>
-        /// 涓婂叕宸� 
-        ///</summary>
-         [SugarColumn(ColumnName="FUP_ALLOW"    )]
-         public string FupAllow { get; set; }
-        /// <summary>
-        /// 涓嬪叕宸� 
-        ///</summary>
-         [SugarColumn(ColumnName="FDOWN_ALLOW"    )]
-         public string FdownAllow { get; set; }
-        /// <summary>
-        /// 妫�楠屾按鍑� 
-        ///</summary>
-         [SugarColumn(ColumnName="SAMPLE_SIZE_NO"    )]
-         public string SampleSizeNo { get; set; }
-        /// <summary>
-        /// 妫�楠屾按骞� 
-        ///</summary>
-         [SugarColumn(ColumnName="FCHECK_LEVEL"    )]
-         public string FcheckLevel { get; set; }
-        /// <summary>
-        /// 鎷掓敹姘村钩 
-        ///</summary>
-         [SugarColumn(ColumnName="FAC_LEVEL"    )]
-         public string FacLevel { get; set; }
-        /// <summary>
-        /// 妫�楠岄」鐩� 
-        ///</summary>
-         [SugarColumn(ColumnName="FCHECK_ITEM"    )]
-         public string FcheckItem { get; set; }
-        /// <summary>
-        /// 瑙勬牸瑕佹眰 
-        ///</summary>
-         [SugarColumn(ColumnName="FSPEC_REQU"    )]
-         public string FspecRequ { get; set; }
-        /// <summary>
-        /// 鎶芥鏁伴噺 
-        ///</summary>
-         [SugarColumn(ColumnName="CHECK_QYT"    )]
-         public decimal? CheckQyt { get; set; }
-        /// <summary>
-        /// 妫�楠岀粨鏋� 
-        ///</summary>
-         [SugarColumn(ColumnName="FCHECK_RESU"    )]
-         public string FcheckResu { get; set; }
-        /// <summary>
-        /// AC鏁伴噺 
-        ///</summary>
-         [SugarColumn(ColumnName="FAC_QTY"    )]
-         public decimal? FacQty { get; set; }
-        /// <summary>
-        /// RE鏁伴噺 
-        ///</summary>
-         [SugarColumn(ColumnName="FRE_QTY"    )]
-         public decimal? FreQty { get; set; }
-        /// <summary>
-        /// 涓嶅悎鏍兼暟 
-        ///</summary>
-         [SugarColumn(ColumnName="FNG_QTY"    )]
-         public decimal? FngQty { get; set; }
-        /// <summary>
-        /// 涓嶈壇鐜� 
-        ///</summary>
-         [SugarColumn(ColumnName="FNG_RATE"    )]
-         public decimal? FngRate { get; set; }
-        /// <summary>
-        /// 宸插綍鍏ユ暟閲� 
-        ///</summary>
-         [SugarColumn(ColumnName="FENTER_QTY"    )]
-         public decimal? FenterQty { get; set; }
-        /// <summary>
-        ///  
-        ///</summary>
-         [SugarColumn(ColumnName="RELEASE_NO"    )]
-         public string ReleaseNo { get; set; }
-        /// <summary>
-        ///  
-        ///</summary>
-         [SugarColumn(ColumnName="COMPANY"    )]
-         public string Company { get; set; }
-        /// <summary>
-        ///  
-        ///</summary>
-         [SugarColumn(ColumnName="FACTORY"    )]
-         public string Factory { get; set; }
-        /// <summary>
-        /// 妫�楠岄」鐩弿杩� 
-        ///</summary>
-         [SugarColumn(ColumnName="FCHECK_ITEM_DESC"    )]
-         public string FcheckItemDesc { get; set; }
-        /// <summary>
-        /// 宸ュ簭鍙� 
-        ///</summary>
-         [SugarColumn(ColumnName="PROC_NO"    )]
-         public string ProcNo { get; set; }
-        /// <summary>
-        /// 宸ヤ綔涓績缂栫爜 
-        ///</summary>
-         [SugarColumn(ColumnName="WORKSHOP_CENTER_CODE"    )]
-         public string WorkshopCenterCode { get; set; }
-        /// <summary>
-        /// 鍗曚綅 
-        ///</summary>
-         [SugarColumn(ColumnName="FUNIT"    )]
-         public string Funit { get; set; }
-        /// <summary>
-        /// 鐗瑰畾淇敼 
-        ///</summary>
-         [SugarColumn(ColumnName="GIVEN_MODIFY"    )]
-         public short? GivenModify { get; set; }
-        /// <summary>
-        /// 妫�楠屽伐鍏� 
-        ///</summary>
-         [SugarColumn(ColumnName="FCHECK_TOOL"    )]
-         public string FcheckTool { get; set; }
-        /// <summary>
-        /// 鏇存柊浜� 
-        ///</summary>
-         [SugarColumn(ColumnName="LASTUPDATE_BY"    )]
-         public string LastupdateBy { get; set; }
-        /// <summary>
-        /// 鏇存柊鏃堕棿 
-        ///</summary>
-         [SugarColumn(ColumnName="LASTUPDATE_DATE"    )]
-         public DateTime? LastupdateDate { get; set; }
-    }
-}
+   /// <summary>
+   /// </summary>
+   [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+    public decimal Id { get; set; }
+
+   /// <summary>
+   ///     鏍囧噯鍊肩被鍨�
+   /// </summary>
+   [SugarColumn(ColumnName = "FTEXT_TYPE")]
+    public string FtextType { get; set; }
+
+   /// <summary>
+   ///     鏍囧噯鍊�
+   /// </summary>
+   [SugarColumn(ColumnName = "FSTAND")]
+    public decimal? Fstand { get; set; }
+
+   /// <summary>
+   ///     涓婂叕宸�
+   /// </summary>
+   [SugarColumn(ColumnName = "FUP_ALLOW")]
+    public string FupAllow { get; set; }
+
+   /// <summary>
+   ///     涓嬪叕宸�
+   /// </summary>
+   [SugarColumn(ColumnName = "FDOWN_ALLOW")]
+    public string FdownAllow { get; set; }
+
+   /// <summary>
+   ///     妫�楠屾按鍑�
+   /// </summary>
+   [SugarColumn(ColumnName = "SAMPLE_SIZE_NO")]
+    public string SampleSizeNo { get; set; }
+
+   /// <summary>
+   ///     妫�楠屾按骞�
+   /// </summary>
+   [SugarColumn(ColumnName = "FCHECK_LEVEL")]
+    public string FcheckLevel { get; set; }
+
+   /// <summary>
+   ///     鎷掓敹姘村钩
+   /// </summary>
+   [SugarColumn(ColumnName = "FAC_LEVEL")]
+    public string FacLevel { get; set; }
+
+   /// <summary>
+   ///     妫�楠岄」鐩�
+   /// </summary>
+   [SugarColumn(ColumnName = "FCHECK_ITEM")]
+    public string FcheckItem { get; set; }
+
+   /// <summary>
+   ///     瑙勬牸瑕佹眰
+   /// </summary>
+   [SugarColumn(ColumnName = "FSPEC_REQU")]
+    public string FspecRequ { get; set; }
+
+   /// <summary>
+   ///     鎶芥鏁伴噺
+   /// </summary>
+   [SugarColumn(ColumnName = "CHECK_QYT")]
+    public decimal? CheckQyt { get; set; }
+
+   /// <summary>
+   ///     妫�楠岀粨鏋�
+   /// </summary>
+   [SugarColumn(ColumnName = "FCHECK_RESU")]
+    public string FcheckResu { get; set; }
+
+   /// <summary>
+   ///     AC鏁伴噺
+   /// </summary>
+   [SugarColumn(ColumnName = "FAC_QTY")]
+    public decimal? FacQty { get; set; }
+
+   /// <summary>
+   ///     RE鏁伴噺
+   /// </summary>
+   [SugarColumn(ColumnName = "FRE_QTY")]
+    public decimal? FreQty { get; set; }
+
+   /// <summary>
+   ///     涓嶅悎鏍兼暟
+   /// </summary>
+   [SugarColumn(ColumnName = "FNG_QTY")]
+    public decimal? FngQty { get; set; }
+
+   /// <summary>
+   ///     涓嶈壇鐜�
+   /// </summary>
+   [SugarColumn(ColumnName = "FNG_RATE")]
+    public decimal? FngRate { get; set; }
+
+   /// <summary>
+   ///     宸插綍鍏ユ暟閲�
+   /// </summary>
+   [SugarColumn(ColumnName = "FENTER_QTY")]
+    public decimal? FenterQty { get; set; }
+
+   /// <summary>
+   /// </summary>
+   [SugarColumn(ColumnName = "RELEASE_NO")]
+    public string ReleaseNo { get; set; }
+
+   /// <summary>
+   /// </summary>
+   [SugarColumn(ColumnName = "COMPANY")]
+    public string Company { get; set; }
+
+   /// <summary>
+   /// </summary>
+   [SugarColumn(ColumnName = "FACTORY")]
+    public string Factory { get; set; }
+
+   /// <summary>
+   ///     妫�楠岄」鐩弿杩�
+   /// </summary>
+   [SugarColumn(ColumnName = "FCHECK_ITEM_DESC")]
+    public string FcheckItemDesc { get; set; }
+
+   /// <summary>
+   ///     宸ュ簭鍙�
+   /// </summary>
+   [SugarColumn(ColumnName = "PROC_NO")]
+    public string ProcNo { get; set; }
+
+   /// <summary>
+   ///     宸ヤ綔涓績缂栫爜
+   /// </summary>
+   [SugarColumn(ColumnName = "WORKSHOP_CENTER_CODE")]
+    public string WorkshopCenterCode { get; set; }
+
+   /// <summary>
+   ///     鍗曚綅
+   /// </summary>
+   [SugarColumn(ColumnName = "FUNIT")]
+    public string Funit { get; set; }
+
+   /// <summary>
+   ///     鐗瑰畾淇敼
+   /// </summary>
+   [SugarColumn(ColumnName = "GIVEN_MODIFY")]
+    public short? GivenModify { get; set; }
+
+   /// <summary>
+   ///     妫�楠屽伐鍏�
+   /// </summary>
+   [SugarColumn(ColumnName = "FCHECK_TOOL")]
+    public string FcheckTool { get; set; }
+
+   /// <summary>
+   ///     鏇存柊浜�
+   /// </summary>
+   [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+    public string LastupdateBy { get; set; }
+
+   /// <summary>
+   ///     鏇存柊鏃堕棿
+   /// </summary>
+   [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+    public DateTime? LastupdateDate { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/bin/Debug/net8.0/MES.Service.dll b/MES.Service/bin/Debug/net8.0/MES.Service.dll
index 0c9d6b5..8c02925 100644
--- a/MES.Service/bin/Debug/net8.0/MES.Service.dll
+++ b/MES.Service/bin/Debug/net8.0/MES.Service.dll
Binary files differ
diff --git a/MES.Service/bin/Debug/net8.0/MES.Service.pdb b/MES.Service/bin/Debug/net8.0/MES.Service.pdb
index c328566..6b9f379 100644
--- a/MES.Service/bin/Debug/net8.0/MES.Service.pdb
+++ b/MES.Service/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
diff --git a/MES.Service/service/BasicData/MesStaffManager.cs b/MES.Service/service/BasicData/MesStaffManager.cs
index b16b7b0..b59bf83 100644
--- a/MES.Service/service/BasicData/MesStaffManager.cs
+++ b/MES.Service/service/BasicData/MesStaffManager.cs
@@ -154,7 +154,7 @@
             Status = 0,
             Isdeparture = 0,
             CheckFlag = 0,
-            ExpFiel12 = 0,
+            ExpFiel12 = 0
         };
     }
 
diff --git a/MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs b/MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs
index 8fda982..a471429 100644
--- a/MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs
+++ b/MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs
@@ -1,78 +1,79 @@
-锘縰sing SqlSugar;
-using System;
-using System.Collections.Generic;
-using MES.Service.DB;
+锘縰sing MES.Service.DB;
 using MES.Service.Modes;
+using SqlSugar;
 
-namespace MES.Service.service.QC
+namespace MES.Service.service.QC;
+
+public class
+    MesQaItemsDetectDetail5Manager : Repository<MesQaItemsDetectDetail5>
 {
-public class MesQaItemsDetectDetail5Manager : Repository<MesQaItemsDetectDetail5>
-{
- 
     //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
 
     //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesQaItemsDetectDetail5Manager.cs
 
 
     #region 鏁欏鏂规硶
+
     /// <summary>
-    /// 浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
+    ///     浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
     /// </summary>
     public void Study()
     {
-	     
-	   /*********鏌ヨ*********/
+        /*********鏌ヨ*********/
 
-        var data1 = base.GetById(1);//鏍规嵁ID鏌ヨ
-        var data2 = base.GetList();//鏌ヨ鎵�鏈�
-        var data3 = base.GetList(it => 1 == 1);  //鏍规嵁鏉′欢鏌ヨ  
+        var data1 = base.GetById(1); //鏍规嵁ID鏌ヨ
+        var data2 = base.GetList(); //鏌ヨ鎵�鏈�
+        var data3 = base.GetList(it => 1 == 1); //鏍规嵁鏉′欢鏌ヨ  
         //var data4 = base.GetSingle(it => 1 == 1);//鏍规嵁鏉′欢鏌ヨ涓�鏉�,濡傛灉瓒呰繃涓�鏉′細鎶ラ敊
 
-        var p = new PageModel() { PageIndex = 1, PageSize = 2 };// 鍒嗛〉鏌ヨ
+        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 鍒嗛〉鏌ヨ
         var data5 = base.GetPageList(it => 1 == 1, p);
-        Console.Write(p.TotalCount);//杩斿洖鎬绘暟
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
 
-        var data6 = base.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc);// 鍒嗛〉鏌ヨ鍔犳帓搴�
-        Console.Write(p.TotalCount);//杩斿洖鎬绘暟
-     
-        List<IConditionalModel> conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
-        conModels.Add(new ConditionalModel() { FieldName= typeof(MesQaItemsDetectDetail5).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
-        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
+        var data6 =
+            base.GetPageList(it => 1 == 1, p,
+                it => SqlFunc.GetRandom()); // 鍒嗛〉鏌ヨ鍔犳帓搴�
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
 
-        base.AsQueryable().Where(x => 1 == 1).ToList();//鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+        var conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
+        conModels.Add(new ConditionalModel
+        {
+            FieldName = typeof(MesQaItemsDetectDetail5).GetProperties()[0].Name,
+            ConditionalType = ConditionalType.Equal, FieldValue = "1"
+        }); //id=1
+        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
 
- 
+        AsQueryable().Where(x => 1 == 1)
+            .ToList(); //鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+
 
         /*********鎻掑叆*********/
-        var insertData = new MesQaItemsDetectDetail5() { };//娴嬭瘯鍙傛暟
-        var insertArray = new MesQaItemsDetectDetail5[] { insertData };
-        base.Insert(insertData);//鎻掑叆
-        base.InsertRange(insertArray);//鎵归噺鎻掑叆
-        var id = base.InsertReturnIdentity(insertData);//鎻掑叆杩斿洖鑷鍒�
-        base.AsInsertable(insertData).ExecuteCommand();//鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
+        var insertData = new MesQaItemsDetectDetail5(); //娴嬭瘯鍙傛暟
+        var insertArray = new[] { insertData };
+        base.Insert(insertData); //鎻掑叆
+        base.InsertRange(insertArray); //鎵归噺鎻掑叆
+        var id = base.InsertReturnIdentity(insertData); //鎻掑叆杩斿洖鑷鍒�
+        AsInsertable(insertData).ExecuteCommand(); //鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
 
 
-
-		/*********鏇存柊*********/
-	    var updateData = new MesQaItemsDetectDetail5() {  };//娴嬭瘯鍙傛暟
-        var updateArray = new MesQaItemsDetectDetail5[] { updateData };//娴嬭瘯鍙傛暟
-        base.Update(updateData);//鏍规嵁瀹炰綋鏇存柊
-        base.UpdateRange(updateArray);//鎵归噺鏇存柊
+        /*********鏇存柊*********/
+        var updateData = new MesQaItemsDetectDetail5(); //娴嬭瘯鍙傛暟
+        var updateArray = new[] { updateData }; //娴嬭瘯鍙傛暟
+        base.Update(updateData); //鏍规嵁瀹炰綋鏇存柊
+        base.UpdateRange(updateArray); //鎵归噺鏇存柊
         //base.Update(it => new MesQaItemsDetectDetail5() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 鍙洿鏂癈lassName鍒楀拰CreateTime鍒楋紝鍏跺畠鍒椾笉鏇存柊锛屾潯浠秈d=1
-        base.AsUpdateable(updateData).ExecuteCommand();  //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
+        AsUpdateable(updateData).ExecuteCommand(); //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
 
 
+        /*********鍒犻櫎*********/
+        var deldata = new MesQaItemsDetectDetail5(); //娴嬭瘯鍙傛暟
+        base.Delete(deldata); //鏍规嵁瀹炰綋鍒犻櫎
+        base.DeleteById(1); //鏍规嵁涓婚敭鍒犻櫎
+        base.DeleteById(new[] { 1, 2 }); //鏍规嵁涓婚敭鏁扮粍鍒犻櫎
+        base.Delete(it => 1 == 2); //鏍规嵁鏉′欢鍒犻櫎
+        AsDeleteable().Where(it => 1 == 2)
+            .ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
+    }
 
-		/*********鍒犻櫎*********/
-	    var deldata = new MesQaItemsDetectDetail5() {  };//娴嬭瘯鍙傛暟
-        base.Delete(deldata);//鏍规嵁瀹炰綋鍒犻櫎
-        base.DeleteById(1);//鏍规嵁涓婚敭鍒犻櫎
-        base.DeleteById(new int[] { 1,2});//鏍规嵁涓婚敭鏁扮粍鍒犻櫎
-        base.Delete(it=>1==2);//鏍规嵁鏉′欢鍒犻櫎
-        base.AsDeleteable().Where(it=>1==2).ExecuteCommand();//杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
-    } 
     #endregion
-
- 
- }
 }
\ No newline at end of file
diff --git a/MES.Service/service/Warehouse/MesDepotSectionsManager.cs b/MES.Service/service/Warehouse/MesDepotSectionsManager.cs
index 5803893..0fbb744 100644
--- a/MES.Service/service/Warehouse/MesDepotSectionsManager.cs
+++ b/MES.Service/service/Warehouse/MesDepotSectionsManager.cs
@@ -8,7 +8,7 @@
 public class MesDepotSectionsManager : Repository<MesDepotSections>
 {
     //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
-    
+
     public string GetSectionName(WarehouseQuery query)
     {
         var sectionName = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
@@ -17,10 +17,70 @@
             .Select((a, b) => a.DepotSectionName).Single();
 
         if (sectionName == null)
-        {
             throw new Exception("搴撲綅缂栫爜 " + query.sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
 
         return sectionName;
     }
+
+    //搴撲綅鍙樻洿
+    public MesDepotSections ScanInDepotSectionsName(WarehouseQuery query)
+    {
+        if (string.IsNullOrEmpty(query.sectionCode))
+            throw new Exception("璇锋壂搴撲綅鏉$爜!");
+
+        var mesDepotSections = Db.Queryable<MesDepotSections, MesDepots>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Inner, a.DepotId == b.DepotId))
+            .Where((a, b) => a.DepotSectionCode == query.sectionCode)
+            .Select((a, b) => new MesDepotSections
+            {
+                DepotSectionName = a.DepotSectionName,
+                DepotCode = b.DepotCode,
+                DepotName = b.DepotName
+            }).First();
+
+        if (mesDepotSections == null)
+            throw new Exception("搴撲綅缂栫爜" + query.sectionCode + " 涓嶅瓨鍦紝璇风‘璁�!");
+
+        return mesDepotSections;
+    }
+
+    //搴撲綅鍙樻洿
+    public MesInvItemStocks ScanEditBarcode(WarehouseQuery entity)
+    {
+        if (string.IsNullOrEmpty(entity.sectionCode))
+            throw new Exception("璇锋壂搴撲綅鏉$爜!");
+
+        var mesDepotSections = Db.Queryable<MesDepotSections, MesDepots>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Inner,
+                        a.Zuid.ToString() == b.Zuid))
+            .Where((a, b) => a.DepotSectionCode == entity.sectionCode)
+            .First();
+        if (mesDepotSections == null)
+            throw new Exception("搴撲綅缂栫爜" + entity.sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
+
+        var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
+            .Where(s => s.ItemBarcode == entity.barcode).First();
+
+        if (mesInvItemStocks == null) throw new Exception("鏉$爜鍦ㄤ粨搴撲腑涓嶅瓨鍦紝璇锋牳瀵癸紒");
+
+        if (mesInvItemStocks.DepotsCode != mesDepotSections.DepotCode)
+            throw new Exception(
+                "鏉$爜鍘熶粨搴擄細" + mesInvItemStocks.DepotsCode + " 涓庣洰鏍囦粨搴擄細" +
+                mesDepotSections.DepotCode + " 涓嶄竴鑷达紝搴撲綅鍙樻洿澶辫触锛�");
+
+        UseTransaction(db =>
+        {
+            return db.Updateable<MesInvItemStocks>()
+                .SetColumns(s => s.DepotsCode == mesDepotSections.DepotCode)
+                .SetColumns(s => s.DepotSectionsCode == entity.sectionCode)
+                .Where(s => s.ItemBarcode == entity.barcode)
+                .ExecuteCommand();
+        });
+
+        return mesInvItemStocks;
+    }
+
+    //璋冩嫧鍏ュ簱
 }
\ No newline at end of file
diff --git a/MES.Service/service/Warehouse/MesInvBusiness2Manager.cs b/MES.Service/service/Warehouse/MesInvBusiness2Manager.cs
index 8704a00..13679e8 100644
--- a/MES.Service/service/Warehouse/MesInvBusiness2Manager.cs
+++ b/MES.Service/service/Warehouse/MesInvBusiness2Manager.cs
@@ -1,78 +1,78 @@
-锘縰sing SqlSugar;
-using System;
-using System.Collections.Generic;
-using MES.Service.DB;
+锘縰sing MES.Service.DB;
 using MES.Service.Modes;
+using SqlSugar;
 
-namespace MES.Service.service.Warehouse
-{
+namespace MES.Service.service.Warehouse;
+
 public class MesInvBusiness2Manager : Repository<MesInvBusiness2>
 {
- 
     //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
 
     //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesInvBusiness2Manager.cs
 
 
     #region 鏁欏鏂规硶
+
     /// <summary>
-    /// 浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
+    ///     浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
     /// </summary>
     public void Study()
     {
-	     
-	   /*********鏌ヨ*********/
+        /*********鏌ヨ*********/
 
-        var data1 = base.GetById(1);//鏍规嵁ID鏌ヨ
-        var data2 = base.GetList();//鏌ヨ鎵�鏈�
-        var data3 = base.GetList(it => 1 == 1);  //鏍规嵁鏉′欢鏌ヨ  
+        var data1 = base.GetById(1); //鏍规嵁ID鏌ヨ
+        var data2 = base.GetList(); //鏌ヨ鎵�鏈�
+        var data3 = base.GetList(it => 1 == 1); //鏍规嵁鏉′欢鏌ヨ  
         //var data4 = base.GetSingle(it => 1 == 1);//鏍规嵁鏉′欢鏌ヨ涓�鏉�,濡傛灉瓒呰繃涓�鏉′細鎶ラ敊
 
-        var p = new PageModel() { PageIndex = 1, PageSize = 2 };// 鍒嗛〉鏌ヨ
+        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 鍒嗛〉鏌ヨ
         var data5 = base.GetPageList(it => 1 == 1, p);
-        Console.Write(p.TotalCount);//杩斿洖鎬绘暟
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
 
-        var data6 = base.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc);// 鍒嗛〉鏌ヨ鍔犳帓搴�
-        Console.Write(p.TotalCount);//杩斿洖鎬绘暟
-     
-        List<IConditionalModel> conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
-        conModels.Add(new ConditionalModel() { FieldName= typeof(MesInvBusiness2).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
-        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
+        var data6 =
+            base.GetPageList(it => 1 == 1, p,
+                it => SqlFunc.GetRandom()); // 鍒嗛〉鏌ヨ鍔犳帓搴�
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
 
-        base.AsQueryable().Where(x => 1 == 1).ToList();//鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+        var conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
+        conModels.Add(new ConditionalModel
+        {
+            FieldName = typeof(MesInvBusiness2).GetProperties()[0].Name,
+            ConditionalType = ConditionalType.Equal, FieldValue = "1"
+        }); //id=1
+        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
 
- 
+        AsQueryable().Where(x => 1 == 1)
+            .ToList(); //鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+
 
         /*********鎻掑叆*********/
-        var insertData = new MesInvBusiness2() { };//娴嬭瘯鍙傛暟
-        var insertArray = new MesInvBusiness2[] { insertData };
-        base.Insert(insertData);//鎻掑叆
-        base.InsertRange(insertArray);//鎵归噺鎻掑叆
-        var id = base.InsertReturnIdentity(insertData);//鎻掑叆杩斿洖鑷鍒�
-        base.AsInsertable(insertData).ExecuteCommand();//鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
+        var insertData = new MesInvBusiness2(); //娴嬭瘯鍙傛暟
+        var insertArray = new[] { insertData };
+        base.Insert(insertData); //鎻掑叆
+        base.InsertRange(insertArray); //鎵归噺鎻掑叆
+        var id = base.InsertReturnIdentity(insertData); //鎻掑叆杩斿洖鑷鍒�
+        AsInsertable(insertData).ExecuteCommand(); //鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
 
 
-
-		/*********鏇存柊*********/
-	    var updateData = new MesInvBusiness2() {  };//娴嬭瘯鍙傛暟
-        var updateArray = new MesInvBusiness2[] { updateData };//娴嬭瘯鍙傛暟
-        base.Update(updateData);//鏍规嵁瀹炰綋鏇存柊
-        base.UpdateRange(updateArray);//鎵归噺鏇存柊
+        /*********鏇存柊*********/
+        var updateData = new MesInvBusiness2(); //娴嬭瘯鍙傛暟
+        var updateArray = new[] { updateData }; //娴嬭瘯鍙傛暟
+        base.Update(updateData); //鏍规嵁瀹炰綋鏇存柊
+        base.UpdateRange(updateArray); //鎵归噺鏇存柊
         //base.Update(it => new MesInvBusiness2() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 鍙洿鏂癈lassName鍒楀拰CreateTime鍒楋紝鍏跺畠鍒椾笉鏇存柊锛屾潯浠秈d=1
-        base.AsUpdateable(updateData).ExecuteCommand();  //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
+        AsUpdateable(updateData).ExecuteCommand(); //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
 
 
+        /*********鍒犻櫎*********/
+        var deldata = new MesInvBusiness2(); //娴嬭瘯鍙傛暟
+        base.Delete(deldata); //鏍规嵁瀹炰綋鍒犻櫎
+        base.DeleteById(1); //鏍规嵁涓婚敭鍒犻櫎
+        base.DeleteById(new[] { 1, 2 }); //鏍规嵁涓婚敭鏁扮粍鍒犻櫎
+        base.Delete(it => 1 == 2); //鏍规嵁鏉′欢鍒犻櫎
+        AsDeleteable().Where(it => 1 == 2)
+            .ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
+    }
 
-		/*********鍒犻櫎*********/
-	    var deldata = new MesInvBusiness2() {  };//娴嬭瘯鍙傛暟
-        base.Delete(deldata);//鏍规嵁瀹炰綋鍒犻櫎
-        base.DeleteById(1);//鏍规嵁涓婚敭鍒犻櫎
-        base.DeleteById(new int[] { 1,2});//鏍规嵁涓婚敭鏁扮粍鍒犻櫎
-        base.Delete(it=>1==2);//鏍规嵁鏉′欢鍒犻櫎
-        base.AsDeleteable().Where(it=>1==2).ExecuteCommand();//杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
-    } 
     #endregion
-
- 
- }
 }
\ No newline at end of file
diff --git a/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs b/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs
index 49ad635..f4a9f24 100644
--- a/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs
+++ b/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs
@@ -59,8 +59,8 @@
         // 鏌ヨ
         var result = Db
             .Queryable<MesQaItemsDetect01, MesInvItemArn, MesInvItemArnDetail,
-                MesItems, MesUnit,MesQaItemsDetectDetail5>(
-                (a, d, b, c, t,z) => new object[]
+                MesItems, MesUnit, MesQaItemsDetectDetail5>(
+                (a, d, b, c, t, z) => new object[]
                 {
                     JoinType.Inner, d.BillNo == a.LotNo,
                     JoinType.Inner, d.Id == b.Mid && b.ItemNo == a.ItemNo,
@@ -70,9 +70,9 @@
                     JoinType.Inner, c.Fpurchaseunitid == t.Id,
                     JoinType.Inner, z.ReleaseNo == a.ReleaseNo
                 })
-            .Where((a, d, b, c, t,z) => a.FngHandle == "閫�璐�" && 
-                      z.FcheckResu == "涓嶅悎鏍�" &&
-                                      query.ItemArnDetailIds.Contains(b.Id))
+            .Where((a, d, b, c, t, z) => a.FngHandle == "閫�璐�" &&
+                                         z.FcheckResu == "涓嶅悎鏍�" &&
+                                         query.ItemArnDetailIds.Contains(b.Id))
             .Select((a, d, b, c, t) => new Material
             {
                 FmrMode = a.Fmrmode,
diff --git a/MES.Service/service/Warehouse/MesInvItemMovesCDetailsManager.cs b/MES.Service/service/Warehouse/MesInvItemMovesCDetailsManager.cs
new file mode 100644
index 0000000..cf8c2a3
--- /dev/null
+++ b/MES.Service/service/Warehouse/MesInvItemMovesCDetailsManager.cs
@@ -0,0 +1,79 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service.Warehouse;
+
+public class
+    MesInvItemMovesCDetailsManager : Repository<MesInvItemMovesCDetails>
+{
+    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+
+    //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesInvItemMovesCDetailsManager.cs
+
+
+    #region 鏁欏鏂规硶
+
+    /// <summary>
+    ///     浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
+    /// </summary>
+    public void Study()
+    {
+        /*********鏌ヨ*********/
+
+        var data1 = base.GetById(1); //鏍规嵁ID鏌ヨ
+        var data2 = base.GetList(); //鏌ヨ鎵�鏈�
+        var data3 = base.GetList(it => 1 == 1); //鏍规嵁鏉′欢鏌ヨ  
+        //var data4 = base.GetSingle(it => 1 == 1);//鏍规嵁鏉′欢鏌ヨ涓�鏉�,濡傛灉瓒呰繃涓�鏉′細鎶ラ敊
+
+        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 鍒嗛〉鏌ヨ
+        var data5 = base.GetPageList(it => 1 == 1, p);
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
+
+        var data6 =
+            base.GetPageList(it => 1 == 1, p,
+                it => SqlFunc.GetRandom()); // 鍒嗛〉鏌ヨ鍔犳帓搴�
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
+
+        var conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
+        conModels.Add(new ConditionalModel
+        {
+            FieldName = typeof(MesInvItemMovesCDetails).GetProperties()[0].Name,
+            ConditionalType = ConditionalType.Equal, FieldValue = "1"
+        }); //id=1
+        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
+
+        AsQueryable().Where(x => 1 == 1)
+            .ToList(); //鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+
+
+        /*********鎻掑叆*********/
+        var insertData = new MesInvItemMovesCDetails(); //娴嬭瘯鍙傛暟
+        var insertArray = new[] { insertData };
+        base.Insert(insertData); //鎻掑叆
+        base.InsertRange(insertArray); //鎵归噺鎻掑叆
+        var id = base.InsertReturnIdentity(insertData); //鎻掑叆杩斿洖鑷鍒�
+        AsInsertable(insertData).ExecuteCommand(); //鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
+
+
+        /*********鏇存柊*********/
+        var updateData = new MesInvItemMovesCDetails(); //娴嬭瘯鍙傛暟
+        var updateArray = new[] { updateData }; //娴嬭瘯鍙傛暟
+        base.Update(updateData); //鏍规嵁瀹炰綋鏇存柊
+        base.UpdateRange(updateArray); //鎵归噺鏇存柊
+        //base.Update(it => new MesInvItemMovesCDetails() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 鍙洿鏂癈lassName鍒楀拰CreateTime鍒楋紝鍏跺畠鍒椾笉鏇存柊锛屾潯浠秈d=1
+        AsUpdateable(updateData).ExecuteCommand(); //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
+
+
+        /*********鍒犻櫎*********/
+        var deldata = new MesInvItemMovesCDetails(); //娴嬭瘯鍙傛暟
+        base.Delete(deldata); //鏍规嵁瀹炰綋鍒犻櫎
+        base.DeleteById(1); //鏍规嵁涓婚敭鍒犻櫎
+        base.DeleteById(new[] { 1, 2 }); //鏍规嵁涓婚敭鏁扮粍鍒犻櫎
+        base.Delete(it => 1 == 2); //鏍规嵁鏉′欢鍒犻櫎
+        AsDeleteable().Where(it => 1 == 2)
+            .ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
+    }
+
+    #endregion
+}
\ No newline at end of file
diff --git a/MES.Service/service/Warehouse/MesInvItemMovesManager.cs b/MES.Service/service/Warehouse/MesInvItemMovesManager.cs
new file mode 100644
index 0000000..eeb48e6
--- /dev/null
+++ b/MES.Service/service/Warehouse/MesInvItemMovesManager.cs
@@ -0,0 +1,522 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+
+namespace MES.Service.service.Warehouse;
+
+public class MesInvItemMovesManager : Repository<MesInvItemMoves>
+{
+    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+
+    //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesInvItemMovesManager.cs
+
+    public MovesDto ScanInBarcode(WarehouseQuery query)
+    {
+        if (string.IsNullOrEmpty(query.sectionCode))
+        {
+            throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
+        }
+
+        int pBillTypeId = 300;
+        int pTransctionNo = 301;
+
+        var depotQuery = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
+                new JoinQueryInfos(
+                    JoinType.Inner, a.Zuid.ToString() == b.Zuid))
+            .Where((a, b) => a.DepotSectionCode == query.sectionCode)
+            .Select((a, b) => new { b.DepotCode })
+            .First();
+
+        if (depotQuery == null)
+        {
+            throw new Exception($"002[搴撲綅缂栫爜 {query.sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
+        }
+
+        var cDepotCode = depotQuery.DepotCode;
+
+        // 鏌ヨ璋冩嫈鍏ュ簱淇℃伅
+        var itemMoveQuery = Db
+            .Queryable<MesInvItemMoves, MesInvItemMovesCDetails>((a, b) =>
+                new JoinQueryInfos(
+                    JoinType.Inner, a.Id == b.ItemMoveId))
+            .Where((a, b) => b.ItemBarcode == query.barcode &&
+                             a.BillTypeId == pBillTypeId &&
+                             a.TransactionNo == pTransctionNo &&
+                             a.Status == 1 && SqlFunc.IsNull(b.MoveOk, 0) != 1)
+            .Select((a, b) => new { a.Id, a.BillNo, a.InvDepotsCode })
+            .First();
+
+        if (itemMoveQuery == null)
+        {
+            throw new Exception("鏉$爜鏈仛璋冩嫈鍑哄簱鎵爜锛岃鏍稿锛�");
+        }
+
+        var cBillNo = itemMoveQuery.BillNo;
+        var iDepotCode = itemMoveQuery.InvDepotsCode;
+
+        // 楠岃瘉搴撳尯涓庝粨搴�
+        var depotValidationQuery = Db.Queryable<MesDepotSections, MesDepots>(
+                (a, b) => new JoinQueryInfos(
+                    JoinType.Inner, a.Zuid.ToString() == b.Zuid))
+            .Where((a, b) => a.DepotSectionCode == query.sectionCode &&
+                             b.DepotCode == iDepotCode)
+            .Select((a, b) => new { b.DepotCode })
+            .First();
+
+        if (depotValidationQuery == null)
+        {
+            throw new Exception($"002[搴撲綅缂栫爜 {query.sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
+        }
+
+        if (iDepotCode != depotValidationQuery.DepotCode)
+        {
+            throw new Exception("瀹為檯浠撳簱涓庣敵璇疯皟鍏ヤ粨搴撲笉绗︼紝璇锋牳瀵癸紒");
+        }
+
+        var barcodeCount = Db.Queryable<MesInvItemMovesCDetails>()
+            .Where(b =>
+                b.ItemBarcode == query.barcode &&
+                b.ItemMoveId == itemMoveQuery.Id && b.MoveOk == 1)
+            .Count();
+
+        if (barcodeCount > 0)
+        {
+            throw new Exception("鏉$爜璋冩嫈宸插畬鎴愶紝璇锋牳瀵癸紒");
+        }
+
+        var barcodeInfo = Db.Queryable<MesInvItemBarcodes>()
+            .Where(t => t.ItemBarcode == query.barcode)
+            .First();
+
+        if (barcodeInfo == null)
+        {
+            throw new Exception("鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
+        }
+
+        var isAudit = UseTransaction(db =>
+        {
+            // 鏇存柊涓氬姟銆佸簱瀛樺拰鏉$爜鏁版嵁
+            db.Updateable<MesInvBusiness2>()
+                .SetColumns(b => new MesInvBusiness2
+                {
+                    ToInvDepotsCode = cDepotCode,
+                    ToInvDepotSectionsCode = query.sectionCode
+                })
+                .Where(b =>
+                    b.BillNo == cBillNo && b.BillTypeId == pBillTypeId &&
+                    b.TransactionCode == pTransctionNo.ToString() &&
+                    b.ItemBarcode == query.barcode)
+                .ExecuteCommand();
+
+            db.Updateable<MesInvItemStocks>()
+                .SetColumns(b => new MesInvItemStocks
+                {
+                    DepotsCode = cDepotCode,
+                    DepotSectionsCode = query.sectionCode
+                })
+                .Where(b => b.ItemBarcode == query.barcode)
+                .ExecuteCommand();
+
+            db.Updateable<MesInvItemMovesCDetails>()
+                .SetColumns(b => new MesInvItemMovesCDetails
+                {
+                    MoveOk = 1,
+                    InvDepotsCode = cDepotCode,
+                    InvDepotSectionsCode = query.sectionCode
+                })
+                .Where(b =>
+                    b.ItemBarcode == query.barcode &&
+                    b.ItemMoveId == itemMoveQuery.Id)
+                .ExecuteCommand();
+
+            // 妫�鏌ユ槸鍚︽墍鏈夋潯鐮佸凡鎵爜绉诲簱
+            var totalQuantity = db.Queryable<MesInvItemOutItems>()
+                .Where(a => a.ItemOutId == itemMoveQuery.Id)
+                .Sum(a => SqlFunc.IsNull(a.Quantity, 0));
+
+            var scannedQuantity = db.Queryable<MesInvItemMovesCDetails>()
+                .Where(a => a.ItemMoveId == itemMoveQuery.Id && a.MoveOk == 1)
+                .Sum(a => SqlFunc.IsNull(a.Quantity, 0));
+
+            if (totalQuantity == scannedQuantity)
+            {
+                return 1;
+            }
+
+            return 0;
+        });
+
+        MovesDto dto = new MovesDto();
+        dto.InAudit = isAudit == 1;
+        dto.BarcodesInfo = barcodeInfo;
+        return dto;
+    }
+
+
+    public List<MesInvItemMoves> GetBillNo(WarehouseQuery query)
+    {
+        query.Factory = "1000";
+        query.Company = "1000";
+
+        return Db.Queryable<MesInvItemMoves>()
+            .Where(it =>
+                SqlFunc.IsNull(it.Status, 0) == 1 &&
+                SqlFunc.IsNull(it.Ts, 0) != 1)
+            .Where(it =>
+                it.Factory == query.Factory && it.Company == query.Company)
+            .OrderBy(it => it.Id, OrderByType.Desc).ToList();
+    }
+
+    public List<MesInvItemMoves> GetPage(WarehouseQuery query)
+    {
+        return Db.Queryable<MesInvItemMoves>()
+            .WhereIF(!string.IsNullOrEmpty(query.billNo),
+                s => s.BillNo == query.billNo)
+            .OrderByDescending(s => s.Id)
+            .ToPageList(query.PageIndex, query.Limit);
+    }
+
+    public MovesDto GetItems(WarehouseQuery query)
+    {
+        MovesDto dto = new MovesDto();
+
+        dto.BarcodeList = GetItemMovesCDetails(query);
+        dto.OutItems = GetItemOutItems(query);
+
+        return dto;
+    }
+
+    private List<MesInvItemOutItems> GetItemOutItems(WarehouseQuery query)
+    {
+        var sql = string.Format(
+            "SELECT C.ITEM_NO, C.QUANTITY, C.REMARK,         C.REMARK,         S.ITEM_NAME, S.ITEM_MODEL, U.FNAME ITEM_UNIT, D.QUANTITY_OK,         NVL(ST.QUANTITY, 0)      WLKC  FROM MES_INV_ITEM_OUT_ITEMS C           JOIN MES_ITEMS S ON C.ITEM_ID = S.ID           LEFT JOIN MES_UNIT U                     ON U.ID = S.ITEM_UNIT           LEFT JOIN MES_DEPOTS P ON P.DEPOT_CODE = C.DEPOT_CODE           LEFT JOIN MES_DEPOT_SECTIONS E ON E.DEPOT_SECTION_CODE = C.DEPOT_SECTION_CODE           LEFT JOIN (SELECT ITEM_MOVE_ID, ITEM_NO, SUM(QUANTITY) QUANTITY_OK                      FROM MES_INV_ITEM_MOVES_C_DETAILS                   GROUP BY ITEM_MOVE_ID, ITEM_NO) D ON D.ITEM_MOVE_ID = C.ITEM_OUT_ID AND D.ITEM_NO = C.ITEM_NO         LEFT JOIN MES_INV_ITEM_MOVES A         ON A.ID = C.ITEM_OUT_ID       left join (SELECT ITEM_ID, SUM(QUANTITY) QUANTITY, DEPOTS_CODE                 FROM MES_INV_ITEM_STOCKS GROUP BY ITEM_ID, DEPOTS_CODE) ST ON C.ITEM_ID = ST.ITEM_ID AND ST.DEPOTS_CODE = A.FROM_DEPOTS_CODE where C.ITEM_OUT_ID = {0}",
+            query.id);
+
+        return Db.Ado.SqlQuery<MesInvItemOutItems>(sql);
+    }
+
+    private List<MesInvItemMovesCDetails> GetItemMovesCDetails(
+        WarehouseQuery query)
+    {
+        return Db.Queryable<MesInvItemMovesCDetails, MesItems, MesSupplier>(
+                (b, c, f) => new JoinQueryInfos(
+                    JoinType.Left,
+                    b.ItemNo == c.ItemNo && b.Company == c.Company &&
+                    b.Factory == c.Factory,
+                    JoinType.Left, b.SuppNo == f.SuppNo
+                ))
+            .Where((b, c, f) => b.ItemMoveId == query.id)
+            .Select((b, c, f) => new MesInvItemMovesCDetails
+            {
+                FromDepotSectionsCode = b.FromDepotSectionsCode,
+                BoardStyle = b.BoardStyle,
+                FromDepotsCode = b.FromDepotsCode,
+                InvDepotSectionsCode = b.InvDepotSectionsCode,
+                InvDepotsCode = b.InvDepotsCode,
+                Quantity = b.Quantity,
+                LotNo = b.LotNo,
+                ItemNo = b.ItemNo,
+                ItemBarcode = b.ItemBarcode,
+                ItemName = c.ItemName,
+                ItemModel = c.ItemModel,
+                ItemUnit = c.ItemUnit,
+                SuppName = f.SuppName,
+                MoveOk =
+                    SqlFunc.IsNull(b.MoveOk, 0) // 浣跨敤 SqlFunc.IsNull 瀹炵幇 NVL 鐨勬晥鏋�
+            }).ToList();
+    }
+
+    public OutItemDto ScanMoveBarcode(WarehouseQuery query)
+    {
+        var BillTypeId = 300;
+        var TransctionNo = 301;
+        query.Factory = "1000";
+        query.Company = "1000";
+
+        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璇烽�夊崟鎹彿锛�");
+
+        var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
+            .Where(s => s.ItemBarcode == query.barcode &&
+                        s.Quantity > 0 && s.DepotsCode != null).First();
+        if (mesInvItemStocks == null)
+            throw new Exception("搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒" + query.barcode);
+
+        var mesInvItemMoves = Db.Queryable<MesInvItemMoves>()
+            .Where(d => d.TransactionNo == TransctionNo
+                        && SqlFunc.IsNull(d.Status, 0) == 1).First();
+
+        if (mesInvItemMoves == null)
+            throw new Exception("鍑哄簱鍗� " + query.billNo + "涓嶅瓨鍦紝璇风‘璁わ紒");
+
+        var count = Db.Queryable<MesInvItemMoves, MesInvItemMovesCDetails>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Inner, a.Id == b.ItemMoveId))
+            .Where((a, b) => b.ItemBarcode == query.barcode
+                             && a.TransactionNo == TransctionNo &&
+                             SqlFunc.IsNull(a.Status, 0) == 0).Count();
+        if (count > 0) throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
+
+        count = Db.Queryable<MesInvItemMoves, MesInvItemMovesCDetails>((a, b) =>
+                new JoinQueryInfos(JoinType.Inner, a.Id == b.ItemMoveId))
+            .Where((a, b) => b.ItemBarcode == query.barcode
+                             && a.TransactionNo == TransctionNo &&
+                             SqlFunc.IsNull(b.MoveOk, 0) == 0).Count();
+
+        if (count > 0) throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
+
+        if (mesInvItemMoves.FromDepotsCode != mesInvItemStocks.DepotsCode)
+            throw new Exception("鏉$爜鐜板瓨浠撳簱涓庣敵璇峰嚭璐т粨搴撲笉涓�鑷达紝璇锋牳瀵癸紒");
+
+        var quantity = Db.Queryable<MesInvItemOutItems>()
+            .Where(b => b.ItemNo == mesInvItemStocks.ItemNo
+                        && b.ItemOutId == mesInvItemMoves.Id)
+            .Sum(b => b.Quantity);
+
+        if (quantity == null)
+            throw new Exception("鎵爜鐗╂枡闈炴湰娆$敵璇风墿鏂欙紝璇锋牳瀵癸紒" + query.barcode);
+
+        var sum = Db.Queryable<MesInvItemMovesCDetails>()
+            .Where(b => b.ItemNo == mesInvItemStocks.ItemNo
+                        && b.ItemMoveId == mesInvItemMoves.Id)
+            .Sum(b => b.Quantity) ?? 0;
+
+        var sumqty = sum + (mesInvItemStocks.Quantity ?? 0);
+
+        if (sumqty > quantity)
+            throw new Exception(
+                "宸叉壂鏉$爜鏁伴噺鎴栨湰娆℃壂鐮佹暟閲忥細" + sumqty + " 澶т簬鐢宠鏁伴噺锛�" + quantity + "锛岃鏍稿锛�");
+        
+        UseTransaction(db =>
+        {
+            SaveMesInvItemMovesCDetails(db, query, mesInvItemMoves,
+                mesInvItemStocks);
+
+            // Insert into mes_inv_business2
+            SaveMesInvBusiness2(db, query, BillTypeId, TransctionNo,
+                mesInvItemStocks, mesInvItemMoves);
+
+            if (TransctionNo == 303)
+                db.Updateable<MesInvItemStocks>()
+                    .SetColumns(s =>
+                        s.DepotSectionsCode == mesInvItemMoves.InvDepotsCode)
+                    .SetColumns(s =>
+                        s.DepotsCode == mesInvItemMoves.InvDepotsCode)
+                    .Where(s => s.Id == mesInvItemStocks.Id)
+                    .ExecuteCommand();
+            else
+                db.Updateable<MesInvItemStocks>()
+                    .SetColumns(s => s.DepotSectionsCode == null)
+                    .SetColumns(s => s.DepotsCode == null)
+                    .Where(s => s.Id == mesInvItemStocks.Id)
+                    .ExecuteCommand();
+
+            var scanOutShowDb = ScanOutShowDb(query);
+            if (CollectionUtil.IsNullOrEmpty(scanOutShowDb))
+                db.Updateable<MesInvItemMoves>()
+                    .SetColumns(s => s.Status == 1)
+                    .SetColumns(s => s.Checkdate == DateTime.Now)
+                    .SetColumns(s => s.Checkuser == query.userName)
+                    .Where(s => s.BillNo == query.billNo).ExecuteCommand();
+
+            return 1;
+        });
+
+        var itemDto = new OutItemDto();
+        //itemDto.SumItem = scanOutShowDb;
+
+        if (TransctionNo == 201) itemDto.Quantity = mesInvItemStocks.Quantity;
+
+        itemDto.ItemNo = mesInvItemStocks.ItemNo;
+
+        return itemDto;
+    }
+
+    private void SaveMesInvBusiness2(SqlSugarScope Db, WarehouseQuery query,
+        int BillTypeId,
+        int TransctionNo, MesInvItemStocks mesInvItemStocks,
+        MesInvItemMoves mesInvItemMoves)
+    {
+        var executeCommand = Db.Insertable(new MesInvBusiness2
+        {
+            Status = 1,
+            BillTypeId = BillTypeId,
+            TransactionCode = TransctionNo.ToString(),
+            BusinessType = 1,
+            ItemBarcode = query.barcode,
+            ItemNo = mesInvItemStocks.ItemNo,
+            LotNo = mesInvItemStocks.LotNo,
+            EpFlag = 1,
+            Quantity = mesInvItemStocks.Quantity,
+            FromInvDepotsCode = mesInvItemStocks.DepotsCode,
+            FromInvDepotSectionsCode = mesInvItemStocks.DepotSectionsCode,
+            ToInvDepotsCode = TransctionNo == 303
+                ? mesInvItemMoves.InvDepotsCode
+                : null,
+            ToInvDepotSectionsCode = TransctionNo == 303
+                ? mesInvItemMoves.InvDepotsCode
+                : null,
+            CreateBy = query.userName,
+            CreateDate = DateTime.Now,
+            LastupdateBy = query.userName,
+            LastupdateDate = DateTime.Now,
+            Factory = query.Factory,
+            Company = query.Company,
+            TaskNo = mesInvItemStocks.TaskNo,
+            BillNo = query.billNo,
+            WorkNo = mesInvItemStocks.WorkNo,
+            WorkLine = mesInvItemStocks.WorkLine,
+            SuppNo = mesInvItemStocks.SuppNo
+        }).ExecuteCommand();
+
+        if (executeCommand <= 0) throw new Exception("鍐欏叆MesInvBusiness2琛ㄥけ璐�");
+    }
+
+    private void SaveMesInvItemMovesCDetails(SqlSugarScope Db,
+        WarehouseQuery query,
+        MesInvItemMoves mesInvItemMoves, MesInvItemStocks mesInvItemStocks)
+    {
+        var executeCommand = Db.Insertable(new MesInvItemMovesCDetails
+        {
+            ItemMoveId = mesInvItemMoves.Id,
+            ItemBarcode = query.barcode,
+            CItemCode = mesInvItemStocks.CItemCode,
+            ItemNo = mesInvItemStocks.ItemNo,
+            LotNo = mesInvItemStocks.LotNo,
+            Quantity = mesInvItemStocks.Quantity,
+            EpFlag = mesInvItemStocks.EpFlag,
+            CreateBy = query.userName,
+            CreateDate = DateTime.Now,
+            LastupdateBy = query.userName,
+            LastupdateDate = DateTime.Now,
+            CustNo = mesInvItemStocks.CustomerNo,
+            TaskNo = mesInvItemStocks.TaskNo,
+            FromDepotsCode = mesInvItemStocks.DepotsCode,
+            FromDepotSectionsCode = mesInvItemStocks.DepotSectionsCode,
+            Factory = mesInvItemStocks.Factory,
+            Company = mesInvItemStocks.Company,
+            IqcStatus = mesInvItemStocks.IqcStatus,
+            Fcar = mesInvItemStocks.Fcar,
+            IndepDate = mesInvItemStocks.IndepDate,
+            VisableSubmit = mesInvItemStocks.VisableSubmit,
+            VisableSubmitBy = mesInvItemStocks.VisableSubmitBy,
+            VisableSubmitDate = mesInvItemStocks.VisableSubmitDate,
+            BoardStyle = mesInvItemStocks.BoardStyle,
+            WorkNo = mesInvItemStocks.WorkNo,
+            WorkLine = mesInvItemStocks.WorkLine,
+            SuppNo = mesInvItemStocks.SuppNo
+        }).ExecuteCommand();
+
+        if (executeCommand <= 0)
+            throw new Exception("鍐欏叆MesInvItemMovesCDetails琛ㄥけ璐�");
+    }
+
+    //scan_out_show_DB
+    private List<InventoryItem> ScanOutShowDb(WarehouseQuery query)
+    {
+        var BillTypeId = 300;
+        var TransctionNo = 301;
+        query.Factory = "1000";
+        query.Company = "1000";
+
+        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璇烽�夊崟鎹彿锛�");
+
+        var sql = string.Format(
+            "select f_get_sections_code({0}, {1}, b.item_no)                       sections_code , s.erp_item_no , S.ITEM_MODEL , to_char(nvl(b.quantity, 0) - nvl(quantity_ok, 0), 'FM9999999990.00') flist from mes_inv_item_moves a join mes_inv_item_out_items b on b.item_out_id = a.id join mes_items s on b.item_no = s.item_no left join (select ITEM_MOVE_ID, item_no, sum(quantity) quantity_ok             from MES_INV_ITEM_MOVES_C_DETAILS group by ITEM_MOVE_ID, item_no) c                    on c.ITEM_MOVE_ID = a.id and b.item_no = c.item_no where 1 = 1 and a.bill_type_id = {2} and a.transaction_no = {3} and a.bill_no = {4} and nvl(b.quantity, 0) - nvl(quantity_ok, 0) > 0   and rownum < 500   AND A.STATUS = 1 order by f_get_sections_code({0}, {1}, b.item_no), s.erp_item_no ",
+            query.Factory, query.Company, BillTypeId, TransctionNo,
+            query.billNo);
+
+        var results = Db.Ado.SqlQuery<InventoryItem>(sql);
+
+        return results;
+    }
+
+    public bool Audit(WarehouseQuery query)
+    {
+        return Db.Updateable<MesInvItemMoves>()
+            .SetColumns(a => new MesInvItemMoves { Ts = 1 })
+            .Where(a => a.Id == query.id)
+            .ExecuteCommand() > 0;
+    }
+
+    public MessageCenter SaveMessageCenter(WarehouseQuery query)
+    {
+        var message = MesToErpParam(query);
+
+        var executeReturnIdentity =
+            Db.Insertable(message).ExecuteReturnIdentity();
+        if (executeReturnIdentity > 0)
+        {
+            message.Id = executeReturnIdentity;
+            message.Pid = executeReturnIdentity;
+            return message;
+        }
+
+        throw new Exception("鑾峰彇鏁版嵁澶辫触");
+    }
+
+    public MessageCenter MesToErpParam(WarehouseQuery query)
+    {
+        var erpParameters = "";
+        var title = "";
+        var tableName = "MES_INV_ITEM_MOVES_" + query.Type;
+        if ("A".Equals(query.Type))
+        {
+            erpParameters = GetErpParameters(query.billNo);
+            title = "璋冩嫧鍏ュ簱鍗�" + query.billNo + "瀹℃牳";
+        }
+        else if ("B".Equals(query.Type))
+        {
+            erpParameters = GetDeApprovePam(query.id);
+            title = "璋冩嫧鍏ュ簱鍗�" + query.billNo + "鍙嶅鏍�";
+        }
+
+        var ErpUrl = AppsettingsUtility.Settings.ProductionErpUrl;
+        var message = new MessageCenter
+        {
+            TableName = tableName,
+            Url = ErpUrl,
+            Status = 1,
+            CreateBy = query.userName,
+            Route = query.billNo,
+            Title = title,
+            PageName = "Allocation/Add?id=" + query.id +
+                       "&billNo=" + query.billNo,
+            CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+            Method = "POST",
+            Seq = 1,
+            Data = erpParameters,
+            IsMessage = 0,
+            ContentType = "application/x-www-form-urlencoded"
+        };
+        return message;
+    }
+
+    private string GetErpParameters(string? billNo)
+    {
+        // var invItemIns = Db.Queryable<MesInvItemOuts>()
+        //     .Single(x => x.ItemOutNo == billNo);
+        //
+        // //璋冪敤function鍑芥暟
+        // var sql =
+        //     $"SELECT F_GENERATE_DATA_INSERTED('{billNo}') FROM DUAL;";
+        // var jsonString = Db.Ado.SqlQuerySingle<string>(sql);
+        //
+        // var encodedUrl = "taskname=CGTL&mesid=" + invItemIns.Id +
+        //                  "&optype=create&datajson=" + jsonString;
+        //
+        // return encodedUrl;
+        return null;
+    }
+
+    private string GetDeApprovePam(decimal? id)
+    {
+        // var sid = (int)id;
+        // var encodedUrl = "taskname=CGTL&mesid=" + sid +
+        //                  "&optype=delete&datajson={}";
+        //
+        // return encodedUrl;
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/MES.Service/service/Warehouse/OpeningReceiptServer.cs b/MES.Service/service/Warehouse/OpeningReceiptServer.cs
index 7e8c60e..d525417 100644
--- a/MES.Service/service/Warehouse/OpeningReceiptServer.cs
+++ b/MES.Service/service/Warehouse/OpeningReceiptServer.cs
@@ -1,55 +1,43 @@
 锘縰sing MES.Service.DB;
 using MES.Service.Dto.service;
 using MES.Service.Modes;
-using MES.Service.util;
 using SqlSugar;
 
 namespace MES.Service.service.Warehouse;
 
-public class OpeningReceiptServer :RepositoryNoEntity
+public class OpeningReceiptServer : RepositoryNoEntity
 {
-    
     private const string Factory = "1000";
 
     private const string Company = "1000";
 
+    private const int billTypeId = 100;
+
+    private const int transactionNo = 601;
+
     public MesInvItemBarcodes ScanInBarcodeQC(WarehouseQuery query)
     {
         if (string.IsNullOrWhiteSpace(query.sectionCode))
-        {
             throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
-        }
 
         var depotCode = GetDepotCode(query.sectionCode);
         if (depotCode == null)
-        {
             throw new Exception($"002[搴撲綅缂栫爜 {query.sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
-
-        int billTypeId = 100;
-        int transactionNo = 601;
 
         var checkBarcodeAlreadyReceived =
             CheckBarcodeAlreadyReceived(query.barcode);
 
-        if (checkBarcodeAlreadyReceived > 0)
-        {
-            throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
-        }
+        if (checkBarcodeAlreadyReceived > 0) throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
 
         if (CheckBarcodeInStock(query.barcode) > 0)
-        {
             throw new Exception("鏉$爜宸插湪搴撳瓨涓紝璇锋牳瀵癸紒");
-        }
 
         var barcodeInfo = GetBarcodeInfo(query.barcode);
         if (barcodeInfo == null || barcodeInfo.ComeFlg != 0)
-        {
             throw new Exception("鏉$爜涓嶆槸鏈熷垵鏉$爜锛屾棤娉曠敤鏈熷垵鍏ュ簱锛�");
-        }
 
         var inventoryItemInId = GetOrCreateInventoryItemInId(barcodeInfo,
-            depotCode, query.userName, transactionNo, out string billNo);
+            depotCode, query.userName, out var billNo);
 
         UseTransaction(db =>
         {
@@ -64,8 +52,53 @@
             return 1;
         });
 
-
         return barcodeInfo;
+    }
+
+    public PurchaseInventory GetForm(WarehouseQuery query)
+    {
+        var mesInvItemBarcodes = Db.Queryable<MesInvItemBarcodes>()
+            .Where(s => s.ItemBarcode == query.barcode).Count();
+
+        if (mesInvItemBarcodes <= 0) throw new Exception("鏉$爜涓嶅瓨鍦�");
+
+        var mesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
+            .Where(s => s.ItemBarcode == query.barcode).Single();
+
+        var entity = new PurchaseInventory
+        {
+            ItemIns = GetMesInvItemIns(mesInvItemInCDetails.ItemInId),
+            InvItemInCDetails =
+                GetMesInvItemInCDetailsList(mesInvItemInCDetails.ItemInId),
+            ItemStocks = Db.Queryable<MesInvItemStocks>()
+                .Where(s => s.ItemBarcode == query.barcode).ToList()
+        };
+
+        return entity;
+    }
+
+    public MesInvItemIns GetMesInvItemIns(decimal id)
+    {
+        return Db.Queryable<MesInvItemIns>()
+            .Where(s => s.Id == id).Single();
+    }
+
+    public List<MesInvItemInCDetails> GetMesInvItemInCDetailsList(decimal id)
+    {
+        return Db.Queryable<MesInvItemInCDetails, MesUnit>((a, b) =>
+                new JoinQueryInfos(JoinType.Inner, a.Unit == b.Id.ToString()))
+            .Where((a, b) => a.ItemInId == id)
+            .Select((a, b) => new MesInvItemInCDetails
+            {
+                ItemBarcode = a.ItemBarcode,
+                ItemNo = a.ItemNo,
+                ItemSname = a.ItemSname,
+                DepotSectionCode = a.DepotSectionCode,
+                Quantity = a.Quantity,
+                Unit = b.Fname,
+                Remark = a.Remark
+            })
+            .ToList();
     }
 
     private void InsertInventoryDetails(decimal itemInId, string billNo,
@@ -106,14 +139,11 @@
             TaskNo = barcodeInfo.TaskNo
         }).ExecuteCommand();
 
-        if (executeCommand <= 0)
-        {
-            throw new Exception("鍐欏叆澶辫触");
-        }
+        if (executeCommand <= 0) throw new Exception("鍐欏叆澶辫触");
     }
 
     private decimal GetOrCreateInventoryItemInId(MesInvItemBarcodes barcodeInfo,
-        string depotCode, string userName, int transactionNo, out string billNo)
+        string depotCode, string userName, out string billNo)
     {
         var inventory = Db.Queryable<MesInvItemIns>()
             .Where(d => d.InsDate >= DateTime.Today &&
@@ -125,7 +155,6 @@
                         d.SuppNo == barcodeInfo.SuppNo &&
                         d.DepotsCode == depotCode)
             .First();
-
         if (inventory != null)
         {
             billNo = inventory.BillNo;
@@ -139,7 +168,7 @@
         var executeReturnIdentity = Db.Insertable(new MesInvItemIns
         {
             BillNo = billNo,
-            BillTypeId = 100,
+            BillTypeId = billTypeId,
             InsDate = DateTime.Now,
             DepotsCode = depotCode,
             TransctionNo = transactionNo.ToString(),
@@ -218,10 +247,7 @@
             SuppNo = barcodeInfo.SuppNo
         }).ExecuteCommand();
 
-        if (executeCommand <= 0)
-        {
-            throw new Exception("鍐欏叆澶辫触");
-        }
+        if (executeCommand <= 0) throw new Exception("鍐欏叆澶辫触");
     }
 
     private void InsertBusinessRecord(MesInvItemBarcodes barcodeInfo,
@@ -231,7 +257,7 @@
         var executeCommand = Db.Insertable(new MesInvBusiness2
         {
             Status = 1,
-            BillTypeId = 100,
+            BillTypeId = billTypeId,
             TransactionCode = "601",
             BusinessType = 1,
             ItemBarcode = barcodeInfo.ItemBarcode,
@@ -254,9 +280,6 @@
             SuppNo = barcodeInfo.SuppNo
         }).ExecuteCommand();
 
-        if (executeCommand <= 0)
-        {
-            throw new Exception("鍐欏叆澶辫触");
-        }
+        if (executeCommand <= 0) throw new Exception("鍐欏叆澶辫触");
     }
 }
\ No newline at end of file
diff --git a/MES.Service/util/CollectionUtil.cs b/MES.Service/util/CollectionUtil.cs
index 0652cd3..267fcd4 100644
--- a/MES.Service/util/CollectionUtil.cs
+++ b/MES.Service/util/CollectionUtil.cs
@@ -8,7 +8,7 @@
      */
     public static bool IsNullOrEmpty<T>(List<T> list)
     {
-        return list == null || !list.Any();
+        return list == null || list.Count == 0;
     }
 
     /**
diff --git a/MESApplication/Controllers/Base/DemoController.cs b/MESApplication/Controllers/Base/DemoController.cs
index ce0eaba..0a28eae 100644
--- a/MESApplication/Controllers/Base/DemoController.cs
+++ b/MESApplication/Controllers/Base/DemoController.cs
@@ -3,7 +3,6 @@
 using MES.Service.util;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json.Linq;
-
 namespace MESApplication.Controllers.Base;
 
 [Route("api/[controller]")]
@@ -28,6 +27,7 @@
         }
         catch (Exception ex)
         {
+            throw ex;
             return ResponseResult.ResponseError(ex);
         }
     }
diff --git a/MESApplication/Controllers/Base/LoginController.cs b/MESApplication/Controllers/Base/LoginController.cs
index 58de874..02e836d 100644
--- a/MESApplication/Controllers/Base/LoginController.cs
+++ b/MESApplication/Controllers/Base/LoginController.cs
@@ -7,10 +7,18 @@
 
 namespace MESApplication.Controllers.Base;
 
+/// <summary>
+/// 鐢ㄦ埛
+/// </summary>
 [Route("api/[controller]")]
 [ApiController]
 public class LoginController : ControllerBase
 {
+    /// <summary>
+    /// 鐧诲綍
+    /// </summary>
+    /// <param name="model"></param>
+    /// <returns></returns>
     [HttpPost("login")]
     public ResponseResult login([FromBody] LoginModel model)
     {
@@ -34,6 +42,11 @@
         }
     }
 
+    /// <summary>
+    /// 閲嶈瀵嗙爜
+    /// </summary>
+    /// <param name="data"></param>
+    /// <returns></returns>
     [HttpPost("resetPassword")]
     public ResponseResult resetPassword([FromBody] JObject data)
     {
@@ -66,7 +79,11 @@
         }
     }
 
-
+    /// <summary>
+    /// 鐢ㄦ埛鑿滃崟
+    /// </summary>
+    /// <param name="data"></param>
+    /// <returns></returns>
     [HttpPost("getUserMenu")]
     public ResponseResult getUserMenu([FromBody] JObject data)
     {
diff --git a/MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs b/MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs
index 8819082..0cfbcc2 100644
--- a/MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs
+++ b/MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs
@@ -16,6 +16,48 @@
 
     /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/
 
+    //ScanInDepotSectionsName
+    [HttpPost("ScanInDepotSectionsName")]
+    public ResponseResult ScanInDepotSectionsName(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ScanInDepotSectionsName(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    //ScanEditBarcode
+    [HttpPost("ScanEditBarcode")]
+    public ResponseResult ScanEditBarcode(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ScanEditBarcode(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
     //GetSectionName
     [HttpPost("GetSectionName")]
     public ResponseResult GetSectionName(WarehouseQuery query)
diff --git a/MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs b/MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs
index c50ee43..bbcda91 100644
--- a/MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs
+++ b/MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs
@@ -1,170 +1,162 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Dynamic;
+锘縰sing System.Dynamic;
 using MES.Service.Modes;
-using MES.Service.service;
 using MES.Service.service.Warehouse;
 using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
 
-namespace MESApplication.Controllers.Warehouse
+namespace MESApplication.Controllers.Warehouse;
+
+[ApiController]
+[Route("api/[controller]")]
+public class MesInvBusiness2Controller : ControllerBase
 {
-    [ApiController]
-    [Route("api/[controller]")]
-    public class MesInvBusiness2Controller : ControllerBase
+    private readonly MesInvBusiness2Manager m = new();
+
+
+    /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/
+
+    /// <summary>
+    ///     鑾峰彇鎵�鏈�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
     {
-        
-        private MesInvBusiness2Manager m = new MesInvBusiness2Manager();
-
-
-        /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/
-
-        /// <summary>
-        /// 鑾峰彇鎵�鏈�
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost("GetList")]
-        public ResponseResult GetList()
+        try
         {
-            try
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetList();
+            return new ResponseResult
             {
-                dynamic resultInfos = new ExpandoObject();
-                resultInfos.tbBillList = m.GetList();
-                return new ResponseResult
-                {
-                    status = 0,
-                    message = "OK",
-                    data = resultInfos
-                };
-            }
-            catch (Exception ex)
-            {
-                return ResponseResult.ResponseError(ex);
-            }
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
         }
-
-
-        /// <summary>
-        /// 鏍规嵁涓婚敭鑾峰彇
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost("GetById")]
-        public ResponseResult GetById(int id)
+        catch (Exception ex)
         {
-            try
-            {
-                dynamic resultInfos = new ExpandoObject();
-                resultInfos.tbBillList = m.GetById(id);
-                return new ResponseResult
-                {
-                    status = 0,
-                    message = "OK",
-                    data = resultInfos
-                };
-            }
-            catch (Exception ex)
-            {
-                return ResponseResult.ResponseError(ex);
-            }
-        }
-
-        /// <summary>
-        /// 鏍规嵁涓婚敭鍒犻櫎
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost("DeleteByIds")]
-        public ResponseResult DeleteByIds([FromBody] object[] ids)
-        {
-            try
-            {
-                dynamic resultInfos = new ExpandoObject();
-                resultInfos.tbBillList = m.DeleteByIds(ids);
-                return new ResponseResult
-                {
-                    status = 0,
-                    message = "OK",
-                    data = resultInfos
-                };
-            }
-            catch (Exception ex)
-            {
-                return ResponseResult.ResponseError(ex);
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞 
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost("Insert")]
-        public ResponseResult Add([FromBody] MesInvBusiness2 data)
-        {
-            try
-            {
-                dynamic resultInfos = new ExpandoObject();
-                resultInfos.tbBillList = m.Insert(data);
-                return new ResponseResult
-                {
-                    status = 0,
-                    message = "OK",
-                    data = resultInfos
-                };
-            }
-            catch (Exception ex)
-            {
-                return ResponseResult.ResponseError(ex);
-            }
-        }
-        /// <summary>
-        /// 娣诲姞杩斿洖鑷
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost("InsertReturnIdentity")]
-        public ResponseResult InsertReturnIdentity([FromBody] MesInvBusiness2 data)
-        {
-            try
-            {
-                dynamic resultInfos = new ExpandoObject();
-                resultInfos.tbBillList = m.InsertReturnIdentity(data);
-                return new ResponseResult
-                {
-                    status = 0,
-                    message = "OK",
-                    data = resultInfos
-                };
-            }
-            catch (Exception ex)
-            {
-                return ResponseResult.ResponseError(ex);
-            }
-        }
-
-        /// <summary>
-        /// 淇敼
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost("Update")]
-        public ResponseResult Update([FromBody] MesInvBusiness2 data)
-        {
-            try
-            {
-                dynamic resultInfos = new ExpandoObject();
-                resultInfos.tbBillList = m.Update(data);
-                return new ResponseResult
-                {
-                    status = 0,
-                    message = "OK",
-                    data = resultInfos
-                };
-            }
-            catch (Exception ex)
-            {
-                return ResponseResult.ResponseError(ex);
-            }
+            return ResponseResult.ResponseError(ex);
         }
     }
-}
+
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鑾峰彇
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetById")]
+    public ResponseResult GetById(int id)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetById(id);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鍒犻櫎
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("DeleteByIds")]
+    public ResponseResult DeleteByIds([FromBody] object[] ids)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.DeleteByIds(ids);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Insert")]
+    public ResponseResult Add([FromBody] MesInvBusiness2 data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Insert(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞杩斿洖鑷
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("InsertReturnIdentity")]
+    public ResponseResult InsertReturnIdentity([FromBody] MesInvBusiness2 data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.InsertReturnIdentity(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     淇敼
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Update")]
+    public ResponseResult Update([FromBody] MesInvBusiness2 data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Update(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file
diff --git a/MESApplication/Controllers/Warehouse/MesInvItemMovesCDetailsController.cs b/MESApplication/Controllers/Warehouse/MesInvItemMovesCDetailsController.cs
new file mode 100644
index 0000000..fb0be61
--- /dev/null
+++ b/MESApplication/Controllers/Warehouse/MesInvItemMovesCDetailsController.cs
@@ -0,0 +1,163 @@
+锘縰sing System.Dynamic;
+using MES.Service.Modes;
+using MES.Service.service.Warehouse;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+
+namespace MESApplication.Controllers.Warehouse;
+
+[ApiController]
+[Route("api/[controller]")]
+public class MesInvItemMovesCDetailsController : ControllerBase
+{
+    private readonly MesInvItemMovesCDetailsManager m = new();
+
+
+    /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/
+
+    /// <summary>
+    ///     鑾峰彇鎵�鏈�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetList();
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鑾峰彇
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetById")]
+    public ResponseResult GetById(int id)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetById(id);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鍒犻櫎
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("DeleteByIds")]
+    public ResponseResult DeleteByIds([FromBody] object[] ids)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.DeleteByIds(ids);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Insert")]
+    public ResponseResult Add([FromBody] MesInvItemMovesCDetails data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Insert(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞杩斿洖鑷
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("InsertReturnIdentity")]
+    public ResponseResult InsertReturnIdentity(
+        [FromBody] MesInvItemMovesCDetails data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.InsertReturnIdentity(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     淇敼
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Update")]
+    public ResponseResult Update([FromBody] MesInvItemMovesCDetails data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Update(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file
diff --git a/MESApplication/Controllers/Warehouse/MesInvItemMovesController.cs b/MESApplication/Controllers/Warehouse/MesInvItemMovesController.cs
new file mode 100644
index 0000000..f93f0f5
--- /dev/null
+++ b/MESApplication/Controllers/Warehouse/MesInvItemMovesController.cs
@@ -0,0 +1,306 @@
+锘縰sing System.Dynamic;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.service.Warehouse;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+
+namespace MESApplication.Controllers.Warehouse;
+
+[ApiController]
+[Route("api/[controller]")]
+public class MesInvItemMovesController : ControllerBase
+{
+    private readonly MesInvItemMovesManager m = new();
+    
+    //ScanInBarcode
+    [HttpPost("ScanInBarcode")]
+    public ResponseResult ScanInBarcode(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ScanInBarcode(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("Audit")]
+    public ResponseResult Audit(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Audit(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("SaveMessageCenter")]
+    public ResponseResult SaveMessageCenter(WarehouseQuery entity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.SaveMessageCenter(entity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    //GetPage
+    [HttpPost("GetPage")]
+    public ResponseResult GetPage(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetPage(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    //GetItems
+    [HttpPost("GetItems")]
+    public ResponseResult GetItems(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetItems(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    //ScanMoveBarcode
+    [HttpPost("ScanMoveBarcode")]
+    public ResponseResult ScanMoveBarcode(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ScanMoveBarcode(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    // GetBillNo
+    [HttpPost("GetBillNo")]
+    public ResponseResult GetBillNo(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetBillNo(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    /// <summary>
+    ///     鑾峰彇鎵�鏈�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetList();
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鑾峰彇
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetById")]
+    public ResponseResult GetById(int id)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetById(id);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鍒犻櫎
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("DeleteByIds")]
+    public ResponseResult DeleteByIds([FromBody] object[] ids)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.DeleteByIds(ids);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Insert")]
+    public ResponseResult Add([FromBody] MesInvItemMoves data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Insert(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞杩斿洖鑷
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("InsertReturnIdentity")]
+    public ResponseResult InsertReturnIdentity(
+        [FromBody] MesInvItemMoves data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.InsertReturnIdentity(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     淇敼
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Update")]
+    public ResponseResult Update([FromBody] MesInvItemMoves data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Update(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file
diff --git a/MESApplication/Controllers/Warehouse/OpeningReceiptController.cs b/MESApplication/Controllers/Warehouse/OpeningReceiptController.cs
index 16b6884..cda99fa 100644
--- a/MESApplication/Controllers/Warehouse/OpeningReceiptController.cs
+++ b/MESApplication/Controllers/Warehouse/OpeningReceiptController.cs
@@ -31,4 +31,24 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    [HttpPost("GetForm")]
+    public ResponseResult GetForm(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetForm(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
 }
\ No newline at end of file
diff --git a/MESApplication/Filter/ActionFilter.cs b/MESApplication/Filter/ActionFilter.cs
new file mode 100644
index 0000000..222c03f
--- /dev/null
+++ b/MESApplication/Filter/ActionFilter.cs
@@ -0,0 +1,160 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Controllers;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Newtonsoft.Json;
+using System.Diagnostics;
+using System.Text;
+
+namespace MESApplication
+{
+    /// <summary>
+    /// 鏂规硶杩囨护鍣�
+    /// </summary>
+    public class ActionFilter : IActionFilter
+    {
+        /// <summary>
+        /// 鐩戞帶鏃ュ織
+        /// </summary>
+        public static ILogger LoggerMonitor { get; set; }
+
+        /// <summary>
+        /// 閿欒鏃ュ織
+        /// </summary>
+        public static ILogger LoggerError { get; set; }
+
+        private Stopwatch _stopwatch;
+
+        /// <summary>
+        /// 鍒涘缓璇锋眰鏃ュ織鏂囨湰
+        /// </summary>
+        /// <param name="method"></param>
+        /// <param name="controllerName"></param>
+        /// <param name="actionName"></param>
+        /// <param name="actionArgs"></param>
+        /// <returns></returns>
+        private static string CreateRequestLogText(string method, string controllerName, string actionName, string requestHead, string requestBody)
+        {
+            StringBuilder sb = new StringBuilder();
+            sb.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 璇锋眰{method}/{controllerName}/{actionName}鎺ュ彛锛岃姹侶ead锛歿requestHead}\n");
+            sb.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 璇锋眰{method}/{controllerName}/{actionName}鎺ュ彛锛岃姹侭ody锛歿requestBody}\n");
+            return sb.ToString();
+        }
+
+        /// <summary>
+        /// 鍒涘缓鍝嶅簲鏃ュ織鏂囨湰
+        /// </summary>
+        /// <param name="method"></param>
+        /// <param name="controllerName"></param>
+        /// <param name="actionName"></param>
+        /// <param name="result"></param>
+        /// <returns></returns>
+        private static string CreateResponseLogText(string method, string controllerName, string actionName, object result)
+        {
+            StringBuilder sb = new StringBuilder();
+            sb.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 瀹屾垚璇锋眰{method}/{controllerName}/{actionName}鎺ュ彛锛岃繑鍥炵粨鏋滐細");
+            if (result != null)
+            {
+                sb.Append($"{JsonConvert.SerializeObject(result)}");
+            }
+            else
+            {
+                sb.Append($"鏃�");
+            }
+            return sb.ToString();
+        }
+
+
+        /// <summary>
+        /// 鏂规硶鎵ц鍓�
+        /// </summary>
+        /// <param name="context"></param>
+        /// <exception cref="NotImplementedException"></exception>
+        public async void OnActionExecuting(ActionExecutingContext context)
+        {
+            // ErrorLog.Write("==================================================================================================================================");
+            _stopwatch = new Stopwatch();
+            _stopwatch.Start();
+            //throw new NotImplementedException();
+            if (LoggerMonitor != null)
+            {
+                //璁板綍璇锋眰鍙傛暟鏃ュ織
+                ControllerActionDescriptor desc = context.ActionDescriptor as ControllerActionDescriptor;
+                if (desc != null)
+                {
+                    Dictionary<string, object> headers = new Dictionary<string, object>();
+                    var requestHeaders = context.HttpContext.Request.Headers;
+
+                    // 璁块棶璇锋眰涓殑 header 淇℃伅
+                    foreach (var header in requestHeaders)
+                    {
+                        headers.Add(header.Key, header.Value);
+                    }
+                    var requestHead = JsonConvert.SerializeObject(headers);
+
+                    Dictionary<string, object> bodys = new Dictionary<string, object>();
+                    var actionArguments = context.ActionArguments;
+                    // 璁块棶璇锋眰涓殑鍙傛暟
+                    foreach (var argument in actionArguments)
+                    {
+                        //dic.Add(argument.Key, argument.Value);
+                        var parameter = JsonConvert.DeserializeObject<Dictionary<string, object>>(argument.Value.ToString());
+                        foreach (var item in parameter)
+                        {
+                            bodys.Add(item.Key, item.Value);
+                        }
+                    }
+                    var requestBody = JsonConvert.SerializeObject(bodys);
+
+                    var logText = CreateRequestLogText(context.HttpContext.Request.Method, desc.ControllerName, desc.ActionName, requestHead, requestBody);
+                    //LoggerMonitor.LogDebug(logText);
+                    //ErrorLog.Write(logText);
+                }
+            }
+
+
+        }
+
+        public void OnActionExecuted(ActionExecutedContext context)
+        {
+            //throw new NotImplementedException();
+            _stopwatch.Stop();
+            long elaspsedMillisedconds = _stopwatch.ElapsedMilliseconds;
+            string msg = "";
+            //string msg = $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 鎺ュ彛鎵ц鏃堕棿锛歿elaspsedMillisedconds}姣";
+            //ErrorLog.Write(msg);
+
+            if (context.Exception != null)
+            {
+                // 璁板綍寮傚父鏃ュ織
+                if (LoggerError != null)
+                {
+                    LoggerError.LogError(context.Exception, context.Exception.Message);
+
+                    ErrorLog.Write($@"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 鎺ュ彛寮傚父锛歿JsonConvert.SerializeObject(context.Exception)}");
+                    ErrorLog.Write($@"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 寮傚父鎻愮ず淇℃伅锛歿JsonConvert.SerializeObject(context.Exception.Message)}");
+                    ErrorLog.Write("==================================================================================================================================");
+                }
+            }
+
+            if (LoggerMonitor != null)
+            {
+                // 璁板綍璇锋眰缁撴灉鏃ュ織
+                ControllerActionDescriptor desc = context.ActionDescriptor as ControllerActionDescriptor;
+                if (desc != null)
+                {
+                    ObjectResult rst = context.Result as ObjectResult;
+                    object rstValue = rst != null ? rst.Value : null;
+                    var logText = CreateResponseLogText(
+                        context.HttpContext.Request.Method,
+                        desc.ControllerName,
+                        desc.ActionName,
+                        rstValue);
+                    LoggerMonitor.LogDebug(logText);
+                    ErrorLog.Write(logText);
+                }
+            }
+            //  ErrorLog.Write(msg);
+            //  ErrorLog.Write("==================================================================================================================================");
+        }
+    }
+}
diff --git a/MESApplication/Filter/ErrorLog.cs b/MESApplication/Filter/ErrorLog.cs
new file mode 100644
index 0000000..26fe4f6
--- /dev/null
+++ b/MESApplication/Filter/ErrorLog.cs
@@ -0,0 +1,70 @@
+锘縩amespace MESApplication
+{
+    public class ErrorLog
+    {
+
+        private static string DirectoryPath = AppDomain.CurrentDomain.BaseDirectory;
+
+        /// <summary>
+        /// 鍐欏叆鎿嶄綔鏃ュ織鍒版枃浠朵腑
+        /// </summary>
+        /// <param name="moduleName">妯″潡鍚嶅瓧</param>
+        /// <param name="message">閿欒鏂囨湰淇℃伅</param>
+        /// <param name="ex">寮傚父</param>
+        public static void Write(string moduleName, string message, Exception ex)
+        {
+            //string directoryPath = $@"C:\鑷崇畝绉戞妧\MyDemoData\.NetCore鎺ュ彛杩囨护鍣ㄩ」鐩甛FilterText\FilterText\Logger\{DateTime.Now.ToString("yyyyMMdd")}"; // 鐩爣鐩綍璺緞
+            string directoryPath = $@"{DirectoryPath}{"log"}"; // 鐩爣鐩綍璺緞
+
+            if (!Directory.Exists(directoryPath))
+            {
+                // 濡傛灉鐩綍涓嶅瓨鍦紝鍒欐柊寤烘枃浠跺す
+                Directory.CreateDirectory(directoryPath);
+            }
+
+            string filePath = directoryPath + $@"\{DateTime.Now.ToString("yyyyMMddHH")}.log"; // 鐩爣鏂囦欢璺緞
+
+            if (!File.Exists(filePath))
+            {
+                // 濡傛灉鏂囦欢涓嶅瓨鍦紝鍒欏垱寤烘枃浠�
+                using (File.Create(filePath))
+                {
+                    //Console.WriteLine("鏂囦欢宸插垱寤�");
+                }
+            }
+            LogToFile(filePath, message);
+        }
+
+        /// <summary>
+        /// 鍐欏叆鎿嶄綔鏃ュ織鍒版枃浠朵腑
+        /// </summary>
+        /// <param name="moduleName">妯″潡鍚嶅瓧</param>
+        /// <param name="ex">寮傚父</param>
+        public static void Write(string moduleName, Exception ex)
+        {
+            Write(moduleName, moduleName, ex);
+        }
+
+        /// <summary>
+        /// 鍐欏叆杩囩▼鏁版嵁鎴栬鏄庡埌鏂囦欢涓紝浠ヤ究璺熻釜
+        /// </summary>
+        /// <param name="moduleName">妯″潡鍚嶅瓧</param>
+        /// <param name="ex">寮傚父</param>
+        public static void Write(string message)
+        {
+            Write(String.Empty, message, null);
+        }
+
+        /// <summary>
+        /// 鏂囨湰鍐欏叆
+        /// </summary>
+        /// <param name="logMessage"></param>
+        private static void LogToFile(string logFilePath, string logMessage)
+        {
+            using (StreamWriter sw = File.AppendText(logFilePath))
+            {
+                sw.WriteLine($"{logMessage}");
+            }
+        }
+    }
+}
diff --git a/MESApplication/MESApplication.csproj b/MESApplication/MESApplication.csproj
index 2bd7d9d..3ae7129 100644
--- a/MESApplication/MESApplication.csproj
+++ b/MESApplication/MESApplication.csproj
@@ -5,10 +5,11 @@
         <Nullable>enable</Nullable>
         <ImplicitUsings>enable</ImplicitUsings>
         <InvariantGlobalization>true</InvariantGlobalization>
+        <GenerateDocumentationFile>True</GenerateDocumentationFile>
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0"/>
+        <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" />
         <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1">
             <PrivateAssets>all</PrivateAssets>
             <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -17,12 +18,12 @@
             <PrivateAssets>all</PrivateAssets>
             <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
         </PackageReference>
-        <PackageReference Include="Oracle.EntityFrameworkCore" Version="8.21.121"/>
-        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
+        <PackageReference Include="Oracle.EntityFrameworkCore" Version="8.21.121" />
+        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
     </ItemGroup>
 
     <ItemGroup>
-        <ProjectReference Include="..\MES.Service\MES.Service.csproj"/>
+        <ProjectReference Include="..\MES.Service\MES.Service.csproj" />
     </ItemGroup>
 
 </Project>
diff --git a/MESApplication/Startup.cs b/MESApplication/Startup.cs
index f506f0e..19d0a1d 100644
--- a/MESApplication/Startup.cs
+++ b/MESApplication/Startup.cs
@@ -4,6 +4,7 @@
 using Newtonsoft.Json;
 using Newtonsoft.Json.Serialization;
 using Swashbuckle.AspNetCore.SwaggerUI;
+using System.Reflection;
 
 namespace MESApplication;
 
@@ -35,6 +36,9 @@
             c.SwaggerDoc("v1",
                 new OpenApiInfo
                     { Title = "MESApplication.Api", Version = "v1" });
+            var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
+            var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
+            c.IncludeXmlComments(xmlPath, true);
         });
 
         //閰嶇疆JSON.NET
@@ -66,6 +70,14 @@
                         "OPTIONS")
             );
         });
+
+        #region 鎺ュ彛琛屽姩杩囨护鍣�
+        services.AddControllers(options => {
+            options.Filters.Add(new ActionFilter());
+        });
+        var serviceProvider = services.BuildServiceProvider();
+        ActionFilter.LoggerError = serviceProvider.GetRequiredService<ILogger<ActionFilter>>();
+        #endregion
     }
 
     // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -92,5 +104,10 @@
         app.UseAuthorization();
 
         app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
+
+        //////////////////////////
+        
+        ///////////////////////////
+
     }
 }
\ No newline at end of file
diff --git a/MESApplication/bin/Debug/net8.0/MES.Service.dll b/MESApplication/bin/Debug/net8.0/MES.Service.dll
index 0c9d6b5..987da2e 100644
--- a/MESApplication/bin/Debug/net8.0/MES.Service.dll
+++ b/MESApplication/bin/Debug/net8.0/MES.Service.dll
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MES.Service.pdb b/MESApplication/bin/Debug/net8.0/MES.Service.pdb
index c328566..ebaf275 100644
--- a/MESApplication/bin/Debug/net8.0/MES.Service.pdb
+++ b/MESApplication/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.dll b/MESApplication/bin/Debug/net8.0/MESApplication.dll
index 69908ab..8ebd105 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.dll
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.dll
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.exe b/MESApplication/bin/Debug/net8.0/MESApplication.exe
index 246654b..12ca63d 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.exe
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.exe
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.pdb b/MESApplication/bin/Debug/net8.0/MESApplication.pdb
index 53edad3..a789e3c 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.pdb
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.pdb
Binary files differ

--
Gitblit v1.9.3