From 266afcd9d3b53e97b9a81e61efd095bbdbc8de9e Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期五, 17 十月 2025 01:17:27 +0800
Subject: [PATCH] 同步为建辉的版本

---
 service/Warehouse/MesSttlManager.cs                     |    1 
 service/Wom/WomdaaManager.cs                            |   69 
 service/Warehouse/MesCgthSqManager.cs                   |  234 +
 service/QC/IpqcService.cs                               |   10 
 Controllers/Warehouse/MesCgthSqController.cs            |   63 
 Controllers/Warehouse/MesXkyController.cs               |    1 
 Dto/base/ImageDto.cs                                    |    4 
 service/Warehouse/ZzxdbManager.cs                       |  675 ++++++
 Controllers/Warehouse/ZzxdbController.cs                |  411 ++++
 entity/VIpqcSj.cs                                       |    2 
 entity/SalesDeliver.cs                                  |    2 
 entity/MesShouTuo.cs                                    |    2 
 service/Warehouse/TransferOutManager.cs                 |    1 
 service/QC/OAJyService.cs                               |    3 
 entity/MesScthSqDetail.cs                               |    2 
 service/Warehouse/MesDbckManager.cs                     |    2 
 Controllers/Warehouse/MesXkyShdController.cs            |   26 
 NewPdaSqlServer.csproj                                  |    4 
 entity/Base/ItemInBaseModel.cs                          |    8 
 entity/SalesReturnNoticeDetail.cs                       |    2 
 entity/DeliveryNotice.cs                                |    3 
 entity/MesQaItemsDetectDetail13.cs                      |    2 
 entity/TblBarcodeInformation.cs                         |    3 
 entity/MesShouTuoDetail.cs                              |    2 
 entity/MesScthSq.cs                                     |    2 
 service/base/MesPrintMangeer.cs                         |   26 
 entity/SalesOrder.cs                                    |    2 
 service/Warehouse/MesItemBlManager.cs                   |   12 
 entity/SalesReturnNotice.cs                             |    2 
 entity/SalesOrderDetail.cs                              |    2 
 service/Warehouse/MesInvItemInCDetailsManager.cs        | 2135 ++++++++++++--------
 service/QC/LljService.cs                                |   15 
 service/Warehouse/MesItemQtrkManager.cs                 |   50 
 entity/MesDbck.cs                                       |    2 
 CLAUDE.md                                               |    2 
 Controllers/base/MesImageController.cs                  |    1 
 service/ErpKcManager.cs                                 |  117 
 service/Wom/WwGdManager.cs                              |  338 +--
 service/Warehouse/MesSctkManager.cs                     |    1 
 Dto/service/WarehouseQuery.cs                           |   15 
 entity/MesShouTuiDetail.cs                              |    2 
 entity/SalesDeliverDetail.cs                            |    2 
 Controllers/BaseController.cs                           |    4 
 Controllers/Kingdee/ErpKcController.cs                  |    7 
 Dto/service/ScanWorkResult.cs                           |    7 
 Controllers/Wom/WomdaaController.cs                     |   24 
 service/base/LoginService.cs                            |    4 
 service/Warehouse/MesItemQtManager.cs                   |   34 
 entity/VIpqcXj.cs                                       |    2 
 Controllers/Warehouse/MesInvItemInCDetailsController.cs |   49 
 entity/DeliveryNoticeDetail.cs                          |    2 
 service/Warehouse/MesXkyService.cs                      |   15 
 Dto/service/ScanWorkRequest.cs                          |    7 
 Startup.cs                                              |    1 
 Controllers/Wom/MesWorkProdController.cs                |   54 
 service/base/MesImageManager.cs                         |    1 
 entity/Base/RequestInfo.cs                              |    5 
 service/Warehouse/MesXkyShdManager.cs                   |   59 
 entity/MesShouTui.cs                                    |    2 
 service/Warehouse/MesXsckManager.cs                     |  555 ++++
 service/QC/OaApi.cs                                     |   27 
 service/Wom/MesWorkProdManager.cs                       |  739 ++----
 service/Warehouse/MesXsthManager.cs                     |    1 
 Controllers/Wom/WwGdController.cs                       |   59 
 Controllers/Warehouse/MesSctkController.cs              |    1 
 entity/MesDbckDetail.cs                                 |    2 
 service/Warehouse/MesStrkManager.cs                     |    2 
 service/base/WmsBaseMangeer.cs                          |   47 
 Controllers/Warehouse/MesXsckController.cs              |   18 
 Controllers/Warehouse/MesBarCFController.cs             |   27 
 70 files changed, 3,794 insertions(+), 2,219 deletions(-)

diff --git a/CLAUDE.md b/CLAUDE.md
index c2a38ba..064d075 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -183,4 +183,4 @@
 - Custom SQL data access layer (`DbHelperSQL`) instead of modern ORM鈥擿SqlSugarCore` is referenced but not actively used
 - No automated tests (see Testing section)
 - CORS policy allows any origin鈥攖ighten for production
-- Secrets stored in appsettings.json (use `dotnet user-secrets` instead)
\ No newline at end of file
+- Secrets stored in appsettings.json (use `dotnet user-secrets` instead)
diff --git a/Controllers/BaseController.cs b/Controllers/BaseController.cs
index 52ffce2..b36bc12 100644
--- a/Controllers/BaseController.cs
+++ b/Controllers/BaseController.cs
@@ -1,5 +1,7 @@
 锘縰sing Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.DependencyInjection;
+using NewPdaSqlServer.entity.Base;
+
+namespace NewPdaSqlServer.Controllers;
 
 public class BaseController : ControllerBase
 {
diff --git a/Controllers/Kingdee/ErpKcController.cs b/Controllers/Kingdee/ErpKcController.cs
index 377cac7..c0f7f6a 100644
--- a/Controllers/Kingdee/ErpKcController.cs
+++ b/Controllers/Kingdee/ErpKcController.cs
@@ -1,14 +1,17 @@
 锘縰sing System.Dynamic;
 using Microsoft.AspNetCore.Mvc;
+
 using NewPdaSqlServer.entity;
 using NewPdaSqlServer.service;
 using NewPdaSqlServer.util;
 
+
 namespace NewPdaSqlServer.Controllers.Kingdee;
+
 
 [ApiController]
 [Route("api/[controller]")]
-public class ErpKcController : ControllerBase
+public class ErpKcController : ControllerBase 
 {
     private readonly ErpKcManager kc = new();
     private readonly string METHOD = "POST";
@@ -37,4 +40,4 @@
             return ResponseResult.ResponseError(ex);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/Controllers/Warehouse/MesBarCFController.cs b/Controllers/Warehouse/MesBarCFController.cs
index 09436ea..3199bfb 100644
--- a/Controllers/Warehouse/MesBarCFController.cs
+++ b/Controllers/Warehouse/MesBarCFController.cs
@@ -97,33 +97,6 @@
 
 
     /// <summary>
-    ///     PDA閲嶆墦鏉$爜
-    /// </summary>
-    /// <returns></returns>
-    [HttpPost("BarRePrint")]
-    public ResponseResult BarRePrint(WarehouseQuery unity)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = new ExpandoObject();
-            resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(unity);
-            resultInfos.tbBillList.cfBarInfo = _mCf.getPrintBarInfo(unity);
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
-
-
-    /// <summary>
     ///     鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
     /// </summary>
     /// <returns></returns>
diff --git a/Controllers/Warehouse/MesCgthSqController.cs b/Controllers/Warehouse/MesCgthSqController.cs
index 68baf8c..cc451a7 100644
--- a/Controllers/Warehouse/MesCgthSqController.cs
+++ b/Controllers/Warehouse/MesCgthSqController.cs
@@ -10,7 +10,7 @@
 
 [ApiController]
 [Route("api/[controller]")]
-public class MesCgthSqController : BaseController
+public class MesCgthSqController : ControllerBase
 {
     private readonly MesCgthSqManager m = new();
     private readonly MesPrintMangeer _mCf = new();
@@ -39,7 +39,7 @@
             return ResponseResult.ResponseError(ex);
         }
     }
- 
+
     /// <summary>
     ///     鑾峰彇鎵�鏈夊凡缁忓鏍哥殑鐢宠鍗�
     /// </summary>
@@ -63,10 +63,10 @@
             return ResponseResult.ResponseError(ex);
         }
     }
- 
+
     //ScanCode
     /// <summary>
-    ///     鑾峰彇鎵�鏈夊凡缁忓鏍哥殑鐢宠鍗�
+    ///    閲囪喘閫�璐�
     /// </summary>
     /// <returns></returns>
     [HttpPost("ScanCode")]
@@ -97,7 +97,60 @@
             return ResponseResult.ResponseError(ex);
         }
     }
- 
+
+    //ScanCode
+    /// <summary>
+    ///    閲囪喘楠岄��
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("ScanCgyt")]
+    public ResponseResult ScanCgyt(dynamic query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ScanCgyt(query);
+            resultInfos.YtItem = m.getYtItem(resultInfos.tbBillList.ytdh);
+            resultInfos.YtBarInfo = m.getYtBarInfo(resultInfos.tbBillList.ytdh);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+
+    //ScanCode
+    /// <summary>
+    ///    閲囪喘閫�璐у垹闄�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("deleteCgyt")]
+    public ResponseResult deleteCgyt(dynamic query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.deleteCgyt(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
     [HttpPost("ScanCodeCF")]
     public ResponseResult ScanCodeCF(WarehouseQuery query)
     {
diff --git a/Controllers/Warehouse/MesInvItemInCDetailsController.cs b/Controllers/Warehouse/MesInvItemInCDetailsController.cs
index 026df77..d06388c 100644
--- a/Controllers/Warehouse/MesInvItemInCDetailsController.cs
+++ b/Controllers/Warehouse/MesInvItemInCDetailsController.cs
@@ -287,4 +287,53 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    /// <summary>
+    ///   楠岄��鎵爜
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetReturnBarcodeInfo")]
+    public ResponseResult GetReturnBarcodeInfo(WarehouseQuery entity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetReturnBarcodeInfo(entity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = resultInfos.tbBillList.Message,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///   楠岄�� 
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("ConfirmReturn")]
+    public ResponseResult ConfirmReturn(WarehouseQuery entity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ConfirmReturn(entity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = resultInfos.tbBillList.Message,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/Controllers/Warehouse/MesSctkController.cs b/Controllers/Warehouse/MesSctkController.cs
index a0e4517..2c780de 100644
--- a/Controllers/Warehouse/MesSctkController.cs
+++ b/Controllers/Warehouse/MesSctkController.cs
@@ -1,5 +1,4 @@
 锘縰sing System.Dynamic;
-using MES.Service.Models;
 using Microsoft.AspNetCore.Mvc;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
diff --git a/Controllers/Warehouse/MesXkyController.cs b/Controllers/Warehouse/MesXkyController.cs
index b98b049..fd854b4 100644
--- a/Controllers/Warehouse/MesXkyController.cs
+++ b/Controllers/Warehouse/MesXkyController.cs
@@ -3,6 +3,7 @@
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
 using NewPdaSqlServer.service.QC;
+using NewPdaSqlServer.service.Warehouse;
 using NewPdaSqlServer.util;
 using Newtonsoft.Json.Linq;
 
diff --git a/Controllers/Warehouse/MesXkyShdController.cs b/Controllers/Warehouse/MesXkyShdController.cs
index 8aad5e8..487a6e4 100644
--- a/Controllers/Warehouse/MesXkyShdController.cs
+++ b/Controllers/Warehouse/MesXkyShdController.cs
@@ -24,7 +24,7 @@
         {
             dynamic resultInfos = new ExpandoObject();
             resultInfos.tbBillList = m.GetShdhItems(unity);
-            resultInfos.tbMesItems = m.GetShdhBar(unity);
+            //resultInfos.tbMesItems = m.GetShdhBar(unity);
             return new ResponseResult
             {
                 status = 0,
@@ -95,4 +95,28 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    /// <summary>
+    ///     纭畾绛炬敹
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("OkBtn")]
+    public ResponseResult OkBtn(dynamic unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.message = m.ConfirmSignReceipt(unity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = resultInfos.message,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
 }
\ No newline at end of file
diff --git a/Controllers/Warehouse/MesXsckController.cs b/Controllers/Warehouse/MesXsckController.cs
index 6b984aa..8ea3e24 100644
--- a/Controllers/Warehouse/MesXsckController.cs
+++ b/Controllers/Warehouse/MesXsckController.cs
@@ -2,7 +2,6 @@
 using Microsoft.AspNetCore.Mvc;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
-using NewPdaSqlServer.service.@base;
 using NewPdaSqlServer.service.Warehouse;
 using NewPdaSqlServer.util;
 
@@ -16,8 +15,6 @@
 public class MesXsckController : BaseController
 {
     private readonly MesXsckManager _manager = new();
-
-    private readonly MesPrintMangeer _mCf = new();
 
     /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/
 
@@ -199,21 +196,14 @@
     /// <response code="200">鎷嗗垎鎴愬姛</response>
     /// <response code="400">鎷嗗垎澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
     [HttpPost("SplitBarcode")]
-    public ResponseResult SplitBarcode(WarehouseQuery query)
+    public ResponseResult SplitBarcode([FromBody] WarehouseQuery query)
     {
         try
         {
             dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = new ExpandoObject();
-            resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query);
-            var scanResult = _manager.SplitBarcode(query);
-            resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult);
-
-            //dynamic resultInfos = new ExpandoObject();
-            //var (success, pendingList) = _manager.SplitBarcode(query);
-            //resultInfos.success = success;
-            //resultInfos.pendingList = pendingList;
-
+            var (success, pendingList) = _manager.SplitBarcode(query);
+            resultInfos.success = success;
+            resultInfos.pendingList = pendingList;
             return new ResponseResult
             {
                 status = 0,
diff --git a/Controllers/Warehouse/ZzxdbController.cs b/Controllers/Warehouse/ZzxdbController.cs
new file mode 100644
index 0000000..1ca8efb
--- /dev/null
+++ b/Controllers/Warehouse/ZzxdbController.cs
@@ -0,0 +1,411 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.service.@base;
+using NewPdaSqlServer.service.Warehouse;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.Warehouse;
+
+/// <summary>
+///     璋冩嫧鍑哄簱鐩稿叧鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class ZzxdbController : BaseController
+{
+    private readonly ZzxdbManager _manager = new();
+
+    private readonly MesPrintMangeer _mCf = new();
+
+    #region 鍩虹CRUD
+
+    /// <summary>
+    ///     鑾峰彇鎵�鏈夎皟鎷ㄥ嚭搴撳崟
+    /// </summary>
+    /// <returns>璋冩嫧鍑哄簱鍗曞垪琛�</returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.GetList();
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    #endregion
+
+    #region 璋冩嫧鍏ュ簱涓氬姟
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜璋冩嫧鍏ュ簱澶勭悊
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊缁撴灉鍜屽緟澶勭悊鏄庣粏</returns>
+    /// <remarks>
+    ///     璇锋眰绀轰緥:
+    ///     POST /api/TransferOut/ScanReceiveBarcode
+    ///     {
+    ///     "billNo": "DB202401010001",  // 璋冩嫧鍗曞彿(蹇呭~)
+    ///     "userName": "admin",          // 鐢ㄦ埛鍚�(蹇呭~)
+    ///     "barcode": "BC001"           // 鏉$爜鍙�(蹇呭~)
+    ///     }
+    ///     涓氬姟澶勭悊锛�
+    ///     - 楠岃瘉璋冩嫧鍗曠姸鎬�
+    ///     - 楠岃瘉鏉$爜搴撳瓨淇℃伅
+    ///     - 楠岃瘉浠撳簱涓�鑷存��
+    ///     - 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+    ///     - 鎵ц璋冩嫧鍏ュ簱浜嬪姟澶勭悊
+    ///     杩斿洖鏁版嵁鍖呭惈锛�
+    ///     - form: 澶勭悊缁撴灉琛ㄥ崟
+    ///     - items: 寰呭鐞嗘槑缁嗗垪琛�
+    /// </remarks>
+    /// <response code="200">鎵弿鎴愬姛</response>
+    /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("ScanReceiveBarcode")]
+    public ResponseResult ScanReceiveBarcode([FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var (form, items) = _manager.ScanReceiveBarcode(query);
+            resultInfos.form = form;
+            resultInfos.items = items;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    #endregion
+
+    #region 璋冩嫧涓氬姟
+
+    /// <summary>
+    ///     鑾峰彇鍛ㄨ浆绠辩墿鏂欏垪琛�
+    /// </summary>
+    /// <returns>鑾峰彇鍛ㄨ浆绠辩墿鏂欏垪琛�</returns>
+    /// <remarks>
+    ///     
+    /// </remarks>
+    /// <response code="200">鎴愬姛鑾峰彇鍛ㄨ浆绠辩墿鏂欏垪琛�</response>
+    /// <response code="400">鑾峰彇澶辫触</response>
+    [HttpPost("GetItemNoList")]
+    public ResponseResult GetItemNoList([FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.GetTransferOutNoList(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁鍗曟嵁鍙疯幏鍙栧簱浣嶆槑缁�
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns></returns>
+    /// <remarks>
+    /// 
+    /// </remarks>
+    /// <response code="200">鎴愬姛鑾峰彇搴撲綅鏄庣粏</response>
+    /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("GetKwByBillNo")]
+    public ResponseResult GetKwByBillNo(
+        [FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList =
+                _manager.GetTransferOutDetailListByBillNo(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁鐗╂枡缂栧彿鍜岃皟鍑哄簱浣嶈幏鍙栫墿鏂欏強瀵瑰簲搴撳瓨鏄庣粏
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns></returns>
+    /// <remarks>
+    /// 
+    /// </remarks>
+    /// <response code="200">鎴愬姛鑾峰彇搴撲綅鏄庣粏</response>
+    /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("GetMesItemByItemNo")]
+    public ResponseResult GetMesItemByItemNo(
+        [FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList =
+                _manager.GetMesItemByItemNo(query, RequestInfo);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    [HttpPost("GetTransferInDetailListByBillNo")]
+    public ResponseResult GetTransferInDetailListByBillNo(
+    [FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList =
+                _manager.GetTransferInDetailListByBillNo(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊缁撴灉鍜屽緟澶勭悊鏄庣粏</returns>
+    /// <remarks>
+    ///     璇锋眰绀轰緥:
+    ///     POST /api/TransferOut/ScanMoveBarcode
+    ///     {
+    ///     "billNo": "DB202401010001",  // 璋冩嫧鍗曞彿(蹇呭~)
+    ///     "userName": "admin",          // 鐢ㄦ埛鍚�(蹇呭~)
+    ///     "barcode": "BC001"           // 鏉$爜鍙�(蹇呭~)
+    ///     }
+    ///     涓氬姟澶勭悊锛�
+    ///     - 楠岃瘉璋冩嫧鍗曠姸鎬�
+    ///     - 楠岃瘉鏉$爜搴撳瓨淇℃伅
+    ///     - 楠岃瘉浠撳簱涓�鑷存��
+    ///     - 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+    ///     - 鎵ц璋冩嫧鍑哄簱浜嬪姟澶勭悊
+    ///     杩斿洖鏁版嵁鍖呭惈锛�
+    ///     - form: 澶勭悊缁撴灉琛ㄥ崟
+    ///     - items: 寰呭鐞嗘槑缁嗗垪琛�
+    /// </remarks>
+    /// <response code="200">鎵弿鎴愬姛</response>
+    /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("saveDbsq")]
+    public ResponseResult saveDbsq([FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.saveDbsq(query,RequestInfo);
+            if (resultInfos.tbBillList.result == "2")
+            {
+                return new ResponseResult
+                {
+                    status = Convert.ToInt32(resultInfos.tbBillList.result),
+                    message = resultInfos.tbBillList.strMsg,
+                    data = resultInfos
+                };
+            }
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊缁撴灉鍜屽緟澶勭悊鏄庣粏</returns>
+    /// <remarks>
+    ///     璇锋眰绀轰緥:
+    ///     POST /api/TransferOut/ScanMoveBarcode
+    ///     {
+    ///     "billNo": "DB202401010001",  // 璋冩嫧鍗曞彿(蹇呭~)
+    ///     "userName": "admin",          // 鐢ㄦ埛鍚�(蹇呭~)
+    ///     "barcode": "BC001"           // 鏉$爜鍙�(蹇呭~)
+    ///     }
+    ///     涓氬姟澶勭悊锛�
+    ///     - 楠岃瘉璋冩嫧鍗曠姸鎬�
+    ///     - 楠岃瘉鏉$爜搴撳瓨淇℃伅
+    ///     - 楠岃瘉浠撳簱涓�鑷存��
+    ///     - 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+    ///     - 鎵ц璋冩嫧鍑哄簱浜嬪姟澶勭悊
+    ///     杩斿洖鏁版嵁鍖呭惈锛�
+    ///     - form: 澶勭悊缁撴灉琛ㄥ崟
+    ///     - items: 寰呭鐞嗘槑缁嗗垪琛�
+    /// </remarks>
+    /// <response code="200">鎵弿鎴愬姛</response>
+    /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("deleteDbsqMx")]
+    public ResponseResult deleteDbsqMx([FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.deleteDbsqMx(query);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊缁撴灉鍜屽緟澶勭悊鏄庣粏</returns>
+    /// <remarks>
+    ///     璇锋眰绀轰緥:
+    ///     POST /api/TransferOut/ScanMoveBarcode
+    ///     {
+    ///     "billNo": "DB202401010001",  // 璋冩嫧鍗曞彿(蹇呭~)
+    ///     "userName": "admin",          // 鐢ㄦ埛鍚�(蹇呭~)
+    ///     "barcode": "BC001"           // 鏉$爜鍙�(蹇呭~)
+    ///     }
+    ///     涓氬姟澶勭悊锛�
+    ///     - 楠岃瘉璋冩嫧鍗曠姸鎬�
+    ///     - 楠岃瘉鏉$爜搴撳瓨淇℃伅
+    ///     - 楠岃瘉浠撳簱涓�鑷存��
+    ///     - 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+    ///     - 鎵ц璋冩嫧鍑哄簱浜嬪姟澶勭悊
+    ///     杩斿洖鏁版嵁鍖呭惈锛�
+    ///     - form: 澶勭悊缁撴灉琛ㄥ崟
+    ///     - items: 寰呭鐞嗘槑缁嗗垪琛�
+    /// </remarks>
+    /// <response code="200">鎵弿鎴愬姛</response>
+    /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("submit")]
+    public ResponseResult submit([FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.submitDbBillNo(query, RequestInfo);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鍒嗗壊鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊缁撴灉鍜屽緟澶勭悊鏄庣粏</returns>
+    /// <remarks>
+    ///     璇锋眰绀轰緥:
+    ///     POST /api/TransferOut/SplitBarcode
+    ///     {
+    ///     "billNo": "DB202401010001",  // 璋冩嫧鍗曞彿(蹇呭~)
+    ///     "userName": "admin",          // 鐢ㄦ埛鍚�(蹇呭~)
+    ///     "barcode": "BC001"           // 鏉$爜鍙�(蹇呭~)
+    ///     "fum": "1"                  // 鎷嗗垎鏁�(蹇呭~)
+    ///     }
+    ///     涓氬姟澶勭悊锛�
+    ///     - 楠岃瘉璋冩嫧鍗曠姸鎬�
+    ///     - 楠岃瘉鏉$爜搴撳瓨淇℃伅
+    ///     - 楠岃瘉浠撳簱涓�鑷存��
+    ///     - 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+    ///     - 鎵ц鍒嗗壊鏉$爜鐨勮皟鎷ㄥ嚭搴撲簨鍔″鐞�
+    /// </remarks>
+    /// <response code="200">鍒嗗壊鎴愬姛</response>
+    /// <response code="400">鍒嗗壊澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+    [HttpPost("ScanCodeCF")]
+    public ResponseResult ScanCodeCF(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = new ExpandoObject();
+            resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query);
+            var scanResult = _manager.ScanCodeCF(query);
+            resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    #endregion
+}
\ No newline at end of file
diff --git a/Controllers/Wom/MesWorkProdController.cs b/Controllers/Wom/MesWorkProdController.cs
index 15bc4ae..92b1a8e 100644
--- a/Controllers/Wom/MesWorkProdController.cs
+++ b/Controllers/Wom/MesWorkProdController.cs
@@ -214,59 +214,5 @@
         }
     }
 
-    /// <summary>
-    ///     PDA鎵弿鐢熶骇鎶ュ伐
-    /// </summary>
-    /// <param name="request">鎶ュ伐璇锋眰鍙傛暟</param>
-    /// <returns>鎶ュ伐缁撴灉</returns>
-    /// <remarks>
-    ///     璇锋眰绀轰緥:
-    ///     POST /api/MesWorkProd/GetRksqList
-    ///     {
-    ///     "sjBillNO": "rksq001",
-    ///     }
-    /// </remarks>
-    /// <response code="200">鎵弿鎴愬姛</response>
-    /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
-    [HttpPost("GetRksqList")]
-    public ResponseResult GetRksqList([FromBody] ScanWorkRequest request)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            resultInfos.result = _manager.GetRksqList(request);
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
-
-    [HttpPost("GetRksqSelect")]
-    public ResponseResult GetRksqSelect([FromBody] ScanWorkRequest request)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            resultInfos.result = _manager.GetRksqSelect(request);
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
-
     #endregion
 }
\ No newline at end of file
diff --git a/Controllers/Wom/WomdaaController.cs b/Controllers/Wom/WomdaaController.cs
index 3b5c3ca..f5dee1c 100644
--- a/Controllers/Wom/WomdaaController.cs
+++ b/Controllers/Wom/WomdaaController.cs
@@ -151,30 +151,6 @@
     }
 
     /// <summary>
-    ///     鐢熶骇棰嗘枡鐐瑰嚮鐗╂枡鏄庣粏鑾峰彇鐩稿叧鏉$爜淇℃伅
-    /// </summary>
-    /// <returns></returns>
-    [HttpPost("GetBarKwByItemCK")]
-    public ResponseResult GetBarKwByItemCK(dynamic unity)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = m.GetBarKwByItemCK(unity);
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
-
-    /// <summary>
     ///     鑾峰彇鎵�鏈�
     /// </summary>
     /// <returns></returns>
diff --git a/Controllers/Wom/WwGdController.cs b/Controllers/Wom/WwGdController.cs
index 4e39fb9..8ec8e60 100644
--- a/Controllers/Wom/WwGdController.cs
+++ b/Controllers/Wom/WwGdController.cs
@@ -9,7 +9,7 @@
 
 [ApiController]
 [Route("api/[controller]")]
-public class WwGdController : BaseController
+public class WwGdController : ControllerBase
 {
     private readonly WwGdManager m = new();
 
@@ -94,61 +94,6 @@
         }
     }
 
-
-    /// <summary>
-    ///     鑾峰彇搴撲綅淇℃伅
-    /// </summary>
-    /// <returns></returns>
-    [HttpPost("GetBarKwByItem")]
-    public ResponseResult GetBarKwByItem(dynamic unity)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = m.GetBarKwByItem(unity);
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
-
-    /// <summary>
-    /// 閫夊彇鍒楄〃
-    /// </summary>
-    /// <param name="query"></param>
-    /// <returns></returns>
-    /// <summary>
-    /// 鐜板満鏀舵枡鑾峰彇鍙�夊伐鍗曚俊鎭�
-    /// </summary>
-    /// <param name="query"></param>
-    /// <returns></returns>
-    [HttpPost("GetXcslDaa")]
-    public ResponseResult GetXcslDaa([FromBody] dynamic query)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = m.GetXcslDaa(query, RequestInfo);
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
-
     /// <summary>
     ///     鏍规嵁宸ュ崟鍙疯幏鍙栦唬棰嗙墿鏂欐槑缁�
     /// </summary>
@@ -169,7 +114,7 @@
         {
             // 璋冪敤WwGdManager鐨凣etItemsByDaa001鏂规硶鑾峰彇浠i鐗╂枡鏄庣粏
             dynamic resultInfos = new ExpandoObject();
-            resultInfos.tbBillList = m.GetItemsByDaa001(query, RequestInfo);
+            resultInfos.tbBillList = m.GetItemsByDaa001(query);
             return new ResponseResult
             {
                 status = 0,
diff --git a/Controllers/base/MesImageController.cs b/Controllers/base/MesImageController.cs
index 4c15216..e33d064 100644
--- a/Controllers/base/MesImageController.cs
+++ b/Controllers/base/MesImageController.cs
@@ -1,5 +1,6 @@
 锘縰sing System.Dynamic;
 using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.@base;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
 using NewPdaSqlServer.service.@base;
diff --git a/Dto/base/ImageDto.cs b/Dto/base/ImageDto.cs
index 7b29397..13873e1 100644
--- a/Dto/base/ImageDto.cs
+++ b/Dto/base/ImageDto.cs
@@ -1,6 +1,4 @@
-锘縰sing NewPdaSqlServer.entity;
-
-namespace NewPdaSqlServer.Dto.service;
+锘縩amespace NewPdaSqlServer.Dto.@base;
 
 public class ImageDto
 {
diff --git a/Dto/service/ScanWorkRequest.cs b/Dto/service/ScanWorkRequest.cs
index aea0007..ff70aef 100644
--- a/Dto/service/ScanWorkRequest.cs
+++ b/Dto/service/ScanWorkRequest.cs
@@ -1,13 +1,10 @@
-锘縰sing NewPdaSqlServer.entity;
-
-namespace NewPdaSqlServer.Dto.service;
+锘縩amespace NewPdaSqlServer.Dto.service;
 
 public class ScanWorkRequest
 {
     public string? UserNo { get; set; }
     public string? ItemBarcode { get; set; }
     public string? StaffNo { get; set; }
-    public string? sjBillNo { get; set; }
+
     public decimal? Quantity { get; set; }
-    
 }
\ No newline at end of file
diff --git a/Dto/service/ScanWorkResult.cs b/Dto/service/ScanWorkResult.cs
index b50ff5b..ff8bb47 100644
--- a/Dto/service/ScanWorkResult.cs
+++ b/Dto/service/ScanWorkResult.cs
@@ -1,6 +1,4 @@
-锘縰sing NewPdaSqlServer.entity;
-
-namespace NewPdaSqlServer.Dto.service;
+锘縩amespace NewPdaSqlServer.Dto.service;
 
 /// <summary>
 ///     鐢熶骇鎶ュ伐鎵弿缁撴灉
@@ -16,7 +14,4 @@
     public string ItemName { get; set; }
     public string ItemModel { get; set; }
     public string Message { get; set; }
-    public string sjBillNo { get; set; }
-    public List<MesInvItemInRksqDetails> BarcodesDetail { get; set; }
-    public List<MesInvItemIns> rksqOrderList { get; set; }
 }
\ No newline at end of file
diff --git a/Dto/service/WarehouseQuery.cs b/Dto/service/WarehouseQuery.cs
index 32dc00d..f4c4f5f 100644
--- a/Dto/service/WarehouseQuery.cs
+++ b/Dto/service/WarehouseQuery.cs
@@ -17,6 +17,11 @@
     public DateTime? date { get; set; }
     public string? Type { get; set; }
 
+    //楠岄��鏉$爜銆佹暟閲�
+    public string? returnBarcode { get; set; }
+    public decimal? returnQuantity { get; set; }
+
+
     //搴撲綅缂栫爜
     public string? DepotCode { get; set; }
 
@@ -37,6 +42,16 @@
 
     public string? itemNo { get; set; }
     public string? message { get; set; }
+    public string? orgid { get; set; }
+    public string? dckw { get; set; }
+    public decimal? dbNum { get; set; }
+    public string? remark { get; set; }
+
+    public string? drkw { get; set; }
+
+    //鍏嬮噸
+    public decimal? weight { get; set; }
+
     public string? cgrkType { get; set; }
     public string? hbNo { get; set; } //鍚堝苟鍗曞彿
 }
\ No newline at end of file
diff --git a/NewPdaSqlServer.csproj b/NewPdaSqlServer.csproj
index f5eaf8f..262d84e 100644
--- a/NewPdaSqlServer.csproj
+++ b/NewPdaSqlServer.csproj
@@ -22,4 +22,8 @@
         <_ContentIncludedByDefault Remove="Controllers\AGV\app.config"/>
     </ItemGroup>
 
+    <ItemGroup>
+      <Folder Include="resources\" />
+    </ItemGroup>
+
 </Project>
diff --git a/Startup.cs b/Startup.cs
index 2b8124c..7507a84 100644
--- a/Startup.cs
+++ b/Startup.cs
@@ -1,5 +1,6 @@
 锘縰sing System.Reflection;
 using Microsoft.OpenApi.Models;
+using NewPdaSqlServer.entity.Base;
 using NewPdaSqlServer.util;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Serialization;
diff --git a/entity/Base/ItemInBaseModel.cs b/entity/Base/ItemInBaseModel.cs
index dc6418e..d7f5548 100644
--- a/entity/Base/ItemInBaseModel.cs
+++ b/entity/Base/ItemInBaseModel.cs
@@ -5,12 +5,16 @@
 //璋冩嫧鍑哄叆搴撳崟閫氱敤绫�
 public class ItemInBaseModel
 {
+   
+
     //鐗╂枡淇℃伅
     public MesItems itemDetail { get; set; }
-    //鏉$爜鏄庣粏
+    //鍏ュ簱鏉$爜鏄庣粏
     public List<dynamic>? ItemBarCDetails { get; set; }
     //鐗╂枡姹囨�绘槑缁�
     public List<dynamic>? ItemInDetails { get; set; }
+    public MesInvItemBarcodes itemBarcodeDetails { get; set; }
+    
     //鍑�/鍏ュ簱鍗曚俊鎭�
     public List<dynamic>? MesInvItem { get; set; }
 
@@ -19,4 +23,6 @@
 
     //鍏ュ簱鎬绘暟
     public decimal? SumQuantity { get; set; }
+
+
 }
\ No newline at end of file
diff --git a/entity/Base/RequestInfo.cs b/entity/Base/RequestInfo.cs
index 08a12ba..7103497 100644
--- a/entity/Base/RequestInfo.cs
+++ b/entity/Base/RequestInfo.cs
@@ -1,5 +1,6 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using System.Dynamic;
+锘縰sing System.Dynamic;
+
+namespace NewPdaSqlServer.entity.Base;
 
 public class RequestInfo : DynamicObject
 {
diff --git a/entity/DeliveryNotice.cs b/entity/DeliveryNotice.cs
index e738109..077a993 100644
--- a/entity/DeliveryNotice.cs
+++ b/entity/DeliveryNotice.cs
@@ -1,7 +1,6 @@
 锘縰sing SqlSugar;
-using System;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 /// 閫佽揣閫氱煡鍗曚富琛�
diff --git a/entity/DeliveryNoticeDetail.cs b/entity/DeliveryNoticeDetail.cs
index 28cadfe..955862e 100644
--- a/entity/DeliveryNoticeDetail.cs
+++ b/entity/DeliveryNoticeDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 /// 閫佽揣閫氱煡鍗曟嵁鏄庣粏琛�
diff --git a/entity/MesDbck.cs b/entity/MesDbck.cs
index e8ada26..1fccec3 100644
--- a/entity/MesDbck.cs
+++ b/entity/MesDbck.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     璋冩嫧鍑哄簱鐢宠
diff --git a/entity/MesDbckDetail.cs b/entity/MesDbckDetail.cs
index 61aa8c0..b9b852a 100644
--- a/entity/MesDbckDetail.cs
+++ b/entity/MesDbckDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     璋冩嫧鍑哄簱鐢宠璇︽儏
diff --git a/entity/MesQaItemsDetectDetail13.cs b/entity/MesQaItemsDetectDetail13.cs
index 7391008..7e930a3 100644
--- a/entity/MesQaItemsDetectDetail13.cs
+++ b/entity/MesQaItemsDetectDetail13.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     IQC妫�楠屾牱渚嬭〃
diff --git a/entity/MesScthSq.cs b/entity/MesScthSq.cs
index a7f39dd..99c3e12 100644
--- a/entity/MesScthSq.cs
+++ b/entity/MesScthSq.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 /// 鐢熶骇閫�璐ц〃瀹炰綋绫�
diff --git a/entity/MesScthSqDetail.cs b/entity/MesScthSqDetail.cs
index c0d6e0f..30f8c32 100644
--- a/entity/MesScthSqDetail.cs
+++ b/entity/MesScthSqDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 /// 鐢熶骇閫�璐ф槑缁嗚〃瀹炰綋绫�
diff --git a/entity/MesShouTui.cs b/entity/MesShouTui.cs
index 21c5884..f1e7241 100644
--- a/entity/MesShouTui.cs
+++ b/entity/MesShouTui.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     鍙楅��
diff --git a/entity/MesShouTuiDetail.cs b/entity/MesShouTuiDetail.cs
index 4343907..46ef589 100644
--- a/entity/MesShouTuiDetail.cs
+++ b/entity/MesShouTuiDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     鍙楅��鏄庣粏
diff --git a/entity/MesShouTuo.cs b/entity/MesShouTuo.cs
index cea7f65..3590acc 100644
--- a/entity/MesShouTuo.cs
+++ b/entity/MesShouTuo.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     鍙楁墭鍏ュ簱鐢宠
diff --git a/entity/MesShouTuoDetail.cs b/entity/MesShouTuoDetail.cs
index 278c717..d50b4b3 100644
--- a/entity/MesShouTuoDetail.cs
+++ b/entity/MesShouTuoDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     鍙楁墭鍏ュ簱鐢宠鏄庣粏
diff --git a/entity/SalesDeliver.cs b/entity/SalesDeliver.cs
index b32c46b..cb3ac2f 100644
--- a/entity/SalesDeliver.cs
+++ b/entity/SalesDeliver.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     鍙戣揣閫氱煡鐢宠鍗�
diff --git a/entity/SalesDeliverDetail.cs b/entity/SalesDeliverDetail.cs
index 1278cb5..3527914 100644
--- a/entity/SalesDeliverDetail.cs
+++ b/entity/SalesDeliverDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     鍙戣揣閫氱煡鍗曟槑缁�
diff --git a/entity/SalesOrder.cs b/entity/SalesOrder.cs
index 2ce2dd9..cc87f95 100644
--- a/entity/SalesOrder.cs
+++ b/entity/SalesOrder.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     閿�鍞鍗曡〃
diff --git a/entity/SalesOrderDetail.cs b/entity/SalesOrderDetail.cs
index 0cce5a2..82b4122 100644
--- a/entity/SalesOrderDetail.cs
+++ b/entity/SalesOrderDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     閿�鍞鍗曟槑缁嗚〃
diff --git a/entity/SalesReturnNotice.cs b/entity/SalesReturnNotice.cs
index 4b70e06..b1c1561 100644
--- a/entity/SalesReturnNotice.cs
+++ b/entity/SalesReturnNotice.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     閿�鍞��璐х敵璇峰崟
diff --git a/entity/SalesReturnNoticeDetail.cs b/entity/SalesReturnNoticeDetail.cs
index 48df0dc..7d08dcf 100644
--- a/entity/SalesReturnNoticeDetail.cs
+++ b/entity/SalesReturnNoticeDetail.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     閿�鍞��璐ч�氱煡鍗曟槑缁嗚〃
diff --git a/entity/TblBarcodeInformation.cs b/entity/TblBarcodeInformation.cs
index 17c57af..d8ca1bc 100644
--- a/entity/TblBarcodeInformation.cs
+++ b/entity/TblBarcodeInformation.cs
@@ -1,7 +1,6 @@
 锘縰sing SqlSugar;
-using System;
 
-namespace MES.Service.Models
+namespace NewPdaSqlServer.entity
 {
     /// <summary>
     /// 鎼哄浜戞潯鐮佷俊鎭〃
diff --git a/entity/VIpqcSj.cs b/entity/VIpqcSj.cs
index 2ad38a3..3fcfe64 100644
--- a/entity/VIpqcSj.cs
+++ b/entity/VIpqcSj.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     IPQC棣栨瑙嗗浘瀹炰綋绫�
diff --git a/entity/VIpqcXj.cs b/entity/VIpqcXj.cs
index e22fbd5..5213739 100644
--- a/entity/VIpqcXj.cs
+++ b/entity/VIpqcXj.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Models;
+namespace NewPdaSqlServer.entity;
 
 /// <summary>
 ///     IPQC宸℃瑙嗗浘瀹炰綋绫�
diff --git a/service/ErpKcManager.cs b/service/ErpKcManager.cs
index fcc9346..dbe35e3 100644
--- a/service/ErpKcManager.cs
+++ b/service/ErpKcManager.cs
@@ -1,6 +1,4 @@
-锘�//using Kingdee.CDP.WebApi.SDK;
-
-using NewPdaSqlServer.DB;
+锘縰sing NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto;
 using NewPdaSqlServer.entity;
 using SqlSugar;
@@ -11,81 +9,32 @@
 {
     public bool QueryStocks(Inventory inventory)
     {
-        //List<ErpKc> erpKc = GetErpInventory(inventory);
-        var erpKc = new List<ErpKc>();
+        List<ErpKc> erpKc = GetErpInventory(inventory);
 
         // 妫�鏌ヨ繑鍥炵粨鏋滄槸鍚︿负绌�
         if (erpKc == null || erpKc.Count == 0)
-            throw new NotImplementedException("杩斿洖缁撴灉涓虹┖");
-
-        var baseObjects = MapErpCABtoWomcab(erpKc);
-
-        return UseTransaction(db =>
         {
-            return SaveData(db, baseObjects) ? 1 : 0;
-        }) > 0;
+            throw new NotImplementedException("杩斿洖缁撴灉涓虹┖");
+        }
+        else
+        {
+            var baseObjects = MapErpCABtoWomcab(erpKc);
+
+            return UseTransaction(db =>
+            {
+                return SaveData(db, baseObjects) ? 1 : 0;
+            }) > 0;
+        }
     }
 
-    /**
-     * #region 1.鑾峰彇鍗虫椂搴撳瓨
-     * public List
-     * <ErpKc>
-     *     GetErpInventory(Inventory inventory)
-     *     {
-     *     //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃��
-     *     //娉ㄦ剰 2锛氬繀椤诲厛閰嶇疆绗笁鏂圭郴缁熺櫥褰曟巿鏉冧俊鎭悗锛屽啀杩涜涓氬姟鎿嶄綔锛岃鎯呭弬鑰冨悇璇█鐗堟湰SDK浠嬬粛涓殑鐧诲綍閰嶇疆鏂囦欢璇存槑銆�
-     *     //璇诲彇閰嶇疆锛屽垵濮嬪寲SDK
-     *     K3CloudApi client = new K3CloudApi();
-     *     //鐢ㄤ簬璁板綍缁撴灉
-     *     StringBuilder Info = new StringBuilder();
-     *     //涓氬姟瀵硅薄鏍囪瘑
-     *     string formId = "STK_Inventory";
-     *     DateTime dt = DateTime.Now;
-     *     //鏌ヨ瀛楁闆嗗悎锛屽嵆杩斿洖鍝簺鏁版嵁锛屼笉鑳戒负绌猴紝鏍规嵁涓嶅悓涓氬姟鍗曟嵁濉啓涓嶅悓鐨勫瓧娈靛悕锛屼互涓嬩粎涓虹ず渚�
-     *     //string fieldKeys = "FCod,FFileId,FRelevantObject";
-     *     //string FilterString = "FID='-2146304'";
-     *     string fieldKeys =
-     *     "FMaterialId.FNumber,FMtoNo,FStockId,FLot.FNumber,FStockUnitId.FNumber,FBaseUnitId.FNumber,FStockStatusId.FName,FBASEQTY,FMaterialid.FSTOREURNOM,FMaterialid.FSTOREURNUM,FStockOrgId";
-     *     string FilterString = string.Format(@"FMaterialId.FNumber like '%{0}%' and
-     *     FStockId.FNumber like '%{1}%' and FBaseQty>0",
-     *     inventory.ItemNo,inventory.DepotCode);
-     *     string OrderString = "";
-     *     int TopRowCount = 0;
-     *     int StartRow = 0;
-     *     int Limit = 0;
-     *     var param = new QueryParam()
-     *     {
-     *     FormId = formId,
-     *     FieldKeys = fieldKeys,
-     *     FilterString = FilterString,
-     *     OrderString = OrderString,
-     *     TopRowCount = TopRowCount,
-     *     StartRow = StartRow,
-     *     Limit = Limit
-     *     };
-     *     //璋冪敤鎺ュ彛
-     *     var result = client.ExecuteBillQuery(param.ToJson());
-     *     return result.Select(s =>
-     *     {
-     *     var entity = new ErpKc
-     *     {
-     *     FMaterialId = s[0]?.ToString(),
-     *     FMtoNo = s[1]?.ToString(),
-     *     FStockId = s[2]?.ToString(),
-     *     FLot = s[3]?.ToString(),
-     *     FStockUnitId = s[4]?.ToString(),
-     *     FBaseUnitId = s[5]?.ToString(),
-     *     FStockStatusId = s[6]?.ToString(),
-     *     FBASEQTY = s[7]?.ToString() ,
-     *     FSTOREURNOM = s[8]?.ToString(),
-     *     FSTOREURNUM = s[9]?.ToString(),
-     *     FStockOrgId = s[10]?.ToString()
-     *     };
-     *     return entity;
-     *     }).ToList();
-     *     }
-     *     #endregion
-     */
+    #region 1.鑾峰彇鍗虫椂搴撳瓨
+    public List<ErpKc> GetErpInventory(Inventory inventory)
+    {
+        return null;
+    }
+    #endregion
+
+
     private List<ErpMesKc> MapErpCABtoWomcab(List<ErpKc> dtoList)
     {
         var ErpMesKcList = new List<ErpMesKc>();
@@ -96,16 +45,17 @@
             {
                 FNumber = dto.FMaterialId,
                 FQty = Convert.ToDecimal(dto.FBASEQTY),
-                FBaseUnit = dto.FBaseUnitId,
-                FStockUnit = dto.FStockUnitId,
-                FStockId = dto.FStockId,
-                CreateDate = DateTime.Now,
-                FBatchno = dto.FLot,
-                FMtono = dto.FMtoNo,
-                FStockStatus = dto.FStockStatusId,
-                FStoreUrnom = Convert.ToDecimal(dto.FSTOREURNOM),
-                FStoreUrnum = Convert.ToDecimal(dto.FSTOREURNUM),
+                FBaseUnit=dto.FBaseUnitId,
+                FStockUnit=dto.FStockUnitId,
+                FStockId=dto.FStockId,
+                CreateDate=DateTime.Now,
+                FBatchno=dto.FLot,
+                FMtono=dto.FMtoNo,
+                FStockStatus=dto.FStockStatusId,
+                FStoreUrnom= Convert.ToDecimal(dto.FSTOREURNOM),
+                FStoreUrnum= Convert.ToDecimal(dto.FSTOREURNUM),
                 FStockOrgId = Convert.ToDecimal(dto.FStockOrgId)
+
             };
 
             ErpMesKcList.Add(kc);
@@ -118,10 +68,11 @@
     private bool SaveData(SqlSugarScope db, List<ErpMesKc> kcc)
     {
         Db.Deleteable<ErpMesKc>()
-            .ExecuteCommand();
+          .ExecuteCommand();
 
         var save = base.InsertRange(kcc);
         if (save) return true;
         throw new NotImplementedException("鎻掑叆澶辫触");
     }
-}
\ No newline at end of file
+
+}
diff --git a/service/QC/IpqcService.cs b/service/QC/IpqcService.cs
index df1c963..baac2bc 100644
--- a/service/QC/IpqcService.cs
+++ b/service/QC/IpqcService.cs
@@ -1,12 +1,14 @@
-锘縰sing MES.Service.Models;
-using Microsoft.IdentityModel.Tokens;
+锘縰sing Microsoft.IdentityModel.Tokens;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
 using NewPdaSqlServer.util;
 using SqlSugar;
 using System.Data;
 using System.Data.SqlClient;
 using System.Text;
+using static Azure.Core.HttpHeader;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
 using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
 
 namespace NewPdaSqlServer.service.QC;
@@ -76,12 +78,12 @@
                WHERE C.parent_guid = A.guid), 0) AS [YbslIn]
 FROM [MES_QA_ITEMS_DETECT_DETAIL5] [a]
          Left JOIN [MES_QA_ITEMS_DETECT_DETAIL12] [b] ON ([a].[guid] = [b].[parent_guid])
-WHERE ([a].[release_no] = N'{0}' AND IS_GWSCAN = 1)
+WHERE ([a].[release_no] = N'{0}')
 GROUP BY [a].[guid], [a].[parent_guid], [a].[release_no], [a].[fac_level], [a].[fcheck_item], [a].[fcheck_tool],
          [a].[fdown_allow], [a].[fcheck_level], [a].[fstand], [a].[fup_allow], [a].[sample_size_no], [a].[fspec_requ],
          [a].[fre_qty], [a].[check_qyt], [a].[fcheck_resu], [a].[forder], [a].[ybsl], [a].stationName,
          [a].IS_GWSCAN
-ORDER BY [a].[forder] ASC", releaseNo);
+ORDER BY [a].[forder] , [a].[fcheck_item] ASC", releaseNo);
 
         var Ybsl_In = Db.Ado.SqlQuery<dynamic>(sql).ToList();
 
diff --git a/service/QC/LljService.cs b/service/QC/LljService.cs
index 6873dad..014a170 100644
--- a/service/QC/LljService.cs
+++ b/service/QC/LljService.cs
@@ -1,5 +1,4 @@
-锘縰sing MES.Service.Models;
-using Microsoft.IdentityModel.Tokens;
+锘縰sing Microsoft.IdentityModel.Tokens;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
@@ -342,16 +341,8 @@
             //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸
             FcheckResu = "鍚堟牸";
 
-        SysUser sysUser;
-        try
-        {
-            sysUser = Db.Queryable<SysUser>()
-                .Where(s => s.Account == detail.CreateBy).First();
-        }
-        catch
-        {
-            throw new Exception($"鐢ㄦ埛璐﹀彿 {detail.CreateBy} 涓嶅瓨鍦紝鏃犳硶瀹屾垚妫�楠屾搷浣滐紒");
-        }
+        var sysUser = Db.Queryable<SysUser>()
+            .Where(s => s.Account == detail.CreateBy).First();
 
         UseTransaction(db =>
         {
diff --git a/service/QC/OAJyService.cs b/service/QC/OAJyService.cs
index c7fb134..abb2747 100644
--- a/service/QC/OAJyService.cs
+++ b/service/QC/OAJyService.cs
@@ -1,5 +1,4 @@
-锘縰sing MES.Service.Models;
-using Microsoft.IdentityModel.Tokens;
+锘縰sing Microsoft.IdentityModel.Tokens;
 using NewPdaSqlServer.Controllers;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs
index 632f099..99ae010 100644
--- a/service/QC/OaApi.cs
+++ b/service/QC/OaApi.cs
@@ -1,24 +1,17 @@
 // OaApiService.cs
-using System;
-using System.Collections.Generic;
-using System.Dynamic;
-using System.Data.SqlClient;
+
 using System.Data;
-using System.IO;
-using System.Net.Http;
+using System.Data.SqlClient;
+using System.Dynamic;
 using System.Security.Cryptography;
 using System.Text;
-using System.Threading.Tasks;
-using NewPdaSqlServer.entity.Base;
+using NewPdaSqlServer.DB;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Org.BouncyCastle.Crypto.Parameters;
 using Org.BouncyCastle.Security;
-using NewPdaSqlServer.DB;
-using SqlSugar;
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
-using NewPdaSqlServer.entity;
-using System.Linq;
+
+namespace NewPdaSqlServer.service.QC;
 
 public class OaApiService : Repository<dynamic>
 {
@@ -428,7 +421,7 @@
             {
                 //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
                 new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
-                 new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
+                new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
                 new JObject { 
                     ["fieldName"] = "jydrq", 
                     // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
@@ -503,8 +496,8 @@
         //return Convert.ToBase64String(encrypted);
         RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey));
         string XML = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>",
-        Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()),
-        Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned()));
+            Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()),
+            Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned()));
         string encryptedContent = string.Empty;
         using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
         {
@@ -549,4 +542,4 @@
     {
         _httpClient?.Dispose();
     }
-}
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesCgthSqManager.cs b/service/Warehouse/MesCgthSqManager.cs
index 211894d..4c92478 100644
--- a/service/Warehouse/MesCgthSqManager.cs
+++ b/service/Warehouse/MesCgthSqManager.cs
@@ -12,65 +12,44 @@
 
 public class MesCgthSqManager : Repository<MesCgthSq>
 {
-    public List<string> GetMesCgthSq()
+    public List<MesCgthSq> GetMesCgthSq()
     {
         return Db.Queryable<MesCgthSq>()
             .Where(s => s.Status == true)
-            // .Where(s => s.Status == false)
             .OrderByDescending(s => s.CreateDate)
-            .Select<string>(s => s.BillNo)
             .ToList();
     }
 
     public ProductionPickDto GetSumItem(WarehouseQuery query)
     {
-        // 楠岃瘉鐢宠鍗曞彿鏄惁涓虹┖
-        if (string.IsNullOrEmpty(query.billNo))
-            throw new Exception("鐢宠鍗曞彿涓虹┖");
+        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("鐢宠鍗曞彿涓虹┖");
 
-        var mesInvItemOuts = base.GetSingle(it =>
-            it.BillNo == query.billNo && it.Status == true);
+        var mesInvItemOuts = base.GetSingle(it => it.BillNo == query.billNo && it.Status == true);
         if (mesInvItemOuts == null) throw new Exception("閲囪喘閫�璐х敵璇峰崟涓嶅瓨鍦ㄦ垨鏈鏍�");
 
-        // 鏋勫缓鏌ヨ鏄庣粏鏁版嵁鐨凷QL璇彞
-        var sql = string.Format(@"
-        SELECT 
-            c.item_no ItemNo,
-            c.item_name ItemName,
-            c.item_model ItemModel,           
-            ISNULL(A.SQ_NUM, 0) FQty,          
-            ISNULL(A.YS_NUM, 0) SQty,          
-            ISNULL(A.SQ_NUM, 0) - ISNULL(A.YS_NUM, 0) DSQty,
-            dbo.F_QX_GETRECODEPOTSE(A.ITEM_ID, '', '', '') as RecoKw
-        FROM 
-            MES_CGTH_SQ_DETAIL A
-            LEFT JOIN MES_CGTH_SQ B ON A.MID = B.ID
-            LEFT JOIN MES_ITEMS C ON A.ITEM_ID = C.item_id
-        WHERE 
-            B.BILL_NO = '{0}'", query.billNo);
+        var sql = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.SQ_NUM FQty,A.YS_NUM SQty,A.SQ_NUM - A.YS_NUM DSQty,
+       dbo.F_QX_GETRECODEPOTSE(A.ITEM_ID,A.depot_id,'','') as RecoKw
+fROM MES_CGTH_SQ_DETAIL A
+         LEFT JOIN MES_CGTH_SQ B ON A.MID = B.ID
+         LEFT JOIN MES_ITEMS C ON A.ITEM_ID = C.item_id
+WHERE B.BILL_NO = '{0}'", query.billNo);
 
-        // 鎵цSQL鏌ヨ鑾峰彇鏄庣粏鍒楄〃
         var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql);
 
-        // 楠岃瘉鏄庣粏鏁版嵁鏄惁瀛樺湪
-        if (womdabs.Count < 1)
+        if(womdabs.Count < 1)
         {
             throw new Exception("璇ラ噰璐��璐х敵璇峰崟鏄庣粏涓嶅瓨鍦�");
         }
 
-        // 绛涢�夊緟澶勭悊鏄庣粏锛圖SQty > 0锛�
+
         var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
 
-        // 绛涢�夊凡澶勭悊鏄庣粏锛圫Qty > 0锛�
         var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
 
-        // 鏋勫缓骞惰繑鍥濪TO瀵硅薄
         var dto = new ProductionPickDto
         {
-            // 娉ㄩ噴锛氬師璁″垝鍙风浉鍏虫槧灏勶紙褰撳墠鏈娇鐢級
-            // daa001 = womdaa.Daa001,
-            // PlanNo = womcaa.Caa020,
-
+            //daa001 = womdaa.Daa001,
+            //PlanNo = womcaa.Caa020,
             items = DS_list,
             Ysitems = YS_list
         };
@@ -90,11 +69,11 @@
             throw new ApplicationException("GUID杞崲閿欒"); // 濡傛灉杞崲澶辫触锛屽垯鎶涘嚭寮傚父
 
         // 浣跨敤SqlSugar妗嗘灦鏌ヨMesInvItemOutItems鍜孧esItems琛紝鏍规嵁ItemId杩涜鍐呰繛鎺�
-        var mesInvItemOutItemsList = Db
-            .Queryable<MesCgthSqDetail, MesItems>((c, s) => new object[]
-            {
-                JoinType.Inner, c.ItemId == s.Id // 鍐呰繛鎺ユ潯浠�
-            }).Where((c, s) => c.Mid == parsedGuid) // 鏍规嵁ItemOutId杩囨护
+        var mesInvItemOutItemsList = Db.Queryable<MesCgthSqDetail, MesItems>(
+                (c, s) => new object[]
+                {
+                    JoinType.Inner, c.ItemId == s.Id // 鍐呰繛鎺ユ潯浠�
+                }).Where((c, s) => c.Mid == parsedGuid) // 鏍规嵁ItemOutId杩囨护
             .Select<MesCgthSqDetail>((c, s) =>
                 new MesCgthSqDetail // 閫夋嫨骞舵槧灏勫埌MesInvItemOutItems瀵硅薄
                 {
@@ -125,8 +104,7 @@
         using (var conn = new SqlConnection(DbHelperSQL.strConn))
         {
             if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
-            if (query.billNo.IsNullOrEmpty()) throw new Exception("棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
-            if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
+            if (query.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�");            if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
 
             using (var cmd = new SqlCommand("[prc_pda_CGTH]", conn))
             {
@@ -162,7 +140,7 @@
 
                     var dto = new ProductionPickDto
                     {
-                        daa001 = query.daa001,
+                        daa001 = query.billNo,
                         barcodeNum = barcodeNum,
                         splitNum = splitNum,
                         barcode = query.barcode,
@@ -187,15 +165,14 @@
     public ProductionPickDto ScanCodeCF(WarehouseQuery query)
     {
         if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
-        // if (query.daa001.IsNullOrEmpty()) throw new Exception("棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
+        if (query.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�");
         if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
 
         if (query.Num is null or 0) throw new Exception("鏉$爜鎷嗗垎鏁颁笉鍏佽涓虹┖鎴栬�呬负0");
-        if (query.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�");
 
         var _strMsg = "";
         var _intSum = "";
-        var _cfBar = ""; //鎷嗗垎鍚庢潯鐮�
+        var _cfBar = "";//鎷嗗垎鍚庢潯鐮�
         using (var conn = new SqlConnection(DbHelperSQL.strConn))
         {
             using (var cmd = new SqlCommand("[prc_pda_CGTH_CF]", conn))
@@ -210,7 +187,6 @@
                         new("@outSum", SqlDbType.NVarChar, 300),
                         new("@outCfBar", SqlDbType.NVarChar, 300),
                         new("@c_User", query.userName),
-                        // new("@p_biLL_no", query.daa001),
                         new("@p_biLL_no", query.billNo),
                         new("@p_item_barcode", query.barcode),
                         new("@num", query.Num)
@@ -231,9 +207,9 @@
 
                     var dto = new ProductionPickDto
                     {
-                        daa001 = query.daa001,
-                        barcode = query.barcode, //鍘熸潯鐮�
-                        cfBarcode = _cfBar //鎷嗗垎鍚庢潯鐮�
+                        daa001 = query.billNo,
+                        barcode = query.barcode,//鍘熸潯鐮�
+                        cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
                     };
 
                     return dto;
@@ -249,4 +225,164 @@
             }
         }
     }
+
+
+    /// <summary>
+    /// 閲囪喘鎵爜楠岄��
+    /// </summary>
+    /// <param name="query"></param>
+    /// <returns></returns>
+    /// <exception cref="ArgumentNullException"></exception>
+    /// <exception cref="ArgumentException"></exception>
+    /// <exception cref="Exception"></exception>
+    public dynamic ScanCgyt(dynamic query)
+    {
+        if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+        // 2. 浣跨敤 string.IsNullOrEmpty 鐩存帴鍒ゆ柇瀛楃涓插睘鎬э紙閬垮厤 NullReferenceException锛�
+        if (string.IsNullOrEmpty(query.userName?.ToString()))
+            throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userName));
+
+        if (string.IsNullOrEmpty(query.barcode?.ToString()))
+            throw new ArgumentException("閲囪喘鐗╂枡鏉$爜涓嶅厑璁镐负绌�", nameof(query.barcode));
+
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("prc_pda_scan_CGYT", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+                var parameters = new SqlParameter[]
+                {
+                    new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+                    new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = query.barcode },
+                    new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                    new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
+                    new("@po_ygdh", SqlDbType.NVarChar, 200) { Direction = ParameterDirection.Output }
+                };
+
+                cmd.Parameters.AddRange(parameters);
+                conn.Open();
+                cmd.ExecuteNonQuery();
+
+                var result = new
+                {
+                    result = parameters[3].Value.ToString(),
+                    barcode = query.barcode,
+                    ytdh = parameters[4].Value.ToString(),
+                    msg = parameters[2].Value.ToString()
+                };
+
+                if (result.result == "-1")
+                    throw new Exception(parameters[2].Value.ToString());
+
+                return result;
+            }
+        }
+    }
+
+    /// <summary>
+    /// 鍒犻櫎楠岄��鍗�
+    /// </summary>
+    /// <param name="query"></param>
+    /// <returns></returns>
+    /// <exception cref="ArgumentNullException"></exception>
+    /// <exception cref="ArgumentException"></exception>
+    /// <exception cref="Exception"></exception>
+    public dynamic deleteCgyt(dynamic query)
+    {
+        if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+        // 2. 浣跨敤 string.IsNullOrEmpty 鐩存帴鍒ゆ柇瀛楃涓插睘鎬э紙閬垮厤 NullReferenceException锛�
+        if (string.IsNullOrEmpty(query.userName?.ToString()))
+            throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userName));
+
+        if (string.IsNullOrEmpty(query.ytdh?.ToString()))
+            throw new ArgumentException("杩芥函鐮佷笉鍏佽涓虹┖", nameof(query.ytdh));
+
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("prc_pda_delete_CGYT", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+                var parameters = new SqlParameter[]
+                {
+                    new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+                    new("@pi_ytdh", SqlDbType.NVarChar, 100) { Value = query.ytdh },
+                    new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                    new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }
+                };
+
+                cmd.Parameters.AddRange(parameters);
+                conn.Open();
+                cmd.ExecuteNonQuery();
+
+                var result = new
+                {
+                    result = parameters[3].Value.ToString(),
+                    msg = parameters[2].Value.ToString(),
+                };
+
+                if (result.result == "-1")
+                    throw new Exception(parameters[2].Value.ToString());
+
+                return result;
+            }
+        }
+    }
+
+    /// <summary>
+    /// 鑾峰彇楠岄��鍗曞凡鎵墿鏂欎俊鎭�
+    /// </summary>
+    /// <param name="query"></param>
+    /// <returns></returns>
+    public dynamic getYtItem(string ytdh)
+    {
+        if (string.IsNullOrEmpty(ytdh?.ToString()))
+            throw new ArgumentException("楠岄��鍗曞彿涓嶅厑璁镐负绌�", nameof(ytdh));
+
+        var sqlParams = new List<SugarParameter> { new("@ytdh", ytdh) };
+
+        var sql1 = @"SELECT C.item_id,C.item_no,C.item_name,C.item_model,A.quantity
+FROM MES_INV_ITEM_CGYT_ITEMS A
+         LEFT JOIN MES_INV_ITEM_CGYT B ON A.item_cgyt_id = B.GUID
+        LEFT JOIN MES_ITEMS C ON A.item_id = C.item_id
+WHERE B.item_cgyt_no = @ytdh";
+
+        var YtItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
+
+        //if (YtItem.Count < 1)
+        //{
+        //    throw new Exception($"璇ラ獙閫�鍗曞彿{ytdh}鐗╂枡鏄庣粏涓嶅瓨鍦紒");
+        //}
+
+        return YtItem;
+    }
+
+    /// <summary>
+    /// 鑾峰彇楠岄��鍗曞凡鎵潯鐮佷俊鎭�
+    /// </summary>
+    /// <param name="query"></param>
+    /// <returns></returns>
+    public dynamic getYtBarInfo(string ytdh)
+    {
+        if (string.IsNullOrEmpty(ytdh?.ToString()))
+            throw new ArgumentException("楠岄��鍗曞彿涓嶅厑璁镐负绌�", nameof(ytdh));
+
+        var sqlParams = new List<SugarParameter> { new("@ytdh", ytdh) };
+
+        var sql1 = @"SELECT C.item_id,C.item_no,C.item_name,C.item_model,A.quantity,A.ITEM_BARCODE
+FROM MES_INV_ITEM_CGYT_C_DETAILS A
+         LEFT JOIN MES_INV_ITEM_CGYT B ON A.item_cgyt_id = B.GUID
+        LEFT JOIN MES_ITEMS C ON A.item_id = C.item_id
+WHERE B.item_cgyt_no = @ytdh";
+
+        var YtBarInfo = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
+
+        //if (YtBarInfo.Count < 1)
+        //{
+        //    throw new Exception($"璇ラ獙閫�鍗曞彿{ytdh}浠栦滑涓嶅瓨鍦紒");
+        //}
+
+        return YtBarInfo;
+    }
 }
\ No newline at end of file
diff --git a/service/Warehouse/MesDbckManager.cs b/service/Warehouse/MesDbckManager.cs
index d05f336..5dd2376 100644
--- a/service/Warehouse/MesDbckManager.cs
+++ b/service/Warehouse/MesDbckManager.cs
@@ -1,6 +1,6 @@
 锘縰sing NewPdaSqlServer.DB;
 using NewPdaSqlServer.entity;
-using MES.Service.Modes;
+
 namespace NewPdaSqlServer.service.Warehouse;
 
 public class MesDbckManager : Repository<MesDbck>
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 0fd977c..427e898 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -1,4 +1,5 @@
 锘縰sing Masuit.Tools.Models;
+using Microsoft.AspNetCore.SignalR.Protocol;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
@@ -7,7 +8,11 @@
 using NewPdaSqlServer.util;
 using Newtonsoft.Json;
 using SqlSugar;
+using System;
+using System.Data;
+using System.Data.SqlClient;
 using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
 
 namespace NewPdaSqlServer.service.Warehouse;
 
@@ -15,934 +20,1003 @@
 {
     //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
 
+
     public ItemInBaseModel SaveBarCodes(WarehouseQuery entity)
     {
+        ItemInBaseModel res = new ItemInBaseModel();
+        string connectionString = DbHelperSQL.strConn;
+
         // 鍙傛暟楠岃瘉
-        if (entity == null)
-            throw new ArgumentNullException(nameof(entity), "鍙傛暟瀵硅薄涓嶈兘涓虹┖");
+        if (string.IsNullOrEmpty(entity.userName)) throw new ArgumentNullException(nameof(entity.userName), "鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
+        if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
+        if (string.IsNullOrEmpty(entity.barcode)) throw new ArgumentNullException(nameof(entity.barcode), "鏉$爜涓嶅厑璁镐负绌�");
 
-        if (string.IsNullOrEmpty(entity.userName))
-            throw new ArgumentException("鐢ㄦ埛鍚嶄笉鑳戒负绌�", nameof(entity.userName));
-
-        if (string.IsNullOrEmpty(entity.barcode))
-            throw new ArgumentException("鏉$爜涓嶈兘涓虹┖", nameof(entity.barcode));
-
-        string functionName = "閲囪喘鍏ュ簱", fieldName = null, inFieldVal = null;
-        string user = entity.userName,
-            sectionCode = entity.sectionCode,
-            itemBarcode = entity.barcode;
-        var transactionNo = "101";
-        int? billTypeId = 100, num = 0, num2 = 0;
-        var freeze = 0;
-        decimal cSyQty = 0;
-
-        if (string.IsNullOrEmpty(sectionCode))
-            throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
-
-        MesInvItemBarcodes itemBarcodeDetails;
-        try
+        using (var conn = new SqlConnection(connectionString))
         {
-            itemBarcodeDetails = Db.Queryable<MesInvItemBarcodes>()
-                .Where(it => it.ItemBarcode == itemBarcode)
-                .First();
-        }
-        catch
-        {
-            throw new Exception("鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
-        }
-
-        if (string.IsNullOrEmpty(itemBarcodeDetails.Memo) || itemBarcodeDetails.Memo != "閲囪喘鍏ュ簱")
-            throw new Exception("姝ゆ潯鐮佷笉灞炰簬鍒拌揣鏉$爜锛屾棤娉曠敤閲囪喘鍏ュ簱锛�");
-
-        MesInvItemArn inventory;
-        try
-        {
-            inventory = Db.Queryable<MesInvItemArn>()
-                .Where(it => it.BillNo == itemBarcodeDetails.BillNo && it.Fstatus == true )
-                .First();
-        }
-        catch
-        {
-            throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟垨鏈鏍革紒");
-        }
-
-        // var inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
-        //     .Where(it => it.ParentGuid == inventory.Guid
-        //                  && it.ItemId == itemBarcodeDetails.ItemId
-        //                  && it.EbelnLine == itemBarcodeDetails.WorkLine
-        //                  && it.Ebeln == itemBarcodeDetails.WorkNo)
-        //     .First();
-
-        MesInvItemArnDetail inventoryDetails;
-        try
-        {
-            inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
-                .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
-                .First();
-        }
-        catch
-        {
-            throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
-        }
-
-        MesRohInData cgddDetails;
-        try
-        {
-            cgddDetails = Db.Queryable<MesRohInData>()
-                .Where(it => it.EbelnK3id == inventoryDetails.LineK3id)
-                .First();
-        }
-        catch
-        {
-            throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲閲囪喘璁㈠崟鏄庣粏锛�");
-        }
-
-        //鑾峰彇鍒拌揣妫�楠屾槑缁�
-        var sqlParams = new List<SugarParameter> { new("@dhmxGuid", itemBarcodeDetails.AboutGuid) };
-        var sql1 = @"SELECT *FROM v_dhmx WHERE dhmxGuid = @dhmxGuid ";
-        vDhmx dhjymx;
-        try
-        {
-            dhjymx = Db.Ado.SqlQuery<vDhmx>(sql1, sqlParams).First();
-        }
-        catch
-        {
-            throw new Exception("璇ユ潯鐮佹壘涓嶅埌瀵瑰簲鐨勬楠屾槑缁嗭紒");
-        }
-
-        //鍒ゅ畾妫�楠岃兘鍚﹀叆搴�
-        if (dhjymx.CanStore!= 1)
-        {
-            throw new Exception($"璇ユ潯鐮佸搴旂殑鏀舵枡鍗曟楠岀粨鏋�:銆恵dhjymx.InspectionResult}銆�,鍒ゅ畾缁撴灉锛氥�恵dhjymx.JudgmentResult}銆戯紝澶勭悊鎰忚锛氥�恵dhjymx.HandlingSuggestion}銆�,鏃犳硶鍏ュ簱");
-        }
-
-        string depotCode;
-        try
-        {
-            depotCode = Db.Queryable<MesDepotSections>()
-                .Where(it => it.DepotSectionCode == sectionCode)
-                .Select(it => it.DepotGuid)
-                .First();
-        }
-        catch
-        {
-            throw new Exception("搴撲綅缂栫爜 " + sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
-
-        MesDepots mesDepost = null;
-
-        var checkGuid = UtilityHelper.CheckGuid(depotCode);
-        if (checkGuid && depotCode != null)
-        {
-            try
+            using (var cmd = new SqlCommand("[prc_pda_inv_cgrk]", conn))
             {
-                mesDepost = Db.Queryable<MesDepots>()
-                    .Where(s => s.Guid == depotCode).First();
-            }
-            catch
-            {
-                throw new Exception("搴撲綅缂栫爜 " + sectionCode + " 瀵瑰簲鐨勪粨搴撲笉瀛樺湪锛岃纭锛�");
-            }
-
-            // if (depotCode != mesDepost.Guid)
-            //     throw new Exception("鎵弿搴撲綅涓庨噰璐叆搴撳簱浣嶄笉涓�鑷达紒");
-        }
-        else
-        {
-            throw new Exception("搴撲綅缂栫爜 " + sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
-
-
-        //num = Db.Queryable<MesInvItemInCDetails>()
-        //    .Where(it => it.ItemBarcode == itemBarcode)
-        //    .Count();
-
-        //if (num > 0)
-        //    throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚锛岃鏍稿锛�");
-
-        //num = Db.Queryable<MesInvItemStocks>()
-        //    .Where(it => it.ItemBarcode == itemBarcode)
-        //    .Count();
-
-        //if (num > 0)
-        //    throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱锛岃鏍稿锛�");
-
-        var wmsManager = new WmsBaseMangeer();
-        // 鏂板鍏ュ簱鏍¢獙锛堣皟鐢ㄥ瓨鍌ㄨ繃绋嬶級
-        var checkResult = wmsManager.pdaInvJY(
-            db: Db,
-            edtUserNo: entity.userName,
-            barcode: entity.barcode,
-            sectionCode: sectionCode,
-            stockId: mesDepost.DepotId.ToString(),
-            stockOrgId: mesDepost.FSubsidiary,
-            billNo: "", // 鏍规嵁瀹為檯鍗曟嵁鍙蜂紶鍊�
-            transactionNo: "101" // 浜嬪姟绫诲瀷涓庡瓨鍌ㄨ繃绋嬪尮閰�
-        );
-
-        if (checkResult == null)
-            throw new Exception("鍏ュ簱鏍¢獙澶辫触锛氳繑鍥炵粨鏋滀负绌�");
-
-        if (Convert.ToInt32(checkResult.result) < 1)
-            throw new Exception($"鍏ュ簱鏍¢獙澶辫触锛歿checkResult.strMsg}");
-
-
-
-        //num = Db.Queryable<MesInvItemArn>()
-        //    .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
-        //    .InnerJoin<MesInvItemArnDetail>((a, b) =>
-        //        b.ParentGuid == a.Guid &&
-        //        b.ItemId == itemBarcodeDetails.ItemId && b.Ischeck == 1)
-        //    .Count();
-
-        //num2 = Db.Queryable<MesInvItemArn>()
-        //    .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
-        //    .InnerJoin<MesInvItemArnDetail>((a, b) => b.ParentGuid == a.Guid
-        //        && b.ItemId == itemBarcodeDetails.ItemId
-        //        && (b.CheckRes == "鍚堟牸" || b.CheckStates == "鐗归噰鐩存帴浣跨敤"))
-        //    .Count();
-
-        //switch (num)
-        //{
-        //    case 0 when num2 == 0:
-        //    case > 0 when num2 == 0:
-        //        freeze = 1;
-        //        break;
-        //    case 0 when num2 > 0:
-        //        throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁鏈夐棶棰橈紒");
-        //}
-
-
-        // 鍒ゆ柇璐т富绫诲瀷
-        var owner_type = wmsManager.GetOwnerType(cgddDetails.DemandOrg);
-        // if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.DemandOrg))
-        // {
-        //     owner_type = "BD_OwnerOrg";
-        // }
-        // else
-        // {
-        //     // 绗簩灞傚垽鏂細妫�鏌� MES_CUSTOMER
-        //     if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
-        //     {
-        //         owner_type = "BD_Customer";
-        //     }
-        //     else
-        //     {
-        //         // 绗笁灞傚垽鏂細妫�鏌� MES_SUPPLIER
-        //         if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
-        //         {
-        //             owner_type = "BD_Supplier";
-        //         }
-        //         else
-        //         {
-
-        //             // 绗洓灞傚垽鏂細鍐嶆妫�鏌� SYS_ORGANIZATION
-        //             if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.ReceivingOrg))
-        //             {
-        //                 owner_type = "BD_OwnerOrg";
-        //             }
-        //             else
-        //             {
-        //                 throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁瀵瑰簲鐨勯渶姹傜粍缁囨湁闂锛�");
-        //             }
-        //         }
-        //     }
-        //}
-
-        var result = new ItemInBaseModel();
-
-        UseTransaction(db =>
-        {
-            var existingRecord = db.Queryable<MesInvItemIns>()
-                .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
-                             && it.TaskNo == itemBarcodeDetails.BillNo
-                             && it.Status == 0
-                             && it.TransctionNo == transactionNo
-                             && it.CreateBy == entity.userName
-                             && it.BillTypeId == billTypeId
-                             && it.DepotsId == mesDepost.DepotId)
-                .Select(it => new
-                {
-                    it.Guid,
-                    it.BillNo
-                })
-                .ToList()
-                .FirstOrDefault();
-
-            var cId = Guid.Empty;
-            string cBillNo = null;
-
-            if (existingRecord != null)
-            {
-                // If record exists, assign values
-                cId = existingRecord.Guid;
-                cBillNo = existingRecord.BillNo;
-            }
-            else
-            {
-                cId = Guid.NewGuid();
-                cBillNo = BillNo.GetBillNo("CGRK(閲囪喘鍏ュ簱)");
-
-                MesSupplier suppNo;
                 try
                 {
-                    suppNo = db.Queryable<MesSupplier>()
-                        .Where(s => s.Id.ToString() == inventory.SuppId).First();
-                }
-                catch
-                {
-                    throw new Exception("鎵句笉鍒板搴旂殑渚涘簲鍟嗕俊鎭紒");
-                }
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
 
-                db.Insertable(new MesInvItemIns
-                {
-                    Guid = cId,
-                    BillNo = cBillNo,
-                    BillTypeId = billTypeId,
-                    InsDate = DateTime.Now,
-                    DepotsId = mesDepost.DepotId,
-                    DepotsCode = mesDepost.DepotCode,
-                    TransctionNo = transactionNo,
-                    SuppId = suppNo.Id.ToString(),
-                    SuppNo = suppNo.SuppNo,
-                    CreateBy = user,
-                    CreateDate = DateTime.Now,
-                    LastupdateBy = user,
-                    LastupdateDate = DateTime.Now,
-                    UrgentFlag = itemBarcodeDetails.UrgentFlag.GetValueOrDefault() ? "1" : "0",
-                    CbillNo = itemBarcodeDetails.BillNo,
-                    Fstatus = 0,
-                    Status = 0,
-                    ReceiveOrgId = inventory.ReceiveOrgId,
-                    InType = "閲囪喘鍏ュ簱",
-                    TaskNo = itemBarcodeDetails.BillNo
-                    //WorkNo = itemBarcodeDetails.WorkNo
-                }).IgnoreColumns(true).ExecuteCommand();
-            }
-
-            cSyQty = itemBarcodeDetails.Quantity ?? 0;
-
-            if (cSyQty <= 0)
-                throw new Exception("鏉$爜鏁伴噺鏃犳晥锛岃妫�鏌ユ潯鐮佷俊鎭紒");
-
-            entity.id = cId.ToString();
-            entity.PageIndex = 1;
-            entity.Limit = 1;
-
-            itemBarcodeDetails.Hbdy ??= 0;
-            if (itemBarcodeDetails.Hbdy == 1)
-            {
-                var details = db.Queryable<MesInvItemArnDetail>()
-                    .Where(d =>
-                        d.CbillNo == itemBarcodeDetails.BillNo &&
-                        d.Quantity != d.OkRkqty &&
-                        d.ItemId == itemBarcodeDetails.ItemId)
-                    .ToList();
-
-
-                foreach (var detail in details)
-                {
-                    if (cSyQty == 0) break;
-
-                    var remainingQty = detail.Quantity - (detail.OkRkqty ?? 0);
-                    if (remainingQty <= cSyQty)
+                    // 璁剧疆瀛樺偍杩囩▼鍙傛暟
+                    SqlParameter[] parameters =
                     {
-                        // Update detail
-                        db.Updateable<MesInvItemArnDetail>()
-                            .SetColumns(d => new MesInvItemArnDetail
-                            {
-                                OkRkqty = (int)d.Quantity,
-                                IsdepsIn = true
-                            })
-                            .Where(d => d.Guid == detail.Guid)
-                            .IgnoreColumns(true)
-                            .ExecuteCommand();
+                        new SqlParameter("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
+                        new SqlParameter("@pi_barcode", SqlDbType.NVarChar, 100) { Value =  entity.barcode.Trim().ToLower() },
+                        new SqlParameter("@pi_sectionCode", SqlDbType.NVarChar, 30) { Value = entity.sectionCode },
+                        new SqlParameter("@pi_weight", SqlDbType.Decimal) { Value = entity.weight },
+                        new SqlParameter("@po_outMsg", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output },
+                        new SqlParameter("@po_outSum", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output }
+                    };
 
-                        // Check if already inserted
-                        var count = db.Queryable<MesInvItemInCItems>()
-                            .Where(it =>
-                                it.ItemInId == cId &&
-                                    it.ItemId == detail.ItemId &&
-                                    it.DepotId == mesDepost.DepotId.ToString() &&
-                                    it.EbelnK3id == detail.EbelnK3id &&
-                                    it.LineK3id == detail.LineK3id)
-                            .Count();
+                    cmd.Parameters.AddRange(parameters);
+                    cmd.ExecuteNonQuery();
 
-                        cSyQty -= remainingQty.Value;
+                    // 鑾峰彇杈撳嚭鍙傛暟
+                    string? outMessage = parameters[4].Value?.ToString();
+                    string? outSum = parameters[5].Value?.ToString();
 
-                        if (count == 0)
-                            // Insert new item into MES_INV_ITEM_IN_C_ITEMS
-                            db.Insertable(new MesInvItemInCItems
-                            {
-                                ItemInId = cId,
-                                Quantity = remainingQty,
-                                CreateBy = user,
-                                CreateDate = DateTime.Now,
-                                ItemId = detail.ItemId,
-                                DepotCode = mesDepost.DepotCode,
-                                ItemSname = itemBarcodeDetails.ItemSname,
-                                Unit = itemBarcodeDetails.Unit,
-                                Ebeln = detail.Ebeln,
-                                BillNo = cBillNo,
-                                WorkNo = detail.WorkNo,
-                                CbillNo = detail.CbillNo,
-                                WorkLine = detail.WorkLine,
-                                SuppId = itemBarcodeDetails.SuppId,
-                                SuppNo = itemBarcodeDetails.SuppNo,
-                                Remark = itemBarcodeDetails.Memo,
-                                EbelnK3id = detail.EbelnK3id,
-                                LineK3id = detail.LineK3id,
-                                DepotId = mesDepost.DepotId.ToString(),
-                                itemDabid = itemBarcodeDetails.AboutGuid.ToString()
-                            }).IgnoreColumns(true).ExecuteCommand();
-                        else
-                            db.Updateable<MesInvItemInCItems>()
-                                .SetColumns(it =>
-                                    it.Quantity == it.Quantity + remainingQty)
-                                .Where(it =>
-                                    it.ItemInId == cId &&
-                                    it.ItemId == detail.ItemId &&
-                                    it.DepotId == mesDepost.DepotId.ToString() &&
-                                    it.EbelnK3id == detail.EbelnK3id &&
-                                    it.LineK3id == detail.LineK3id)
-                                .IgnoreColumns(true)
-                                .ExecuteCommand();
 
-                        // Insert new detail into MES_INV_ITEM_IN_C_DETAILS
-                        db.Insertable(new MesInvItemInCDetails
-                        {
-                            ItemInId = cId,
-                            BillNo = cBillNo,
-                            ItemBarcode = itemBarcode,
-                            Quantity = remainingQty,
-                            BarcodeFlag = true,
-                            EpFlag = true,
-                            WorkType = 1,
-                            ItemNo = detail.ItemNo,
-                            SuppId = itemBarcodeDetails.SuppId,
-                            SuppNo = itemBarcodeDetails.SuppNo,
-                            DepotCode = mesDepost.DepotCode,
-                            DepotSectionCode = sectionCode,
-                            ItemSname = itemBarcodeDetails.ItemSname,
-                            Unit = itemBarcodeDetails.Unit,
-                            CreateBy = user,
-                            CreateDate = DateTime.Now,
-                            LastupdateBy = user,
-                            LastupdateDate = DateTime.Now,
-                            Remark = itemBarcodeDetails.Memo,
-                            Ebeln = detail.WorkNo,
-                            WorkNo = detail.WorkNo,
-                            WorkLine = detail.WorkLine,
-                            CbillNo = itemBarcodeDetails.BillNo,
-                            UrgentFlag = detail.UrgentFlag,
-                            BoardStyle = detail.BoardStyle,
-                            TaskNo = detail.WorkNo,
-                            EbelnK3id = detail.EbelnK3id,
-                            LineK3id = detail.LineK3id,
-                            ItemId = detail.ItemId,
-                            ReceiveOrgId = inventory.ReceiveOrgId,
-                            LotNo = cgddDetails.BatchNumber
-                        }).IgnoreColumns(true).ExecuteCommand();
+                    // 妫�鏌ュ弬鏁版槸鍚︿负绌猴紝骞跺湪寮傚父涓樉绀哄疄闄呭��
+                    if (string.IsNullOrEmpty(outMessage) || string.IsNullOrEmpty(outSum))
+                    {
+                        // 鎷兼帴鍙傛暟瀹為檯鍊硷紙澶勭悊 null 鐨勬儏鍐碉級
+                        string messageValue = outMessage ?? "null";
+                        string sumValue = outSum ?? "null";
+                        throw new InvalidOperationException(
+                            $"瀛樺偍杩囩▼杩斿洖鍙傛暟寮傚父锛氳緭鍑烘秷鎭负銆恵messageValue}銆戯紝杈撳嚭鏁伴噺涓恒�恵sumValue}銆�"
+                        );
                     }
-                    else
-                    {
-                        // Partially fulfill remaining quantity
-                        db.Updateable<MesInvItemArnDetail>()
-                            .SetColumns(d => new MesInvItemArnDetail
-                            {
-                                OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
-                            })
-                            .Where(d => d.Guid == detail.Guid)
-                            .IgnoreColumns(true)
-                            .ExecuteCommand();
 
-                        var count = db.Queryable<MesInvItemInCItems>()
-                            .Where(it =>
-                                it.ItemInId == cId &&
-                                    it.ItemId == detail.ItemId &&
-                                    it.DepotId == mesDepost.DepotId.ToString() &&
-                                    it.EbelnK3id == detail.EbelnK3id &&
-                                    it.LineK3id == detail.LineK3id)
-                            .Count();
+                    // 楠岃瘉缁撴灉
+                    if (!int.TryParse(outSum, out int result) || result <= 0)
+                        throw new InvalidOperationException(outMessage);
 
-                        if (count == 0)
-                            db.Insertable(new MesInvItemInCItems
-                            {
-                                ItemInId = cId,
-                                Quantity = cSyQty,
-                                CreateBy = user,
-                                CreateDate = DateTime.Now,
-                                ItemNo = detail.ItemNo,
-                                DepotCode = mesDepost.DepotCode,
-                                ItemSname = itemBarcodeDetails.ItemSname,
-                                Unit = itemBarcodeDetails.Unit,
-                                Ebeln = detail.WorkNo,
-                                BillNo = cBillNo,
-                                WorkNo = detail.WorkNo,
-                                EbelnLineNo = detail.EbelnLine,
-                                CbillNo = detail.CbillNo,
-                                WorkLine = detail.WorkLine,
-                                SuppId = itemBarcodeDetails.SuppId,
-                                SuppNo = itemBarcodeDetails.SuppNo,
-                                Remark = itemBarcodeDetails.Memo,
-                                EbelnK3id = detail.EbelnK3id,
-                                LineK3id = detail.LineK3id,
-                                ItemId = detail.ItemId,
-                                DepotId = mesDepost.DepotId.ToString()
-                            }).IgnoreColumns(true).ExecuteCommand();
-                        else
-                            db.Updateable<MesInvItemInCItems>()
-                                .SetColumns(it =>
-                                    it.Quantity == it.Quantity + cSyQty)
-                                .Where(it =>
-                                    it.ItemInId == cId &&
-                                    it.ItemId == detail.ItemId &&
-                                    it.DepotId == mesDepost.DepotId.ToString() &&
-                                    it.EbelnK3id == detail.EbelnK3id &&
-                                    it.LineK3id == detail.LineK3id)
-                                .IgnoreColumns(true)
-                                .ExecuteCommand();
+                    // 璋冭瘯杈撳嚭
+                    Console.WriteLine($"鏌ヨ鐨勬潯鐮佸��: '{entity.barcode}' (闀垮害: {entity.barcode.Length})");
 
-                        db.Insertable(new MesInvItemInCDetails
-                        {
-                            ItemInId = cId,
-                            BillNo = cBillNo,
-                            ItemBarcode = itemBarcode,
-                            Quantity = cSyQty,
-                            BarcodeFlag = true,
-                            EpFlag = true,
-                            WorkType = 1,
-                            ItemNo = detail.ItemNo,
-                            SuppId = itemBarcodeDetails.SuppId,
-                            SuppNo = itemBarcodeDetails.SuppNo,
-                            DepotCode = mesDepost.DepotCode,
-                            DepotSectionCode = sectionCode,
-                            ItemSname = itemBarcodeDetails.ItemSname,
-                            Unit = itemBarcodeDetails.Unit,
-                            CreateBy = user,
-                            CreateDate = DateTime.Now,
-                            LastupdateBy = user,
-                            LastupdateDate = DateTime.Now,
-                            Remark = itemBarcodeDetails.Memo,
-                            Ebeln = detail.WorkNo,
-                            EbelnLineNo = detail.EbelnLine,
-                            WorkNo = detail.WorkNo,
-                            WorkLine = detail.WorkLine,
-                            CbillNo = itemBarcodeDetails.BillNo,
-                            UrgentFlag = detail.UrgentFlag,
-                            BoardStyle = detail.BoardStyle,
-                            TaskNo = detail.WorkNo,
-                            EbelnK3id = detail.EbelnK3id,
-                            LineK3id = detail.LineK3id,
-                            ItemId = detail.ItemId,
-                            ReceiveOrgId = inventory.ReceiveOrgId,
-                            LotNo = cgddDetails.BatchNumber
-                        }).IgnoreColumns(true).ExecuteCommand();
+                    // 浣跨敤鍙傛暟鍖栨煡璇㈠苟蹇界暐澶у皬鍐欙紙閫傜敤浜庢敮鎸佺殑鏁版嵁搴擄級
+                    var itemBarcodeDetails = Db.Queryable<MesInvItemBarcodes>()
+                        .Where(it => it.ItemBarcode.Trim().ToLower() == entity.barcode.Trim().ToLower())
+                        .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.barcode}' 鐨勫尮閰嶄俊鎭�");
 
-                        cSyQty = 0; // Remaining quantity fulfilled
-                    }
+                    // 璋冭瘯杈撳嚭锛堟鏌ュ�煎拰闀垮害锛�
+                    Console.WriteLine($"鏌ヨ鐨勬潯鐮佸��: '{entity.barcode}' (闀垮害: {entity.barcode.Length})");
+
+                    // 浼樺寲鏌ヨ锛堝幓闄ょ┖鏍煎苟蹇界暐澶у皬鍐欙級
+                    var MesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
+                        .Where(it => it.ItemBarcode.Trim().ToLower() == entity.barcode.Trim().ToLower())
+                        .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.barcode}' 鐨勫尮閰嶇殑鍏ュ簱淇℃伅");
+
+                    // 浠庡叆搴撴潯鐮佷腑鑾峰彇鏈夋晥鐨処temInId
+                    var cId = MesInvItemInCDetails.ItemInId; // 鍋囪瀛樺湪ItemInId灞炴��
+
+                    // 鏌ヨ鐗╂枡姹囨�绘槑缁�
+                    var sql = string.Format(@"
+                    SELECT 
+                        b.Item_No AS ItemNo,
+                        b.Item_Name AS ItemName,
+                        b.Item_Model AS ItemModel,
+                        a.Quantity AS FQty,
+                        b.Item_Id AS FMaterialId,
+                        CONVERT(VARCHAR(36), b.Guid) AS Id
+                    FROM MES_INV_ITEM_IN_C_ITEMS a
+                    LEFT JOIN  Mes_Items b ON a.Item_Id = b.Item_Id
+                   WHERE a.Item_In_Id = '{0}' AND a.Item_Id = '{1}'", cId, itemBarcodeDetails.ItemId);
+
+                    res.ItemInDetails = Db.Ado.SqlQuery<dynamic>(sql);
+
+                    // 鏌ヨ鍏ュ簱鏉$爜鏄庣粏
+                    var sql2 = string.Format(@"
+                    SELECT 
+                        b.Item_No AS ItemNo,
+                        b.Item_Name AS ItemName,
+                        b.Item_Model AS ItemModel,
+                        a.Quantity AS FQty,
+                        b.Item_Id AS FMaterialId,
+                        CONVERT(VARCHAR(36), a.Guid) AS Id,
+                        a.Depot_Section_Code AS kw,
+                        a.Item_Barcode AS barcode
+                    FROM   Mes_Inv_Item_In_C_Details a
+                    LEFT JOIN  Mes_Items b ON a.Item_Id = b.Item_Id
+                    WHERE  a.Item_In_Id = '{0}' AND a.Item_Id = '{1}'", cId, itemBarcodeDetails.ItemId);
+
+                    res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2);
+                    //鏌ヨ宸插叆搴撴�绘暟
+                    var totalCDetailsQuantity = Db.Queryable<MesInvItemInCDetails>()
+                    .Where(it => it.ItemInId == cId)
+                    .Sum(it => it.Quantity);
+                  
+                    res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+
+                    // 璁剧疆杩斿洖淇℃伅
+                    res.Message = outMessage;
+                    
+
+                    return res;
                 }
-
-                db.Insertable(new MesInvBusiness2
+                catch (Exception ex)
                 {
-                    Status = 1,
-                    BillTypeId = billTypeId,
-                    TransactionCode = transactionNo,
-                    BusinessType = 1,
-                    ItemBarcode = itemBarcode,
-                    ItemNo = itemBarcodeDetails.ItemNo,
-                    LotNo = cgddDetails.BatchNumber,
-                    EpFlag = true,
-                    Quantity = itemBarcodeDetails.Quantity,
-                    ToInvDepotsCode = mesDepost.DepotCode,
-                    ToInvDepotSectionsCode = sectionCode,
-                    Description = "閲囪喘鍏ュ簱",
-                    CreateBy = user,
-                    CreateDate = DateTime.Now,
-                    LastupdateBy = user,
-                    LastupdateDate = DateTime.Now,
-                    TaskNo = itemBarcodeDetails.BillNo,
-                    BillNo = cBillNo,
-                    WorkNo = itemBarcodeDetails.WorkNo,
-                    WorkLine = itemBarcodeDetails.WorkLine,
-                    SuppId = itemBarcodeDetails.SuppId,
-                    SuppNo = itemBarcodeDetails.SuppNo,
-                    EbelnK3id = itemBarcodeDetails.EbelnK3id,
-                    LineK3id = itemBarcodeDetails.LineK3id,
-                    ItemId = itemBarcodeDetails.ItemId
-                }).IgnoreColumns(true).ExecuteCommand();
 
-                // Insert into mes_inv_item_stocks
+
+                    // 璁板綍寮傚父鏃ュ織锛堝缓璁坊鍔犳棩蹇楄褰曪級
+                    res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+                    res.SumQuantity = -1;
+                    return res;
+                }
             }
-            else
-            {
-                var detailone = db.Queryable<MesInvItemArnDetail>()
-                    .Where(d =>
-                        d.Guid == itemBarcodeDetails.AboutGuid)
-                    .First();
-
-                // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 MES_INV_ITEM_IN_C_ITEMS 琛�
-                var existingCount = db.Queryable<MesInvItemInCItems>()
-                    .Where(it =>
-                    it.ItemInId == cId &&
-                                    it.ItemId == detailone.ItemId &&
-                                    it.DepotId == mesDepost.DepotId.ToString() &&
-                                    it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
-                    .Count();
-
-                if (existingCount == 0)
-                    // 涓嶅瓨鍦ㄦ椂鎻掑叆鏂拌褰�
-                    db.Insertable(new MesInvItemInCItems
-                    {
-                        ItemInId = cId,
-                        Quantity = itemBarcodeDetails.Quantity,
-                        CreateBy = user,
-                        CreateDate = DateTime.Now,
-                        ItemNo = itemBarcodeDetails.ItemNo,
-                        DepotCode = mesDepost.DepotCode,
-                        ItemSname = itemBarcodeDetails.ItemSname,
-                        Unit = itemBarcodeDetails.Unit,
-                        Ebeln = itemBarcodeDetails.WorkNo,
-                        BillNo = cBillNo,
-                        WorkNo = itemBarcodeDetails.WorkNo,
-                        EbelnLineNo = itemBarcodeDetails.WorkLine,
-                        CbillNo = itemBarcodeDetails.BillNo,
-                        WorkLine = itemBarcodeDetails.WorkLine,
-                        SuppId = itemBarcodeDetails.SuppId,
-                        SuppNo = itemBarcodeDetails.SuppNo,
-                        Remark = itemBarcodeDetails.Memo,
-                        EbelnK3id = itemBarcodeDetails.EbelnK3id,
-                        LineK3id = itemBarcodeDetails.LineK3id,
-                        ItemId = itemBarcodeDetails.ItemId,
-                        DepotId = mesDepost.DepotId.ToString(),
-                        itemDabid = itemBarcodeDetails.AboutGuid.ToString()
-                    }).IgnoreColumns(true).ExecuteCommand();
-                else
-                    // 瀛樺湪鏃舵洿鏂版暟閲�
-                    db.Updateable<MesInvItemInCItems>()
-                        .SetColumns(it => new MesInvItemInCItems
-                        {
-                            Quantity = SqlFunc.IsNull(it.Quantity, 0) + itemBarcodeDetails.Quantity // 纭繚 Quantity 涓嶄负 null
-                        })
-                        .Where(it =>
-                                    it.ItemInId == cId &&
-                                    it.ItemId == detailone.ItemId &&
-                                    it.DepotId == mesDepost.DepotId.ToString() &&
-                                    it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
-                        //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns
-                        .ExecuteCommand();
-
-                // 鎻掑叆 mes_inv_item_in_c_details 琛�
-                db.Insertable(new MesInvItemInCDetails
-                {
-                    ItemInId = cId,
-                    BillNo = cBillNo,
-                    ItemBarcode = itemBarcode,
-                    Quantity = itemBarcodeDetails.Quantity,
-                    BarcodeFlag = true,
-                    EpFlag = true,
-                    WorkType = 1,
-                    ItemNo = itemBarcodeDetails.ItemNo,
-                    LotNo = cgddDetails.BatchNumber,
-                    SuppId = itemBarcodeDetails.SuppId,
-                    SuppNo = itemBarcodeDetails.SuppNo,
-                    DepotCode = mesDepost.DepotCode,
-                    DepotSectionCode = sectionCode,
-                    ItemSname = itemBarcodeDetails.ItemSname,
-                    Unit = itemBarcodeDetails.Unit,
-                    CreateBy = user,
-                    CreateDate = DateTime.Now,
-                    LastupdateBy = user,
-                    LastupdateDate = DateTime.Now,
-                    Remark = itemBarcodeDetails.Memo,
-                    Ebeln = itemBarcodeDetails.Mblnr,
-                    EbelnLineNo = itemBarcodeDetails.Zeile,
-                    WorkNo = itemBarcodeDetails.WorkNo,
-                    WorkLine = itemBarcodeDetails.WorkLine,
-                    CbillNo = itemBarcodeDetails.BillNo,
-                    UrgentFlag = itemBarcodeDetails.UrgentFlag,
-                    BoardStyle = itemBarcodeDetails.BoardStyle,
-                    TaskNo = itemBarcodeDetails.TaskNo,
-                    EbelnK3id = itemBarcodeDetails.EbelnK3id,
-                    LineK3id = itemBarcodeDetails.LineK3id,
-                    ItemId = itemBarcodeDetails.ItemId,
-                    Ischeck = true,
-                    CheckDate = inventoryDetails.CheckDate,
-                    CheckRes = inventoryDetails.CheckRes,
-                    CheckStates = inventoryDetails.CheckStates,
-                    ReceiveOrgId = inventory.ReceiveOrgId,
-                    DepotId = Convert.ToInt64(mesDepost.DepotId.ToString())
-                }).IgnoreColumns(true).ExecuteCommand();
-
-                // 鎻掑叆 mes_inv_business2 琛�
-                db.Insertable(new MesInvBusiness2
-                {
-                    Status = 1,
-                    BillTypeId = billTypeId,
-                    TransactionCode = transactionNo,
-                    BusinessType = 1,
-                    ItemBarcode = itemBarcode,
-                    ItemNo = itemBarcodeDetails.ItemNo,
-                    LotNo = itemBarcodeDetails.LotNo,
-                    EpFlag = true,
-                    Quantity = itemBarcodeDetails.Quantity,
-                    FromInvDepotsCode = null,
-                    FromInvDepotSectionsCode = null,
-                    ToInvDepotsCode = mesDepost.DepotCode,
-                    ToInvDepotSectionsCode = sectionCode,
-                    Description = "閲囪喘鍏ュ簱",
-                    CreateBy = user,
-                    CreateDate = DateTime.Now,
-                    LastupdateBy = user,
-                    LastupdateDate = DateTime.Now,
-                    TaskNo = itemBarcodeDetails.TaskNo,
-                    BillNo = cBillNo,
-                    WorkNo = itemBarcodeDetails.WorkNo,
-                    WorkLine = itemBarcodeDetails.WorkLine,
-                    SuppId = itemBarcodeDetails.SuppId,
-                    SuppNo = itemBarcodeDetails.SuppNo,
-                    EbelnK3id = itemBarcodeDetails.EbelnK3id,
-                    LineK3id = itemBarcodeDetails.LineK3id,
-                    ItemId = itemBarcodeDetails.ItemId
-                }).IgnoreColumns(true).ExecuteCommand();
-
-                // 鎻掑叆 mes_inv_item_stocks 琛�
-            }
-
-
-
-            db.Insertable(new MesInvItemStocks
-            {
-                TaskNo = itemBarcodeDetails.TaskNo,
-                ItemBarcode = itemBarcode,
-                ItemNo = cgddDetails.BatchNumber,
-                LotNo = itemBarcodeDetails.LotNo,
-                Quantity = itemBarcodeDetails.Quantity,
-                DepotsCode = mesDepost.DepotCode,
-                DepotSectionsCode = sectionCode,
-                CheckDate = inventoryDetails.CheckDate,
-                IndepDate = DateTime.Now,
-                IqcStatus = inventoryDetails.CheckStates,
-                BoardStyle = itemBarcodeDetails.BoardStyle,
-                WorkNo = itemBarcodeDetails.WorkNo,
-                WorkLine = itemBarcodeDetails.WorkLine,
-                SuppId = itemBarcodeDetails.SuppId,
-                SuppNo = itemBarcodeDetails.SuppNo,
-                EbelnK3id = itemBarcodeDetails.EbelnK3id,
-                LineK3id = itemBarcodeDetails.LineK3id,
-                ItemId = itemBarcodeDetails.ItemId,
-                BillNo = itemBarcodeDetails.BillNo,
-                DepotId = Convert.ToInt32(mesDepost.DepotId),
-                OwnerId = cgddDetails.DemandOrg,
-                OwnerType = owner_type,
-                StockOrgId = mesDepost.FSubsidiary,
-                IndepUserCode = user
-            }).IgnoreColumns(true).ExecuteCommand();
-
-            itemBarcodeDetails.Hbdy ??= 0;
-
-            if (itemBarcodeDetails.Hbdy != 1)
-            {
-                //鏇存柊鏀舵枡鍗曟槑缁�
-                db.Updateable<MesInvItemArnDetail>()
-                    .SetColumns(d => new MesInvItemArnDetail
-                    {
-                        OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
-                    })
-                    .Where(d => d.Guid == itemBarcodeDetails.AboutGuid)
-                    .ExecuteCommand();
-
-                var first = db
-                    .Queryable<MesInvItemArnDetail>()
-                    .Where(b =>
-                        b.Guid == itemBarcodeDetails.AboutGuid)
-                    .Select(b => new
-                    {
-                        TotalQuantity =
-                            SqlFunc.AggregateSum(b.Quantity),
-                        TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
-                    })
-                    .First();
-
-                var TotalQuantity = first.TotalQuantity ?? 0;
-                var TotalOkRkQty = first.TotalOkRkQty ?? 0;
-
-                if (TotalQuantity == TotalOkRkQty)
-                    db.Updateable<MesInvItemArnDetail>()
-                        .SetColumns(s => s.IsdepsIn == true)
-                        .Where(s => s.Guid == itemBarcodeDetails.AboutGuid)
-                        .ExecuteCommand();
-
-
-                var totalSummary = db.Queryable<MesInvItemArnDetail>()
-                    .InnerJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
-                    .Where((b, a) =>
-                        a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
-                    .Select((b, a) => new
-                    {
-                        TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
-                        TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
-                    })
-                    .First();
-
-                if ((totalSummary.TotalQuantity ?? 0) ==
-                    (totalSummary.TotalOkRkQty ?? 0))
-                    db.Updateable<MesInvItemArn>()
-                        .SetColumns(it => it.Status == 1)
-                        .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
-                        .ExecuteCommand();
-
-                var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
-                    .Where(it => it.ItemId == itemBarcodeDetails.ItemId &&
-                                 it.WorkNo == itemBarcodeDetails.WorkNo &&
-                                 it.ItemInId == cId)
-                    .Sum(it => it.Quantity);
-
-                var detailSummary = db.Queryable<MesInvItemArnDetail>()
-                    .Where(it => it.Guid == inventoryDetails.Guid)
-                    .Select(it => new
-                    {
-                        TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
-                        TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
-                    })
-                    .First();
-
-                var comeQty = detailSummary.TotalComeQty ?? 0;
-                var invQty = detailSummary.TotalInvQty ?? 0;
-                var diffQty = comeQty - invQty;
-
-                if (detailSummary == null)
-                    throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
-
-                var mesItems = db.Queryable<MesItems>()
-                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
-
-                //result.Message =
-                //    $"鏉$爜鏁伴噺 {itemBarcodeDetails.Quantity},閲囪喘璁㈠崟 {itemBarcodeDetails.WorkNo} 椤规 {itemBarcodeDetails.WorkLine} 鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
-                result.Message = $"鐗╂枡{mesItems.ItemNo}鍏ュ簱鎴愬姛鏁伴噺{itemBarcodeDetails.Quantity.ToString()}";
-
-                result.itemDetail = mesItems;
-
-                result.ItemInDetails = db.Queryable<MesInvItemInCItems,MesItems>(
-                    (a, b) => new JoinQueryInfos(
-                    JoinType.Left,
-                    a.ItemId == b.ItemId)
-                    )
-                    .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
-                    .Select<dynamic>((a, b) => new 
-                    {
-                        ItemNo = b.ItemNo,
-                        ItemName = b.ItemName,
-                        ItemModel = b.ItemModel,
-                        FQty = a.Quantity, // 鐢宠鏁伴噺
-                        FMaterialId = b.ItemId,
-                        Id = b.Guid.ToString()
-                    })
-                    .ToList();
-
-                result.ItemBarCDetails = db.Queryable<MesInvItemInCDetails, MesItems>(
-                    (a, b) => new JoinQueryInfos(
-                    JoinType.Left,
-                    a.ItemId == b.ItemId)
-                    )
-                    .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
-                    .Select<dynamic>((a, b) => new
-                    {
-                        ItemNo = b.ItemNo,
-                        ItemName = b.ItemName,
-                        ItemModel = b.ItemModel,
-                        FQty = a.Quantity, // 鐢宠鏁伴噺
-                        FMaterialId = b.ItemId,
-                        Id = a.Guid.ToString(),
-                        kw = a.DepotSectionCode,
-                        barcode = a.ItemBarcode
-                    })
-                    .ToList();
-
-
-                //result.ItemNo = mesItems.ItemNo;
-                result.SumQuantity = Convert.ToDecimal(invQty);
-
-                return 1;
-            }
-            else
-            {
-                // Step 1: Check if bill needs to be closed (status update)
-                var totalSummary = db.Queryable<MesInvItemArnDetail>()
-                    .LeftJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
-                    .Where((b, a) =>
-                        a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
-                    .Select((b, a) => new
-                    {
-                        TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
-                        TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
-                    })
-                    .First();
-
-                if ((totalSummary.TotalQuantity ?? 0) ==
-                    (totalSummary.TotalOkRkQty ?? 0))
-                    db.Updateable<MesInvItemArn>()
-                        .SetColumns(it => it.Status == 1)
-                        .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
-                        .ExecuteCommand();
-
-                // Step 2: Calculate total sum from `mes_inv_item_in_c_details`
-                var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
-                    .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
-                    .Sum(it => it.Quantity);
-
-                // Step 3: Calculate comeQty and invQty from `mes_inv_item_arn_detail`
-                var detailSummary = db.Queryable<MesInvItemArnDetail>()
-                    .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
-                    .Select(it => new
-                    {
-                        TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
-                        TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
-                    })
-                    .First();
-
-                if (detailSummary == null)
-                    throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
-
-                var comeQty = detailSummary.TotalComeQty ?? 0;
-                var invQty = detailSummary.TotalInvQty ?? 0;
-                var diffQty = comeQty - invQty;
-
-                var mesItems = db.Queryable<MesItems>()
-                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
-
-                // Step 5: Combine final result
-                result.Message =
-                    $" 鏉$爜鏁伴噺:{itemBarcodeDetails.Quantity},鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
-
-
-                //result.ItemNo = mesItems.ItemNo;
-                result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
-            }
-
-            var mesInvItemInCDetails =
-                base.GetSingle(it => it.ItemBarcode == entity.barcode);
-
-            if (mesInvItemInCDetails == null)
-                throw new Exception("鐗╂枡鍏ュ簱鏉$爜鏄庣粏涓嶅瓨鍦�"); // 鎶涘嚭寮傚父浠ヤ緵鍓嶅彴澶勭悊
-
-            // 鍒涘缓 鎻掑叆鏃ュ織
-            var logService = new LogService();
-            var LogMsg = "銆怭DA銆戦噰璐叆搴撱�傛潯鐮併��" + entity.barcode + "銆� 鍏ュ簱鍗曞彿銆�" + cBillNo + "銆�";
-            logService.CreateLog(db, entity.userName, inventory.Guid.ToString(), "MES_INV_ITEM_ARN", LogMsg, inventory.BillNo);
-
-            return 1;
-        });
-
-        var purchaseInventory = getPurchaseInventory(entity);
-
-        
-        //result.ItemInDetails = purchaseInventory.ItemInDetails;
-        //result.InvItemInCDetails = purchaseInventory.InvItemInCDetails;
-
-        return result;
+        }
     }
 
+
+
+
+    /*  public ItemInBaseModel SaveBarCodes(WarehouseQuery entity)
+      {
+          string functionName = "閲囪喘鍏ュ簱", fieldName = null, inFieldVal = null;
+          string user = entity.userName,
+              sectionCode = entity.sectionCode,
+              itemBarcode = entity.barcode;
+          var transactionNo = "101";
+          int? billTypeId = 100, num = 0, num2 = 0;
+          var freeze = 0;
+          decimal cSyQty = 0;
+
+          if (string.IsNullOrEmpty(sectionCode))
+              throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
+
+          var itemBarcodeDetails = Db.Queryable<MesInvItemBarcodes>()
+              .Where(it => it.ItemBarcode == itemBarcode)
+              .First();
+
+          if (itemBarcodeDetails == null)
+              throw new Exception("鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
+
+          if (string.IsNullOrEmpty(itemBarcodeDetails.Memo) || itemBarcodeDetails.Memo != "閲囪喘鍏ュ簱")
+              throw new Exception("姝ゆ潯鐮佷笉灞炰簬鍒拌揣鏉$爜锛屾棤娉曠敤閲囪喘鍏ュ簱锛�");
+
+          var inventory = Db.Queryable<MesInvItemArn>()
+              .Where(it => it.BillNo == itemBarcodeDetails.BillNo && it.Fstatus == true )
+              .First();
+
+          if (inventory == null)
+              throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟垨鏈鏍革紒");
+
+          // var inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
+          //     .Where(it => it.ParentGuid == inventory.Guid
+          //                  && it.ItemId == itemBarcodeDetails.ItemId
+          //                  && it.EbelnLine == itemBarcodeDetails.WorkLine
+          //                  && it.Ebeln == itemBarcodeDetails.WorkNo)
+          //     .First();
+
+          var inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
+              .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
+              .First();
+
+          var cgddDetails = Db.Queryable<MesRohInData>()
+              .Where(it => it.EbelnK3id == inventoryDetails.LineK3id)
+              .First();
+
+          if (cgddDetails == null)
+              throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲閲囪喘璁㈠崟鏄庣粏锛�");
+
+          if (inventoryDetails == null)
+              throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
+
+          //鑾峰彇鍒拌揣妫�楠屾槑缁�
+          var sqlParams = new List<SugarParameter> { new("@dhmxGuid", itemBarcodeDetails.AboutGuid) };
+          var sql1 = @"SELECT *FROM v_dhmx WHERE dhmxGuid = @dhmxGuid ";
+          var dhjymx = Db.Ado.SqlQuery<vDhmx>(sql1, sqlParams).First();
+          //鍒ゅ畾妫�楠岃兘鍚﹀叆搴�
+          if (dhjymx.CanStore!= 1)
+          {
+              throw new Exception($"璇ユ潯鐮佸搴旂殑鏀舵枡鍗曟楠岀粨鏋�:銆恵dhjymx.InspectionResult}銆�,鍒ゅ畾缁撴灉锛氥�恵dhjymx.JudgmentResult}銆戯紝澶勭悊鎰忚锛氥�恵dhjymx.HandlingSuggestion}銆�,鏃犳硶鍏ュ簱");
+          }
+
+          var depotCode = Db.Queryable<MesDepotSections>()
+              .Where(it => it.DepotSectionCode == sectionCode)
+              .Select(it => it.DepotGuid)
+              .First();
+
+          var depotCode2 = Db.Queryable<MesInvItemArn>()
+              .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
+              .Select(it => it.DepotsId)
+              .First();
+
+          MesDepots mesDepost = null;
+
+          var checkGuid = UtilityHelper.CheckGuid(depotCode);
+          if (checkGuid && depotCode != null)
+          {
+              mesDepost = Db.Queryable<MesDepots>()
+                  .Where(s => s.DepotId.ToString() == depotCode).First();
+
+              // if (depotCode != mesDepost.Guid)
+              //     throw new Exception("鎵弿搴撲綅涓庨噰璐叆搴撳簱浣嶄笉涓�鑷达紒");
+          }
+          else
+          {
+              throw new Exception("搴撲綅缂栫爜 " + sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
+          }
+
+
+          //num = Db.Queryable<MesInvItemInCDetails>()
+          //    .Where(it => it.ItemBarcode == itemBarcode)
+          //    .Count();
+
+          //if (num > 0)
+          //    throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚锛岃鏍稿锛�");
+
+          //num = Db.Queryable<MesInvItemStocks>()
+          //    .Where(it => it.ItemBarcode == itemBarcode)
+          //    .Count();
+
+          //if (num > 0)
+          //    throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱锛岃鏍稿锛�");
+
+          var wmsManager = new WmsBaseMangeer();
+          // 鏂板鍏ュ簱鏍¢獙锛堣皟鐢ㄥ瓨鍌ㄨ繃绋嬶級
+          var checkResult = wmsManager.pdaInvJY(
+              db: Db,
+              edtUserNo: entity.userName,
+              barcode: entity.barcode,
+              sectionCode: sectionCode,
+              stockId: mesDepost.DepotId.ToString(),
+              stockOrgId: mesDepost.FSubsidiary,
+              billNo: "", // 鏍规嵁瀹為檯鍗曟嵁鍙蜂紶鍊�
+              transactionNo: "101" // 浜嬪姟绫诲瀷涓庡瓨鍌ㄨ繃绋嬪尮閰�
+          );
+
+          if (Convert.ToInt32(checkResult.result) < 1)
+              throw new Exception($"鍏ュ簱鏍¢獙澶辫触锛歿checkResult.strMsg}");
+
+
+
+          //num = Db.Queryable<MesInvItemArn>()
+          //    .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
+          //    .InnerJoin<MesInvItemArnDetail>((a, b) =>
+          //        b.ParentGuid == a.Guid &&
+          //        b.ItemId == itemBarcodeDetails.ItemId && b.Ischeck == 1)
+          //    .Count();
+
+          //num2 = Db.Queryable<MesInvItemArn>()
+          //    .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
+          //    .InnerJoin<MesInvItemArnDetail>((a, b) => b.ParentGuid == a.Guid
+          //        && b.ItemId == itemBarcodeDetails.ItemId
+          //        && (b.CheckRes == "鍚堟牸" || b.CheckStates == "鐗归噰鐩存帴浣跨敤"))
+          //    .Count();
+
+          //switch (num)
+          //{
+          //    case 0 when num2 == 0:
+          //    case > 0 when num2 == 0:
+          //        freeze = 1;
+          //        break;
+          //    case 0 when num2 > 0:
+          //        throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁鏈夐棶棰橈紒");
+          //}
+
+
+          // 鍒ゆ柇璐т富绫诲瀷
+          var owner_type = wmsManager.GetOwnerType(cgddDetails.DemandOrg);
+          // if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.DemandOrg))
+          // {
+          //     owner_type = "BD_OwnerOrg";
+          // }
+          // else
+          // {
+          //     // 绗簩灞傚垽鏂細妫�鏌� MES_CUSTOMER
+          //     if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
+          //     {
+          //         owner_type = "BD_Customer";
+          //     }
+          //     else
+          //     {
+          //         // 绗笁灞傚垽鏂細妫�鏌� MES_SUPPLIER
+          //         if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
+          //         {
+          //             owner_type = "BD_Supplier";
+          //         }
+          //         else
+          //         {
+
+          //             // 绗洓灞傚垽鏂細鍐嶆妫�鏌� SYS_ORGANIZATION
+          //             if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.ReceivingOrg))
+          //             {
+          //                 owner_type = "BD_OwnerOrg";
+          //             }
+          //             else
+          //             {
+          //                 throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁瀵瑰簲鐨勯渶姹傜粍缁囨湁闂锛�");
+          //             }
+          //         }
+          //     }
+          //}
+
+          var result = new ItemInBaseModel();
+
+          UseTransaction(db =>
+          {
+              var existingRecord = db.Queryable<MesInvItemIns>()
+                  .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
+                               && it.TaskNo == itemBarcodeDetails.BillNo
+                               && it.Status == 0
+                               && it.TransctionNo == transactionNo
+                               && it.CreateBy == entity.userName
+                               && it.BillTypeId == billTypeId
+                               && it.DepotsId == mesDepost.DepotId)
+                  .Select(it => new
+                  {
+                      it.Guid,
+                      it.BillNo
+                  })
+                  .First();
+
+              var cId = Guid.Empty;
+              string cBillNo = null;
+
+              if (existingRecord != null)
+              {
+                  // If record exists, assign values
+                  cId = existingRecord.Guid;
+                  cBillNo = existingRecord.BillNo;
+              }
+              else
+              {
+                  cId = Guid.NewGuid();
+                  cBillNo = BillNo.GetBillNo("CGRK(閲囪喘鍏ュ簱)");
+
+                  var suppNo = db.Queryable<MesSupplier>()
+                      .Where(s => s.Id.ToString() == inventory.SuppId).First();
+
+                  db.Insertable(new MesInvItemIns
+                  {
+                      Guid = cId,
+                      BillNo = cBillNo,
+                      BillTypeId = billTypeId,
+                      InsDate = DateTime.Now,
+                      DepotsId = mesDepost.DepotId,
+                      DepotsCode = mesDepost.DepotCode,
+                      TransctionNo = transactionNo,
+                      SuppId = suppNo.Id.ToString(),
+                      SuppNo = suppNo.SuppNo,
+                      CreateBy = user,
+                      CreateDate = DateTime.Now,
+                      LastupdateBy = user,
+                      LastupdateDate = DateTime.Now,
+                      UrgentFlag = itemBarcodeDetails.UrgentFlag.GetValueOrDefault() ? "1" : "0",
+                      CbillNo = itemBarcodeDetails.BillNo,
+                      Fstatus = 0,
+                      Status = 0,
+                      ReceiveOrgId = inventory.ReceiveOrgId,
+                      InType = "閲囪喘鍏ュ簱",
+                      TaskNo = itemBarcodeDetails.BillNo
+                      //WorkNo = itemBarcodeDetails.WorkNo
+                  }).IgnoreColumns(true).ExecuteCommand();
+              }
+
+              cSyQty = itemBarcodeDetails.Quantity.Value;
+
+              entity.id = cId.ToString();
+              entity.PageIndex = 1;
+              entity.Limit = 1;
+
+              itemBarcodeDetails.Hbdy ??= 0;
+              if (itemBarcodeDetails.Hbdy == 1)
+              {
+                  var details = db.Queryable<MesInvItemArnDetail>()
+                      .Where(d =>
+                          d.CbillNo == itemBarcodeDetails.BillNo &&
+                          d.Quantity != d.OkRkqty &&
+                          d.ItemId == itemBarcodeDetails.ItemId)
+                      .ToList();
+
+
+                  foreach (var detail in details)
+                  {
+                      if (cSyQty == 0) break;
+
+                      var remainingQty = detail.Quantity - (detail.OkRkqty ?? 0);
+                      if (remainingQty <= cSyQty)
+                      {
+                          // Update detail
+                          db.Updateable<MesInvItemArnDetail>()
+                              .SetColumns(d => new MesInvItemArnDetail
+                              {
+                                  OkRkqty = (int)d.Quantity,
+                                  IsdepsIn = true
+                              })
+                              .Where(d => d.Guid == detail.Guid)
+                              .IgnoreColumns(true)
+                              .ExecuteCommand();
+
+                          // Check if already inserted
+                          var count = db.Queryable<MesInvItemInCItems>()
+                              .Where(it =>
+                                  it.ItemInId == cId &&
+                                      it.ItemId == detail.ItemId &&
+                                      it.DepotId == mesDepost.DepotId.ToString() &&
+                                      it.EbelnK3id == detail.EbelnK3id &&
+                                      it.LineK3id == detail.LineK3id)
+                              .Count();
+
+                          cSyQty -= remainingQty.Value;
+
+                          if (count == 0)
+                              // Insert new item into MES_INV_ITEM_IN_C_ITEMS
+                              db.Insertable(new MesInvItemInCItems
+                              {
+                                  ItemInId = cId,
+                                  Quantity = remainingQty,
+                                  CreateBy = user,
+                                  CreateDate = DateTime.Now,
+                                  ItemId = detail.ItemId,
+                                  DepotCode = mesDepost.DepotCode,
+                                  ItemSname = itemBarcodeDetails.ItemSname,
+                                  Unit = itemBarcodeDetails.Unit,
+                                  Ebeln = detail.Ebeln,
+                                  BillNo = cBillNo,
+                                  WorkNo = detail.WorkNo,
+                                  CbillNo = detail.CbillNo,
+                                  WorkLine = detail.WorkLine,
+                                  SuppId = itemBarcodeDetails.SuppId,
+                                  SuppNo = itemBarcodeDetails.SuppNo,
+                                  Remark = itemBarcodeDetails.Memo,
+                                  EbelnK3id = detail.EbelnK3id,
+                                  LineK3id = detail.LineK3id,
+                                  DepotId = mesDepost.DepotId.ToString(),
+                                  itemDabid = itemBarcodeDetails.AboutGuid.ToString()
+                              }).IgnoreColumns(true).ExecuteCommand();
+                          else
+                              db.Updateable<MesInvItemInCItems>()
+                                  .SetColumns(it =>
+                                      it.Quantity == it.Quantity + remainingQty)
+                                  .Where(it =>
+                                      it.ItemInId == cId &&
+                                      it.ItemId == detail.ItemId &&
+                                      it.DepotId == mesDepost.DepotId.ToString() &&
+                                      it.EbelnK3id == detail.EbelnK3id &&
+                                      it.LineK3id == detail.LineK3id)
+                                  .IgnoreColumns(true)
+                                  .ExecuteCommand();
+
+                          // Insert new detail into MES_INV_ITEM_IN_C_DETAILS
+                          db.Insertable(new MesInvItemInCDetails
+                          {
+                              ItemInId = cId,
+                              BillNo = cBillNo,
+                              ItemBarcode = itemBarcode,
+                              Quantity = remainingQty,
+                              BarcodeFlag = true,
+                              EpFlag = true,
+                              WorkType = 1,
+                              ItemNo = detail.ItemNo,
+                              SuppId = itemBarcodeDetails.SuppId,
+                              SuppNo = itemBarcodeDetails.SuppNo,
+                              DepotCode = mesDepost.DepotCode,
+                              DepotSectionCode = sectionCode,
+                              ItemSname = itemBarcodeDetails.ItemSname,
+                              Unit = itemBarcodeDetails.Unit,
+                              CreateBy = user,
+                              CreateDate = DateTime.Now,
+                              LastupdateBy = user,
+                              LastupdateDate = DateTime.Now,
+                              Remark = itemBarcodeDetails.Memo,
+                              Ebeln = detail.WorkNo,
+                              WorkNo = detail.WorkNo,
+                              WorkLine = detail.WorkLine,
+                              CbillNo = itemBarcodeDetails.BillNo,
+                              UrgentFlag = detail.UrgentFlag,
+                              BoardStyle = detail.BoardStyle,
+                              TaskNo = detail.WorkNo,
+                              EbelnK3id = detail.EbelnK3id,
+                              LineK3id = detail.LineK3id,
+                              ItemId = detail.ItemId,
+                              ReceiveOrgId = inventory.ReceiveOrgId,
+                              LotNo = cgddDetails.BatchNumber
+                          }).IgnoreColumns(true).ExecuteCommand();
+                      }
+                      else
+                      {
+                          // Partially fulfill remaining quantity
+                          db.Updateable<MesInvItemArnDetail>()
+                              .SetColumns(d => new MesInvItemArnDetail
+                              {
+                                  OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
+                              })
+                              .Where(d => d.Guid == detail.Guid)
+                              .IgnoreColumns(true)
+                              .ExecuteCommand();
+
+                          var count = db.Queryable<MesInvItemInCItems>()
+                              .Where(it =>
+                                  it.ItemInId == cId &&
+                                      it.ItemId == detail.ItemId &&
+                                      it.DepotId == mesDepost.DepotId.ToString() &&
+                                      it.EbelnK3id == detail.EbelnK3id &&
+                                      it.LineK3id == detail.LineK3id)
+                              .Count();
+
+                          if (count == 0)
+                              db.Insertable(new MesInvItemInCItems
+                              {
+                                  ItemInId = cId,
+                                  Quantity = cSyQty,
+                                  CreateBy = user,
+                                  CreateDate = DateTime.Now,
+                                  ItemNo = detail.ItemNo,
+                                  DepotCode = mesDepost.DepotCode,
+                                  ItemSname = itemBarcodeDetails.ItemSname,
+                                  Unit = itemBarcodeDetails.Unit,
+                                  Ebeln = detail.WorkNo,
+                                  BillNo = cBillNo,
+                                  WorkNo = detail.WorkNo,
+                                  EbelnLineNo = detail.EbelnLine,
+                                  CbillNo = detail.CbillNo,
+                                  WorkLine = detail.WorkLine,
+                                  SuppId = itemBarcodeDetails.SuppId,
+                                  SuppNo = itemBarcodeDetails.SuppNo,
+                                  Remark = itemBarcodeDetails.Memo,
+                                  EbelnK3id = detail.EbelnK3id,
+                                  LineK3id = detail.LineK3id,
+                                  ItemId = detail.ItemId,
+                                  DepotId = mesDepost.DepotId.ToString()
+                              }).IgnoreColumns(true).ExecuteCommand();
+                          else
+                              db.Updateable<MesInvItemInCItems>()
+                                  .SetColumns(it =>
+                                      it.Quantity == it.Quantity + cSyQty)
+                                  .Where(it =>
+                                      it.ItemInId == cId &&
+                                      it.ItemId == detail.ItemId &&
+                                      it.DepotId == mesDepost.DepotId.ToString() &&
+                                      it.EbelnK3id == detail.EbelnK3id &&
+                                      it.LineK3id == detail.LineK3id)
+                                  .IgnoreColumns(true)
+                                  .ExecuteCommand();
+
+                          db.Insertable(new MesInvItemInCDetails
+                          {
+                              ItemInId = cId,
+                              BillNo = cBillNo,
+                              ItemBarcode = itemBarcode,
+                              Quantity = cSyQty,
+                              BarcodeFlag = true,
+                              EpFlag = true,
+                              WorkType = 1,
+                              ItemNo = detail.ItemNo,
+                              SuppId = itemBarcodeDetails.SuppId,
+                              SuppNo = itemBarcodeDetails.SuppNo,
+                              DepotCode = mesDepost.DepotCode,
+                              DepotSectionCode = sectionCode,
+                              ItemSname = itemBarcodeDetails.ItemSname,
+                              Unit = itemBarcodeDetails.Unit,
+                              CreateBy = user,
+                              CreateDate = DateTime.Now,
+                              LastupdateBy = user,
+                              LastupdateDate = DateTime.Now,
+                              Remark = itemBarcodeDetails.Memo,
+                              Ebeln = detail.WorkNo,
+                              EbelnLineNo = detail.EbelnLine,
+                              WorkNo = detail.WorkNo,
+                              WorkLine = detail.WorkLine,
+                              CbillNo = itemBarcodeDetails.BillNo,
+                              UrgentFlag = detail.UrgentFlag,
+                              BoardStyle = detail.BoardStyle,
+                              TaskNo = detail.WorkNo,
+                              EbelnK3id = detail.EbelnK3id,
+                              LineK3id = detail.LineK3id,
+                              ItemId = detail.ItemId,
+                              ReceiveOrgId = inventory.ReceiveOrgId,
+                              LotNo = cgddDetails.BatchNumber
+                          }).IgnoreColumns(true).ExecuteCommand();
+
+                          cSyQty = 0; // Remaining quantity fulfilled
+                      }
+                  }
+
+                  db.Insertable(new MesInvBusiness2
+                  {
+                      Status = 1,
+                      BillTypeId = billTypeId,
+                      TransactionCode = transactionNo,
+                      BusinessType = 1,
+                      ItemBarcode = itemBarcode,
+                      ItemNo = itemBarcodeDetails.ItemNo,
+                      LotNo = cgddDetails.BatchNumber,
+                      EpFlag = true,
+                      Quantity = itemBarcodeDetails.Quantity,
+                      ToInvDepotsCode = mesDepost.DepotCode,
+                      ToInvDepotSectionsCode = sectionCode,
+                      Description = "閲囪喘鍏ュ簱",
+                      CreateBy = user,
+                      CreateDate = DateTime.Now,
+                      LastupdateBy = user,
+                      LastupdateDate = DateTime.Now,
+                      TaskNo = itemBarcodeDetails.BillNo,
+                      BillNo = cBillNo,
+                      WorkNo = itemBarcodeDetails.WorkNo,
+                      WorkLine = itemBarcodeDetails.WorkLine,
+                      SuppId = itemBarcodeDetails.SuppId,
+                      SuppNo = itemBarcodeDetails.SuppNo,
+                      EbelnK3id = itemBarcodeDetails.EbelnK3id,
+                      LineK3id = itemBarcodeDetails.LineK3id,
+                      ItemId = itemBarcodeDetails.ItemId
+                  }).IgnoreColumns(true).ExecuteCommand();
+
+                  // Insert into mes_inv_item_stocks
+              }
+              else
+              {
+                  var detailone = db.Queryable<MesInvItemArnDetail>()
+                      .Where(d =>
+                          d.Guid == itemBarcodeDetails.AboutGuid)
+                      .First();
+
+                  // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 MES_INV_ITEM_IN_C_ITEMS 琛�
+                  var existingCount = db.Queryable<MesInvItemInCItems>()
+                      .Where(it =>
+                      it.ItemInId == cId &&
+                                      it.ItemId == detailone.ItemId &&
+                                      it.DepotId == mesDepost.DepotId.ToString() &&
+                                      it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
+                      .Count();
+
+                  if (existingCount == 0)
+                      // 涓嶅瓨鍦ㄦ椂鎻掑叆鏂拌褰�
+                      db.Insertable(new MesInvItemInCItems
+                      {
+                          ItemInId = cId,
+                          Quantity = itemBarcodeDetails.Quantity,
+                          CreateBy = user,
+                          CreateDate = DateTime.Now,
+                          ItemNo = itemBarcodeDetails.ItemNo,
+                          DepotCode = mesDepost.DepotCode,
+                          ItemSname = itemBarcodeDetails.ItemSname,
+                          Unit = itemBarcodeDetails.Unit,
+                          Ebeln = itemBarcodeDetails.WorkNo,
+                          BillNo = cBillNo,
+                          WorkNo = itemBarcodeDetails.WorkNo,
+                          EbelnLineNo = itemBarcodeDetails.WorkLine,
+                          CbillNo = itemBarcodeDetails.BillNo,
+                          WorkLine = itemBarcodeDetails.WorkLine,
+                          SuppId = itemBarcodeDetails.SuppId,
+                          SuppNo = itemBarcodeDetails.SuppNo,
+                          Remark = itemBarcodeDetails.Memo,
+                          EbelnK3id = itemBarcodeDetails.EbelnK3id,
+                          LineK3id = itemBarcodeDetails.LineK3id,
+                          ItemId = itemBarcodeDetails.ItemId,
+                          DepotId = mesDepost.DepotId.ToString(),
+                          itemDabid = itemBarcodeDetails.AboutGuid.ToString()
+                      }).IgnoreColumns(true).ExecuteCommand();
+                  else
+                      // 瀛樺湪鏃舵洿鏂版暟閲�
+                      db.Updateable<MesInvItemInCItems>()
+                          .SetColumns(it => new MesInvItemInCItems
+                          {
+                              Quantity = SqlFunc.IsNull(it.Quantity, 0) + itemBarcodeDetails.Quantity // 纭繚 Quantity 涓嶄负 null
+                          })
+                          .Where(it =>
+                                      it.ItemInId == cId &&
+                                      it.ItemId == detailone.ItemId &&
+                                      it.DepotId == mesDepost.DepotId.ToString() &&
+                                      it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
+                          //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns
+                          .ExecuteCommand();
+
+                  // 鎻掑叆 mes_inv_item_in_c_details 琛�
+                  db.Insertable(new MesInvItemInCDetails
+                  {
+                      ItemInId = cId,
+                      BillNo = cBillNo,
+                      ItemBarcode = itemBarcode,
+                      Quantity = itemBarcodeDetails.Quantity,
+                      BarcodeFlag = true,
+                      EpFlag = true,
+                      WorkType = 1,
+                      ItemNo = itemBarcodeDetails.ItemNo,
+                      LotNo = cgddDetails.BatchNumber,
+                      SuppId = itemBarcodeDetails.SuppId,
+                      SuppNo = itemBarcodeDetails.SuppNo,
+                      DepotCode = mesDepost.DepotCode,
+                      DepotSectionCode = sectionCode,
+                      ItemSname = itemBarcodeDetails.ItemSname,
+                      Unit = itemBarcodeDetails.Unit,
+                      CreateBy = user,
+                      CreateDate = DateTime.Now,
+                      LastupdateBy = user,
+                      LastupdateDate = DateTime.Now,
+                      Remark = itemBarcodeDetails.Memo,
+                      Ebeln = itemBarcodeDetails.Mblnr,
+                      EbelnLineNo = itemBarcodeDetails.Zeile,
+                      WorkNo = itemBarcodeDetails.WorkNo,
+                      WorkLine = itemBarcodeDetails.WorkLine,
+                      CbillNo = itemBarcodeDetails.BillNo,
+                      UrgentFlag = itemBarcodeDetails.UrgentFlag,
+                      BoardStyle = itemBarcodeDetails.BoardStyle,
+                      TaskNo = itemBarcodeDetails.TaskNo,
+                      EbelnK3id = itemBarcodeDetails.EbelnK3id,
+                      LineK3id = itemBarcodeDetails.LineK3id,
+                      ItemId = itemBarcodeDetails.ItemId,
+                      Ischeck = true,
+                      CheckDate = inventoryDetails.CheckDate,
+                      CheckRes = inventoryDetails.CheckRes,
+                      CheckStates = inventoryDetails.CheckStates,
+                      ReceiveOrgId = inventory.ReceiveOrgId,
+                      DepotId = Convert.ToInt64(mesDepost.DepotId.ToString())
+                  }).IgnoreColumns(true).ExecuteCommand();
+
+                  // 鎻掑叆 mes_inv_business2 琛�
+                  db.Insertable(new MesInvBusiness2
+                  {
+                      Status = 1,
+                      BillTypeId = billTypeId,
+                      TransactionCode = transactionNo,
+                      BusinessType = 1,
+                      ItemBarcode = itemBarcode,
+                      ItemNo = itemBarcodeDetails.ItemNo,
+                      LotNo = itemBarcodeDetails.LotNo,
+                      EpFlag = true,
+                      Quantity = itemBarcodeDetails.Quantity,
+                      FromInvDepotsCode = null,
+                      FromInvDepotSectionsCode = null,
+                      ToInvDepotsCode = mesDepost.DepotCode,
+                      ToInvDepotSectionsCode = sectionCode,
+                      Description = "閲囪喘鍏ュ簱",
+                      CreateBy = user,
+                      CreateDate = DateTime.Now,
+                      LastupdateBy = user,
+                      LastupdateDate = DateTime.Now,
+                      TaskNo = itemBarcodeDetails.TaskNo,
+                      BillNo = cBillNo,
+                      WorkNo = itemBarcodeDetails.WorkNo,
+                      WorkLine = itemBarcodeDetails.WorkLine,
+                      SuppId = itemBarcodeDetails.SuppId,
+                      SuppNo = itemBarcodeDetails.SuppNo,
+                      EbelnK3id = itemBarcodeDetails.EbelnK3id,
+                      LineK3id = itemBarcodeDetails.LineK3id,
+                      ItemId = itemBarcodeDetails.ItemId
+                  }).IgnoreColumns(true).ExecuteCommand();
+
+                  // 鎻掑叆 mes_inv_item_stocks 琛�
+              }
+
+
+
+              db.Insertable(new MesInvItemStocks
+              {
+                  TaskNo = itemBarcodeDetails.TaskNo,
+                  ItemBarcode = itemBarcode,
+                  ItemNo = cgddDetails.BatchNumber,
+                  LotNo = itemBarcodeDetails.LotNo,
+                  Quantity = itemBarcodeDetails.Quantity,
+                  DepotsCode = mesDepost.DepotCode,
+                  DepotSectionsCode = sectionCode,
+                  CheckDate = inventoryDetails.CheckDate,
+                  IndepDate = DateTime.Now,
+                  IqcStatus = inventoryDetails.CheckStates,
+                  BoardStyle = itemBarcodeDetails.BoardStyle,
+                  WorkNo = itemBarcodeDetails.WorkNo,
+                  WorkLine = itemBarcodeDetails.WorkLine,
+                  SuppId = itemBarcodeDetails.SuppId,
+                  SuppNo = itemBarcodeDetails.SuppNo,
+                  EbelnK3id = itemBarcodeDetails.EbelnK3id,
+                  LineK3id = itemBarcodeDetails.LineK3id,
+                  ItemId = itemBarcodeDetails.ItemId,
+                  BillNo = itemBarcodeDetails.BillNo,
+                  DepotId = Convert.ToInt32(mesDepost.DepotId),
+                  OwnerId = cgddDetails.DemandOrg,
+                  OwnerType = owner_type,
+                  StockOrgId = mesDepost.FSubsidiary,
+                  IndepUserCode = user
+              }).IgnoreColumns(true).ExecuteCommand();
+
+              itemBarcodeDetails.Hbdy ??= 0;
+
+              if (itemBarcodeDetails.Hbdy != 1)
+              {
+                  //鏇存柊鏀舵枡鍗曟槑缁�
+                  db.Updateable<MesInvItemArnDetail>()
+                      .SetColumns(d => new MesInvItemArnDetail
+                      {
+                          OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
+                      })
+                      .Where(d => d.Guid == itemBarcodeDetails.AboutGuid)
+                      .ExecuteCommand();
+
+                  var first = db
+                      .Queryable<MesInvItemArnDetail>()
+                      .Where(b =>
+                          b.Guid == itemBarcodeDetails.AboutGuid)
+                      .Select(b => new
+                      {
+                          TotalQuantity =
+                              SqlFunc.AggregateSum(b.Quantity),
+                          TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+                      })
+                      .First();
+
+                  var TotalQuantity = first.TotalQuantity ?? 0;
+                  var TotalOkRkQty = first.TotalOkRkQty ?? 0;
+
+                  if (TotalQuantity == TotalOkRkQty)
+                      db.Updateable<MesInvItemArnDetail>()
+                          .SetColumns(s => s.IsdepsIn == true)
+                          .Where(s => s.Guid == itemBarcodeDetails.AboutGuid)
+                          .ExecuteCommand();
+
+
+                  var totalSummary = db.Queryable<MesInvItemArnDetail>()
+                      .InnerJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
+                      .Where((b, a) =>
+                          a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
+                      .Select((b, a) => new
+                      {
+                          TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
+                          TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+                      })
+                      .First();
+
+                  if ((totalSummary.TotalQuantity ?? 0) ==
+                      (totalSummary.TotalOkRkQty ?? 0))
+                      db.Updateable<MesInvItemArn>()
+                          .SetColumns(it => it.Status == 1)
+                          .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
+                          .ExecuteCommand();
+
+                  var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
+                      .Where(it => it.ItemId == itemBarcodeDetails.ItemId &&
+                                   it.WorkNo == itemBarcodeDetails.WorkNo &&
+                                   it.ItemInId == cId)
+                      .Sum(it => it.Quantity);
+
+                  var detailSummary = db.Queryable<MesInvItemArnDetail>()
+                      .Where(it => it.Guid == inventoryDetails.Guid)
+                      .Select(it => new
+                      {
+                          TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
+                          TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
+                      })
+                      .First();
+
+                  var comeQty = detailSummary.TotalComeQty ?? 0;
+                  var invQty = detailSummary.TotalInvQty ?? 0;
+                  var diffQty = comeQty - invQty;
+
+                  if (detailSummary == null)
+                      throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
+
+                  var mesItems = db.Queryable<MesItems>()
+                      .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
+
+                  //result.Message =
+                  //    $"鏉$爜鏁伴噺 {itemBarcodeDetails.Quantity},閲囪喘璁㈠崟 {itemBarcodeDetails.WorkNo} 椤规 {itemBarcodeDetails.WorkLine} 鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
+                  result.Message = $"鐗╂枡{mesItems.ItemNo}鍏ュ簱鎴愬姛鏁伴噺{itemBarcodeDetails.Quantity.ToString()}";
+
+                  result.itemDetail = mesItems;
+
+                  result.ItemInDetails = db.Queryable<MesInvItemInCItems,MesItems>(
+                      (a, b) => new JoinQueryInfos(
+                      JoinType.Left,
+                      a.ItemId == b.ItemId)
+                      )
+                      .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
+                      .Select<dynamic>((a, b) => new 
+                      {
+                          ItemNo = b.ItemNo,
+                          ItemName = b.ItemName,
+                          ItemModel = b.ItemModel,
+                          FQty = a.Quantity, // 鐢宠鏁伴噺
+                          FMaterialId = b.ItemId,
+                          Id = b.Guid.ToString()
+                      })
+                      .ToList();
+
+                  result.ItemBarCDetails = db.Queryable<MesInvItemInCDetails, MesItems>(
+                      (a, b) => new JoinQueryInfos(
+                      JoinType.Left,
+                      a.ItemId == b.ItemId)
+                      )
+                      .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
+                      .Select<dynamic>((a, b) => new
+                      {
+                          ItemNo = b.ItemNo,
+                          ItemName = b.ItemName,
+                          ItemModel = b.ItemModel,
+                          FQty = a.Quantity, // 鐢宠鏁伴噺
+                          FMaterialId = b.ItemId,
+                          Id = a.Guid.ToString(),
+                          kw = a.DepotSectionCode,
+                          barcode = a.ItemBarcode
+                      })
+                      .ToList();
+
+
+                  //result.ItemNo = mesItems.ItemNo;
+                  result.SumQuantity = Convert.ToDecimal(invQty);
+
+                  return 1;
+              }
+              else
+              {
+                  // Step 1: Check if bill needs to be closed (status update)
+                  var totalSummary = db.Queryable<MesInvItemArnDetail>()
+                      .LeftJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
+                      .Where((b, a) =>
+                          a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
+                      .Select((b, a) => new
+                      {
+                          TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
+                          TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+                      })
+                      .First();
+
+                  if ((totalSummary.TotalQuantity ?? 0) ==
+                      (totalSummary.TotalOkRkQty ?? 0))
+                      db.Updateable<MesInvItemArn>()
+                          .SetColumns(it => it.Status == 1)
+                          .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
+                          .ExecuteCommand();
+
+                  // Step 2: Calculate total sum from `mes_inv_item_in_c_details`
+                  var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
+                      .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
+                      .Sum(it => it.Quantity);
+
+                  // Step 3: Calculate comeQty and invQty from `mes_inv_item_arn_detail`
+                  var detailSummary = db.Queryable<MesInvItemArnDetail>()
+                      .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
+                      .Select(it => new
+                      {
+                          TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
+                          TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
+                      })
+                      .First();
+
+                  if (detailSummary == null)
+                      throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
+
+                  var comeQty = detailSummary.TotalComeQty ?? 0;
+                  var invQty = detailSummary.TotalInvQty ?? 0;
+                  var diffQty = comeQty - invQty;
+
+                  var mesItems = db.Queryable<MesItems>()
+                      .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
+
+                  // Step 5: Combine final result
+                  result.Message =
+                      $" 鏉$爜鏁伴噺:{itemBarcodeDetails.Quantity},鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
+
+
+                  //result.ItemNo = mesItems.ItemNo;
+                  result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+              }
+
+              var mesInvItemInCDetails =
+                  base.GetSingle(it => it.ItemBarcode == entity.barcode);
+
+              if (mesInvItemInCDetails == null)
+                  throw new Exception("鐗╂枡鍏ュ簱鏉$爜鏄庣粏涓嶅瓨鍦�"); // 鎶涘嚭寮傚父浠ヤ緵鍓嶅彴澶勭悊
+
+              // 鍒涘缓 鎻掑叆鏃ュ織
+              var logService = new LogService();
+              var LogMsg = "銆怭DA銆戦噰璐叆搴撱�傛潯鐮併��" + entity.barcode + "銆� 鍏ュ簱鍗曞彿銆�" + cBillNo + "銆�";
+              logService.CreateLog(db, entity.userName, inventory.Guid.ToString(), "MES_INV_ITEM_ARN", LogMsg, inventory.BillNo);
+
+              return 1;
+          });
+
+          var purchaseInventory = getPurchaseInventory(entity);
+
+
+          //result.ItemInDetails = purchaseInventory.ItemInDetails;
+          //result.InvItemInCDetails = purchaseInventory.InvItemInCDetails;
+
+          return result;
+      }
+  */
     public ItemInBaseModel getPurchaseInventory(WarehouseQuery query)
     {
         return new ItemInBaseModel
@@ -1204,4 +1278,259 @@
 
         return encodedUrl;
     }
+
+    // 楠岄��鎵爜
+    public ItemInBaseModel GetReturnBarcodeInfo(WarehouseQuery entity)
+    {
+        ItemInBaseModel res = new ItemInBaseModel();
+
+        // 鍙傛暟楠岃瘉
+        if (string.IsNullOrEmpty(entity.userName)) throw new ArgumentNullException(nameof(entity.userName), "鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
+        if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
+        if (string.IsNullOrEmpty(entity.returnBarcode)) throw new ArgumentNullException(nameof(entity.returnBarcode), "鏉$爜涓嶅厑璁镐负绌�");
+
+        try
+        {
+            // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
+            var isInStock = Db.Queryable<MesInvItemInCDetails>()
+                .Where(it => it.ItemBarcode == entity.returnBarcode)
+                .Any();
+
+            if (isInStock)
+                throw new Exception($"璇ユ潯鐮佺墿鏂橻{entity.returnBarcode}]宸插叆搴擄紝涓嶈兘鍐嶆鎵弿锛�");
+
+            // 妫�鏌ユ潯鐮佹槸鍚﹀凡鎵弿楠岄��
+            var sqlParams = new List<SugarParameter> { new("@barcode", entity.returnBarcode) };
+            var isReturnScanned = Db.Ado.SqlQuery<dynamic>(
+                "SELECT 1 FROM MES_INV_ITEM_CGYT_C_DETAILS WHERE ITEM_BARCODE = @barcode",
+                sqlParams);
+
+
+            if (isReturnScanned.Count > 0)
+                throw new Exception($"璇ユ潯鐮佺墿鏂橻{entity.returnBarcode}]宸叉壂鎻忛獙閫�锛岃鏍稿锛�");
+            // 浣跨敤鍙傛暟鍖栨煡璇㈠苟蹇界暐澶у皬鍐欙紙閫傜敤浜庢敮鎸佺殑鏁版嵁搴擄級
+            var itemBarcode = Db.Queryable<MesInvItemBarcodes>()
+                .Where(it => it.ItemBarcode.Trim().ToLower() == entity.returnBarcode.Trim().ToLower())
+                .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.returnBarcode}' 鐨勫尮閰嶄俊鎭�");
+
+            // 灏嗘煡璇㈠埌鐨勬潯鐮佷俊鎭祴鍊肩粰杩斿洖妯″瀷
+            res.itemBarcodeDetails = itemBarcode;
+
+
+            res.Message = "鏌ヨ鎴愬姛";
+
+
+            return res;
+        }
+        catch (Exception ex)
+        {
+            // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
+            res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+            res.SumQuantity = -1;
+            return res;
+        }
+    }
+
+    // 楠岄��
+    public ItemInBaseModel ConfirmReturn(WarehouseQuery entity)
+    {
+        ItemInBaseModel res = new ItemInBaseModel();
+
+        // 鍙傛暟楠岃瘉
+        if (string.IsNullOrEmpty(entity.userName)) throw new ArgumentNullException(nameof(entity.userName), "鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
+        if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
+        if (string.IsNullOrEmpty(entity.returnBarcode)) throw new ArgumentNullException(nameof(entity.returnBarcode), "鏉$爜涓嶅厑璁镐负绌�");
+        if (entity.returnQuantity <= 0) throw new ArgumentException("楠岄��鏁伴噺蹇呴』澶т簬0", nameof(entity.returnQuantity));
+
+        try
+        {
+            // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
+            var isInStock = Db.Queryable<MesInvItemInCDetails>()
+                .Where(it => it.ItemBarcode == entity.returnBarcode)
+                .Any();
+
+            if (isInStock)
+                throw new Exception($"璇ユ潯鐮佺墿鏂橻{entity.returnBarcode}]宸插叆搴擄紝涓嶈兘鍐嶆鎵弿锛�");
+
+            // 妫�鏌ユ潯鐮佹槸鍚﹀凡鎵弿楠岄��
+            var sqlParams = new List<SugarParameter> { new("@barcode", entity.returnBarcode) };
+            var isReturnScanned = Db.Ado.SqlQuery<dynamic>(
+                "SELECT 1 FROM MES_INV_ITEM_CGYT_C_DETAILS WHERE ITEM_BARCODE = @barcode",
+                sqlParams);
+
+            // 浣跨敤鍙傛暟鍖栨煡璇㈠苟蹇界暐澶у皬鍐欙紙閫傜敤浜庢敮鎸佺殑鏁版嵁搴擄級
+            var itemBarcode = Db.Queryable<MesInvItemBarcodes>()
+                .Where(it => it.ItemBarcode.Trim().ToLower() == entity.returnBarcode.Trim().ToLower())
+                .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.returnBarcode}' 鐨勫尮閰嶄俊鎭�");
+
+            // 鍒ゆ柇楠岄��鏁伴噺鏄惁澶т簬鏉$爜鐨勬暟閲忥紙鍋囪鏉$爜鏁伴噺瀛楁涓篞uantity锛�
+            if (entity.returnQuantity > itemBarcode.Quantity)
+            {
+                throw new ArgumentException($"楠岄��鏁伴噺涓嶈兘澶т簬鏉$爜鐨勬暟閲忥紝褰撳墠鏉$爜鏁伴噺涓�: {itemBarcode.Quantity}", nameof(entity.returnQuantity));
+            }
+            // 灏嗘煡璇㈠埌鐨勬潯鐮佷俊鎭祴鍊肩粰杩斿洖妯″瀷
+            res.itemBarcodeDetails = itemBarcode;
+
+            // 璋冪敤瀛樺偍杩囩▼ prc_pda_bar_cf_before
+            string strMsg = "";
+            string intSum = "";
+            string cfBar = "";
+
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("[prc_pda_bar_cf_before]", conn))
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@barcode_new", SqlDbType.NVarChar, 300),
+                        new("@c_user", entity.userName),
+                        new("@p_old_barcode", entity.returnBarcode),
+                        new("@p_qty", entity.returnQuantity),
+                    };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    parameters[2].Direction = ParameterDirection.Output;
+
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    strMsg = parameters[0].Value.ToString();
+                    intSum = parameters[1].Value.ToString();
+                    cfBar = parameters[2].Value.ToString();
+
+                    var result = Convert.ToInt32(intSum);
+                    if (result <= 0) throw new Exception(strMsg);
+                }
+            }
+
+            // 璋冪敤楠岄��瀛樺偍杩囩▼ prc_pda_scan_CGYT锛屼娇鐢ㄦ媶鍒嗗悗鐨勬柊鏉$爜
+            string ytMsg = "";
+            string ytSum = "";
+            string ytdh = "";
+
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("prc_pda_scan_CGYT", conn))
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] ytParameters =
+                    {
+                        new("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
+                        new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = cfBar }, // 浣跨敤鎷嗗垎鍚庣殑鏂版潯鐮�
+                        new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                        new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
+                        new("@po_ygdh", SqlDbType.NVarChar, 200) { Direction = ParameterDirection.Output }
+                    };
+
+                    cmd.Parameters.AddRange(ytParameters);
+                    cmd.ExecuteNonQuery();
+
+                    ytMsg = ytParameters[2].Value.ToString();
+                    ytSum = ytParameters[3].Value.ToString();
+                    ytdh = ytParameters[4].Value.ToString();
+
+                    if (ytSum == "-1") throw new Exception(ytMsg);
+                }
+            }
+
+            // 璋冪敤鍏ュ簱瀛樺偍杩囩▼ prc_pda_inv_cgrk锛屼娇鐢ㄥ師濮嬫潯鐮�
+            string rkMsg = "";
+            string rkSum = "";
+
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("prc_pda_inv_cgrk", conn))
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] rkParameters =
+                    {
+                        new("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
+                        new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = entity.returnBarcode }, // 浣跨敤鍘熷鏉$爜
+                        new("@pi_sectionCode", SqlDbType.NVarChar, 100) { Value = entity.sectionCode },
+                        new("@pi_weight", SqlDbType.Decimal) { Value = entity.weight },
+                        new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                        new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }
+                    };
+
+                    cmd.Parameters.AddRange(rkParameters);
+                    cmd.ExecuteNonQuery();
+
+                    rkMsg = rkParameters[3].Value.ToString();
+                    rkSum = rkParameters[4].Value.ToString();
+
+                    if (rkSum == "-1") throw new Exception(rkMsg);
+                }
+            }
+
+
+
+            // 浼樺寲鏌ヨ锛堝幓闄ょ┖鏍煎苟蹇界暐澶у皬鍐欙級
+            var mesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
+                .Where(it => it.ItemBarcode.Trim().ToLower() == entity.returnBarcode.Trim().ToLower())
+                .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.returnBarcode}' 鐨勫尮閰嶇殑鍏ュ簱淇℃伅");
+
+            // 浠庡叆搴撴潯鐮佷腑鑾峰彇鏈夋晥鐨処temInId
+            var cId = mesInvItemInCDetails.ItemInId; // 鍋囪瀛樺湪ItemInId灞炴��
+
+            // 鏌ヨ鐗╂枡姹囨�绘槑缁嗭紙浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆锛�
+            var sql = @"
+            SELECT 
+                b.Item_No AS ItemNo,
+                b.Item_Name AS ItemName,
+                b.Item_Model AS ItemModel,
+                a.Quantity AS FQty,
+                b.Item_Id AS FMaterialId,
+                CONVERT(VARCHAR(36), b.Guid) AS Id
+            FROM MES_INV_ITEM_IN_C_ITEMS a
+            LEFT JOIN Mes_Items b ON a.Item_Id = b.Item_Id
+            WHERE a.Item_In_Id = @cId AND a.Item_Id = @itemId";
+
+            res.ItemInDetails = Db.Ado.SqlQuery<dynamic>(sql, new { cId, itemId = itemBarcode.ItemId });
+
+            // 鏌ヨ鍏ュ簱鏉$爜鏄庣粏锛堜娇鐢ㄥ弬鏁板寲鏌ヨ闃叉SQL娉ㄥ叆锛�
+            var sql2 = @"
+            SELECT 
+                b.Item_No AS ItemNo,
+                b.Item_Name AS ItemName,
+                b.Item_Model AS ItemModel,
+                a.Quantity AS FQty,
+                b.Item_Id AS FMaterialId,
+                CONVERT(VARCHAR(36), a.Guid) AS Id,
+                a.Depot_Section_Code AS kw,
+                a.Item_Barcode AS barcode
+            FROM Mes_Inv_Item_In_C_Details a
+            LEFT JOIN Mes_Items b ON a.Item_Id = b.Item_Id
+            WHERE a.Item_In_Id = @cId AND a.Item_Id = @itemId";
+
+            res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2, new { cId, itemId = itemBarcode.ItemId });
+
+
+            //鏌ヨ宸插叆搴撴�绘暟
+            var totalCDetailsQuantity = Db.Queryable<MesInvItemInCDetails>()
+            .Where(it => it.ItemInId == cId)
+            .Sum(it => it.Quantity);
+
+            res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+
+
+            res.Message = $"楠岄��鎿嶄綔鎴愬姛锛屾媶鍒嗗悗鏉$爜锛歿cfBar}锛岄獙閫�鍗曞彿锛歿ytdh}";
+            // res.SumQuantity = res.ItemBarCDetails?.Count ?? 0;
+            res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+            return res;
+        }
+        catch (Exception ex)
+        {
+            // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
+            res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+            res.SumQuantity = -1;
+            return res;
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs
index 77535f6..a0ae6af 100644
--- a/service/Warehouse/MesItemBlManager.cs
+++ b/service/Warehouse/MesItemBlManager.cs
@@ -286,17 +286,7 @@
 
         // Get output parameters
         var outMsg = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_MSG")?.Value?.ToString();
-
-        int outSum;
-        if (int.TryParse(parameters.FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value?.ToString(), out outSum))
-        {
-            // 鎴愬姛杞崲
-        }
-        else
-        {
-            outSum = -1;
-        }
-
+        var outSum = Convert.ToInt32(parameters.FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value ?? -1);
         var outCfBar = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_CF_BAR")?.Value?.ToString();
 
         // Handle the result
diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs
index dc04c4b..e6438e5 100644
--- a/service/Warehouse/MesItemQtManager.cs
+++ b/service/Warehouse/MesItemQtManager.cs
@@ -117,33 +117,23 @@
         if (existingBarcode) throw new Exception("姝ゆ潯鐮佸凡缁忔壂鐮佸嚭搴�,鍕块噸澶嶆壂鎻忥紒");
 
         // 鑾峰彇鏉$爜淇℃伅
-        MesInvItemBarcodes barcode;
-        try
-        {
-            barcode = Db.Queryable<MesInvItemBarcodes>()
-                .Where(it => it.ItemBarcode == p_item_barcode)
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"MES涓笉瀛樺湪姝ゆ潯鐮侊紝鏉$爜鍙凤細{p_item_barcode}锛岃鏍稿锛�");
-        }
+        var barcode = Db.Queryable<MesInvItemBarcodes>()
+            .Where(it => it.ItemBarcode == p_item_barcode)
+            .First();
+
+        if (barcode == null)
+            throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮�,璇锋牳瀵癸紒{p_item_barcode}");
 
 
 
 
         // 鑾峰彇搴撳瓨淇℃伅
-        MesInvItemStocks stock;
-        try
-        {
-            stock = Db.Queryable<MesInvItemStocks>()
-                .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0)
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝鏉$爜鍙凤細{p_item_barcode}锛岃妫�鏌ユ潯鐮佹槸鍚︽湭鍏ュ簱鎴栧凡鍑哄簱锛�");
-        }
+        var stock = Db.Queryable<MesInvItemStocks>()
+            .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0)
+            .First();
+
+        if (stock == null)
+            throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋鏌ユ潯鐮佹槸鍚︽湭鍏ュ簱鎴栧凡鍑哄簱锛亄p_item_barcode}");
 
 
         if (string.IsNullOrEmpty(stock.DepotsCode))
diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs
index 90e859d..9443399 100644
--- a/service/Warehouse/MesItemQtrkManager.cs
+++ b/service/Warehouse/MesItemQtrkManager.cs
@@ -93,15 +93,10 @@
              MES_DEPOTS b ON a.depot_guid = b.Guid
         WHERE a.depot_section_code = @sectionCode;";
 
-        dynamic depotInfo;
-        try
-        {
-            depotInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First();
-        }
-        catch
-        {
+        var depotInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First();
+
+        if (depotInfo is  null)
             throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
 
         // 5. 杩斿洖鎴愬姛淇℃伅
         return depotInfo;
@@ -123,23 +118,18 @@
             throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
 
         // 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮佸拰浠撳簱ID
-        var depotInfo2 = new { DepotCode = "", DepotId = (int?)0 }; // 鍖归厤鏁版嵁搴撹繑鍥炵殑鍙┖绫诲瀷
-        try
-        {
-            depotInfo2 = Db.Queryable<MesDepotSections, MesDepots>(
-                    (a, b) =>
-                        new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
-                .Where((a, b) => a.DepotSectionCode == p_section_code)
-                .Select((a, b) => new { b.DepotCode, b.DepotId })
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"搴撲綅缂栫爜 {p_section_code} 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
+        var depotInfo = Db.Queryable<MesDepotSections, MesDepots>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
+            .Where((a, b) => a.DepotSectionCode == p_section_code)
+            .Select((a, b) => new { b.DepotCode, b.DepotId })
+            .First();
 
-        var c_depot_code = depotInfo2.DepotCode;
-        var c_depot_id = depotInfo2.DepotId;
+        if (depotInfo == null)
+            throw new Exception($"搴撲綅缂栫爜 {p_section_code} 涓嶅瓨鍦紝璇风‘璁わ紒");
+
+        var c_depot_code = depotInfo.DepotCode;
+        var c_depot_id = depotInfo.DepotId;
 
         var sqlParams = new List<SugarParameter> { new("@barcode", p_item_barcode), new("@billNo", p_bill_no) };
 
@@ -155,16 +145,8 @@
 
 
 
-        MesDepots mesDepost;
-        try
-        {
-            mesDepost = Db.Queryable<MesDepots>()
+        var mesDepost = Db.Queryable<MesDepots>()
                 .Where(s => s.DepotId == c_depot_id).First();
-        }
-        catch
-        {
-            throw new Exception($"浠撳簱ID {c_depot_id} 瀵瑰簲鐨勪粨搴撲俊鎭笉瀛樺湪锛岃纭锛�");
-        }
 
         
 
@@ -199,8 +181,6 @@
 
         if (qtrk == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�");
 
-        if(p_bill_no != barcode.BillNo)
-            throw new Exception($"璇ユ潯鐮佸搴旂殑鐢宠鍗曘�恵barcode.BillNo}銆戜笌褰撳墠鐢宠鍗曞彿涓嶅尮閰嶏紒");
 
         if (qtrk.Qt008 != c_depot_id.ToString())
             throw new Exception($"璇� {p_section_code} 瀵瑰簲鐨勪粨搴� 涓� 妫�楠屽垽瀹氱殑鍏ュ簱浠撳簱涓嶄竴鑷达紝璇风‘璁わ紒");
diff --git a/service/Warehouse/MesSctkManager.cs b/service/Warehouse/MesSctkManager.cs
index 7a1d9bf..08b6af4 100644
--- a/service/Warehouse/MesSctkManager.cs
+++ b/service/Warehouse/MesSctkManager.cs
@@ -1,7 +1,6 @@
 锘縰sing System.Data;
 using System.Data.SqlClient;
 using Masuit.Tools;
-using MES.Service.Models;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
diff --git a/service/Warehouse/MesStrkManager.cs b/service/Warehouse/MesStrkManager.cs
index 4152ae9..77c91de 100644
--- a/service/Warehouse/MesStrkManager.cs
+++ b/service/Warehouse/MesStrkManager.cs
@@ -1,6 +1,4 @@
 锘縰sing Masuit.Tools;
-using MES.Service.Models;
-using MES.Service.Modes;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
diff --git a/service/Warehouse/MesSttlManager.cs b/service/Warehouse/MesSttlManager.cs
index 39515ec..3defbd6 100644
--- a/service/Warehouse/MesSttlManager.cs
+++ b/service/Warehouse/MesSttlManager.cs
@@ -1,5 +1,4 @@
 锘縰sing Masuit.Tools;
-using MES.Service.Models;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs
index b68574a..d0b4a48 100644
--- a/service/Warehouse/MesXkyService.cs
+++ b/service/Warehouse/MesXkyService.cs
@@ -1,17 +1,16 @@
-锘縰sing MES.Service.Models;
-using NewPdaSqlServer.DB;
-using NewPdaSqlServer.util;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using System.Collections;
-using System.Data;
+锘縰sing System.Collections;
 using System.Net;
 using System.Net.Http.Headers;
 using System.Text;
+using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.Xky;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using static NewPdaSqlServer.Controllers.Warehouse.MesXkyController;
 
-namespace NewPdaSqlServer.service.QC;
+namespace NewPdaSqlServer.service.Warehouse;
 
 public class MesXkyService : RepositoryNoEntity
 {
diff --git a/service/Warehouse/MesXkyShdManager.cs b/service/Warehouse/MesXkyShdManager.cs
index cdb3113..1ca8274 100644
--- a/service/Warehouse/MesXkyShdManager.cs
+++ b/service/Warehouse/MesXkyShdManager.cs
@@ -42,10 +42,11 @@
        A.delivery_qty - ISNULL(dhmx.quantity, 0) as dssl,
        A.po_erp_no,
        C.PURCHASE_ORDER_LINE_NUMBER,
-       dhmx.GUID AS DDHID
+       dhmx.GUID                        AS DDHID,
+       A.erpline_id
 from DELIVERY_NOTICE_DETAIL A
          LEFT JOIN MES_ROH_IN_DATA C ON A.po_line_no = C.EBELN_K3ID
-         LEFT JOIN MES_ITEMS D ON C.ITEM_ID = D.item_id
+         LEFT JOIN MES_ITEMS D ON A.product_code = D.item_id
          LEFT JOIN dhmx ON dhmx.line_k3id  = A.po_line_no AND dhmx.paper_bill_no = A.delivery_no
 WHERE A.delivery_no = @shdh";
 
@@ -62,8 +63,8 @@
         //// 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
         var sqlParams = new List<SugarParameter> { new("@shdh", unity.shdh) };
 
-        var sql2 = @"SELECT A.small_barcode,
-        D.item_no,
+     var sql2 = @"SELECT A.small_barcode,
+       D.item_no,
        D.item_name,
        D.item_model,
        A.include_qty,
@@ -159,6 +160,56 @@
             }
         }
     }
+
+    public string ConfirmSignReceipt(dynamic unity)
+    {
+        var _strMsg = "";
+        var _intSum = 0;
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            if (unity == null) throw new ArgumentNullException(nameof(unity), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+            
+            if (string.IsNullOrEmpty(unity.userName?.ToString()))
+                throw new ArgumentException("鐢ㄦ埛璐︽埛涓嶅厑璁镐负绌�", nameof(unity.userName));
+            
+            if (string.IsNullOrEmpty(unity.shdh?.ToString()))
+                throw new ArgumentException("閫佽揣鍗曞彿涓嶅厑璁镐负绌�", nameof(unity.shdh));
+
+            using (var cmd = new SqlCommand("[prc_pda_inv_dhdsh_qs]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                        new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
+                        new("@pi_user", SqlDbType.NVarChar) { Value = unity.userName.ToString() },
+                        new("@pi_shdh", SqlDbType.NVarChar) { Value = unity.shdh.ToString() }
+                    };
+
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = Convert.ToInt32(parameters[1].Value);
+
+                    if (_intSum <= 0) throw new Exception(_strMsg);
+
+                    return _strMsg;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
 }
 
 
diff --git a/service/Warehouse/MesXsckManager.cs b/service/Warehouse/MesXsckManager.cs
index 7c98c1b..6b9d16f 100644
--- a/service/Warehouse/MesXsckManager.cs
+++ b/service/Warehouse/MesXsckManager.cs
@@ -1,5 +1,4 @@
 锘縰sing Masuit.Tools;
-using MES.Service.Modes;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
@@ -89,8 +88,7 @@
             return new
             {
                 items = items,
-                ysitems = ysitems,
-                allList = blDetails
+                ysitems = ysitems
             };
         }
         catch (Exception ex)
@@ -120,7 +118,7 @@
         using (var conn = new SqlConnection(DbHelperSQL.strConn))
         {
             if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
-            if (query.billNo.IsNullOrEmpty()) throw new Exception("鍙戣揣閫氱煡鍗曞彿涓嶅厑璁镐负绌�");
+            if (query.daa001.IsNullOrEmpty()) throw new Exception("鍙戣揣閫氱煡鍗曞彿涓嶅厑璁镐负绌�");
             if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
 
             using (var cmd = new SqlCommand("[prc_pda_XSCK]", conn))
@@ -136,7 +134,7 @@
                         new("@barcode_num", SqlDbType.NVarChar, 300),
                         new("@split_num", SqlDbType.NVarChar, 300),
                         new("@c_User", query.userName),
-                        new("@p_biLL_no", query.billNo),
+                        new("@p_biLL_no", query.daa001),
                         new("@p_item_barcode", query.barcode)
                     };
                     parameters[0].Direction = ParameterDirection.Output;
@@ -192,68 +190,499 @@
     ///     - Num: 鍙戞枡鏁伴噺(蹇呭~,蹇呴』澶т簬0)
     ///     - blNo: 鍙戣揣閫氱煡鍗曞彿(蹇呭~)
     /// </remarks>
-    public ProductionPickDto SplitBarcode(WarehouseQuery query)
+    public (bool success, List<MesItemBlDetail> pendingList) SplitBarcode(
+        WarehouseQuery query)
     {
-        if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
-        if (query.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�");
-        if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
+        if (string.IsNullOrEmpty(query.userName))
+            throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒");
 
-        if (query.Num is null or 0) throw new Exception("鏉$爜鎷嗗垎鏁颁笉鍏佽涓虹┖鎴栬�呬负0");
+        if (string.IsNullOrEmpty(query.billNo))
+            throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
 
-        var _strMsg = "";
-        var _intSum = "";
-        var _cfBar = "";//鎷嗗垎鍚庢潯鐮�
-        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        if (string.IsNullOrEmpty(query.barcode))
+            throw new Exception("璇锋壂鎻忔潯鐮侊紒");
+
+        if ((query.Num ?? 0) <= 0)
+            throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�");
+
+        if (string.IsNullOrEmpty(query.blNo))
+            throw new Exception("鍙戣揣閫氱煡鍗曞彿涓嶈兘涓虹┖锛�");
+
+
+        // 妫�楠屾槸鍚﹂噸澶嶆壂鎻�
+        var exists = Db.Queryable<MesInvItemOutCDetails>()
+            .Where(b => b.ItemBarcode == query.barcode)
+            .Any();
+
+        if (exists)
+            throw new Exception("姝ゆ潯鐮佸凡鎵弿,鍕块噸澶嶆壂鐮侊紒");
+
+        // 鏌ヨ鏉$爜搴撳瓨淇℃伅
+        var stockBarcode = Db.Queryable<MesInvItemStocks>()
+            .Where(t => t.ItemBarcode == query.barcode && t.Quantity > 0)
+            .First();
+
+        if (stockBarcode == null)
+            throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮�,璇锋牳瀵癸紒{query.barcode}");
+
+        var totalQty = stockBarcode.Quantity;
+        string newBarcode = null;
+
+        var outNoType = "";
+        if (query.Type == "鐢熶骇琛ユ枡")
         {
-            using (var cmd = new SqlCommand("[prc_pda_XSCK_CF_new]", conn))
-            {
-                try
-                {
-                    conn.Open();
-                    cmd.CommandType = CommandType.StoredProcedure;
-                    SqlParameter[] parameters =
-                    {
-                        new("@outMsg", SqlDbType.NVarChar, 2000),
-                        new("@outSum", SqlDbType.NVarChar, 300),
-                        new("@outCfBar", SqlDbType.NVarChar, 300),
-                        new("@c_user", query.userName),
-                        new("@p_biLL_no", query.billNo),
-                        new("@p_item_barcode", query.barcode),
-                        new("@NUM", query.Num)
-                    };
-                    parameters[0].Direction = ParameterDirection.Output;
-                    parameters[1].Direction = ParameterDirection.Output;
-                    parameters[2].Direction = ParameterDirection.Output;
-                    foreach (var parameter in parameters)
-                        cmd.Parameters.Add(parameter);
-                    cmd.ExecuteNonQuery();
-                    _strMsg = parameters[0].Value.ToString();
-                    _intSum = parameters[1].Value.ToString();
-                    _cfBar = parameters[2].Value.ToString();
-
-
-                    var result = Convert.ToInt32(_intSum);
-                    if (result <= 0) throw new Exception(_strMsg);
-
-                    var dto = new ProductionPickDto
-                    {
-                        daa001 = query.billNo,
-                        barcode = query.barcode,//鍘熸潯鐮�
-                        cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
-                    };
-
-                    return dto;
-                }
-                catch (Exception ex)
-                {
-                    throw new Exception(ex.Message);
-                }
-                finally
-                {
-                    conn.Close();
-                }
-            }
+            outNoType = "SCBL(鐢熶骇琛ユ枡)";
         }
+        else
+        {
+            outNoType = "SCCL(鐢熶骇瓒呴)";
+        }
+
+        // 寮�鍚簨鍔″鐞�
+        var success = UseTransaction(db =>
+        {
+            var executeCommand = 0;
+
+            // 鎷嗗垎鏉$爜
+            if (totalQty > query.Num)
+            {
+                var mesItems = db.Queryable<MesItems>()
+                    .Where(s => s.Id == stockBarcode.ItemId).First();
+
+                // 鐢熸垚鏂版潯鐮佸彿
+                newBarcode = BillNo.GetBillNo("TM(鏉$爜)", mesItems.ItemNo);
+
+                // 鍐欏叆鏂版潯鐮�
+                executeCommand += db.Insertable(new MesInvItemBarcodes
+                {
+                    Guid = Guid.NewGuid(),
+                    ItemBarcode = newBarcode,
+                    CustNo = stockBarcode.CustomerNo,
+                    // ProductCode = stockBarcode.ProductCode, 
+                    // ItemBarcode2 = stockBarcode.ItemBarcode2,
+                    // ItemCode = stockBarcode.ItemCode,
+                    ItemNo = stockBarcode.ItemNo,
+                    LotNo = stockBarcode.LotNo,
+                    Quantity = query.Num,
+                    EpFlag = true,
+                    TaskNo = stockBarcode.TaskNo,
+                    CreateBy = query.userName,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = query.userName,
+                    LastupdateDate = DateTime.Now,
+                    OldItemBarcode = query.barcode,
+                    // Mblnr = stockBarcode.Mblnr,
+                    // Zeile = stockBarcode.Zeile,
+                    // RohInId = stockBarcode.RohInId,
+                    Barcodestatus = false,
+                    Oldqty = query.Num as long?,
+                    // Unit = stockBarcode.Unit,
+                    // WeightUnit = stockBarcode.WeightUnit,
+                    Factory = stockBarcode.Factory,
+                    Company = stockBarcode.Company,
+                    BillNo = stockBarcode.BillNo,
+                    BoardStyle = stockBarcode.BoardStyle,
+                    // ColorName = stockBarcode.ColorName,
+                    WorkNo = stockBarcode.WorkNo,
+                    WorkLine = stockBarcode.WorkLine,
+                    // MemoBad = stockBarcode.MemoBad,
+                    ComeFlg = 5,
+                    // Memo = stockBarcode.Memo,
+                    SuppId = stockBarcode.SuppId,
+                    SuppNo = stockBarcode.SuppNo,
+                    InsDate = stockBarcode.IndepDate, // Added InsDate
+                    ItemId = stockBarcode.ItemId
+                    // ItemUnit = stockBarcode.ItemUnit // Added ItemUnit
+                }).IgnoreColumns(true).ExecuteCommand();
+
+                // 鏇存柊鍘熸潯鐮佹暟閲�
+                executeCommand += db.Updateable<MesInvItemBarcodes>()
+                    .SetColumns(it => it.Quantity == it.Quantity - query.Num)
+                    .Where(it => it.ItemBarcode == query.barcode)
+                    .ExecuteCommand();
+
+                // 鏇存柊鍘熸潯鐮佹暟閲�
+                executeCommand += db.Updateable<MesInvItemStocks>()
+                    .SetColumns(it => it.Quantity == it.Quantity - query.Num)
+                    .Where(it => it.ItemBarcode == query.barcode)
+                    .ExecuteCommand();
+
+                //// 鍒犻櫎鍘熸潯鐮佸簱瀛樿褰�
+                //executeCommand += db.Deleteable<MesInvItemStocks>()
+                //    .Where(it => it.ItemBarcode == query.barcode)
+                //    .ExecuteCommand();
+
+                // 鎻掑叆鍓╀綑鏉$爜鏁伴噺鐨勬柊搴撳瓨璁板綍
+                executeCommand += db.Insertable(new MesInvItemStocks
+                {
+                    Guid = Guid.NewGuid(),
+                    TaskNo = stockBarcode.TaskNo,
+                    ItemBarcode = newBarcode,
+                    ItemNo = stockBarcode.ItemNo,
+                    LotNo = stockBarcode.LotNo,
+                    Quantity = query.Num,
+                    EpFlag = stockBarcode.EpFlag,
+                    CustomerNo = stockBarcode.CustomerNo,
+                    ItemWt = stockBarcode.ItemWt,
+                    DepotsCode = stockBarcode.DepotsCode,
+                    DepotsId = stockBarcode.DepotsId,
+                    DepotSectionsCode = stockBarcode.DepotSectionsCode,
+                    CheckDate = stockBarcode.CheckDate,
+                    ItemType = stockBarcode.ItemType,
+                    IndepDate = stockBarcode.IndepDate,
+                    Factory = stockBarcode.Factory,
+                    Company = stockBarcode.Company,
+                    IqcStatus = stockBarcode.IqcStatus,
+                    BoardStyle = stockBarcode.BoardStyle,
+                    WorkNo = stockBarcode.WorkNo,
+                    WorkLine = stockBarcode.WorkLine,
+                    SuppNo = stockBarcode.SuppNo,
+                    ItemId = stockBarcode.ItemId
+                    // UnitId = stockBarcode.ItemUnit
+                }).IgnoreColumns(true).ExecuteCommand();
+
+                // 鍐欏叆鏂版潯鐮佺殑浜ゆ槗璁板綍
+                executeCommand += db.Insertable(new MesInvBusiness2
+                {
+                    Guid = Guid.NewGuid(),
+                    Status = 1,
+                    BillTypeId = 200, // p_bill_type_id
+                    TransactionCode = "209", // p_transaction_no
+                    BusinessType = 0,
+                    ItemBarcode = newBarcode,
+                    ItemNo = stockBarcode.ItemNo,
+                    LotNo = stockBarcode.LotNo,
+                    EpFlag = true,
+                    Quantity = query.Num,
+                    FromInvDepotsCode = null,
+                    FromInvDepotSectionsCode = null,
+                    ToInvDepotsCode = stockBarcode.DepotsCode,
+                    ToInvDepotSectionsCode = stockBarcode.DepotSectionsCode,
+                    Description = query.Type + "鎷嗗垎鐢熸垚",
+                    CreateBy = query.userName,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = query.userName,
+                    LastupdateDate = DateTime.Now,
+                    Factory = stockBarcode.Factory,
+                    Company = stockBarcode.Company,
+                    TaskNo = stockBarcode.TaskNo,
+                    BillNo = stockBarcode.BillNo,
+                    WorkNo = stockBarcode.WorkNo,
+                    WorkLine = stockBarcode.WorkLine,
+                    SuppNo = stockBarcode.SuppNo,
+                    SuppId = stockBarcode.SuppId,
+                    ItemId = stockBarcode.ItemId
+                    // CkDepot = stockBarcode.DepotsId
+                }).IgnoreColumns(true).ExecuteCommand();
+            }
+            else if (totalQty < query.Num)
+            {
+                throw new Exception("鍙戞枡鏁伴噺澶т簬鏉$爜鏁�,璇锋牳瀵癸紒");
+            }
+
+            //if (string.IsNullOrEmpty(newBarcode)) newBarcode = query.barcode;
+
+            // 妫�鏌ュ彂璐ч�氱煡鍗曠姸鎬�
+            var mesItemBl = Db.Queryable<MesItemBl>()
+                .Where(a => a.BlNo == query.blNo && (a.Bl018 ?? false) == true)
+                .First();
+
+            if (mesItemBl == null)
+                throw new Exception($"鐢宠鍗� {query.blNo} 宸叉挙鍥烇紒");
+
+            if (mesItemBl.Bl018 != true)
+                throw new Exception($"鐢宠鍗� {query.blNo} 鏈鏍革紒");
+
+            if (mesItemBl.Bl019 == true)
+                throw new Exception($"鐢宠鍗� {query.blNo} 宸插畬缁擄紒");
+
+            // 鑾峰彇鍙戣揣閫氱煡鍗曟槑缁嗗苟鏍¢獙
+            var blDetail = Db.Queryable<MesItemBlDetail>()
+                .Where(b =>
+                    b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId)
+                .First();
+
+            if (blDetail == null)
+                throw new Exception($"鐢宠鍗曚笉瀛樺湪姝ょ墿鏂� {stockBarcode.ItemNo} 璇风‘璁わ紒");
+
+            var remainingQty = (blDetail.Bld007 ?? 0) - (blDetail.Bld008 ?? 0);
+            if (remainingQty == 0)
+                throw new Exception("鐗╂枡宸叉壂鐮佸畬鎴愶紝璇锋牳瀵癸紒");
+
+            if (query.Num > remainingQty)
+                throw new Exception(
+                    $"鎷嗗垎鏁伴噺锛歿query.Num} 澶т簬寰呭彂鏂欐暟閲忥細{remainingQty}锛岃鏍稿锛�");
+
+            // 妫�鏌ュ伐鍗曚俊鎭�
+            var womdaa = Db.Queryable<Womdaa>()
+                .Where(a => a.Daa001 == query.billNo)
+                .First();
+
+            if (womdaa == null)
+                throw new Exception($"宸ュ崟 {query.billNo} 涓嶅瓨鍦紝璇风‘璁わ紒");
+
+            var womdab = Db.Queryable<Womdab>()
+                .Where(b =>
+                    b.Dab001 == query.billNo && b.Erpid == blDetail.Bld014)
+                .First();
+
+            if (womdab == null)
+                throw new Exception($"澶囨枡鏄庣粏涓嶅瓨鍦ㄦ鐗╂枡 {stockBarcode.ItemNo} 璇风‘璁わ紒");
+
+            // 妫�鏌ュ凡鍙戞枡鏁伴噺鏄惁瓒呰繃寰呭彂鏂欐暟閲�
+            var sumQty = db.Queryable<MesInvItemOutCDetails>()
+                .Where(it =>
+                    it.TaskNo == query.blNo && it.ItemId == stockBarcode.ItemId)
+                .Sum(it => it.Quantity);
+
+            //if (sumQty > remainingQty)
+            //    throw new Exception(
+            //        $"鎷嗗垎鏁伴噺锛歿sumQty} 澶т簬寰呭彂鏂欐暟閲忥細{remainingQty}锛岃鏍稿锛�");
+
+
+            var depots = Db.Queryable<MesDepots>()
+                .Where(t => t.DepotId == stockBarcode.DepotId)
+                .First();
+
+            // 鑾峰彇鎴栧垱寤哄嚭搴撳崟
+            var itemOut = db.Queryable<MesInvItemOuts>()
+                .Where(a => a.TaskNo == query.blNo
+                            && a.DepotId == stockBarcode.DepotId
+                            && a.OutDate.Value.Date.ToString("yyyy-MM-dd") ==
+                            DateTime.Now.Date.ToString("yyyy-MM-dd")
+                            && a.BillTypeId == 200
+                            && a.TransactionNo == 209
+                            && a.Status == 0)
+                .First();
+
+            var outId = new Guid();
+            var outNo = "";
+            if (itemOut == null)
+            {
+                // 鍒涘缓鏂扮殑鍑哄簱鍗�
+                outId = Guid.NewGuid();
+                outNo = BillNo.GetBillNo(outNoType);
+
+                // 鎻掑叆鍑哄簱鍗曚富琛�
+                executeCommand += db.Insertable(new MesInvItemOuts
+                {
+                    Guid = outId,
+                    ItemOutNo = outNo,
+                    TaskNo = query.blNo,
+                    CreateBy = query.userName,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = query.userName,
+                    LastupdateDate = DateTime.Now,
+                    BillTypeId = 200,
+                    TransactionNo = 209,
+                    Remark = mesItemBl.Bl007,
+                    DepotCode = depots.DepotCode,
+                    OutPart = womdaa.Daa013,
+                    FType = 0,
+                    Factory = stockBarcode.Factory,
+                    Company = stockBarcode.Company,
+                    WorkNo = womdaa.Daa021,
+                    BoardItem = womdaa.Daa002,
+                    PbillNo = womdaa.Daa001,
+                    OutDate = DateTime.Now,
+                    Status = 0,
+                    DepotId = stockBarcode.DepotId,
+                    THORGID = stockBarcode.StockOrgId,
+                    OutType = query.Type,
+                    //BbillNo = query.blNo
+                }).IgnoreColumns(true).ExecuteCommand();
+            }
+            else
+            {
+                outId = itemOut.Guid;
+                outNo = itemOut.ItemOutNo;
+            }
+
+            // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鍗曟槑缁�
+            var itemOutItemCount = db.Queryable<MesInvItemOutItems>()
+                .Where(it =>
+                    it.ItemOutId == outId &&
+                    it.ItemId == stockBarcode.ItemId &&
+                    it.DepotId == stockBarcode.DepotId.ToString())
+                .Count();
+
+            if (itemOutItemCount == 0)
+                // 鎻掑叆鏂扮殑鍑哄簱鍗曟槑缁�
+                executeCommand += db.Insertable(new MesInvItemOutItems
+                {
+                    Guid = Guid.NewGuid(),
+                    ItemOutId = outId,
+                    ItemNo = blDetail.Bld002,
+                    Quantity = query.Num,
+                    TlQty = query.Num,
+                    CreateBy = query.userName,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = query.userName,
+                    LastupdateDate = DateTime.Now,
+                    Factory = stockBarcode.Factory,
+                    Company = stockBarcode.Company,
+                    DepotCode = depots.DepotCode,
+                    TaskNo = query.blNo,
+                    WorkNo = womdaa.Daa021,
+                    WorkLine = blDetail.Bld013,
+                    ErpItemNo = womdab.Dab003,
+                    ErpId = womdab.Eid,
+                    ErpAutoid = womdab.Erpid,
+                    PbillNo = query.billNo,
+                    ItemId = blDetail.Bld012,
+                    DepotId = stockBarcode.DepotId.ToString(),
+                    ItemDabid = womdab.Guid,
+                    // Unit = blDetail.Bld009,
+                    // DepotId = (int)stockBarcode.DepotsId
+                }).IgnoreColumns(true).ExecuteCommand();
+            else
+                // 鏇存柊宸叉湁鍑哄簱鍗曟槑缁嗘暟閲�
+                executeCommand += db.Updateable<MesInvItemOutItems>()
+                    .SetColumns(it => it.TlQty == (it.TlQty ?? 0) + query.Num)
+                    .Where(it =>
+                    it.ItemOutId == outId &&
+                    it.ItemId == stockBarcode.ItemId &&
+                    it.DepotId == stockBarcode.DepotId.ToString())
+                    .ExecuteCommand();
+
+            // 鎻掑叆鍑哄簱鏉$爜鏄庣粏
+            executeCommand += db.Insertable(new MesInvItemOutCDetails
+            {
+                Guid = Guid.NewGuid(),
+                ItemOutId = outId,
+                ItemBarcode = newBarcode ?? query.barcode,
+                ItemNo = stockBarcode.ItemNo,
+                LotNo = stockBarcode.LotNo,
+                Quantity = query.Num,
+                ForceOutFlag = 0,
+                CreateBy = query.userName,
+                CreateDate = DateTime.Now,
+                LastupdateBy = query.userName,
+                LastupdateDate = DateTime.Now,
+                DepotCode = depots.DepotCode,
+                DepotSectionCode = stockBarcode.DepotSectionsCode,
+                Remark = blDetail.Bld010,
+                Factory = stockBarcode.Factory,
+                Company = stockBarcode.Company,
+                TaskNoy = mesItemBl.Bl013,
+                BoardStyle = mesItemBl.Bl002,
+                TaskNo = query.blNo,
+                WorkNo = blDetail.Bld001,
+                WorkLine = blDetail.Bld013,
+                SuppNo = stockBarcode.SuppNo,
+                PbillNo = query.billNo,
+                ItemId = blDetail.Bld012,
+                Unit = blDetail.Bld009,
+                DepotId = (int)stockBarcode.DepotsId,
+                Dabid = womdab.Guid,
+            }).IgnoreColumns(true).ExecuteCommand();
+
+            // 鎻掑叆涓氬姟娴佹按
+            executeCommand += db.Insertable(new MesInvBusiness2
+            {
+                Guid = Guid.NewGuid(),
+                Status = 1,
+                BillTypeId = 200, // p_bill_type_id
+                TransactionCode = "209", // p_transaction_no 
+                BusinessType = 1,
+                ItemBarcode = newBarcode ?? query.barcode,
+                ItemNo = stockBarcode.ItemNo,
+                LotNo = stockBarcode.LotNo,
+                EpFlag = true,
+                Quantity = query.Num,
+                FromInvDepotsCode = stockBarcode.DepotsCode,
+                FromInvDepotSectionsCode = stockBarcode.DepotSectionsCode,
+                Description = query.Type,
+                CreateBy = query.userName,
+                CreateDate = DateTime.Now,
+                LastupdateBy = query.userName,
+                LastupdateDate = DateTime.Now,
+                Factory = stockBarcode.Factory,
+                Company = stockBarcode.Company,
+                TaskNo = mesItemBl.Bl012,
+                BillNo = query.blNo,
+                WorkNo = blDetail.Bld001,
+                WorkLine = blDetail.Bld013,
+                SuppNo = stockBarcode.SuppNo,
+                ItemId = stockBarcode.ItemId
+                // CkDepot = stockBarcode.DepotsId
+            }).IgnoreColumns(true).ExecuteCommand();
+
+            // 鏇存柊宸ュ崟琛ㄦ暟閲�
+            executeCommand += db.Updateable<Womdab>()
+                .SetColumns(it => new Womdab
+                {
+                    Dab007 = (it.Dab007 ?? 0) + query.Num, // 宸ュ崟鏁伴噺
+                    Dab020 = (it.Dab020 ?? 0) + query.Num, // 宸插彂鏂欐暟閲�
+                    Dab021 = (it.Dab021 ?? 0) + query.Num // 宸插彂鏂欐暟閲�
+                })
+                .Where(it => it.Guid == womdab.Guid && it.Dab003 == womdab.Dab003)
+                .ExecuteCommand();
+
+            // 鏇存柊鍙戣揣閫氱煡鍗曟槑缁嗗凡琛ユ暟閲�
+            executeCommand += db.Updateable<MesItemBlDetail>()
+                .SetColumns(it => new MesItemBlDetail
+                {
+                    Bld008 = (it.Bld008 ?? 0) + (int)query.Num
+                })
+                .Where(it => it.Id == blDetail.Id)
+                .ExecuteCommand();
+
+            // 鑾峰彇鏇存柊鍚庣殑鍙戣揣閫氱煡鍗曟槑缁嗘暟閲�
+            var updatedDetail = db.Queryable<MesItemBlDetail>()
+                .Where(it => it.Id == blDetail.Id)
+                .Select(it => new { it.Bld007, it.Bld008 })
+                .First();
+
+            if ((updatedDetail.Bld007 ?? 0) <= (updatedDetail.Bld008 ?? 0))
+                // 鏇存柊鏄庣粏瀹屾垚鐘舵��
+                executeCommand += db.Updateable<MesItemBlDetail>()
+                    .SetColumns(it => new MesItemBlDetail { Bld011 = 1 })
+                    .Where(it => it.Id == blDetail.Id)
+                    .ExecuteCommand();
+
+            // 妫�鏌ユ槸鍚﹁繕鏈夋湭瀹屾垚鐨勬槑缁�
+
+            var unfinishedDetail = db.Queryable<MesItemBlDetail>()
+                .Where(it => it.Mid == mesItemBl.Id && (it.Bld011 ?? 0) == 0)
+                .First();
+
+            if (unfinishedDetail == null)
+                // 濡傛灉娌℃湁鎵惧埌鏈畬鎴愭槑缁嗭紝鍒欐洿鏂板彂璐ч�氱煡鍗曠姸鎬佷负宸插畬鎴�
+                executeCommand += db.Updateable<MesItemBl>()
+                    .SetColumns(it => new MesItemBl
+                    {
+                        Bl019 = true,
+                        WcUser = query.userName,
+                        WcTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                    })
+                    .Where(it => it.Id == mesItemBl.Id)
+                    .ExecuteCommand();
+
+            if (executeCommand <= 1) throw new Exception("鏇存柊澶辫触");
+
+            return executeCommand;
+        }) > 0;
+
+        // 鑾峰彇鏈�缁堢殑寰呭彂鏂欐槑缁嗗垪琛�
+        var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) =>
+                new JoinQueryInfos(JoinType.Left, a.Id == b.Mid))
+            .Where((a, b) => a.BlNo == query.blNo
+                             && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0)
+            .Select((a, b) => new MesItemBlDetail
+            {
+                Bld012 = b.Bld012,
+                Bld002 = b.Bld002,
+                Bld003 = b.Bld003,
+                Bld004 = b.Bld004,
+                Bld007 = b.Bld007,
+                Bld008 = b.Bld008
+            })
+            .ToList();
+
+        return (success, pendingList);
     }
-        #endregion
+
+    #endregion
+
 }
\ No newline at end of file
diff --git a/service/Warehouse/MesXsthManager.cs b/service/Warehouse/MesXsthManager.cs
index baf36be..7750a1e 100644
--- a/service/Warehouse/MesXsthManager.cs
+++ b/service/Warehouse/MesXsthManager.cs
@@ -1,5 +1,4 @@
 锘縰sing Masuit.Tools;
-using MES.Service.Modes;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
diff --git a/service/Warehouse/TransferOutManager.cs b/service/Warehouse/TransferOutManager.cs
index 34119aa..80a37ac 100644
--- a/service/Warehouse/TransferOutManager.cs
+++ b/service/Warehouse/TransferOutManager.cs
@@ -1,6 +1,5 @@
 锘縰sing System.Data;
 using System.Data.SqlClient;
-using MES.Service.Modes;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
diff --git a/service/Warehouse/ZzxdbManager.cs b/service/Warehouse/ZzxdbManager.cs
new file mode 100644
index 0000000..5df1a6e
--- /dev/null
+++ b/service/Warehouse/ZzxdbManager.cs
@@ -0,0 +1,675 @@
+锘縰sing NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.entity.Base;
+using SqlSugar;
+using System.Data;
+using System.Data.SqlClient;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+
+namespace NewPdaSqlServer.service.Warehouse;
+
+/// <summary>
+///     璋冩嫧鍑哄叆搴撶鐞嗙被
+///     璐熻矗澶勭悊璋冩嫧鍑哄簱鐩稿叧鐨勪笟鍔¢�昏緫
+/// </summary>
+public class ZzxdbManager : Repository<MesDbck>
+{
+    /// <summary>
+    ///     鑾峰彇鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃
+    /// </summary>
+    /// <returns>鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃</returns>
+    public dynamic GetTransferOutNoList(WarehouseQuery query)
+    {
+        // 浣跨敤ADO.NET鐩存帴璋冪敤瀛樺偍杩囩▼
+        var ds = new DataSet();
+
+        // 鍋囪鎮ㄤ娇鐢ㄧ殑鏄疭QL Server锛屽垱寤篠qlConnection
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            conn.Open();
+
+            using (var cmd = new SqlCommand("prc_pda_zzxdb_wllist", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+
+                // 娣诲姞鍙傛暟
+                cmd.Parameters.Add(new SqlParameter("@itemNo", query.itemNo));
+                cmd.Parameters.Add(new SqlParameter("@pi_orgId", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP1", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP2", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP3", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP4", DBNull.Value));
+
+                using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
+                {
+                    adapter.Fill(ds);
+                }
+            }
+        }
+
+        // 杞崲缁撴灉
+        var XcslItem = Db.Utilities.DataTableToDynamic(ds.Tables[0]);
+        //var XcslWjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[1]);
+        //var XcslYjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[2]);
+        //var daaInfo = Db.Utilities.DataTableToDynamic(ds.Tables[3]);
+
+        //var dto = new
+        //{
+        //    XcslItemList = XcslItem
+        //    //XcslWjsBarList = XcslWjsBar,
+        //    //XcslYjsBarList = XcslYjsBar,
+        //    //DaaInfoList = daaInfo
+        //};
+
+        return XcslItem;
+    }
+
+    /// <summary>
+    ///     鏍规嵁鍗曟嵁鍙疯幏鍙栧緟澶勭悊鐨勮皟鎷ㄥ嚭搴撴槑缁嗗垪琛�
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param>
+    /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
+    public dynamic GetTransferOutDetailListByBillNo(
+        WarehouseQuery query)
+    {
+        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璋冩嫧鍗曞彿涓虹┖");
+
+        // 浣跨敤ADO.NET鐩存帴璋冪敤瀛樺偍杩囩▼
+        var ds = new DataSet();
+
+        // 鍋囪鎮ㄤ娇鐢ㄧ殑鏄疭QL Server锛屽垱寤篠qlConnection
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            conn.Open();
+
+            using (var cmd = new SqlCommand("prc_pda_zzxdb_kw", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+
+                // 娣诲姞鍙傛暟
+                cmd.Parameters.Add(new SqlParameter("@billNo", query.billNo));
+                cmd.Parameters.Add(new SqlParameter("@pi_orgId", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP1", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP2", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP3", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP4", DBNull.Value));
+
+                using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
+                {
+                    adapter.Fill(ds);
+                }
+            }
+        }
+
+        // 杞崲缁撴灉
+        var XcslItem = Db.Utilities.DataTableToDynamic(ds.Tables[0]);
+        //var XcslWjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[1]);
+        //var XcslYjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[2]);
+        //var daaInfo = Db.Utilities.DataTableToDynamic(ds.Tables[3]);
+
+        var dto = new
+        {
+            XcslItemList = XcslItem
+            //XcslWjsBarList = XcslWjsBar,
+            //XcslYjsBarList = XcslYjsBar,
+            //DaaInfoList = daaInfo
+        };
+
+        return dto;
+    }
+
+    /// <summary>
+    ///     鏍规嵁鍗曟嵁鍙疯幏鍙栧緟澶勭悊鐨勮皟鎷ㄥ嚭搴撴槑缁嗗垪琛�
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param>
+    /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
+    public dynamic GetMesItemByItemNo(
+        WarehouseQuery query, dynamic requestInfo)
+    {
+        if (string.IsNullOrEmpty(query.itemNo)) throw new Exception("鐗╂枡缂栧彿涓虹┖");
+
+        var orgId = requestInfo.OrgId;
+
+        if (orgId == null)
+            throw new Exception("缁勭粐涓嶅瓨鍦紒");
+
+        if (string.IsNullOrEmpty(query.dckw)) throw new Exception("璋冨嚭搴撲綅涓虹┖");
+
+        // 浣跨敤ADO.NET鐩存帴璋冪敤瀛樺偍杩囩▼
+        var ds = new DataSet();
+
+        // 鍋囪鎮ㄤ娇鐢ㄧ殑鏄疭QL Server锛屽垱寤篠qlConnection
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            conn.Open();
+
+            using (var cmd = new SqlCommand("prc_pda_zzxdb_wlmx", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+
+                // 娣诲姞鍙傛暟
+                cmd.Parameters.Add(new SqlParameter("@itemNo", query.itemNo));
+                cmd.Parameters.Add(new SqlParameter("@pi_orgId", orgId));
+                cmd.Parameters.Add(new SqlParameter("@inP1", query.dckw));
+                cmd.Parameters.Add(new SqlParameter("@inP2", query.userName));
+                cmd.Parameters.Add(new SqlParameter("@inP3", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP4", DBNull.Value));
+
+                using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
+                {
+                    adapter.Fill(ds);
+                }
+            }
+        }
+
+        // 杞崲缁撴灉
+        var XcslItem = Db.Utilities.DataTableToDynamic(ds.Tables[0]);
+        var XcslWjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[1]);
+        //var XcslYjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[2]);
+        //var daaInfo = Db.Utilities.DataTableToDynamic(ds.Tables[3]);
+
+        var dto = new
+        {
+            XcslItemList = XcslItem,
+            ItemDetail = XcslWjsBar,
+            //XcslYjsBarList = XcslYjsBar,
+            //DaaInfoList = daaInfo
+        };
+
+        return dto;
+    }
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜鐢熸垚璋冩嫧鐢宠鍗�
+    /// </summary>
+    /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns>
+    public dynamic
+        saveDbsq(WarehouseQuery query, dynamic requestInfo)
+    {
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            if (string.IsNullOrEmpty(query.id)) throw new Exception("鐗╂枡id涓虹┖");
+
+            var orgId = requestInfo.OrgId;
+
+            if (orgId == null)
+                throw new Exception("缁勭粐涓嶅瓨鍦紒");
+
+            if (string.IsNullOrEmpty(query.userName)) throw new Exception("鐧诲綍璐﹀彿涓虹┖");
+
+            if (string.IsNullOrEmpty(query.drkw)) throw new Exception("璋冨叆浠撳簱涓虹┖");
+
+            if (string.IsNullOrEmpty(query.dckw)) throw new Exception("璋冨嚭浠撳簱涓虹┖");
+
+            using (var cmd = new SqlCommand("[prc_pda_zzxdb_save]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@itemId", query.id),
+                        new("@dbNum", query.dbNum),
+                        new("@remark", query.remark),
+                        new("@ACCOUNT", query.userName),
+                        new("@drkw", query.drkw),
+                        new("@dckw", query.dckw),
+                        new("@inP1", orgId),
+                        new("@inP2", DBNull.Value),
+                        new("@inP3", DBNull.Value)
+
+                };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    var dto = new
+                    {
+                        strMsg = _strMsg,
+                        result = _intSum
+                    };
+
+                    return dto;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜鐢熸垚璋冩嫧鐢宠鍗�
+    /// </summary>
+    /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns>
+    public dynamic deleteDbsqMx(WarehouseQuery query)
+    {
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            if (string.IsNullOrEmpty(query.id)) throw new Exception("璋冩嫧鐢宠鏄庣粏璁板綍ID涓虹┖");
+
+            using (var cmd = new SqlCommand("[prc_pda_zzxdb_delete]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@DbmxId", query.id),
+                        new("@inP1", DBNull.Value),
+                        new("@inP2", DBNull.Value),
+                        new("@inP3", DBNull.Value)
+
+                };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    var dto = new
+                    {
+                        strMsg = _strMsg,
+                        result = _intSum
+                    };
+
+                    return dto;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜鐢熸垚璋冩嫧鐢宠鍗�
+    /// </summary>
+    /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns>
+    public dynamic submitDbBillNo(WarehouseQuery query, dynamic requestInfo)
+    {
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            if (string.IsNullOrEmpty(query.id)) throw new Exception("璋冩嫧鐢宠璁板綍ID涓虹┖");
+
+            using (var cmd = new SqlCommand("[prc_pda_zzxdb_sure]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@DbdjId", query.id),
+                        new("@ACCOUNT", query.userName),
+                        new("@inP1", DBNull.Value),
+                        new("@inP2", DBNull.Value),
+                        new("@inP3", DBNull.Value)
+
+                };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    var dto = new
+                    {
+                        strMsg = _strMsg,
+                        result = _intSum
+                    };
+
+                    return dto;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁鍗曟嵁鍙疯幏鍙栧緟澶勭悊鐨勮皟鎷ㄥ嚭搴撴槑缁嗗垪琛�
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param>
+    /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
+    public ProductionPickDto GetTransferInDetailListByBillNo(
+        WarehouseQuery query)
+    {
+        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璋冩嫧鍗曞彿涓虹┖");
+
+        var sql1 = string.Format(@"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'", query.billNo);
+
+        var dbck = Db.Ado.SqlQuery<ItemDetailModel>(sql1);
+
+        if (dbck.Count < 1) throw new Exception("璋冩嫧鍗曞彿涓嶅瓨鍦ㄦ垨鏈鏍革紒");
+
+        var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.RQty RQty,b.SQty - b.RQty DSQty ,
+       dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw
+    FROM MES_DBCK_DETAIL B
+    LEFT JOIN MES_DBCK A ON A.ID = B.pid
+    LEFT JOIN MES_ITEMS C ON  B.FMATERIALID = C.item_id
+    LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
+    WHERE A.FBillNo = '{0}'  ORDER BY FSEQ", query.billNo);
+
+        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql2);
+
+
+        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
+
+        var YS_list = womdabs.Where(s => s.RQty > 0).ToList();
+
+        //var p_bill_no = query.billNo;
+
+        //// 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏
+        //// 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛�
+        //// 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳
+        //var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
+        //        (b, a, s) => new JoinQueryInfos(
+        //            JoinType.Left, b.Pid == a.Id,
+        //            JoinType.Left, b.FMaterialId == s.Id.ToString()))
+        //    .Where((b, a, s) =>
+        //        !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0))
+        //        && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙�
+        //        && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍�
+        //    .OrderBy((b, a, s) => s.ItemNo)
+        //    .Select((b, a, s) => new ItemDetailModel
+        //    {
+        //        ItemNo = s.ItemNo,
+        //        ItemName = s.ItemName,
+        //        ItemModel = s.ItemModel,
+        //        FQty = b.FQty, // 鐢宠鏁伴噺
+        //        SQty = b.SQty, // 宸叉壂鏁伴噺
+        //        RQty = b.RQty, // 宸叉壂鏁伴噺
+        //        // 淇濈暀鍏朵粬蹇呰瀛楁...
+        //        Pid = b.Pid.ToString(),
+        //        FMaterialId = b.FMaterialId,
+        //        Id = b.Id.ToString()
+        //    })
+        //    .ToList();
+
+        //if(result.Count < 1) throw new Exception("璇ヨ皟鎷ㄥ崟涓嶅瓨鍦ㄦ垨宸叉壂瀹岋紝璇烽噸鏂版壂鎻�");
+
+        var dto = new ProductionPickDto
+        {
+            items = DS_list,
+            Ysitems = YS_list
+            // yisao = mesInvItemOutCDetailsList
+        };
+
+        return dto;
+    }
+
+    public List<ItemDetailModel> GetDBCKDetal(
+        WarehouseQuery query)
+    {
+        var p_bill_no = query.billNo;
+
+        // 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏
+        // 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛�
+        // 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳
+        var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
+                (b, a, s) => new JoinQueryInfos(
+                    JoinType.Left, b.Pid == a.Id,
+                    JoinType.Left, b.FMaterialId == s.Id.ToString()))
+            .Where((b, a, s) =>
+                !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0)) // 鏈畬鎴愭暟閲忓ぇ浜�0
+                && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙�
+                && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍�
+            .OrderBy((b, a, s) => s.ItemNo)
+            .Select((b, a, s) => new ItemDetailModel
+            {
+                ItemNo = s.ItemNo,
+                ItemName = s.ItemName,
+                ItemModel = s.ItemModel,
+                FQty = b.FQty, // 鐢宠鏁伴噺
+                SQty = b.SQty, // 宸叉壂鏁伴噺
+                RQty = b.RQty,
+                // 淇濈暀鍏朵粬蹇呰瀛楁...
+                Pid = b.Pid.ToString(),
+                FMaterialId = b.FMaterialId,
+                Id = b.Id.ToString()
+            })
+            .ToList();
+
+        return result;
+    }
+
+
+    /// <summary>
+    ///     鎵弿鏉$爜杩涜璋冩嫧鍏ュ簱澶勭悊
+    /// </summary>
+    /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param>
+    /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns>
+    public (WarehouseQuery form, List<ItemDetailModel> items)
+        ScanReceiveBarcode(WarehouseQuery query)
+    {
+        var p_bill_no = query.billNo;
+        var p_item_barcode = query.barcode;
+
+        var barinfo = Db.Queryable<MesInvItemStocks>()
+            .Where(x => x.ItemBarcode == p_item_barcode)
+            .First();
+
+
+        //// 楠岃瘉鍗曟嵁鍙�
+        //if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
+
+        //// 鏌ヨ鍑哄簱鍗曞苟楠岃瘉鐘舵��
+        //var transferOut = Db.Queryable<MesDbck>()
+        //    .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1)
+        //    .First();
+        //if (transferOut == null) throw new Exception("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�");
+
+        // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
+        var stock = Db.Queryable<MesDbckDetail>()
+            .Where(x => x.FMaterialId == barinfo.ItemId.ToString()
+                        && x.FQty > 0
+                        && !string.IsNullOrEmpty(x.FStockInId)
+                        && !string.IsNullOrEmpty(x.FOwnerInId))
+            .First();
+        if (stock == null) throw new Exception($"璋冩嫧鏄庣粏涓� 銆愮墿鏂欍�戞垨 銆愯皟鍏ヤ粨搴撱�戞垨銆愯皟鍏ヨ揣涓汇�戜俊鎭笉瀛樺湪锛岃鏍稿锛亄p_item_barcode}");
+
+        // 鏌ヨ鐗╂枡淇℃伅
+        var item = Db.Queryable<MesItems>()
+            .Where(x => x.Id.ToString() == stock.FMaterialId)
+            .First();
+        if (item == null) throw new Exception("鏈壘鍒扮墿鏂�");
+
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("[prc_pda_DBRK]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@barcode_num", SqlDbType.NVarChar, 300),
+                        new("@outBillNo", SqlDbType.NVarChar, 300),
+                        new("@c_user", query.userName),
+                        new("@p_bill_no", p_bill_no),
+                        new("@p_item_barcode", p_item_barcode),
+                        new("@p_depot_section_code", query.sectionCode),
+                    };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    parameters[2].Direction = ParameterDirection.Output;
+                    parameters[3].Direction = ParameterDirection.Output;
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+
+                    var barcodeNum = parameters[2].Value.ToString();
+                    var outBillNo = parameters[3].Value.ToString();
+                    
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    query.itemNo = item.ItemNo;
+                    query.Num = Convert.ToDecimal(barcodeNum);
+                    //query.Fum = Convert.ToDecimal(splitNum);
+                    query.billNo = outBillNo;
+
+                    // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏
+                    return (query, GetDBCKDetal(query));
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+    public ProductionPickDto ScanCodeCF(WarehouseQuery query)
+    {
+        var p_bill_no = query.daa001;
+        var p_item_barcode = query.barcode;
+
+        var barinfo = Db.Queryable<MesInvItemStocks>()
+            .Where(x => x.ItemBarcode == p_item_barcode)
+            .First();
+
+        // 楠岃瘉鍗曟嵁鍙�
+        if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
+
+        // 鏌ヨ鍑哄簱鍗曞苟楠岃瘉鐘舵��
+        var transferOut = Db.Queryable<MesDbck>()
+            .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1)
+            .First();
+        if (transferOut == null) throw new Exception("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�");
+
+        // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
+        var stock = Db.Queryable<MesDbckDetail>()
+            .Where(x => x.FMaterialId == barinfo.ItemId.ToString()
+                        && x.FQty > 0
+                        && !string.IsNullOrEmpty(x.FStockInId)
+                        && !string.IsNullOrEmpty(x.FOwnerInId))
+            .First();
+        if (stock == null) throw new Exception($"璋冩嫧鏄庣粏涓� 銆愮墿鏂欍�戞垨 銆愯皟鍏ヤ粨搴撱�戞垨銆愯皟鍏ヨ揣涓汇�戜俊鎭笉瀛樺湪锛岃鏍稿锛亄p_item_barcode}");
+
+        // 鏌ヨ鐗╂枡淇℃伅
+        var item = Db.Queryable<MesItems>()
+            .Where(x => x.Id.ToString() == stock.FMaterialId)
+            .First();
+        if (item == null) throw new Exception("鏈壘鍒扮墿鏂�");
+
+        var _strMsg = "";
+        var _intSum = "";
+        var _cfBar = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("[prc_pda_DBCK_CF]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 2000),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@outCfBar", SqlDbType.NVarChar, 300),
+                        new("@c_User", query.userName),
+                        new("@p_biLL_no", query.daa001),
+                        new("@p_item_barcode", query.barcode),
+                        new("@num", query.Num)
+                    };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    parameters[2].Direction = ParameterDirection.Output;
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+                    _cfBar = parameters[2].Value.ToString();
+
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    var dto = new ProductionPickDto
+                    {
+                        daa001 = query.daa001,
+                        barcode = query.barcode,//鍘熸潯鐮�
+                        cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
+                    };
+
+                    return dto;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/service/Wom/MesWorkProdManager.cs b/service/Wom/MesWorkProdManager.cs
index f99252e..d5667a3 100644
--- a/service/Wom/MesWorkProdManager.cs
+++ b/service/Wom/MesWorkProdManager.cs
@@ -1,12 +1,11 @@
 锘縰sing NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
-using NewPdaSqlServer.entity.Base;
 using NewPdaSqlServer.util;
 using SqlSugar;
 using System.Data;
 using System.Data.SqlClient;
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
 
 namespace NewPdaSqlServer.service.Wom;
 
@@ -46,212 +45,212 @@
     /// </exception>
     public ScanWorkResult ScanWorkAsync(ScanWorkRequest request)
     {
-        // // 1. 楠岃瘉鍛樺伐淇℃伅
-        // var staff = Db.Queryable<MesStaff>()
-        //     .Where(x => x.StaffNo == request.StaffNo)
-        //     .First();
-        // if (staff == null)
-        //     throw new Exception("璇峰厛閫夋嫨浜哄憳");
+        //// 1. 楠岃瘉鍛樺伐淇℃伅
+        //var staff = Db.Queryable<MesStaff>()
+        //    .Where(x => x.StaffNo == request.StaffNo)
+        //    .First();
+        //if (staff == null)
+        //    throw new Exception("璇峰厛閫夋嫨浜哄憳");
 
-        // // 2. 楠岃瘉鏉$爜淇℃伅
-        // var barcode = Db.Queryable<MesInvItemBarcodes>()
-        //     .Where(x => x.ItemBarcode == request.ItemBarcode)
-        //     .First();
-        // if (barcode == null)
-        //     throw new Exception($"鏃犳鏉$爜锛岃鏍稿锛亄request.ItemBarcode}");
+        //// 2. 楠岃瘉鏉$爜淇℃伅
+        //var barcode = Db.Queryable<MesInvItemBarcodes>()
+        //    .Where(x => x.ItemBarcode == request.ItemBarcode)
+        //    .First();
+        //if (barcode == null)
+        //    throw new Exception($"鏃犳鏉$爜锛岃鏍稿锛亄request.ItemBarcode}");
 
-        // // 3. 楠岃瘉鐗╂枡淇℃伅
-        // var item = Db.Queryable<MesItems>()
-        //     .Where(x => x.Id == barcode.ItemId)
-        //     .First();
-        // if (item == null)
-        //     throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄request.ItemBarcode}");
+        //// 3. 楠岃瘉鐗╂枡淇℃伅
+        //var item = Db.Queryable<MesItems>()
+        //    .Where(x => x.Id == barcode.ItemId)
+        //    .First();
+        //if (item == null)
+        //    throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄request.ItemBarcode}");
 
-        // // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
-        // var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
-        // var transactionNo = 902; // 榛樿浜ゆ槗鍙�
-        // switch (barcode.Memo?.Trim() ?? "0")
-        // {
-        //     case "涓濆嵃":
-        //         transactionNo = 901; // 涓濆嵃宸ュ簭
-        //         break;
-        //     case "鍗婃垚鍝�":
-        //         transactionNo = 902; // 鍗婃垚鍝佸伐搴�
-        //         break;
-        //     case "鍖呰":
-        //     case "鎴愬搧":
-        //         transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
-        //         break;
-        // }
+        //// 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
+        //var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
+        //var transactionNo = 902; // 榛樿浜ゆ槗鍙�
+        //switch (barcode.Memo?.Trim() ?? "0")
+        //{
+        //    case "涓濆嵃":
+        //        transactionNo = 901; // 涓濆嵃宸ュ簭
+        //        break;
+        //    case "鍗婃垚鍝�":
+        //        transactionNo = 902; // 鍗婃垚鍝佸伐搴�
+        //        break;
+        //    case "鍖呰":
+        //    case "鎴愬搧":
+        //        transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
+        //        break;
+        //}
 
-        // // 5. 妫�鏌ユ潯鐮佹槸鍚﹂噸澶嶆壂鎻�
-        // var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
-        //         (a, b) =>
-        //             new JoinQueryInfos(JoinType.Inner,
-        //                 a.Id == b.MesWorkProdId))
-        //     .Where((a, b) => b.ItemBarcode == request.ItemBarcode
-        //                      && a.BillTypeId == billTypeId
-        //                      && a.TransactionNo == transactionNo)
-        //     .Any();
+        //// 5. 妫�鏌ユ潯鐮佹槸鍚﹂噸澶嶆壂鎻�
+        //var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
+        //        (a, b) =>
+        //            new JoinQueryInfos(JoinType.Inner,
+        //                a.Id == b.MesWorkProdId))
+        //    .Where((a, b) => b.ItemBarcode == request.ItemBarcode
+        //                     && a.BillTypeId == billTypeId
+        //                     && a.TransactionNo == transactionNo)
+        //    .Any();
 
-        // if (exists)
-        //     throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
+        //if (exists)
+        //    throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
 
-        // // 6. 鑾峰彇宸叉姤宸ユ暟閲�
-        // var reportedQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
-        //         (a, b) =>
-        //             new JoinQueryInfos(JoinType.Inner,
-        //                 a.BillNo == b.BillNo))
-        //     .Where((a, b) => a.BillTypeId == billTypeId
-        //                      && a.TransactionNo == transactionNo
-        //                      && a.TaskNo == barcode.BillNo)
-        //     .Sum((a, b) => b.Quantity);
+        //// 6. 鑾峰彇宸叉姤宸ユ暟閲�
+        //var reportedQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
+        //        (a, b) =>
+        //            new JoinQueryInfos(JoinType.Inner,
+        //                a.BillNo == b.BillNo))
+        //    .Where((a, b) => a.BillTypeId == billTypeId
+        //                     && a.TransactionNo == transactionNo
+        //                     && a.TaskNo == barcode.BillNo)
+        //    .Sum((a, b) => b.Quantity);
 
-        // // 7. 鑾峰彇宸ュ崟璁″垝鏁伴噺鍜屽瀷鍙�
-        // var workOrder = Db.Queryable<Womdaa>()
-        //     .Where(x => x.Daa001 == barcode.BillNo)
-        //     .First();
-        // if (workOrder == null)
-        //     throw new Exception($"鏃犲伐鍗曟槑缁嗭紝璇锋牳瀵癸紒{request.ItemBarcode}");
+        //// 7. 鑾峰彇宸ュ崟璁″垝鏁伴噺鍜屽瀷鍙�
+        //var workOrder = Db.Queryable<Womdaa>()
+        //    .Where(x => x.Daa001 == barcode.BillNo)
+        //    .First();
+        //if (workOrder == null)
+        //    throw new Exception($"鏃犲伐鍗曟槑缁嗭紝璇锋牳瀵癸紒{request.ItemBarcode}");
 
-        // var planQty = workOrder.Daa008;
-        // var itemModel = workOrder.Daa004;
+        //var planQty = workOrder.Daa008;
+        //var itemModel = workOrder.Daa004;
 
-        // // 8. 浣跨敤浜嬪姟澶勭悊鎶ュ伐鏁版嵁
-        // UseTransaction(db =>
-        // {
-        //     // 9. 澶勭悊鏈夋暟閲忔潯鐮佺殑鑷姩鎶ュ伐
-        //     if (barcode.Quantity > 0)
-        //     {
-        //         var reportQty = barcode.Quantity;
-        //         if (reportQty <= 0)
-        //             throw new Exception(
-        //                 $"鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬0锛岃鏍稿锛亄request.ItemBarcode}");
+        //// 8. 浣跨敤浜嬪姟澶勭悊鎶ュ伐鏁版嵁
+        //UseTransaction(db =>
+        //{
+        //    // 9. 澶勭悊鏈夋暟閲忔潯鐮佺殑鑷姩鎶ュ伐
+        //    if (barcode.Quantity > 0)
+        //    {
+        //        var reportQty = barcode.Quantity;
+        //        if (reportQty <= 0)
+        //            throw new Exception(
+        //                $"鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬0锛岃鏍稿锛亄request.ItemBarcode}");
 
-        //         var totalQty = (reportedQty ?? 0) + reportQty;
-        //         if (totalQty > workOrder.Daa008)
-        //             throw new Exception(
-        //                 $"鏈鎶ュ伐鏁伴噺锛歿reportQty} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿workOrder.Daa008 - reportedQty ?? 0}锛岃鏍稿锛�");
+        //        var totalQty = (reportedQty ?? 0) + reportQty;
+        //        if (totalQty > workOrder.Daa008)
+        //            throw new Exception(
+        //                $"鏈鎶ュ伐鏁伴噺锛歿reportQty} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿workOrder.Daa008 - reportedQty ?? 0}锛岃鏍稿锛�");
 
-        //         // 10. 鏇存柊鏉$爜鐘舵��
-        //         db.Updateable<MesInvItemBarcodes>()
-        //             .SetColumns(x => new MesInvItemBarcodes
-        //             {
-        //                 WorkFlg = true
-        //                 //Quantity = reportQty
-        //             })
-        //             .Where(x => x.Guid == barcode.Guid)
-        //             .ExecuteCommand();
+        //        // 10. 鏇存柊鏉$爜鐘舵��
+        //        db.Updateable<MesInvItemBarcodes>()
+        //            .SetColumns(x => new MesInvItemBarcodes
+        //            {
+        //                WorkFlg = true
+        //                //Quantity = reportQty
+        //            })
+        //            .Where(x => x.Guid == barcode.Guid)
+        //            .ExecuteCommand();
 
-        //         // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟
-        //         var workProd = db.Queryable<MesWorkProd>()
-        //             .Where(x => x.TaskNo == barcode.BillNo
-        //                         && x.CreateDate.Value.Date.ToString(
-        //                             "yyyy-MM-dd") ==
-        //                         DateTime.Now.Date.ToString("yyyy-MM-dd")
-        //                         && x.BillTypeId == billTypeId
-        //                         && x.TransactionNo == transactionNo
-        //                         && x.ReportBy == request.StaffNo)
-        //             .First();
+        //        // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟
+        //        var workProd = db.Queryable<MesWorkProd>()
+        //            .Where(x => x.TaskNo == barcode.BillNo
+        //                        && x.CreateDate.Value.Date.ToString(
+        //                            "yyyy-MM-dd") ==
+        //                        DateTime.Now.Date.ToString("yyyy-MM-dd")
+        //                        && x.BillTypeId == billTypeId
+        //                        && x.TransactionNo == transactionNo
+        //                        && x.ReportBy == request.StaffNo)
+        //            .First();
 
-        //         var id = Guid.Empty;
-        //         var billNo = "";
-        //         if (workProd == null)
-        //         {
-        //             id = Guid.NewGuid();
-        //             billNo = BillNo.GetBillNo("BG(鎶ュ伐)");
+        //        var id = Guid.Empty;
+        //        var billNo = "";
+        //        if (workProd == null)
+        //        {
+        //            id = Guid.NewGuid();
+        //            billNo = BillNo.GetBillNo("BG(鎶ュ伐)");
 
-        //             workProd = new MesWorkProd
-        //             {
-        //                 Id = id,
-        //                 BillNo = billNo,
-        //                 LineNo = barcode.LineNo,
-        //                 Company = barcode.Company,
-        //                 Factory = barcode.Factory,
-        //                 CreateBy = request.UserNo,
-        //                 CreateDate = DateTime.Now,
-        //                 LastupdateBy = request.UserNo,
-        //                 LastupdateDate = DateTime.Now,
-        //                 BillTypeId = billTypeId,
-        //                 TransactionNo = transactionNo,
-        //                 TaskNo = barcode.BillNo,
-        //                 ReportBy = request.StaffNo,
-        //                 ReportDate = DateTime.Now
-        //             };
+        //            workProd = new MesWorkProd
+        //            {
+        //                Id = id,
+        //                BillNo = billNo,
+        //                LineNo = barcode.LineNo,
+        //                Company = barcode.Company,
+        //                Factory = barcode.Factory,
+        //                CreateBy = request.UserNo,
+        //                CreateDate = DateTime.Now,
+        //                LastupdateBy = request.UserNo,
+        //                LastupdateDate = DateTime.Now,
+        //                BillTypeId = billTypeId,
+        //                TransactionNo = transactionNo,
+        //                TaskNo = barcode.BillNo,
+        //                ReportBy = request.StaffNo,
+        //                ReportDate = DateTime.Now
+        //            };
 
-        //             db.Insertable(workProd).IgnoreColumns(true)
-        //                 .ExecuteCommand();
-        //         }
-        //         else
-        //         {
-        //             id = workProd.Id;
-        //             billNo = workProd.BillNo;
-        //         }
+        //            db.Insertable(workProd).IgnoreColumns(true)
+        //                .ExecuteCommand();
+        //        }
+        //        else
+        //        {
+        //            id = workProd.Id;
+        //            billNo = workProd.BillNo;
+        //        }
 
-        //         // 12. 鎻掑叆鎶ュ伐鏄庣粏
-        //         var detailId = Guid.NewGuid();
-        //         db.Insertable(new MesWorkProdCDetails
-        //         {
-        //             Id = detailId,
-        //             MesWorkProdId = id,
-        //             BillNo = billNo,
-        //             ItemBarcode = request.ItemBarcode,
-        //             Quantity = (int)reportQty,
-        //             Company = barcode.Company,
-        //             Factory = barcode.Factory,
-        //             CreateBy = request.UserNo,
-        //             CreateDate = DateTime.Now,
-        //             LastupdateBy = request.UserNo,
-        //             LastupdateDate = DateTime.Now,
-        //             ItemNo = item.ItemNo,
-        //             WorkLast = barcode.WorkLast,
-        //             SilkPqty = barcode.SilkPqty,
-        //             SilkId = barcode.SilkId,
-        //             Silk = barcode.Silk,
-        //             BgYg = request.StaffNo
-        //         }).IgnoreColumns(true).ExecuteCommand();
+        //        // 12. 鎻掑叆鎶ュ伐鏄庣粏
+        //        var detailId = Guid.NewGuid();
+        //        db.Insertable(new MesWorkProdCDetails
+        //        {
+        //            Id = detailId,
+        //            MesWorkProdId = id,
+        //            BillNo = billNo,
+        //            ItemBarcode = request.ItemBarcode,
+        //            Quantity = (int)reportQty,
+        //            Company = barcode.Company,
+        //            Factory = barcode.Factory,
+        //            CreateBy = request.UserNo,
+        //            CreateDate = DateTime.Now,
+        //            LastupdateBy = request.UserNo,
+        //            LastupdateDate = DateTime.Now,
+        //            ItemNo = item.ItemNo,
+        //            WorkLast = barcode.WorkLast,
+        //            SilkPqty = barcode.SilkPqty,
+        //            SilkId = barcode.SilkId,
+        //            Silk = barcode.Silk,
+        //            BgYg = request.StaffNo
+        //        }).IgnoreColumns(true).ExecuteCommand();
 
-        //         // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲�
-        //         db.Updateable<Womdaa>()
-        //                 .SetColumns(x => new Womdaa
-        //                 {
-        //                     Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity
-        //                 })
-        //                 .Where(x => x.Daa001 == barcode.BillNo)
-        //                 .ExecuteCommand();
+        //        // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲�
+        //        db.Updateable<Womdaa>()
+        //                .SetColumns(x => new Womdaa
+        //                {
+        //                    Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity
+        //                })
+        //                .Where(x => x.Daa001 == barcode.BillNo)
+        //                .ExecuteCommand();
 
-        //         // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺
-        //         reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>(
-        //                 (a, b) =>
-        //                     new JoinQueryInfos(JoinType.Inner,
-        //                         a.BillNo == b.BillNo))
-        //             .Where((a, b) => a.BillTypeId == billTypeId
-        //                              && a.TransactionNo == transactionNo
-        //                              && a.TaskNo == barcode.BillNo)
-        //             .Sum((a, b) => b.Quantity);
-        //     }
+        //        // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺
+        //        reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>(
+        //                (a, b) =>
+        //                    new JoinQueryInfos(JoinType.Inner,
+        //                        a.BillNo == b.BillNo))
+        //            .Where((a, b) => a.BillTypeId == billTypeId
+        //                             && a.TransactionNo == transactionNo
+        //                             && a.TaskNo == barcode.BillNo)
+        //            .Sum((a, b) => b.Quantity);
+        //    }
 
-        //     return 1;
-        // });
+        //    return 1;
+        //});
 
-        // // 15. 杩斿洖澶勭悊缁撴灉
-        // return new ScanWorkResult
-        // {
-        //     TaskNo = barcode.BillNo,
-        //     ItemNo = item.ItemNo,
-        //     PlanQty = planQty ?? 0,
-        //     ReportedQty = reportedQty ?? 0,
-        //     CurrentQty = barcode.Quantity.Value,
-        //     BarcodeQty = barcode.Quantity.Value,
-        //     ItemName = item.ItemName,
-        //     ItemModel = itemModel,
-        //     Message = "鎵爜鎴愬姛锛�"
-        // };
+        //// 15. 杩斿洖澶勭悊缁撴灉
+        //return new ScanWorkResult
+        //{
+        //    TaskNo = barcode.BillNo,
+        //    ItemNo = item.ItemNo,
+        //    PlanQty = planQty ?? 0,
+        //    ReportedQty = reportedQty ?? 0,
+        //    CurrentQty = barcode.Quantity.Value,
+        //    BarcodeQty = barcode.Quantity.Value,
+        //    ItemName = item.ItemName,
+        //    ItemModel = itemModel,
+        //    Message = "鎵爜鎴愬姛锛�"
+        //};
 
         //1.楠岃瘉鍛樺伐淇℃伅
-         var staff = Db.Queryable<MesStaff>()
-             .Where(x => x.StaffNo == request.StaffNo)
-             .First();
+        var staff = Db.Queryable<MesStaff>()
+            .Where(x => x.StaffNo == request.StaffNo)
+            .First();
         if (staff == null)
             throw new Exception("璇峰厛閫夋嫨浜哄憳");
 
@@ -287,57 +286,19 @@
         };
 
         string procedureName = "prc_pda_scbg";
-        int res = DB.DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters);
+        int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters);
 
         // Retrieve output parameters with proper type conversion
         var po_outMsg = parameters[2].Value?.ToString() ?? string.Empty;
         var po_outSum = parameters[3].Value != DBNull.Value ? Convert.ToInt32(parameters[3].Value) : -1;
         var po_womInBarSum = parameters[4].Value != DBNull.Value ? Convert.ToDecimal(parameters[4].Value) : 0m;
-
-
-        // 澹版槑鍙橀噺鍦ㄥ灞傦紝纭繚鍦ㄦ墍鏈夊垎鏀腑閮藉彲璁块棶
-        MesInvItemIns rksqOrder = null;
-        List<MesInvItemInRksqDetails> rksqDetails = new List<MesInvItemInRksqDetails>();
-
-        if (po_outSum == 1)
-        {
-            rksqOrder = Db.Queryable<MesInvItemIns>()
-               .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo == "181" && x.CreateBy == request.StaffNo)
-               .First();
-
-            if (rksqOrder != null)
-            {
-                var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel
-FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
-LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
-LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
-WHERE A.bill_no= '{0}' ORDER BY A.create_date DESC", rksqOrder.BillNo);
-
-                rksqDetails = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql).ToList();
-            }
-        }
-        else if (po_outSum == 2)
-        {
-            rksqOrder = Db.Queryable<MesInvItemIns>()
-              .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo == "181" && x.CreateBy == request.StaffNo)
-              .First();
-
-            if (rksqOrder != null)
-            {
-                rksqOrder.BillNo = "";
-            }
-
-            rksqDetails = new List<MesInvItemInRksqDetails>();
-        }
+        
 
         // Check if the procedure failed
         if (po_outSum == -1)
         {
             throw new Exception(po_outMsg);
         }
-
-        // 澶勭悊rksqOrder涓簄ull鐨勬儏鍐�
-        string sjBillNo = rksqOrder?.BillNo ?? "";
 
         // 15. Return processing result
         return new ScanWorkResult
@@ -351,8 +312,8 @@
             ItemName = item.ItemName,
             ItemModel = workOrder.Daa004,
             Message = po_outMsg,
-            sjBillNo = sjBillNo,
-            BarcodesDetail = rksqDetails,
+            //sjBillNo = sjBillNo,
+            //BarcodesDetail = rksqDetails,
         };
 
     }
@@ -376,220 +337,124 @@
     /// </exception>
     public bool ScanWorkProdAsync(ScanWorkRequest request)
     {
-        //// 1. 楠岃瘉鎶ュ伐鏁伴噺鏄惁澶т簬0
-        //if (request.Quantity <= 0)
-        //    throw new Exception("鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬 0锛岃鏍稿锛�");
+        // 1. 楠岃瘉鎶ュ伐鏁伴噺鏄惁澶т簬0
+        if (request.Quantity <= 0)
+            throw new Exception("鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬 0锛岃鏍稿锛�");
 
-        //// 2. 鏌ヨ鏉$爜淇℃伅锛岄獙璇佹潯鐮佹槸鍚﹀瓨鍦�
-        //var barcode = Db.Queryable<MesInvItemBarcodes>()
-        //    .Where(x => x.ItemBarcode == request.ItemBarcode)
-        //    .First();
-        //if (barcode == null)
-        //    throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{request.ItemBarcode}");
+        // 2. 鏌ヨ鏉$爜淇℃伅锛岄獙璇佹潯鐮佹槸鍚﹀瓨鍦�
+        var barcode = Db.Queryable<MesInvItemBarcodes>()
+            .Where(x => x.ItemBarcode == request.ItemBarcode)
+            .First();
+        if (barcode == null)
+            throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{request.ItemBarcode}");
 
-        //// 3. 鏌ヨ宸ュ崟淇℃伅锛岄獙璇佸伐鍗曟槸鍚﹀瓨鍦�
-        //var womdaa = Db.Queryable<Womdaa>()
-        //    .Where(x => x.Daa001 == barcode.BillNo)
-        //    .First();
-        //if (womdaa == null)
-        //    throw new Exception($"鏉$爜涓嶆槸鎶ュ伐鏉$爜/鏃犲搴斿伐鍗曪紝璇锋牳瀵癸紒{request.ItemBarcode}");
+        // 3. 鏌ヨ宸ュ崟淇℃伅锛岄獙璇佸伐鍗曟槸鍚﹀瓨鍦�
+        var womdaa = Db.Queryable<Womdaa>()
+            .Where(x => x.Daa001 == barcode.BillNo)
+            .First();
+        if (womdaa == null)
+            throw new Exception($"鏉$爜涓嶆槸鎶ュ伐鏉$爜/鏃犲搴斿伐鍗曪紝璇锋牳瀵癸紒{request.ItemBarcode}");
 
-        //// 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
-        //var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
-        //var transactionNo = 902; // 榛樿浜ゆ槗鍙�(鍗婃垚鍝佸伐搴�)
-        //switch (barcode.Memo?.Trim() ?? "0")
-        //{
-        //    case "涓濆嵃":
-        //        transactionNo = 901; // 涓濆嵃宸ュ簭
-        //        break;
-        //    case "鍗婃垚鍝�":
-        //        transactionNo = 902; // 鍗婃垚鍝佸伐搴�
-        //        break;
-        //    case "鎴愬搧":
-        //    case "鍖呰":
-        //        transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
-        //        break;
-        //}
-
-        //// 5. 姹囨�诲凡鎵潯鐮佹暟閲忥紝楠岃瘉鏄惁瓒呭嚭璁″垝鏁伴噺
-        //var sumQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>((a, b) =>
-        //        new JoinQueryInfos(JoinType.Inner, a.BillNo == b.BillNo))
-        //    .Where((a, b) => a.BillTypeId == billTypeId
-        //                     && a.TransactionNo == transactionNo
-        //                     && b.SilkId == barcode.SilkId
-        //                     && a.TaskNo == barcode.BillNo)
-        //    .Sum((a, b) => b.Quantity);
-
-        //sumQty = (sumQty ?? 0) + (int)request.Quantity;
-
-        //if (sumQty > womdaa.Daa008)
-        //    throw new Exception(
-        //        $"鏈鎶ュ伐鏁伴噺锛歿request.Quantity} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿womdaa.Daa008 - (sumQty - request.Quantity)}锛岃鏍稿锛�");
-
-        //// 6. 寮�鍚簨鍔″鐞嗘姤宸ユ暟鎹�
-        //return UseTransaction(db =>
-        //{
-        //    // 6.1 鏇存柊鏉$爜淇℃伅锛岃缃凡鎶ュ伐鏍囪鍜屾暟閲�
-        //    db.Updateable<MesInvItemBarcodes>()
-        //        .SetColumns(x => x.WorkFlg == true)
-        //        .SetColumns(x => x.Quantity == request.Quantity)
-        //        .Where(x => x.Guid == barcode.Guid)
-        //        .ExecuteCommand();
-
-        //    // 6.2 鑾峰彇鎴栧垱寤烘姤宸ュ崟
-        //    var workProd = db.Queryable<MesWorkProd>()
-        //        .Where(x => x.TaskNo == barcode.BillNo
-        //                    && x.CreateDate.Value.Date.ToString("yyyy-MM-dd") ==
-        //                    DateTime.Now.Date.ToString("yyyy-MM-dd")
-        //                    && x.BillTypeId == billTypeId
-        //                    && x.TransactionNo == transactionNo
-        //                    && x.Status == 0)
-        //        .First();
-
-        //    // 6.3 濡傛灉鎶ュ伐鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勬姤宸ュ崟
-        //    if (workProd == null)
-        //    {
-        //        var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)");
-        //        workProd = new MesWorkProd
-        //        {
-        //            Id = Guid.NewGuid(),
-        //            BillNo = billNo,
-        //            LineNo = barcode.LineNo,
-        //            Company = barcode.Company,
-        //            Factory = barcode.Factory,
-        //            CreateBy = request.UserNo,
-        //            CreateDate = DateTime.Now,
-        //            LastupdateBy = request.UserNo,
-        //            LastupdateDate = DateTime.Now,
-        //            PbillNo = barcode.BillNo,
-        //            BillTypeId = billTypeId,
-        //            TransactionNo = transactionNo,
-        //            TaskNo = barcode.BillNo
-        //        };
-
-        //        db.Insertable(workProd).IgnoreColumns(true).ExecuteCommand();
-        //    }
-
-        //    // 6.4 鎻掑叆鎶ュ伐鏄庣粏璁板綍
-        //    var detail = new MesWorkProdCDetails
-        //    {
-        //        Id = Guid.NewGuid(),
-        //        BillNo = workProd.BillNo,
-        //        ItemBarcode = request.ItemBarcode,
-        //        Quantity = (int)request.Quantity,
-        //        Company = barcode.Company,
-        //        Factory = barcode.Factory,
-        //        CreateBy = request.UserNo,
-        //        CreateDate = DateTime.Now,
-        //        LastupdateBy = request.UserNo,
-        //        LastupdateDate = DateTime.Now,
-        //        ItemNo = barcode.ItemNo,
-        //        PbillNo = barcode.BillNo,
-        //        WorkLast = barcode.WorkLast,
-        //        SilkPqty = barcode.SilkPqty,
-        //        SilkId = barcode.SilkId,
-        //        Silk = barcode.Silk
-        //    };
-
-        //    db.Insertable(detail).IgnoreColumns(true).ExecuteCommand();
-
-        //    return 1;
-        //}) > 0;
-
-        // 璋冪敤瀛樺偍杩囩▼澶勭悊鐢熶骇鎶ュ伐瀹℃牳
-        var parameters = new SqlParameter[]
+        // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
+        var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
+        var transactionNo = 902; // 榛樿浜ゆ槗鍙�(鍗婃垚鍝佸伐搴�)
+        switch (barcode.Memo?.Trim() ?? "0")
         {
-             // 杈撳嚭鍙傛暟锛氳繑鍥炴秷鎭紙鏈�澶ч暱搴�2500瀛楃锛�
-             new SqlParameter("@outMsg", SqlDbType.NVarChar, 2500) { Direction = ParameterDirection.Output },
-             // 杈撳嚭鍙傛暟锛氳繑鍥炲奖鍝嶈鏁�
-             new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
-             // 杈撳叆鍙傛暟锛氭搷浣滀汉宸ュ彿
-            new SqlParameter("@userno", request.UserNo),
-            // 杈撳叆鍙傛暟锛氬崟鎹紪鍙凤紙杩欓噷浼犲叆浜嗘潯鐮佸�硷級
-             new SqlParameter("@inorder", request.sjBillNo),
-             // 杈撳叆鍙傛暟锛氭搷浣滅被鍨嬶紙1涓哄鏍革紝0涓哄弽瀹℃牳锛�
-             new SqlParameter("@inFieldValue", 1)
-            // 娉細浠ヤ笅鍙傛暟鍦ㄥ瓨鍌ㄨ繃绋嬩腑鏈夐粯璁ゅ�硷紝鍙牴鎹渶瑕佹坊鍔�
-            // @inFieldName nvarchar(20)=null,  // 鎵╁睍瀛楁鍚�
-            // @in1 nvarchar(20)=null,         // 鎵╁睍瀛楁1
-            // @in2 nvarchar(20)=null          // 鎵╁睍瀛楁2
-        };
-
-        // 瀛樺偍杩囩▼鍚嶇О
-        string procedureName = "prc_pda_scbg_submit";
-        // 鎵ц瀛樺偍杩囩▼
-        int res = DB.DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters);
-
-        // 鑾峰彇杈撳嚭鍙傛暟鍊硷紙甯︾被鍨嬭浆鎹級
-        var outMsg = parameters[0].Value?.ToString() ?? string.Empty;  // 杩斿洖娑堟伅
-        var outSum = parameters[1].Value != DBNull.Value ? Convert.ToInt32(parameters[1].Value) : -1;  // 褰卞搷琛屾暟
-
-        if (outSum == -1)
-        {
-            throw new Exception(outMsg);
+            case "涓濆嵃":
+                transactionNo = 901; // 涓濆嵃宸ュ簭
+                break;
+            case "鍗婃垚鍝�":
+                transactionNo = 902; // 鍗婃垚鍝佸伐搴�
+                break;
+            case "鎴愬搧":
+            case "鍖呰":
+                transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
+                break;
         }
-        else
+
+        // 5. 姹囨�诲凡鎵潯鐮佹暟閲忥紝楠岃瘉鏄惁瓒呭嚭璁″垝鏁伴噺
+        var sumQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>((a, b) =>
+                new JoinQueryInfos(JoinType.Inner, a.BillNo == b.BillNo))
+            .Where((a, b) => a.BillTypeId == billTypeId
+                             && a.TransactionNo == transactionNo
+                             && b.SilkId == barcode.SilkId
+                             && a.TaskNo == barcode.BillNo)
+            .Sum((a, b) => b.Quantity);
+
+        sumQty = (sumQty ?? 0) + (int)request.Quantity;
+
+        if (sumQty > womdaa.Daa008)
+            throw new Exception(
+                $"鏈鎶ュ伐鏁伴噺锛歿request.Quantity} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿womdaa.Daa008 - (sumQty - request.Quantity)}锛岃鏍稿锛�");
+
+        // 6. 寮�鍚簨鍔″鐞嗘姤宸ユ暟鎹�
+        return UseTransaction(db =>
         {
-            return true;
-        }
+            // 6.1 鏇存柊鏉$爜淇℃伅锛岃缃凡鎶ュ伐鏍囪鍜屾暟閲�
+            db.Updateable<MesInvItemBarcodes>()
+                .SetColumns(x => x.WorkFlg == true)
+                .SetColumns(x => x.Quantity == request.Quantity)
+                .Where(x => x.Guid == barcode.Guid)
+                .ExecuteCommand();
+
+            // 6.2 鑾峰彇鎴栧垱寤烘姤宸ュ崟
+            var workProd = db.Queryable<MesWorkProd>()
+                .Where(x => x.TaskNo == barcode.BillNo
+                            && x.CreateDate.Value.Date.ToString("yyyy-MM-dd") ==
+                            DateTime.Now.Date.ToString("yyyy-MM-dd")
+                            && x.BillTypeId == billTypeId
+                            && x.TransactionNo == transactionNo
+                            && x.Status == 0)
+                .First();
+
+            // 6.3 濡傛灉鎶ュ伐鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勬姤宸ュ崟
+            if (workProd == null)
+            {
+                var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)");
+                workProd = new MesWorkProd
+                {
+                    Id = Guid.NewGuid(),
+                    BillNo = billNo,
+                    LineNo = barcode.LineNo,
+                    Company = barcode.Company,
+                    Factory = barcode.Factory,
+                    CreateBy = request.UserNo,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = request.UserNo,
+                    LastupdateDate = DateTime.Now,
+                    PbillNo = barcode.BillNo,
+                    BillTypeId = billTypeId,
+                    TransactionNo = transactionNo,
+                    TaskNo = barcode.BillNo
+                };
+
+                db.Insertable(workProd).IgnoreColumns(true).ExecuteCommand();
+            }
+
+            // 6.4 鎻掑叆鎶ュ伐鏄庣粏璁板綍
+            var detail = new MesWorkProdCDetails
+            {
+                Id = Guid.NewGuid(),
+                BillNo = workProd.BillNo,
+                ItemBarcode = request.ItemBarcode,
+                Quantity = (int)request.Quantity,
+                Company = barcode.Company,
+                Factory = barcode.Factory,
+                CreateBy = request.UserNo,
+                CreateDate = DateTime.Now,
+                LastupdateBy = request.UserNo,
+                LastupdateDate = DateTime.Now,
+                ItemNo = barcode.ItemNo,
+                PbillNo = barcode.BillNo,
+                WorkLast = barcode.WorkLast,
+                SilkPqty = barcode.SilkPqty,
+                SilkId = barcode.SilkId,
+                Silk = barcode.Silk
+            };
+
+            db.Insertable(detail).IgnoreColumns(true).ExecuteCommand();
+
+            return 1;
+        }) > 0;
     }
-
-    public ScanWorkResult GetRksqList(ScanWorkRequest request)
-    {
-
-        //1.楠岃瘉鍛樺伐淇℃伅
-        var staff = Db.Queryable<MesStaff>()
-            .Where(x => x.StaffNo == request.StaffNo)
-            .First();
-        if (staff == null)
-            throw new Exception("璇峰厛閫夋嫨浜哄憳");
-
-        var rksqOrder = Db.Queryable<MesInvItemIns>()
-            .Where(x => x.BillNo == request.sjBillNo && x.Status == 0)
-            .First();
-        if (rksqOrder == null)
-            throw new Exception("璇ユ楠屽崟宸叉彁浜ら�佹");
-
-        var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel
-    FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
-    LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
-    LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
-    WHERE A.bill_no= '{0}'ORDER BY A.create_date DESC", rksqOrder.BillNo);
-
-        var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql);
-
-
-        var rksqDetails = RKSQ.ToList();
-
-
-        //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>()
-        //    .Where(x => x.BillNo == )
-        //    .ToList();
-
-        // 15. Return processing result
-        return new ScanWorkResult
-        {
-            BarcodesDetail = rksqDetails,
-        };
-    }
-
-    public ScanWorkResult GetRksqSelect(ScanWorkRequest request)
-    {
-        //1.楠岃瘉鍛樺伐淇℃伅
-        var staff = Db.Queryable<MesStaff>()
-            .Where(x => x.StaffNo == request.StaffNo)
-            .First();
-        if (staff == null)
-            throw new Exception("璇峰厛閫夋嫨浜哄憳");
-
-        var rksqOrder = Db.Queryable<MesInvItemIns>()
-            .Where(x => x.TransctionNo=="181"&& x.Status == 0 && x.CreateBy== request.StaffNo)
-            .ToList();
-
-        return new ScanWorkResult
-        {
-            rksqOrderList = rksqOrder,
-        };
-    }
-
 }
\ No newline at end of file
diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs
index a5cedcf..3861ba6 100644
--- a/service/Wom/WomdaaManager.cs
+++ b/service/Wom/WomdaaManager.cs
@@ -62,11 +62,7 @@
 
         // 淇锛氳ˉ鍏呰幏鍙� womdaa 瀵硅薄
         var daa001Value = query.daa001?.ToString();
-        var daaInfoParameters = new[]
-        {
-            new SugarParameter("@daa001", query.daa001)
-        };
-        var womdaa = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getDaaInfo @daa001", daaInfoParameters).FirstOrDefault();
+        var womdaa = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getDaaInfo @daa001", parameters).First();
 
         if (womdaa == null)
         {
@@ -401,37 +397,6 @@
 
     }
 
-    /// <summary>
-    /// 鑾峰彇鐗╂枡鐩稿叧鏉$爜淇℃伅
-    /// </summary>
-    /// <param name="unity"></param>
-    /// <returns></returns>
-    /// <exception cref="Exception"></exception>
-    public dynamic GetBarKwByItemCK(dynamic unity)
-    {
-        if (unity == null)
-            throw new ArgumentNullException(nameof(unity), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
-
-        if (string.IsNullOrEmpty(unity.itemId?.ToString()))
-            throw new ArgumentException("鐗╂枡ID涓嶈兘涓虹┖", nameof(unity.itemId));
-
-        try
-        {
-            var parameters = new List<SugarParameter>
-            {
-                new SugarParameter("@itemId", unity.itemId),
-                new SugarParameter("@inP1", unity.type),
-                new SugarParameter("@inP2", unity.billNo)
-            };
-
-            return Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_scll_selBarMx @itemId,@inP1,@inP2", parameters);
-        }
-        catch (Exception ex)
-        {
-            throw new Exception($"鑾峰彇鏉$爜淇℃伅澶辫触锛歿ex.Message}");
-        }
-
-    }
 
     public dynamic ProductBinding(dynamic query)
     {
@@ -509,11 +474,10 @@
         if (string.IsNullOrEmpty(query.Kbbarcode?.ToString()))
             throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.userName));
 
-        var sql = string.Format(@"SELECT QUANTITY,agvPostion,
+        var sql = string.Format(@"SELECT QUANTITY,
        ISNULL((SELECT COUNT(1) FROM MES_INV_ITEM_BARCODES_TBMX WHERE ABOUT_TB_BARCODE = '{0}'), 0) AS YSum,
        DAA001
 FROM MES_INV_ITEM_BARCODES A LEFT JOIN WOMDAA B ON A.ABOUT_GUID = B.guid
-left join MES_WORKSHOP_LINE C ON DAA015 = C.id AND iSAgV = 1
 WHERE ITEM_BARCODE = '{0}' ",  query.Kbbarcode);
 
         var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql);
@@ -764,13 +728,10 @@
                         cmd.Parameters.Add(parameter);
                     
                     cmd.ExecuteNonQuery();
-
+                    
                     _strMsg = parameters[2].Value?.ToString() ?? "";
-                    if (int.TryParse(parameters[3].Value?.ToString(), out int status))
-                        _status = status;
-                    else
-                        _status = -1;
-
+                    _status = Convert.ToInt32(parameters[3].Value ?? -1);
+    
                     if (_status <= 0) throw new Exception(_strMsg);
     
                     return new { 
@@ -912,10 +873,7 @@
                     cmd.ExecuteNonQuery();
 
                     _strMsg = parameters[3].Value?.ToString() ?? "";
-                    if (int.TryParse(parameters[4].Value?.ToString(), out int status))
-                        _status = status;
-                    else
-                        _status = -1;
+                    _status = Convert.ToInt32(parameters[4].Value ?? -1);
 
                     if (_status <= 0) throw new Exception(_strMsg);
 
@@ -977,10 +935,7 @@
                     cmd.ExecuteNonQuery();
 
                     _strMsg = parameters[2].Value?.ToString() ?? "";
-                    if (int.TryParse(parameters[3].Value?.ToString(), out int status))
-                        _status = status;
-                    else
-                        _status = -1;
+                    _status = Convert.ToInt32(parameters[3].Value ?? -1);
                     _weight = parameters[4].Value?.ToString() ?? "0";
 
                     if (_status <= 0) throw new Exception(_strMsg);
@@ -1187,10 +1142,7 @@
                     cmd.ExecuteNonQuery();
 
                     _strMsg = parameters[3].Value?.ToString() ?? "";
-                    if (int.TryParse(parameters[4].Value?.ToString(), out int status))
-                        _status = status;
-                    else
-                        _status = -1;
+                    _status = Convert.ToInt32(parameters[4].Value ?? -1);
 
                     if (_status <= 0) throw new Exception(_strMsg);
 
@@ -1469,7 +1421,6 @@
                 {
                     new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount },
                     new("@pi_kb_barcode", SqlDbType.NVarChar, 100) { Value = query.KbBar },
-                    new("@in1", SqlDbType.NVarChar, 100) { Value = query.AgvDw },
                     new("@outMsg", SqlDbType.NVarChar, 2500) { Direction = ParameterDirection.Output },
                     new("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }
                 };
@@ -1480,8 +1431,8 @@
 
                 var result = new
                 {
-                    message = parameters[3].Value?.ToString(),
-                    status = Convert.ToInt32(parameters[4].Value)
+                    message = parameters[2].Value?.ToString(),
+                    status = Convert.ToInt32(parameters[3].Value)
                 };
 
                 if (result.status <= 0)
diff --git a/service/Wom/WwGdManager.cs b/service/Wom/WwGdManager.cs
index b96e906..5e90485 100644
--- a/service/Wom/WwGdManager.cs
+++ b/service/Wom/WwGdManager.cs
@@ -1,13 +1,12 @@
-锘縰sing Masuit.Tools;
+锘縰sing System.Data;
+using System.Data.SqlClient;
+using System.Threading.Tasks.Dataflow;
+using Masuit.Tools;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
-using NewPdaSqlServer.entity.Base;
 using NewPdaSqlServer.util;
 using SqlSugar;
-using System.Data;
-using System.Data.SqlClient;
-using System.Threading.Tasks.Dataflow;
 using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
 
 namespace NewPdaSqlServer.service.Wom;
@@ -140,110 +139,86 @@
         }
     }
 
-
-    /// <summary>
-    /// 鑾峰彇搴撲綅淇℃伅
-    /// </summary>
-    /// <param name="unity"></param>
-    /// <returns></returns>
-    /// <exception cref="Exception"></exception>
-    public dynamic GetBarKwByItem(dynamic unity)
+    public ProductionPickDto GetItemsByDaa001(WarehouseQuery query)
     {
-        if (unity == null)
-            throw new ArgumentNullException(nameof(unity), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
+        return getDaa001(query);
+    }
 
-        if (string.IsNullOrEmpty(unity.itemId?.ToString()))
-            throw new ArgumentException("鐗╂枡ID涓嶈兘涓虹┖", nameof(unity.itemId));
+    private ProductionPickDto getDaa001(WarehouseQuery query)
+    {
+        if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
 
-        try
-        {
-            var parameters = new List<SugarParameter>
+        var wwgd = Db.Queryable<WwGd, MesItems>((a, i) =>
+                new JoinQueryInfos(JoinType.Left,
+                    a.Daa003 == i.ItemId))
+            .Where((a, i) => a.Daa001 == query.daa001 && (a.PcSh ?? 0) == 1)
+            .Select((a, i) => new
             {
-                new SugarParameter("@itemId",unity.itemId)
-            };
+                a.Daa001, a.RwdGuid
+            }).First();
 
-            return Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_scll_selBarMx @itemId", parameters);
-        }
-        catch (Exception ex)
-        {
-            throw new Exception($"鑾峰彇鏉$爜淇℃伅澶辫触锛歿ex.Message}");
-        }
+        if (wwgd?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
 
-    }
-
-    /// <summary>
-    /// 閫夊彇鍒楄〃
-    /// </summary>
-    /// <param name="unity"></param>
-    /// <param name="RequestInfo"></param>
-    /// <returns></returns>
-    public dynamic GetXcslDaa(dynamic unity, dynamic RequestInfo)
-    {
-        var orgId = RequestInfo.OrgId;
-        var parameters = new List<SugarParameter>
-        {
-            new SugarParameter("@selectKey", unity.selectKey),
-            new SugarParameter("@inP1", orgId), // 鍙�夊弬鏁�
-            new SugarParameter("@inP2", unity.selDaaType), // 鍙�夊弬鏁�
-            new SugarParameter("@inP3", null), // 鍙�夊弬鏁�
-            new SugarParameter("@inP4", null), // 鍙�夊弬鏁�
-            // ...鍏朵粬鍙�夊弬鏁�
-        };
-        var result = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_wwll_list @selectKey, @inP1, @inP2, @inP3, @inP4", parameters);
-        return result;
-    }
-
-    /// <summary>
-    /// 鍒楄〃鏄庣粏
-    /// </summary>
-    /// <param name="query"></param>
-    /// <param name="RequestInfo"></param>
-    /// <returns></returns>
-    public dynamic GetItemsByDaa001(WarehouseQuery query, dynamic RequestInfo)
-    {
-        return getDaa001(query, RequestInfo);
-    }
-
-    private dynamic getDaa001(WarehouseQuery query, dynamic RequestInfo)
-    {
-        if (string.IsNullOrEmpty(query.daa001)) throw new Exception("璇烽�夊伐鍗曞彿锛�");
-        if (query == null)
-            throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
-        if (string.IsNullOrEmpty(query.daa001?.ToString()))
-            throw new ArgumentException("宸ュ崟鍙蜂笉瀛樺湪", nameof(query.daa001));
-
-        var orgId = RequestInfo.OrgId;
-        if (orgId == null)
-            throw new Exception("缁勭粐涓嶅瓨鍦紒");
-
-        var parameters = new[]
-        {
-            new SugarParameter("@daa001", query.daa001),
-            new SugarParameter("@pi_orgId", orgId),
-            new SugarParameter("@inP1", null),
-            new SugarParameter("@inP2", null),
-            new SugarParameter("@inP3", null),
-            new SugarParameter("@inP4", null)
-        };
-        try
-        {
-            List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>(
-                "EXEC prc_pda_wwll_detailList @daa001,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters);
-            var items = blDetails.Where(x => x.DSQty > 0).ToList();    // 寰呮壂鐗╂枡
-            var ysitems = blDetails.Where(x => x.SQty > 0).ToList();   // 宸叉壂鐗╂枡
-            var planNo = blDetails.FirstOrDefault()?.ErpProductionOrderNo?.ToString();// 鑾峰彇宸ュ崟璁″垝鍙�
-            return new 
+        var womdabs = Db
+            .Queryable<WwGd, WwGdDetail, MesItems, ProductionOrderSub>(
+                (a, b, c, d) =>
+                    new JoinQueryInfos(
+                        JoinType.Left,
+                        a.Id == b.Pid,
+                        JoinType.Inner,
+                        c.Id == b.Dab003,
+                        JoinType.Inner, b.Erpid.ToString() == d.ErpId
+                    ))
+            .Where((a, b, c, d) =>
+                a.Daa001 == query.daa001 )
+            .Select((a, b, c, d) => new WwGdDetail
             {
-                daa001 = query.daa001,
-                PlanNo = planNo,
-                items = items,
-                ysitems = ysitems
-            };
-        }
-        catch (Exception ex)
+                Pid = b.Pid,
+                Dab003 = b.Dab003,
+                Dab006 = b.Dab006,
+                Dab007 = b.Dab007,
+                wNum = b.Dab006 - b.Dab007, // 璁$畻瀛楁 W_NUM
+                ItemName = c.ItemName, // 鍔ㄦ�佸瓧娈� ITEM_NAME
+                ItemNo = c.ItemNo // 鍔ㄦ�佸瓧娈� ITEM_NO
+            })
+            .ToList();
+
+        var list = womdabs.Where(s => s.wNum > 0).ToList();
+
+        var mesInvItemOutCDetailsList = Db
+            .Queryable<MesInvItemOutCDetails, MesItems, MesDepots>
+            ((a, b, c) =>
+                new JoinQueryInfos(
+                    JoinType.Inner, a.ItemId == b.Id,
+                    JoinType.Inner, c.DepotId == a.DepotId
+                ))
+            .Where((a, b, c) => a.WorkNo == query.daa001)
+            .Select((a, b, c) => new MesInvItemOutCDetails
+            {
+                ItemName = b.ItemName,
+                ItemNo = b.ItemNo,
+                ItemId = a.ItemId,
+                DepotId = a.DepotId,
+                WorkNo = a.WorkNo,
+                DepotName = c.DepotName,
+                Quantity = a.Quantity
+            })
+            .ToList();
+
+        var womcaa = Db.Queryable<ProductionOrder>()
+            .Where(s => s.Guid == wwgd.RwdGuid)
+            .First();
+
+        var dto = new ProductionPickDto
         {
-            throw new Exception($"{ex.Message}");
-        }
+            daa001 = wwgd.Daa001,
+            PlanNo = womcaa.ErpProductionOrderNo,
+            totals1 = womdabs,
+            daisao1 = list,
+            yisao = mesInvItemOutCDetailsList
+        };
+
+        return dto;
     }
 
     #region 濮斿閫�鏂�
@@ -267,40 +242,27 @@
         if (p_section_code.IsNullOrEmpty()) throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
 
         // 鑾峰彇搴撲綅淇℃伅
-        int? c_depot_code;
-        try
-        {
-            c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
-                    new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
-                .Where((a, b) => a.DepotSectionCode == p_section_code)
-                .Select((a, b) => b.DepotId).First();
-        }
-        catch
-        {
-            throw new Exception($"搴撲綅缂栫爜 {p_section_code} 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
+        var c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
+                new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
+            .Where((a, b) => a.DepotSectionCode == p_section_code)
+            .Select((a, b) => b.DepotId).First();
 
-        MesDepotSections mesDepotSections;
-        try
-        {
-            mesDepotSections = Db.Queryable<MesDepotSections>()
-                .Where(a => a.DepotSectionCode == p_section_code).First();
-        }
-        catch
-        {
-            throw new Exception($"搴撲綅缂栫爜 {p_section_code} 涓嶅瓨鍦紝璇风‘璁わ紒");
-        }
+        if (!c_depot_code.HasValue)
+            throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
 
-        MesDepots c_mes_depots;
-        try
-        {
-            c_mes_depots = Db.Queryable<MesDepots>()
-                .Where(b => b.Guid == mesDepotSections.DepotGuid).First();
-        }
-        catch
-        {
-            throw new Exception($"搴撲綅缂栫爜 {p_section_code} 瀵瑰簲鐨勪粨搴撲笉瀛樺湪锛岃纭锛�");
-        }
+        // 鑾峰彇搴撲綅鍒嗗尯淇℃伅
+        var mesDepotSections = Db.Queryable<MesDepotSections>()
+            .Where(a => a.DepotSectionCode == p_section_code).First();
+
+        if (mesDepotSections == null)
+            throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
+
+        // 鑾峰彇搴撲綅鍩虹淇℃伅
+        var c_mes_depots = Db.Queryable<MesDepots>()
+            .Where(b => b.Guid == mesDepotSections.DepotGuid).First();
+
+        if (c_mes_depots == null)
+            throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
 
         // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
         var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) =>
@@ -318,16 +280,11 @@
         if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒");
 
         // 鑾峰彇鏉$爜淇℃伅
-        MesInvItemBarcodes c_mes_inv_item_barcodes;
-        try
-        {
-            c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>()
-                .Where(t => t.ItemBarcode == p_item_barcode).First();
-        }
-        catch
-        {
-            throw new Exception($"鏉$爜 {p_item_barcode} 涓嶅睘浜庤閫�鏂欏崟锛岃鏍稿锛�");
-        }
+        var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>()
+            .Where(t => t.ItemBarcode == p_item_barcode).First();
+
+        if (c_mes_inv_item_barcodes == null)
+            throw new Exception("姝ゆ潯鐮佷笉灞炰簬璇ラ��鏂欏崟锛岃鏍稿锛�");
 
        
 
@@ -335,90 +292,41 @@
         //     throw new Exception("姝ゆ潯鐮佷笉鏄敓浜ч��鏂欐潯鐮侊紝涓嶅彲浣跨敤鐢熶骇閫�鏂欐ā鍧楋紒");
 
         // 鑾峰彇閫�鏂欏崟淇℃伅
-        MesItemTbl C_MES_ITEM_TBL;
-        try
-        {
-            C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>()
-                .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo
-                            && (a.Tbl013 ?? 0) == 1).First();
-        }
-        catch
-        {
-            throw new Exception($"鐢宠鍗� {c_mes_inv_item_barcodes.BillNo} 宸叉挙鍥炴垨涓嶅瓨鍦紝鏃犳硶鎵爜锛�");
-        }
+        var C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>()
+            .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo
+                        && (a.Tbl013 ?? 0) == 1).First();
+
+        if (C_MES_ITEM_TBL == null) throw new Exception("鐢宠鍗曞凡鎾ゅ洖,鏃犳硶鎵爜!");
 
         if (C_MES_ITEM_TBL.Tbl020 == 1) throw new Exception("鎵爜瀹屾垚,鐢宠鍗曞凡瀹岀粨!");
 
         // 妫�鏌ュ伐鍗曚俊鎭�
-        WwGd wwgd;
-        try
-        {
-            wwgd = Db.Queryable<WwGd>()
-                .Where(a => a.Id.ToString() == C_MES_ITEM_TBL.Tbl002)
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"鐢宠鍗曞搴旂殑宸ュ崟涓嶅瓨鍦ㄦ垨宸插垹闄わ紝鍗曟嵁鍙凤細{C_MES_ITEM_TBL.Tbl002}锛屾棤娉曟壂鐮侊紒");
-        }
+        var wwgd = Db.Queryable<WwGd>()
+            .Where(a => a.Id.ToString() == C_MES_ITEM_TBL.Tbl002)
+            .First();
 
-        // 妫�鏌ョ敓浜ц鍗曚俊鎭�
-        ProductionOrder WWRWD;
-        try
-        {
-            WWRWD = Db.Queryable<ProductionOrder>()
-                .Where(a => a.OrderNo == wwgd.Daa014)
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"宸ュ崟 {wwgd.Daa014} 瀵瑰簲鐨勭敓浜ц鍗曚笉瀛樺湪锛岃纭锛�");
-        }
+        if (wwgd == null) throw new Exception("鐢宠鍗曞搴旂殑宸ュ崟涓嶅瓨鍦ㄦ垨宸插垹闄�,鏃犳硶鎵爜!");
+
+        // 妫�鏌ュ伐鍗曚俊鎭�
+        var WWRWD = Db.Queryable<ProductionOrder>()
+            .Where(a => a.OrderNo == wwgd.Daa014)
+            .First();
 
         // 鑾峰彇閫�鏂欏崟鏄庣粏
-        MesItemTblDetail C_MES_ITEM_TBL_DETAIL;
-        try
-        {
-            C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>()
-                .Where(a => a.Tlid == c_mes_inv_item_barcodes.AboutGuid)
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"鏉$爜 {p_item_barcode} 涓嶅睘浜庤鐢宠鍗曟槑缁嗭紝鏃犳硶鎵爜锛�");
-        }
+        var C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>()
+            .Where(a => a.Tlid == c_mes_inv_item_barcodes.AboutGuid)
+            .First();
+
+        if (C_MES_ITEM_TBL_DETAIL == null)
+            throw new Exception("鏉$爜涓嶅睘浜庤鐢宠鍗曟槑缁�,鏃犳硶鎵爜!");
 
         //鍒ゆ柇璐т富淇℃伅
-        int? CABerpid;
-        try
-        {
-            CABerpid = Db.Queryable<WwGdDetail>()
-                .Where(womdab => womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013)
-                .Select(womdab => womdab.Erpid)
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"鐢ㄦ枡娓呭崟鏄庣粏涓嶅瓨鍦紝鏄庣粏ID锛歿C_MES_ITEM_TBL_DETAIL.Tld013}锛岃鑱旂郴绠$悊鍛橈紒");
-        }
+        var CABerpid = Db.Queryable<WwGdDetail>().Where(womdab => womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013).Select(womdab => womdab.Erpid).First();
 
-        if (!CABerpid.HasValue)
-            throw new Exception("鐢ㄦ枡娓呭崟ERP ID涓虹┖锛岃鑱旂郴绠$悊鍛橈紒");
+        var WWCAB = Db.Queryable<ProductionOrderSub>().Where(womcab => womcab.ErpId == CABerpid.Value.ToString()).First();
 
-        ProductionOrderSub WWCAB;
-        try
-        {
-            WWCAB = Db.Queryable<ProductionOrderSub>()
-                .Where(womcab => womcab.ErpId == CABerpid.Value.ToString())
-                .First();
-        }
-        catch
-        {
-            throw new Exception($"鐢熶骇璁㈠崟瀛愰」涓嶅瓨鍦紝ERP ID锛歿CABerpid.Value}锛岃鑱旂郴绠$悊鍛橈紒");
-        }
 
-        if (string.IsNullOrEmpty(WWCAB.Owner))
-            throw new Exception($"鐢ㄦ枡娓呭崟璐т富淇℃伅涓嶅瓨鍦紝鐢熶骇璁㈠崟瀛愰」 ERP ID锛歿CABerpid.Value}锛屾棤娉曟壂鐮侊紝璇疯仈绯荤鐞嗗憳锛�");
+        if ( String.IsNullOrEmpty(WWCAB.Owner)) throw new Exception("鐢ㄦ枡娓呭崟璐т富淇℃伅涓嶅瓨鍦�,鏃犳硶鎵爜锛岃鑱旂郴绠$悊鍛�!");
 
         //var owner_type = "";
         //if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
diff --git a/service/base/LoginService.cs b/service/base/LoginService.cs
index 8a902ff..983db58 100644
--- a/service/base/LoginService.cs
+++ b/service/base/LoginService.cs
@@ -34,7 +34,6 @@
             var sysUser = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_login_selUserOrgInfo @pi_account,@pi_password,@inP1,@inP2,@inP3", parameters).First();
 
             if (sysUser == null) throw new Exception("鐢ㄦ埛涓嶅瓨鍦�");
-
             var db_password = sysUser.Password;
             if (!strPass.Equals(db_password)) throw new Exception("鐢ㄦ埛鍚嶆垨鑰呭瘑鐮侀敊璇�");
             return sysUser;
@@ -96,8 +95,7 @@
 
                     var icoimg = "";
                     if (mesFile != null)
-                        icoimg = "http://192.168.0.51:81/upload/" +
-                                 mesFile.UrlPath;
+                        icoimg = "http://192.168.8.8:81/upload/" + mesFile.UrlPath;
 
                     groupObj.child.Add(new MesSysPageview
                     {
diff --git a/service/base/MesImageManager.cs b/service/base/MesImageManager.cs
index dd1d13d..3d2d785 100644
--- a/service/base/MesImageManager.cs
+++ b/service/base/MesImageManager.cs
@@ -1,4 +1,5 @@
 锘縰sing NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.@base;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
 
diff --git a/service/base/MesPrintMangeer.cs b/service/base/MesPrintMangeer.cs
index b73c912..5ee9f12 100644
--- a/service/base/MesPrintMangeer.cs
+++ b/service/base/MesPrintMangeer.cs
@@ -56,32 +56,6 @@
             return mergedData;
         }
 
-        /// <summary>
-        /// PDA閲嶆墦鏉$爜
-        /// </summary>
-        /// <param name="query"></param>
-        /// <returns></returns>
-        /// <exception cref="ArgumentException"></exception>
-        public dynamic getPrintBarInfo(dynamic query) // 浣跨敤鍏蜂綋绫诲瀷鏇夸唬dynamic
-        {
-            // 鍙傛暟鏍¢獙
-            if (string.IsNullOrEmpty(query?.barcode))
-                throw new ArgumentException("鍘熷鏉$爜涓嶈兘涓虹┖");
-
-            // 浣跨敤寮虹被鍨嬪弬鏁�
-            var sqlParams = new List<SugarParameter> {
-                new("@pi_Bar", query.barcode.Trim())
-            };
-
-            var sql = @"EXEC prc_pda_basePrint_selBarInfo @pi_Bar ";
-
-            var mergedData = Db.Ado.SqlQuery<dynamic>(sql, sqlParams);
-
-            //if (mergedData.Count < 2) throw new Exception("鏉$爜淇℃伅瀛樺湪寮傚父锛岃鑱旂郴绠$悊鍛橈紒");
-
-            return mergedData;
-        }
-
         // // 鐜板満鏀舵枡灞曠ず鍒楄〃
         // public class PrintBarInfo
         // {
diff --git a/service/base/WmsBaseMangeer.cs b/service/base/WmsBaseMangeer.cs
index cb1ba5b..e3eadf8 100644
--- a/service/base/WmsBaseMangeer.cs
+++ b/service/base/WmsBaseMangeer.cs
@@ -31,20 +31,6 @@
             string barcode, string sectionCode, string stockId, string stockOrgId,
             string billNo, string transactionNo)
         {
-            // 鍙傛暟楠岃瘉
-            if (string.IsNullOrEmpty(edtUserNo))
-                throw new ArgumentException("鎿嶄綔浜哄伐鍙蜂笉鑳戒负绌�", nameof(edtUserNo));
-            if (string.IsNullOrEmpty(barcode))
-                throw new ArgumentException("鐗╂枡鏉$爜涓嶈兘涓虹┖", nameof(barcode));
-            if (string.IsNullOrEmpty(sectionCode))
-                throw new ArgumentException("搴撲綅缂栫爜涓嶈兘涓虹┖", nameof(sectionCode));
-            if (string.IsNullOrEmpty(stockId))
-                throw new ArgumentException("浠撳簱ID涓嶈兘涓虹┖", nameof(stockId));
-            if (string.IsNullOrEmpty(stockOrgId))
-                throw new ArgumentException("搴撳瓨缁勭粐ID涓嶈兘涓虹┖", nameof(stockOrgId));
-            if (string.IsNullOrEmpty(transactionNo))
-                throw new ArgumentException("浜嬪姟绫诲瀷涓嶈兘涓虹┖", nameof(transactionNo));
-
             var outputMsg = "";
             var outputStatus = -1;
 
@@ -60,7 +46,7 @@
                     new("@pi_sectionCode", SqlDbType.NVarChar, 100) { Value = sectionCode },
                     new("@pi_stockId", SqlDbType.NVarChar, 100) { Value = stockId },
                     new("@pi_stockOrgId", SqlDbType.NVarChar, 100) { Value = stockOrgId },
-                    new("@pi_billno", SqlDbType.NVarChar, 100) { Value = string.IsNullOrEmpty(billNo) ? DBNull.Value : billNo },
+                    new("@pi_billno", SqlDbType.NVarChar, 100) { Value = billNo },
                     new("@pi_transaction_no", SqlDbType.NVarChar, 10) { Value = transactionNo },
                     new("@pi_val1", SqlDbType.NVarChar, 100) { Value = DBNull.Value }, // 棰勭暀鎵╁睍瀛楁
                     new("@pi_val2", SqlDbType.NVarChar, 100) { Value = DBNull.Value }, // 棰勭暀鎵╁睍瀛楁
@@ -136,32 +122,27 @@
         /// <returns>璐т富绫诲瀷(BD_OwnerOrg/BD_Customer/BD_Supplier)</returns>
         public string GetOwnerType(string ownerId)
         {
-            // 濡傛灉 ownerId 涓虹┖锛岃繑鍥為粯璁ょ殑璐т富绫诲瀷
             if (string.IsNullOrEmpty(ownerId))
-                return "BD_OwnerOrg"; // 榛樿涓虹粍缁囩被鍨�
+                throw new ArgumentNullException(nameof(ownerId));
 
-            // 浼樺厛妫�鏌ョ郴缁熺粍缁�
             if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
             {
                 return "BD_OwnerOrg";
             }
-
-            // 妫�鏌ユ槸鍚︿负瀹㈡埛鎴栦緵搴斿晢锛堝畨鍏ㄧ殑鏁板瓧杞崲锛�
-            if (int.TryParse(ownerId, out int ownerIdInt))
+            else if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(ownerId)))
             {
-                if (Db.Queryable<MesCustomer>().Any(x => x.Id == ownerIdInt))
-                {
-                    return "BD_Customer";
-                }
-
-                if (Db.Queryable<MesSupplier>().Any(x => x.Id == ownerIdInt))
-                {
-                    return "BD_Supplier";
-                }
+                return "BD_Customer";
             }
-
-            // 濡傛灉閮芥棤娉曞尮閰嶏紝杩斿洖榛樿缁勭粐绫诲瀷鑰屼笉鏄姏鍑哄紓甯�
-            return "BD_OwnerOrg";
+            else if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(ownerId)))
+            {
+                return "BD_Supplier";
+            }
+            else if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
+            {
+                return "BD_OwnerOrg";
+            }
+            
+            throw new Exception("鏃犳硶纭畾璐т富绫诲瀷锛岃妫�鏌ヨ揣涓籌D鏄惁姝g‘锛�");
         }
 
         

--
Gitblit v1.9.3