From 255d690c54c0692db9f8ee5484426813a9561db5 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期二, 19 十一月 2024 13:13:42 +0800
Subject: [PATCH] 11

---
 service/Warehouse/MesInvItemInCDetailsManager.cs |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 163 insertions(+), 17 deletions(-)

diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 1cdfcbd..108ba74 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -149,8 +149,7 @@
                 cBillNo = BillNo.GetBillNo("IN(鍏ュ簱鍗�)");
 
                 var suppNo = db.Queryable<MesSupplier>()
-                    .Where(s => s.Id.ToString() == inventory.SuppId)
-                    .Select(s => s.SuppNo).First();
+                    .Where(s => s.Id.ToString() == inventory.SuppId).First();
 
                 db.Insertable(new MesInvItemIns
                 {
@@ -158,14 +157,18 @@
                     BillNo = cBillNo,
                     BillTypeId = billTypeId,
                     InsDate = DateTime.Now,
+                    DepotsId = mesDepost.DepotId,
                     DepotsCode = mesDepost.DepotCode,
                     TransctionNo = transactionNo,
-                    SuppNo = suppNo,
+                    SuppId = suppNo.Id.ToString(),
+                    SuppNo = suppNo.SuppNo,
                     CreateBy = user,
                     CreateDate = DateTime.Now,
                     LastupdateBy = user,
                     LastupdateDate = DateTime.Now,
-                    UrgentFlag = itemBarcodeDetails.UrgentFlag.Value ? 1 : 0,
+                    UrgentFlag = itemBarcodeDetails.UrgentFlag.Value
+                        ? (byte)1
+                        : (byte)0,
                     CbillNo = itemBarcodeDetails.BillNo,
                     Fstatus = 0,
                     Status = 0
@@ -173,6 +176,10 @@
             }
 
             cSyQty = itemBarcodeDetails.Quantity.Value;
+
+            entity.id = cId.ToString();
+            entity.PageIndex = 1;
+            entity.Limit = 1;
 
             itemBarcodeDetails.Hbdy ??= 0;
             if (itemBarcodeDetails.Hbdy == 1)
@@ -232,6 +239,7 @@
                                 WorkNo = detail.WorkNo,
                                 CbillNo = detail.CbillNo,
                                 WorkLine = detail.WorkLine,
+                                SuppId = itemBarcodeDetails.SuppId,
                                 SuppNo = itemBarcodeDetails.SuppNo,
                                 Remark = itemBarcodeDetails.Memo,
                                 EbelnK3id = detail.EbelnK3id,
@@ -263,6 +271,7 @@
                             EpFlag = true,
                             WorkType = 1,
                             ItemNo = detail.ItemNo,
+                            SuppId = itemBarcodeDetails.SuppId,
                             SuppNo = itemBarcodeDetails.SuppNo,
                             DepotCode = mesDepost.DepotCode,
                             DepotSectionCode = sectionCode,
@@ -323,6 +332,7 @@
                                 EbelnLineNo = detail.EbelnLine,
                                 CbillNo = detail.CbillNo,
                                 WorkLine = detail.WorkLine,
+                                SuppId = itemBarcodeDetails.SuppId,
                                 SuppNo = itemBarcodeDetails.SuppNo,
                                 Remark = itemBarcodeDetails.Memo,
                                 EbelnK3id = detail.EbelnK3id,
@@ -354,6 +364,7 @@
                             EpFlag = true,
                             WorkType = 1,
                             ItemNo = detail.ItemNo,
+                            SuppId = itemBarcodeDetails.SuppId,
                             SuppNo = itemBarcodeDetails.SuppNo,
                             DepotCode = mesDepost.DepotCode,
                             DepotSectionCode = sectionCode,
@@ -403,6 +414,7 @@
                     BillNo = cBillNo,
                     WorkNo = itemBarcodeDetails.WorkNo,
                     WorkLine = itemBarcodeDetails.WorkLine,
+                    SuppId = itemBarcodeDetails.SuppId,
                     SuppNo = itemBarcodeDetails.SuppNo,
                     EbelnK3id = itemBarcodeDetails.EbelnK3id,
                     LineK3id = itemBarcodeDetails.LineK3id,
@@ -440,6 +452,7 @@
                         EbelnLineNo = itemBarcodeDetails.WorkLine,
                         CbillNo = itemBarcodeDetails.BillNo,
                         WorkLine = itemBarcodeDetails.WorkLine,
+                        SuppId = itemBarcodeDetails.SuppId,
                         SuppNo = itemBarcodeDetails.SuppNo,
                         Remark = itemBarcodeDetails.Memo,
                         EbelnK3id = itemBarcodeDetails.EbelnK3id,
@@ -474,6 +487,7 @@
                     WorkType = 1,
                     ItemNo = itemBarcodeDetails.ItemNo,
                     LotNo = itemBarcodeDetails.LotNo,
+                    SuppId = itemBarcodeDetails.SuppId,
                     SuppNo = itemBarcodeDetails.SuppNo,
                     DepotCode = mesDepost.DepotCode,
                     DepotSectionCode = sectionCode,
@@ -526,6 +540,7 @@
                     BillNo = cBillNo,
                     WorkNo = itemBarcodeDetails.WorkNo,
                     WorkLine = itemBarcodeDetails.WorkLine,
+                    SuppId = itemBarcodeDetails.SuppId,
                     SuppNo = itemBarcodeDetails.SuppNo,
                     EbelnK3id = itemBarcodeDetails.EbelnK3id,
                     LineK3id = itemBarcodeDetails.LineK3id,
@@ -550,6 +565,7 @@
                 BoardStyle = itemBarcodeDetails.BoardStyle,
                 WorkNo = itemBarcodeDetails.WorkNo,
                 WorkLine = itemBarcodeDetails.WorkLine,
+                SuppId = itemBarcodeDetails.SuppId,
                 SuppNo = itemBarcodeDetails.SuppNo,
                 EbelnK3id = itemBarcodeDetails.EbelnK3id,
                 LineK3id = itemBarcodeDetails.LineK3id,
@@ -638,10 +654,15 @@
                 }
 
                 var mesItems = db.Queryable<MesItems>()
-                    .Where(s=>s.Id == itemBarcodeDetails.ItemId).First();
+                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
 
                 result.Message =
                     $"鏉$爜鏁伴噺 {itemBarcodeDetails.Quantity},閲囪喘璁㈠崟 {itemBarcodeDetails.WorkNo} 椤规 {itemBarcodeDetails.WorkLine} 鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
+
+
+                result.ItemNo = mesItems.ItemNo;
+                result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+
                 return 1;
             }
             else
@@ -694,31 +715,156 @@
                 var diffQty = comeQty - invQty;
 
                 var mesItems = db.Queryable<MesItems>()
-                    .Where(s=>s.Id == itemBarcodeDetails.ItemId).First();
+                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
 
                 // Step 5: Combine final result
                 result.Message =
                     $" 鏉$爜鏁伴噺:{itemBarcodeDetails.Quantity},鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
-            }
 
+
+                result.ItemNo = mesItems.ItemNo;
+                result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+            }
 
             var mesInvItemInCDetails =
                 base.GetSingle(it => it.ItemBarcode == entity.barcode);
 
             if (mesInvItemInCDetails == null)
                 throw new Exception("鐗╂枡鍏ュ簱鏉$爜鏄庣粏涓嶅瓨鍦�"); // 鎶涘嚭寮傚父浠ヤ緵鍓嶅彴澶勭悊
-            //
-            // var itemInId = mesInvItemInCDetails.ItemInId;
-            // entity.id = itemInId;
-            // entity.PageIndex = 1;
-            // entity.Limit = 1;
 
-            //var inventory = getPurchaseInventory(entity);
-            // inventory.ItemNo = parts[0];
-            // inventory.SumQuantity = Convert.ToDecimal(parts[1]);
-            //return inventory;
             return 1;
         });
+
+        var purchaseInventory = getPurchaseInventory(entity);
+
+        result.ItemIns = purchaseInventory.ItemIns;
+        result.ItemInDetails = purchaseInventory.ItemInDetails;
+        result.InvItemInCDetails = purchaseInventory.InvItemInCDetails;
+
+        return result;
+    }
+
+    public PurchaseInventory getPurchaseInventory(WarehouseQuery query)
+    {
+        return new PurchaseInventory
+        {
+            ItemIns = GetInvItemInsList(query).Items[0],
+            ItemInDetails = GetItemInDetails(query.id),
+            InvItemInCDetails = GetInvItemInCDetails(query.id)
+        };
+    }
+
+    public (List<MesInvItemIns> Items, int TotalCount) GetInvItemInsList(
+        WarehouseQuery query)
+    {
+        var parsedGuid = Guid.Empty;
+        if (string.IsNullOrEmpty(query.id))
+        {
+            return ([], 0);
+        }
+
+        bool isValid = Guid.TryParse(query.id, out parsedGuid);
+        if (!isValid)
+            throw new ApplicationException("GUID杞崲閿欒");
+
+        var totalCount = 0;
+        var result = Db.Queryable<MesInvItemIns, MesDepots, MesSupplier>(
+                (a, b, c) =>
+                    new JoinQueryInfos(JoinType.Left,
+                        a.DepotsCode == b.DepotCode,
+                        JoinType.Left, a.SuppNo == c.SuppNo))
+            .WhereIF(UtilityHelper.CheckGuid(parsedGuid),
+                (a, b, c) => a.Guid == parsedGuid)
+            .Select((a, b, c) => new MesInvItemIns
+            {
+                Guid = a.Guid,
+                SuppNo = a.SuppNo,
+                InsDate = a.InsDate,
+                PaperBillNo = a.PaperBillNo,
+                Remark = a.Remark,
+                DepotsCode = a.DepotsCode,
+                CbillNo = a.CbillNo,
+                Status = a.Status,
+                BillNo = a.BillNo,
+                CreateDate = a.CreateDate,
+                CreateBy = a.CreateBy,
+                DepotName = b.DepotName,
+                SuppName = c.SuppName
+            }).ToPageList(query.PageIndex, query.Limit, ref totalCount);
+        return (result, totalCount);
+    }
+
+    public List<MesInvItemInCItems> GetItemInDetails(string? pid)
+    {
+        //string杞琯uid
+        var parsedGuid = Guid.Empty;
+        if (string.IsNullOrEmpty(pid))
+        {
+            return ( []);
+        }
+
+        bool isValid = Guid.TryParse(pid, out parsedGuid);
+        if (!isValid)
+            throw new ApplicationException("GUID杞崲閿欒");
+
+        var result = Db.Queryable<MesInvItemInCDetails, MesItems, MesUnit>(
+                (g, c, d) => new JoinQueryInfos(
+                    JoinType.Left, g.ItemId == c.Id,
+                    JoinType.Inner, d.Id == Convert.ToDecimal(g.Unit)
+                )
+            ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
+                (g, c, d) => g.ItemInId == parsedGuid)
+            .Select((g, c, d) => new MesInvItemInCItems
+            {
+                Guid = g.Guid,
+                WorkNo = g.WorkNo,
+                ItemNo = c.ItemNo,
+                ItemSname = g.ItemSname,
+                Quantity = g.Quantity,
+                Unit = d.Fname,
+            })
+            .ToList();
+
+        return result;
+    }
+
+    public List<MesInvItemInCDetails> GetInvItemInCDetails(string? pid)
+    {
+        //string杞琯uid
+        var parsedGuid = Guid.Empty;
+        if (string.IsNullOrEmpty(pid))
+        {
+            return ( []);
+        }
+
+        bool isValid = Guid.TryParse(pid, out parsedGuid);
+        if (!isValid)
+            throw new ApplicationException("GUID杞崲閿欒");
+
+        var result = Db.Queryable<MesInvItemInCDetails, MesItems, MesUnit>(
+                (g, c, d) => new JoinQueryInfos(
+                    JoinType.Left,
+                    g.ItemId == c.Id, JoinType.Inner,
+                    d.Id == Convert.ToDecimal(c.ItemUnit)
+                )
+            ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
+                (g, c, d) => g.ItemInId == parsedGuid)
+            .Select((g, c, d) => new MesInvItemInCDetails
+            {
+                Guid = g.Guid,
+                ItemName = c.ItemName,
+                ItemModel = c.ItemModel,
+                ItemUnit = d.Fname,
+                DepotSectionCode = g.DepotSectionCode,
+                CbillNo = g.CbillNo,
+                ItemBarcode = g.ItemBarcode,
+                UrgentFlag = g.UrgentFlag,
+                ItemNo = c.ItemNo,
+                WorkNo = g.WorkNo,
+                Quantity = g.Quantity
+            })
+            .ToList();
+
         return result;
     }
 
@@ -768,7 +914,7 @@
             Db.Insertable(message).ExecuteReturnIdentity();
         if (executeReturnIdentity > 0)
         {
-            //message.Guid = executeReturnIdentity;
+            // message.Guid = executeReturnIdentity;
             message.Pid = executeReturnIdentity;
             return message;
         }

--
Gitblit v1.9.3