From f1d1d3b67316c4dd7d36c15a82df5e66fde74a69 Mon Sep 17 00:00:00 2001
From: cdk <2441919651@qq.com>
Date: 星期三, 10 九月 2025 19:22:11 +0800
Subject: [PATCH] 增加agc点位

---
 service/Wom/WomdaaManager.cs |  199 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 120 insertions(+), 79 deletions(-)

diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs
index cff4625..547ff5b 100644
--- a/service/Wom/WomdaaManager.cs
+++ b/service/Wom/WomdaaManager.cs
@@ -2,6 +2,7 @@
 using System.Data.SqlClient;
 using System.Text;
 using Masuit.Tools;
+using Masuit.Tools.Hardware;
 using Microsoft.SqlServer.Server;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
@@ -17,7 +18,7 @@
     //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomdaaManager.cs
 
     //鑾峰彇宸ュ崟鍙�
-    public List<string> GetProductionPickDaa001(WarehouseQuery query,string orgId)
+    public List<string> GetProductionPickDaa001(WarehouseQuery query, dynamic requestInfo)
     {
         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 = " +
@@ -28,9 +29,57 @@
     }
 
     //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡
-    public ProductionPickDto GetItemsByDaa001(WarehouseQuery query,string OrgId)
+    public dynamic GetItemsByDaa001(WarehouseQuery query, dynamic requestInfo)
     {
-        return getDaa001(query);
+        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)
+        };
+        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>("EXEC prc_pda_scll_detailList @daa001", parameters);
+
+        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
+        var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
+
+        // 淇锛氳ˉ鍏呰幏鍙� womdaa 瀵硅薄
+        var daa001Value = query.daa001?.ToString();
+        var womdaa = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getDaaInfo @daa001", parameters).First();
+
+        if (womdaa == null)
+        {
+            throw new Exception("璇ュ伐鍗曚俊鎭笉瀛樺湪锛岃鏍稿锛�");
+        }
+
+        var dto = new ProductionPickDto
+        {
+            daa001 = query.daa001,
+            daaInfo = womdaa,
+            PlanNo = womdaa.workNo,
+            startTime = womdaa.startTime,
+            items = DS_list,
+            Ysitems = YS_list
+        };
+
+        return dto;
     }
 
     public ProductionPickDto ScanCode(WarehouseQuery query)
@@ -425,10 +474,11 @@
         if (string.IsNullOrEmpty(query.Kbbarcode?.ToString()))
             throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.userName));
 
-        var sql = string.Format(@"SELECT QUANTITY,
+        var sql = string.Format(@"SELECT QUANTITY,agvPostion,
        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);
@@ -706,7 +756,7 @@
 
 
     //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡
-    public XcslResultDto GetItemsXcsl(WarehouseQuery query)
+    public dynamic GetItemsXcsl(WarehouseQuery query)
     {
         if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
 
@@ -725,73 +775,49 @@
 
         if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
 
-        // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
-        var sqlParams = new List<SugarParameter> { new("@daa001", query.daa001) };
+        if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
 
-        var sql1 = @"SELECT A.item_out_no,
-       SUM(B.QUANTITY)         AS BL_Num,
-       ISNULL(Sub.JS_Sum, 0) AS JS_Num, -- 浣跨敤LEFT JOIN瀛愭煡璇㈢殑缁撴灉
-       C.item_no,
-       C.item_name,
-       C.item_model,
-       D.USER_NAME
-FROM MES_INV_ITEM_OUTS A
-         LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID
-         LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
-         LEFT JOIN SYS_USER D ON A.create_by = D.ACCOUNT
--- 鏂板LEFT JOIN鑱氬悎瀛愭煡璇�
-         LEFT JOIN (SELECT B1.ITEM_ID,
-                           SUM(B1.QUANTITY) AS JS_Sum
-                    FROM MES_INV_ITEM_OUTS A1
-                             LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B1 ON A1.GUID = B1.ITEM_OUT_ID
-                    WHERE A1.out_type = '鐢熶骇棰嗘枡'
-                      AND A1.task_no = @daa001
-                      AND ISNULL(B1.IS_XCSL, '0') = 1
-                    GROUP BY B1.ITEM_ID -- 鎸塈TEM_ID鎻愬墠鑱氬悎
-) AS Sub ON Sub.ITEM_ID = C.item_id
-WHERE A.out_type = '鐢熶骇棰嗘枡'
-  AND A.task_no = @daa001
-GROUP BY A.item_out_no,
-         C.item_no,
-         C.item_name,
-         C.item_model,
-         D.USER_NAME,
-         C.item_id,
-         ISNULL(Sub.JS_Sum, 0);";
+        // 浣跨敤ADO.NET鐩存帴璋冪敤瀛樺偍杩囩▼
+        var ds = new DataSet();
 
-        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
+        // 鍋囪鎮ㄤ娇鐢ㄧ殑鏄疭QL Server锛屽垱寤篠qlConnection
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            conn.Open();
 
-        var sql2 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,A.create_date 
-FROM MES_INV_ITEM_OUTS A
-LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID
-LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
-LEFT JOIN SYS_USER D ON A.create_by = D.ACCOUNT
-WHERE out_type = '鐢熶骇棰嗘枡' 
-AND A.task_no = @daa001 
-AND ISNULL(IS_XCSL,'0') = 0";
+            using (var cmd = new SqlCommand("prc_pda_xcsl_detailList", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
 
-        var XcslWjsBar = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);
+                // 娣诲姞鍙傛暟
+                cmd.Parameters.Add(new SqlParameter("@daa001", query.daa001));
+                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));
 
-        var sql3 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,B.XCSL_CREATE_DATE 
-FROM MES_INV_ITEM_OUTS A
-LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID
-LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
-LEFT JOIN SYS_USER D ON B.XCSL_CREATE_BY = D.ACCOUNT
-WHERE out_type = '鐢熶骇棰嗘枡' 
-AND A.task_no = @daa001  
-AND ISNULL(IS_XCSL,'0') = 1";
+                using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
+                {
+                    adapter.Fill(ds);
+                }
+            }
+        }
 
-        var XcslYjsBar = Db.Ado.SqlQuery<dynamic>(sql3, sqlParams);
+        // 杞崲缁撴灉
+        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 XcslResultDto
+        var dto = new 
         {
             GD_Num = womdaa.Daa008,
             workNo = womdaa.Daa021,
             XcslItemList = XcslItem,
             XcslWjsBarList = XcslWjsBar,
-            XcslYjsBarList = XcslYjsBar
-
+            XcslYjsBarList = XcslYjsBar,
+            DaaInfoList = daaInfo
         };
 
         return dto;
@@ -935,32 +961,45 @@
         }
     }
 
-    public dynamic GetXcslDaa(dynamic unity)
+    public dynamic GetXcslDaa(dynamic unity,dynamic RequestInfo)
     {
 
-        var sqlParams = new List<SugarParameter> { };
+        //var sqlParams = new List<SugarParameter> { };
 
-        var sql2 = new StringBuilder(@"
-        SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021
-        FROM WOMDAA
-        WHERE daa018 <>'W:瀹屽伐'");
+        //var sql2 = new StringBuilder(@"
+        //SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021
+        //FROM WOMDAA
+        //WHERE daa018 <>'W:瀹屽伐'");
 
-        if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString()))
+        //if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString()))
+        //{
+        //    sqlParams.Add(new("@selectKey", unity.selectKey));
+        //    sql2.Append(@"
+        //    AND (DAA001 LIKE '%' + @selectKey + '%' 
+        //    OR DAA021 LIKE '%' + @selectKey + '%')");
+        //}
+
+        //var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+        //if (XcslItem == null)
+        //{
+        //    throw new Exception("璇ユ潯浠朵笅鏃犲搴斿伐鍗曚俊鎭紝璇烽噸鏂拌緭鍏ワ紒");
+        //}
+        var orgId = RequestInfo.OrgId;
+        var parameters = new List<SugarParameter>
         {
-            sqlParams.Add(new("@selectKey", unity.selectKey));
-            sql2.Append(@"
-            AND (DAA001 LIKE '%' + @selectKey + '%' 
-            OR DAA021 LIKE '%' + @selectKey + '%')");
-        }
+            new SugarParameter("@selectKey", unity.selectKey),
+            new SugarParameter("@inP1", orgId), // 鍙�夊弬鏁�
+            new SugarParameter("@inP2", unity.selDaaType), // 鍙�夊弬鏁�
+            new SugarParameter("@inP3", null), // 鍙�夊弬鏁�
+            new SugarParameter("@inP4", null), // 鍙�夊弬鏁�
+            // ...鍏朵粬鍙�夊弬鏁�
+        };
 
-        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+        var result = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getWorkOrderInfo @selectKey, @inP1, @inP2, @inP3, @inP4", parameters);
 
-        if (XcslItem == null)
-        {
-            throw new Exception("璇ユ潯浠朵笅鏃犲搴斿伐鍗曚俊鎭紝璇烽噸鏂拌緭鍏ワ紒");
-        }
 
-        return XcslItem;
+        return result;
     }
 
 
@@ -1342,7 +1381,8 @@
 
         var sqlParams = new List<SugarParameter> { };
 
-        var sql2 = new StringBuilder(@"SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no");
+        var sql2 = new StringBuilder(@"
+SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no");
 
 
         var XtItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
@@ -1382,6 +1422,7 @@
                 {
                     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 }
                 };

--
Gitblit v1.9.3