From 2697966bbe8ad54491553f407c42eaaedfc20afb Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期二, 19 十一月 2024 16:23:47 +0800 Subject: [PATCH] 1 --- service/Warehouse/MesInvItemInCDetailsManager.cs | 222 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 183 insertions(+), 39 deletions(-) diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs index 1cdfcbd..908645c 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,154 @@ 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)) + { + 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.DepotsId == b.DepotId, + JoinType.Left, a.SuppId == c.Id.ToString())) + .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.ToString() == c.Fpurchaseunitid + ) + ).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; } @@ -740,8 +884,12 @@ } var ErpUrl = AppsettingsUtility.Settings.ProductionErpUrl; + + var newGuid = Guid.NewGuid(); var message = new MessageCenter { + Guid = newGuid, + //Pid = newGuid, TableName = tableName, Url = ErpUrl, Status = 1, @@ -765,11 +913,10 @@ var message = MesToErpParam(query); var executeReturnIdentity = - Db.Insertable(message).ExecuteReturnIdentity(); + Db.Insertable(message).ExecuteCommand(); if (executeReturnIdentity > 0) { - //message.Guid = executeReturnIdentity; - message.Pid = executeReturnIdentity; + message.Pid = message.Guid; return message; } @@ -813,24 +960,20 @@ MesInvItemArnDetail>( (g, c, d, a) => new JoinQueryInfos( JoinType.Left, - g.ItemNo == c.ItemNo && g.Company == c.Company && - g.Factory == c.Factory, JoinType.Inner, - d.Id == Convert.ToDecimal(c.ItemUnit), - JoinType.Inner, - a.Ebeln == g.WorkNo && a.WorkLine == g.EbelnLineNo - && g.CbillNo == a.CbillNo + g.ItemId == c.Id , JoinType.Inner, + d.Id.ToString() == c.Fpurchaseunitid, + JoinType.Inner, a.Ebeln == g.WorkNo && g.CbillNo == a.CbillNo ) ).Where((g, c, d, a) => g.BillNo == billNo).Select<Material>( (g, c, d, a) => new Material { - // FstockId = g.DepotCode, - // FuintId = d.Fnumber, - // FsrcEntryId = a.Id, - // FmesEntryId = g.Id, - // FmaterialId = a.ItemNo, - // DepotSectionCode = g.DepotSectionCode, - // WorkNo = g.WorkNo, - // Frealqty = g.Quantity + FMaterialId = c.ItemNo, + FRealQty = g.Quantity.ToString(), + FStockId = g.DepotCode, + FLot = a.CbillNo, + FUnitID = d.Fnumber, + FsrcEntryId = a.Guid.ToString(), + FMesEntryid = g.Guid.ToString() }).ToList(); @@ -840,12 +983,13 @@ var jsonEntries = materials.Select(d => new { - // FMaterialId = d.FmaterialId, - // FUintId = d.FuintId, - // FRealQty = d.Frealqty, - // FStockId = d.FstockId, - // FSRCENTRYID = d.FsrcEntryId.ToString(), - // F_MES_ENTRYID = d.FmesEntryId.ToString() + FMaterialId = d.FMaterialId, + FRealQty = d.FRealQty, + FStockId = d.FStockId, + FLot = d.FLot, + FUintId = d.FUnitID, + FSRCENTRYID = d.FsrcEntryId, + F_MES_ENTRYID = d.FMesEntryid }).ToList(); var fdate = DateTime.Now.ToString("yyyy-MM-dd"); -- Gitblit v1.9.3