From 7f21c52c4b834869fdedd948580a5ac8e5d28301 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期四, 14 八月 2025 17:34:58 +0800
Subject: [PATCH] 领料模块

---
 service/Wom/WomdaahbManager.cs |  107 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 69 insertions(+), 38 deletions(-)

diff --git a/service/Wom/WomdaahbManager.cs b/service/Wom/WomdaahbManager.cs
index 1436d92..4c4edc2 100644
--- a/service/Wom/WomdaahbManager.cs
+++ b/service/Wom/WomdaahbManager.cs
@@ -11,7 +11,7 @@
 
 namespace NewPdaSqlServer.service.Wom;
 
-public class WomdaaManager : Repository<Womdaa>
+public class WomdaahbManager : Repository<Womdaa>
 {
     //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
     //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomdaaManager.cs
@@ -20,9 +20,9 @@
     public List<string> GetProductionPickDaa001(WarehouseQuery query)
     {
         var sql =
-            "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB  WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " +
-            query.daa001 +
-            " and DAA018 != '瀹屽伐' AND DAA022 = 1 AND UN_NUM > 0 AND ROWNUM <= 10 order by a.id desc";
+            "SELECT DAAhb001 FROM WOMDAAhb A  WHERE DAAHB001 = " +
+            query.hbNo +
+            " and FSTATUS=1 order by a.CREATE_DATE desc";
 
         return Db.Ado.SqlQuery<string>(sql);
     }
@@ -40,10 +40,10 @@
         using (var conn = new SqlConnection(DbHelperSQL.strConn))
         {
             if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
-            if (query.daa001.IsNullOrEmpty()) throw new Exception("棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
+            if (query.hbNo.IsNullOrEmpty()) throw new Exception("鍚堝苟棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
             if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
 
-            using (var cmd = new SqlCommand("[prc_pda_SCLL]", conn))
+            using (var cmd = new SqlCommand("[prc_pda_SCLLHB]", conn))
             {
                 try
                 {
@@ -56,7 +56,7 @@
                         new("@barcode_num", SqlDbType.NVarChar, 300),
                         new("@split_num", SqlDbType.NVarChar, 300),
                         new("@c_User", query.userName),
-                        new("@p_biLL_no", query.daa001),
+                        new("@p_biLL_no", query.hbNo),
                         new("@p_item_barcode", query.barcode)
                     };
                     parameters[0].Direction = ParameterDirection.Output;
@@ -77,7 +77,7 @@
 
                     var dto = new ProductionPickDto
                     {
-                        daa001 = query.daa001,
+                        daa001 = query.hbNo,
                         barcodeNum = barcodeNum,
                         splitNum = splitNum,
                         barcode = query.barcode,
@@ -103,7 +103,7 @@
     public ProductionPickDto ScanCodeCF(WarehouseQuery query)
     {
         if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
-        if (query.daa001.IsNullOrEmpty()) throw new Exception("棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
+        if (query.hbNo.IsNullOrEmpty()) throw new Exception("鍚堝苟棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
         if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
 
         if (query.Num is null or 0) throw new Exception("鏉$爜鎷嗗垎鏁颁笉鍏佽涓虹┖鎴栬�呬负0");
@@ -113,7 +113,7 @@
         var _cfBar = "";//鎷嗗垎鍚庢潯鐮�
         using (var conn = new SqlConnection(DbHelperSQL.strConn))
         {
-            using (var cmd = new SqlCommand("[prc_pda_SCLL_CF]", conn))
+            using (var cmd = new SqlCommand("[prc_pda_SCLLHB_CF]", conn))
             {
                 try
                 {
@@ -125,7 +125,7 @@
                         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.hbNo),
                         new("@p_item_barcode", query.barcode),
                         new("@num", query.Num)
                     };
@@ -145,7 +145,7 @@
 
                     var dto = new ProductionPickDto
                     {
-                        daa001 = query.daa001,
+                        daa001 = query.hbNo,
                         barcode = query.barcode,//鍘熸潯鐮�
                         cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
                     };
@@ -166,19 +166,33 @@
 
     private ProductionPickDto getDaa001(WarehouseQuery query)
     {
-        if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
+        if (string.IsNullOrEmpty(query.hbNo)) throw new Exception("鍚堝苟鍗曞彿涓虹┖");
 
-        var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
-                new JoinQueryInfos(JoinType.Left,
-                    a.Daa002 == i.ItemId.ToString()))
-            .Where((a, i) => a.Daa001 == query.daa001
-                    && a.Fstatus == 1)
-            .Select((a, i) => new
-            {
-                a.Daa001, a.CaaGuid
-            }).First();
+        var queryResult = Db.Queryable<Womdaahb, Womdaa, MesItems>(
+           (b, a, i) => new JoinQueryInfos(
+               JoinType.Left, b.OrgId.ToString() == a.ErpSczz,  // Womdaahb 鈫� Womdaa 鍏宠仈
+               JoinType.Left, a.Daa002 == i.ItemId.ToString())  // Womdaa 鈫� MesItems 鍏宠仈
+       )
+       .Where((b, a, i) =>
+           (b.Daah009 != null && a.Daa021 != null) &&  // 闃叉null寮傚父
+           (
+               b.Daah009.Contains("," + a.Daa021 + ",") ||  // 鍖归厤涓棿鍊�
+               b.Daah009.StartsWith(a.Daa021 + ",") ||     // 鍖归厤寮�澶村��
+               b.Daah009.EndsWith("," + a.Daa021) ||        // 鍖归厤缁撳熬鍊�
+               b.Daah009 == a.Daa021                        // 瀹屽叏鍖归厤
+           )
+       )
+       .Where((b, a, i) => b.Daahb001 == query.hbNo && b.Fstatus == 1)  // 鍏朵粬鏉′欢
+       .Select((b, a, i) => new
+       {
+           b.Daahb001,
+           a.Daa001,    // 宸ュ崟鍙�
+           a.CaaGuid,   // Womdaa 鐨� GUID
+           i.ItemName   // MesItems 鐨勫瓧娈�
+       })
+       .First();
 
-        if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
+        if (queryResult?.Daahb001 == null) throw new Exception("鍚堝苟鍗曞彿涓嶅瓨鍦�");
 
         //var womdabs = Db.Queryable<Womdaa, Womdab, MesItems, Womcab>(
         //        (a, b, c, d) =>
@@ -203,13 +217,31 @@
         //    })
         //    .ToList();
 
-        var sql =string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.dab006 FQty,b.dab007 SQty,b.dab006 - b.dab007 DSQty ,
-       dbo.F_QX_GETRECODEPOTSE(B.dab003,'','','') as RecoKw
-    FROM WOMDAB B
-    LEFT JOIN WOMDAA A ON A.guid = B.daaGuid
-    LEFT JOIN MES_ITEMS C ON  B.dab003 = C.item_id
-    LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
-    WHERE daa001 = '{0}' AND ISSUE_TYPE = 1 ORDER BY DAB002", query.daa001);
+        var sql =string.Format(@"SELECT max(ahb.GUID)     as hbguid,
+                        m.item_no         as itemNo,
+                        max(m.item_name)  as itemName,
+                        max(m.item_model) as itemModel,
+                        sum(b.dab006)     as FQty,
+                        sum(b.dab007)     as SQty,
+                        sum(b.dab006) - sum(b.dab007) as DSQty,
+                        sum(b.dab020)     as slsl,
+                        max(u.fname)      as dw,
+                        max(ahb.DAAHB001) as hbdh,
+                        dbo.F_QX_GETRECODEPOTSE(MAX(B.DAB003),'','','') AS RecoKw
+                        FROM WOMDAAHB ahb
+                          left join WOMDAAHB_LIST ahbl on ahb.GUID = ahbl.MID
+                          left join WOMDAA A on ahbl.PWORK_NO = a.daa021 and ahb.org_id = a.erp_sczz
+                          left join WOMDAB b on b.daaGuid = a.guid
+                          left join WOMCAA ca on a.caaGuid = ca.guid
+                          LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
+                          LEFT JOIN MES_WORKSHOP_LINE WL ON WL.ID = A.DAA015
+                          left join mes_items m on M.ID = b.dab003
+                          left join MES_UNIT u on u.id = ahbl.UNIT
+                          left join [dbo].[v_caa] v on v.guid = a.guid
+                          WHERE ahb.daahb001 = '{0}' AND D.ISSUE_TYPE = 1 
+                          group by m.item_no
+                          ORDER BY m.item_no 
+                          ", query.hbNo);
 
         var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql);
 
@@ -238,7 +270,7 @@
             })
             .ToList();
 
-        var womcaa = Db.Queryable<Womcaa>().Where(s => s.Guid == womdaa.CaaGuid)
+        var womcaa = Db.Queryable<Womcaa>().Where(s => s.Guid == queryResult.CaaGuid)
             .First();
 
         if (womcaa == null)
@@ -248,8 +280,8 @@
 
         var dto = new ProductionPickDto
         {
-            daa001 = womdaa.Daa001,
-            PlanNo = womcaa.Caa020,
+            daa001 = queryResult.Daahb001,
+            //PlanNo = womcaa.Caa020,
             items = DS_list,
             Ysitems = YS_list
             // yisao = mesInvItemOutCDetailsList
@@ -900,16 +932,15 @@
         var sqlParams = new List<SugarParameter> { };
 
         var sql2 = new StringBuilder(@"
-        SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021
-        FROM WOMDAA
-        WHERE daa018 <>'W:瀹屽伐'");
+        SELECT daahb001 as daaInfo,daahb001 as daa001
+        FROM WOMDAAHB
+        WHERE FSTATUS = 1 and COMPLETE_STATUS=0");
 
         if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString()))
         {
             sqlParams.Add(new("@selectKey", unity.selectKey));
             sql2.Append(@"
-            AND (DAA001 LIKE '%' + @selectKey + '%' 
-            OR DAA021 LIKE '%' + @selectKey + '%')");
+            AND (DAAHB001 LIKE '%' + @selectKey + '%' ");
         }
 
         var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);

--
Gitblit v1.9.3