From a12a74003597af2d6a7fd37e54509909bd4b23bb Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 04 七月 2025 10:20:38 +0800
Subject: [PATCH] 1.其他入库优化 2.条码入库前拆分优化 3.携客云送货单签收显示优化

---
 service/Warehouse/MesXkyShdManager.cs          |    2 
 service/Warehouse/MesBarCFManager.cs           |    2 
 Controllers/Warehouse/MesItemQtrkController.cs |    2 
 service/Warehouse/MesItemQtrkManager.cs        |   58 ++++++++++++++++------------
 4 files changed, 36 insertions(+), 28 deletions(-)

diff --git a/Controllers/Warehouse/MesItemQtrkController.cs b/Controllers/Warehouse/MesItemQtrkController.cs
index d881817..5cfd959 100644
--- a/Controllers/Warehouse/MesItemQtrkController.cs
+++ b/Controllers/Warehouse/MesItemQtrkController.cs
@@ -181,7 +181,7 @@
         try
         {
             dynamic resultInfos = new ExpandoObject();
-            resultInfos.message = _manager.ScanInDepotsQT(query);
+            resultInfos = _manager.ScanInDepotsQT(query);
             return new ResponseResult
             {
                 status = 0,
diff --git a/service/Warehouse/MesBarCFManager.cs b/service/Warehouse/MesBarCFManager.cs
index 4ef9d12..01f0ebd 100644
--- a/service/Warehouse/MesBarCFManager.cs
+++ b/service/Warehouse/MesBarCFManager.cs
@@ -36,7 +36,7 @@
 
         var sql2 = @"SELECT ITEM_ID,QUANTITY FROM MES_INV_ITEM_BARCODES WHERE ITEM_BARCODE =@barcode ";
 
-        var barInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First();
+        var barInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).FirstOrDefault();
 
         if (barInfo is null) throw new Exception("璇ユ潯鐮佷俊鎭笉瀛樺湪锛�");
 
diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs
index 9eb138c..ed9bae9 100644
--- a/service/Warehouse/MesItemQtrkManager.cs
+++ b/service/Warehouse/MesItemQtrkManager.cs
@@ -64,7 +64,7 @@
         return dto;
     }
 
-    public string ScanInDepotsQT(WarehouseQuery query)
+    public dynamic ScanInDepotsQT(WarehouseQuery query)
     {
       var sectionCode = query.sectionCode;
         var billNo = query.billNo;
@@ -72,31 +72,24 @@
         // 1. 楠岃瘉搴撲綅鏉$爜鏄惁涓虹┖
         if (string.IsNullOrEmpty(sectionCode)) throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
 
-        // 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮�
-        var depotId = Db.Queryable<MesDepotSections, MesDepots>(
-                (a, b) => new JoinQueryInfos(
-                    JoinType.Inner, a.DepotGuid == b.Guid))
-            .Where((a, b) => a.DepotSectionCode == sectionCode)
-            .Select((a, b) => b.DepotId)
-            .First();
+        var sqlParams = new List<SugarParameter> { new("@sectionCode", sectionCode) };
 
-        if (depotId == null)
+        var sql2 = @"        SELECT TOP 1  b.depot_code,
+                      b.depot_id,
+                     B.FSubsidiary,
+                     B.depot_name
+        FROM MES_DEPOT_SECTIONS a
+                 INNER JOIN
+             MES_DEPOTS b ON a.depot_guid = b.Guid
+        WHERE a.depot_section_code = @sectionCode;";
+
+        var depotInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First();
+
+        if (depotInfo is  null)
             throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
 
-        // 3. 鏌ヨ鐢宠鍗曞搴旂殑浠撳簱
-        var qtrk = Db.Queryable<MesItemQtrk>()
-            .Where(x => x.Qtck == billNo)
-            .Select(x => x.Qt008)
-            .First();
-
-        if (qtrk == null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
-
-        // 4. 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱
-        if (depotId != Convert.ToInt32(qtrk))
-            throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇蜂粨搴�!");
-
         // 5. 杩斿洖鎴愬姛淇℃伅
-        return $"浠撳簱锛歿qtrk} 搴撲綅锛歿sectionCode}";
+        return depotInfo;
     }
 
     public (WarehouseQuery form, List<MesItemQtrrDetail> item)
@@ -127,6 +120,21 @@
 
         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) };
+
+        var sql1 = @"   SELECT TOP 1 A.rkCkId
+FROM MES_QA_ITEMS_DETECT_01 A
+         LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_id = B.ITEM_ID
+WHERE order_type = '鍏跺畠鍏ュ簱妫�'
+  AND A.lot_no = @billNo
+  AND ITEM_BARCODE = @barcode   ";
+
+        var appDepotInfo = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams).First();
+
+        if(appDepotInfo.rkCkId != c_depot_id)
+            throw new Exception($"璇� {p_section_code} 瀵瑰簲鐨勪粨搴� 涓� 妫�楠屽垽瀹氱殑鍏ュ簱浠撳簱涓嶄竴鑷达紝璇风‘璁わ紒");
+
 
         var mesDepost = Db.Queryable<MesDepots>()
                 .Where(s => s.DepotId == c_depot_id).First();
@@ -164,9 +172,9 @@
 
         if (qtrk == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�");
 
-        //  楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱
-        if (c_depot_id != Convert.ToInt32(qtrk.Qt008))
-            throw new Exception($"鎵爜搴撲綅 {p_section_code} 涓嶅睘浜庣敵璇蜂粨搴�!");
+        ////  楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱
+        //if (c_depot_id != Convert.ToInt32(qtrk.Qt008))
+        //    throw new Exception($"鎵爜搴撲綅 {p_section_code} 涓嶅睘浜庣敵璇蜂粨搴�!");
 
         // 6. 鏌ヨ鐢宠鍗曟槑缁�
         var detail = Db.Queryable<MesItemQtrrDetail>()
diff --git a/service/Warehouse/MesXkyShdManager.cs b/service/Warehouse/MesXkyShdManager.cs
index 3ab65b1..4a6c7e4 100644
--- a/service/Warehouse/MesXkyShdManager.cs
+++ b/service/Warehouse/MesXkyShdManager.cs
@@ -44,7 +44,7 @@
          LEFT JOIN dbo.MES_INV_ITEM_ARN B on B.paper_bill_no = A.delivery_no
          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 dbo.MES_INV_ITEM_ARN_DETAIL E on E.parent_Guid = B.guid AND E.line_k3id = A.po_line_no
+         RIGHT JOIN dbo.MES_INV_ITEM_ARN_DETAIL E on E.parent_Guid = B.guid AND E.line_k3id = A.po_line_no
 WHERE A.delivery_no = @shdh";
 
         var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);

--
Gitblit v1.9.3