From b2f0199d41ef80ba835bf58d6787df7f4accf7be Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期五, 13 十二月 2024 17:40:15 +0800
Subject: [PATCH] 11

---
 service/Warehouse/WomdaaManager.cs |  134 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 115 insertions(+), 19 deletions(-)

diff --git a/service/Warehouse/WomdaaManager.cs b/service/Warehouse/WomdaaManager.cs
index 8485ed1..b6ad5b0 100644
--- a/service/Warehouse/WomdaaManager.cs
+++ b/service/Warehouse/WomdaaManager.cs
@@ -1,4 +1,6 @@
-锘縰sing NewPdaSqlServer.DB;
+锘縰sing System.Data;
+using System.Data.SqlClient;
+using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
 using SqlSugar;
@@ -24,6 +26,75 @@
     //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡
     public ProductionPickDto GetItemsByDaa001(WarehouseQuery query)
     {
+        return getDaa001(query);
+    }
+
+    public ProductionPickDto ScanCode(WarehouseQuery query)
+    {
+        string _strMsg = "";
+        string _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd =new SqlCommand("[prc_sys_role_set_menuOrAction]", 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("@split_num", SqlDbType.NVarChar, 300),
+                        new("@c_User", query.userName),
+                        new("@p_biLL_no", query.daa001),
+                        new("@p_item_barcode", query.barcode)
+                    };
+                    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 splitNum = parameters[3].Value.ToString();
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0)
+                    {
+                        throw new Exception(_strMsg);
+                    }
+                    
+                    var dto = new ProductionPickDto
+                    {
+                        daa001 = query.daa001,
+                        barcodeNum = barcodeNum,
+                        splitNum = splitNum,
+                        barcode = query.barcode
+                    };
+
+                    return dto;
+                    
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+    private ProductionPickDto getDaa001(WarehouseQuery query)
+    {
         if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
 
         var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
@@ -32,22 +103,24 @@
             .Where((a, i) => a.Daa001 == query.daa001)
             .Select((a, i) => new
             {
-                i.ItemModel
+                a.Daa001,a.CaaGuid
             }).First();
 
-        if (womdaa?.ItemModel == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
-        
-        var womdabs = Db.Queryable<Womdaa, Womdab, MesItems>((a, b, c) =>
-                new JoinQueryInfos(
-                    JoinType.Left,
-                    a.Id == b.Pid, 
-                    JoinType.Inner,
-                    c.Id.ToString() ==
-                    b.Dab003 
-                ))
-            .Where((a, b, c) =>
-                a.Daa001 == query.daa001)
-            .Select((a, b, c) => new Womdab
+        if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
+
+        var womdabs = Db.Queryable<Womdaa, Womdab, MesItems, Womcab>(
+                (a, b, c, d) =>
+                    new JoinQueryInfos(
+                        JoinType.Left,
+                        a.Guid == b.DaaGuid,
+                        JoinType.Inner,
+                        c.Id.ToString() ==
+                        b.Dab003,
+                        JoinType.Inner, b.Erpid == d.Erpid
+                    ))
+            .Where((a, b, c, d) =>
+                a.Daa001 == query.daa001 && d.IssueType == "1")
+            .Select((a, b, c, d) => new Womdab
             {
                 Pid = b.Pid,
                 Dab003 = b.Dab003,
@@ -59,15 +132,38 @@
             })
             .ToList();
 
-        var list = womdabs.Where(s=>s.wNum > 0).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<Womcaa>().Where(s=>s.Guid == womdaa.CaaGuid).First();
 
         var dto = new ProductionPickDto
         {
-            ItemModel = womdaa.ItemModel,
+            daa001 = womdaa.Daa001,
+            PlanNo = womcaa.Caa020,
             totals = womdabs,
-            daisao = list
+            daisao = list,
+            yisao = mesInvItemOutCDetailsList
         };
-
 
         return dto;
     }

--
Gitblit v1.9.3