From c6239213a60120d4f3f8d2105f48b6fa715a99ed Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期三, 21 五月 2025 13:30:02 +0800
Subject: [PATCH] 1.获取携客云信息返回结构优化 2.SRM送货单扫码收料-PDA 3.OA->MES新增字段

---
 service/Warehouse/MesXkyShdManager.cs        |  156 +++++++++++++++++++++++++++++++
 Controllers/Warehouse/MesXkyShdController.cs |   98 +++++++++++++++++++
 Controllers/Warehouse/MesXkyController.cs    |    6 
 service/QC/OaApi.cs                          |   25 +---
 service/Warehouse/MesXkyService.cs           |    2 
 5 files changed, 265 insertions(+), 22 deletions(-)

diff --git a/Controllers/Warehouse/MesXkyController.cs b/Controllers/Warehouse/MesXkyController.cs
index 8d5ef13..5b9a143 100644
--- a/Controllers/Warehouse/MesXkyController.cs
+++ b/Controllers/Warehouse/MesXkyController.cs
@@ -41,7 +41,7 @@
             {
                 status = 0,
                 message = "OK",
-                data = tbBillList
+                data = ""
             };
         }
         catch (Exception ex)
@@ -62,7 +62,7 @@
             {
                 status = 0,
                 message = "OK",
-                data = tbBillList
+                data = ""
             };
         }
         catch (Exception ex)
@@ -83,7 +83,7 @@
             {
                 status = 0,
                 message = "OK",
-                data = tbBillList
+                data = ""
             };
         }
         catch (Exception ex)
diff --git a/Controllers/Warehouse/MesXkyShdController.cs b/Controllers/Warehouse/MesXkyShdController.cs
new file mode 100644
index 0000000..8aad5e8
--- /dev/null
+++ b/Controllers/Warehouse/MesXkyShdController.cs
@@ -0,0 +1,98 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.service.Warehouse;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.Warehouse;
+
+[ApiController]
+[Route("api/[controller]")]
+public class MesXkyShdController : ControllerBase
+{
+    private readonly MesXkyShdManager m = new();
+
+    /// <summary>
+    ///     鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetShdhItems")]
+    public ResponseResult GetShdhItems(dynamic unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetShdhItems(unity);
+            resultInfos.tbMesItems = m.GetShdhBar(unity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetBarInfo")]
+    public ResponseResult GetBarInfo(WarehouseQuery unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetBarInfo(unity);
+            if(resultInfos.tbBillList == null)
+            {
+                return new ResponseResult
+                {
+                    status = -1,
+                    message = "姝ゆ潯鐮佷笉瀛樺湪锛侊紒锛�",
+                    data = resultInfos
+                };
+            }
+            resultInfos.tbMesItems = m.GetItemNo(resultInfos.tbBillList.ItemId);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鍒拌揣鍗曟敹璐�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("ScanBar")]
+    public ResponseResult ScanBar(dynamic unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.ScanBar(unity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = resultInfos.tbBillList,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file
diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs
index 8430e3b..0d83dd4 100644
--- a/service/QC/OaApi.cs
+++ b/service/QC/OaApi.cs
@@ -185,21 +185,7 @@
     private JArray BuildMainData(dynamic queryObj)
     {
         // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
-        const string mainSql = @"
-SELECT TOP 1 
-    A.fBillNo AS ycczdh,
-    C.item_no   AS wlbm,
-    C.item_name AS jzmcwlmc,
-    D.supp_name AS khgys,
-    B.bill_no   AS dhdhmes,
-    (SELECT  STRING_AGG(releaseNo+':' + mx.fng_desc+'\n', ',') AS OrderIDs
-FROM [Mes_QC_Exceptional_Detail] mx  where mx.pGuid=a.guid
-)     AS bhgpqxms
-FROM Mes_QC_Exceptional A
-LEFT JOIN MES_INV_ITEM_ARN B ON A.aboutGuid = b.guid
-LEFT JOIN MES_ITEMS C ON A.itemId = c.item_id
-LEFT JOIN MES_SUPPLIER D ON B.supp_id = D.id
-WHERE a.guid = @guid";
+        const string mainSql = @"EXEC select_oa_BuildMainData @guid";
 
         var mainData = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
 
@@ -375,8 +361,10 @@
     {
         // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
         const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
-               chouQty AS cys, badQty AS bls, badProb AS bll 
-            from [Mes_QC_Exceptional_Detail] 
+               chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
+            from Mes_QC_Exceptional_Detail A
+            LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
+            LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
             WHERE pGuid = @guid";
     
         var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
@@ -391,6 +379,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"] = "jydrq", 
                     // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
@@ -403,7 +392,7 @@
                 new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
                 new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
                 new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
-                new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1 }
+                new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
             };
     
             tableRecords.Add(new JObject
diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs
index cbb4aca..ceb40ea 100644
--- a/service/Warehouse/MesXkyService.cs
+++ b/service/Warehouse/MesXkyService.cs
@@ -152,7 +152,7 @@
         // 鏂板鍒楄〃绌哄�兼鏌�
         if (noticeList == null || !noticeList.Any() || noticeList.Count < 1)
         {
-            _logMessageDhdBar += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�";
+            _logMessageDHD += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�";
             return result;
         }
 
diff --git a/service/Warehouse/MesXkyShdManager.cs b/service/Warehouse/MesXkyShdManager.cs
new file mode 100644
index 0000000..f86518d
--- /dev/null
+++ b/service/Warehouse/MesXkyShdManager.cs
@@ -0,0 +1,156 @@
+锘縰sing System.Data;
+using System.Data.SqlClient;
+using Masuit.Tools;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using SqlSugar;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+
+namespace NewPdaSqlServer.service.Warehouse;
+
+public class MesXkyShdManager : Repository<MesCgthSq>
+{
+
+    public dynamic GetShdhItems(dynamic unity)
+    {
+        //// 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
+        var sqlParams = new List<SugarParameter> { new("@shdh", unity.shdh) };
+
+        var sql1 = @"select 1 from DELIVERY_NOTICE WHERE delivery_no = @shdh ";
+
+        var shdh = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
+        if (shdh.Count < 1)
+            throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戜笉瀛樺湪鎴栨湭鍚屾!");
+
+
+
+        var sql2 = @"select D.item_no,
+       D.item_name,
+       D.item_model,
+       A.delivery_qty                         AS shsl,
+       ISNULL(E.quantity, 0)                  as ysl,
+       A.delivery_qty - ISNULL(E.quantity, 0) as dssl,
+       A.po_erp_no,
+       C.PURCHASE_ORDER_LINE_NUMBER,
+       B.GUID AS DDHID
+from DELIVERY_NOTICE_DETAIL A
+         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
+WHERE A.delivery_no = @shdh";
+
+        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);
+        if (XcslItem.Count < 1)
+            throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戦�佽揣鏄庣粏涓嶅瓨鍦ㄦ垨鏈悓姝�!");
+
+        return XcslItem; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
+    }
+
+    public dynamic GetShdhBar(dynamic unity)
+    {
+
+        //// 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
+        var sqlParams = new List<SugarParameter> { new("@shdh", unity.shdh) };
+
+        var sql2 = @"SELECT A.small_barcode,
+        D.item_no,
+       D.item_name,
+       D.item_model,
+       A.include_qty,
+       A.po_erp_no,
+       ISNULL(B.OLDQTY,0) AS ysl
+FROM TBL_BARCODE_INFORMATION A
+         LEFT JOIN MES_INV_ITEM_BARCODES B ON a.small_barcode = b.ITEM_BARCODE
+         LEFT JOIN MES_ROH_IN_DATA C ON C.EBELN_K3ID = A.po_line_no
+         LEFT JOIN MES_ITEMS D ON D.item_id = C.item_id
+WHERE A.delivery_no =  @shdh";
+
+        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);
+
+        if (XcslItem.Count < 1)
+            throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戞潯鐮佹槑缁嗕笉瀛樺湪鎴栨湭鍚屾!");
+
+        return XcslItem; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
+    }
+
+
+    public MesInvItemBarcodes GetBarInfo(WarehouseQuery unity)
+    {
+        return Db.Queryable<MesInvItemBarcodes>()
+            .Where(s => s.ItemBarcode == unity.barcode)
+            .First(); // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
+    }
+
+    public MesItems GetItemNo(decimal strItemId)
+    {
+        return Db.Queryable<MesItems>()
+            .Where(s => s.Id == strItemId)
+            .First();
+    }
+
+    public string ScanBar(dynamic unity)
+    {
+        var _strMsg = "";
+        var _intSum = "";
+        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));
+
+            if (string.IsNullOrEmpty(unity.barcode?.ToString()))
+                throw new ArgumentException("鏉$爜涓嶅厑璁镐负绌�", nameof(unity.barcode));
+
+            using (var cmd = new SqlCommand("[prc_pda_inv_dhdsh]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@po_outMsg", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output },
+                        new("@po_outSum", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output },
+                        new("@pi_user", SqlDbType.NVarChar) { Value = unity.userName.ToString() }, // 鏄惧紡绫诲瀷杞崲
+                        new("@pi_barcode", SqlDbType.NVarChar) { Value = unity.barcode.ToString() },
+                        new("@pi_shdh", SqlDbType.NVarChar) { Value = unity.shdh.ToString() }
+                    };
+                    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);
+
+                    return _strMsg;
+
+                    //return 0;
+
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+}
+
+

--
Gitblit v1.9.3