From e33ee3adc98f5411395682cbfc9b1d367cdae7ee Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期六, 15 二月 2025 10:20:22 +0800 Subject: [PATCH] 1.生产报工优化 2.采购入库优化 --- service/Warehouse/MesInvItemInCDetailsManager.cs | 148 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 108 insertions(+), 40 deletions(-) diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs index 13296d4..5865812 100644 --- a/service/Warehouse/MesInvItemInCDetailsManager.cs +++ b/service/Warehouse/MesInvItemInCDetailsManager.cs @@ -1,4 +1,5 @@ -锘縰sing NewPdaSqlServer.DB; +锘縰sing Masuit.Tools.Models; +using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; @@ -51,6 +52,10 @@ var inventoryDetails = Db.Queryable<MesInvItemArnDetail>() .Where(it => it.Guid == itemBarcodeDetails.AboutGuid) + .First(); + + var cgddDetails = Db.Queryable<MesRohInData>() + .Where(it => it.EbelnK3id == inventoryDetails.LineK3id) .First(); if (inventoryDetails == null) @@ -121,6 +126,41 @@ throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁鏈夐棶棰橈紒"); } + var owner_type = ""; + if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.DemandOrg)) + { + owner_type = "BD_OwnerOrg"; + } + else + { + // 绗簩灞傚垽鏂細妫�鏌� MES_CUSTOMER + if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg))) + { + owner_type = "BD_Customer"; + } + else + { + // 绗笁灞傚垽鏂細妫�鏌� MES_SUPPLIER + if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg))) + { + owner_type = "BD_Supplier"; + } + else + { + + // 绗洓灞傚垽鏂細鍐嶆妫�鏌� SYS_ORGANIZATION + if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.ReceivingOrg)) + { + owner_type = "BD_OwnerOrg"; + } + else + { + throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁瀵瑰簲鐨勯渶姹傜粍缁囨湁闂锛�"); + } + } + } + } + var result = new PurchaseInventory(); UseTransaction(db => @@ -129,7 +169,7 @@ .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd") && it.Status == 0 && it.TransctionNo == transactionNo - && it.BillNo == itemBarcodeDetails.BillNo + && it.CbillNo == itemBarcodeDetails.BillNo && it.DepotsCode == mesDepost.DepotCode) .Select(it => new { @@ -150,7 +190,7 @@ else { cId = Guid.NewGuid(); - cBillNo = BillNo.GetBillNo("IN(鍏ュ簱鍗�)"); + cBillNo = BillNo.GetBillNo("CGRK(閲囪喘鍏ュ簱)"); var suppNo = db.Queryable<MesSupplier>() .Where(s => s.Id.ToString() == inventory.SuppId).First(); @@ -176,7 +216,9 @@ CbillNo = itemBarcodeDetails.BillNo, Fstatus = 0, Status = 0, - ReceiveOrgId = inventory.ReceiveOrgId + ReceiveOrgId = inventory.ReceiveOrgId, + InType = "閲囪喘鍏ュ簱", + //WorkNo = itemBarcodeDetails.WorkNo }).IgnoreColumns(true).ExecuteCommand(); } @@ -217,11 +259,12 @@ // Check if already inserted var count = db.Queryable<MesInvItemInCItems>() - .Where(t => - t.ItemInId == cId && - t.ItemId == detail.ItemId && - t.WorkNo == detail.WorkNo && - t.WorkLine == detail.WorkLine) + .Where(it => + it.ItemInId == cId && + it.ItemId == detail.ItemId && + it.DepotId == depotCode2 && + it.EbelnK3id == detail.EbelnK3id && + it.LineK3id == detail.LineK3id) .Count(); cSyQty -= remainingQty.Value; @@ -247,7 +290,8 @@ SuppNo = itemBarcodeDetails.SuppNo, Remark = itemBarcodeDetails.Memo, EbelnK3id = detail.EbelnK3id, - LineK3id = detail.LineK3id + LineK3id = detail.LineK3id, + DepotId = depotCode2 }).IgnoreColumns(true).ExecuteCommand(); else db.Updateable<MesInvItemInCItems>() @@ -256,8 +300,9 @@ .Where(it => it.ItemInId == cId && it.ItemId == detail.ItemId && - it.WorkNo == detail.WorkNo && - it.WorkLine == detail.WorkLine) + it.DepotId == depotCode2 && + it.EbelnK3id == detail.EbelnK3id && + it.LineK3id == detail.LineK3id) .IgnoreColumns(true) .ExecuteCommand(); @@ -293,7 +338,8 @@ EbelnK3id = detail.EbelnK3id, LineK3id = detail.LineK3id, ItemId = detail.ItemId, - ReceiveOrgId = inventory.ReceiveOrgId + ReceiveOrgId = inventory.ReceiveOrgId, + LotNo = cgddDetails.BatchNumber }).IgnoreColumns(true).ExecuteCommand(); } else @@ -309,11 +355,12 @@ .ExecuteCommand(); var count = db.Queryable<MesInvItemInCItems>() - .Where(t => - t.ItemInId == cId && - t.ItemId == detail.ItemId && - t.WorkNo == detail.WorkNo && - t.WorkLine == detail.WorkLine) + .Where(it => + it.ItemInId == cId && + it.ItemId == detail.ItemId && + it.DepotId == depotCode2 && + it.EbelnK3id == detail.EbelnK3id && + it.LineK3id == detail.LineK3id) .Count(); if (count == 0) @@ -338,7 +385,8 @@ Remark = itemBarcodeDetails.Memo, EbelnK3id = detail.EbelnK3id, LineK3id = detail.LineK3id, - ItemId = detail.ItemId + ItemId = detail.ItemId, + DepotId = depotCode2 }).IgnoreColumns(true).ExecuteCommand(); else db.Updateable<MesInvItemInCItems>() @@ -347,8 +395,9 @@ .Where(it => it.ItemInId == cId && it.ItemId == detail.ItemId && - it.WorkNo == detail.WorkNo && - it.WorkLine == detail.WorkLine) + it.DepotId == depotCode2 && + it.EbelnK3id == detail.EbelnK3id && + it.LineK3id == detail.LineK3id) .IgnoreColumns(true) .ExecuteCommand(); @@ -384,7 +433,8 @@ EbelnK3id = detail.EbelnK3id, LineK3id = detail.LineK3id, ItemId = detail.ItemId, - ReceiveOrgId = inventory.ReceiveOrgId + ReceiveOrgId = inventory.ReceiveOrgId, + LotNo = cgddDetails.BatchNumber }).IgnoreColumns(true).ExecuteCommand(); cSyQty = 0; // Remaining quantity fulfilled @@ -399,7 +449,7 @@ BusinessType = 1, ItemBarcode = itemBarcode, ItemNo = itemBarcodeDetails.ItemNo, - LotNo = itemBarcodeDetails.LotNo, + LotNo = cgddDetails.BatchNumber, EpFlag = true, Quantity = itemBarcodeDetails.Quantity, ToInvDepotsCode = mesDepost.DepotCode, @@ -424,12 +474,19 @@ } else { + var detailone = db.Queryable<MesInvItemArnDetail>() + .Where(d => + d.Guid == itemBarcodeDetails.AboutGuid) + .First(); + // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 MES_INV_ITEM_IN_C_ITEMS 琛� var existingCount = db.Queryable<MesInvItemInCItems>() - .Where(t => t.ItemInId == cId && - t.ItemId == itemBarcodeDetails.ItemId && - t.WorkNo == itemBarcodeDetails.WorkNo && - t.WorkLine == itemBarcodeDetails.WorkLine) + .Where(it => + it.ItemInId == cId && + it.ItemId == detailone.ItemId && + it.DepotId == depotCode2 && + it.EbelnK3id == detailone.EbelnK3id && + it.LineK3id == detailone.LineK3id) .Count(); if (existingCount == 0) @@ -455,19 +512,23 @@ Remark = itemBarcodeDetails.Memo, EbelnK3id = itemBarcodeDetails.EbelnK3id, LineK3id = itemBarcodeDetails.LineK3id, - ItemId = itemBarcodeDetails.ItemId + ItemId = itemBarcodeDetails.ItemId, + DepotId = depotCode2 }).IgnoreColumns(true).ExecuteCommand(); else // 瀛樺湪鏃舵洿鏂版暟閲� db.Updateable<MesInvItemInCItems>() - .SetColumns(it => - it.Quantity == - it.Quantity + itemBarcodeDetails.Quantity) - .Where(it => it.ItemInId == cId && - it.ItemId == itemBarcodeDetails.ItemId && - it.WorkNo == itemBarcodeDetails.WorkNo && - it.WorkLine == itemBarcodeDetails.WorkLine) - .IgnoreColumns(true) + .SetColumns(it => new MesInvItemInCItems + { + Quantity = SqlFunc.IsNull(it.Quantity, 0) + itemBarcodeDetails.Quantity // 纭繚 Quantity 涓嶄负 null + }) + .Where(it => + it.ItemInId == cId && + it.ItemId == detailone.ItemId && + it.DepotId == depotCode2 && + it.EbelnK3id == detailone.EbelnK3id && + it.LineK3id == detailone.LineK3id) + //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns .ExecuteCommand(); // 鎻掑叆 mes_inv_item_in_c_details 琛� @@ -481,7 +542,7 @@ EpFlag = true, WorkType = 1, ItemNo = itemBarcodeDetails.ItemNo, - LotNo = itemBarcodeDetails.LotNo, + LotNo = cgddDetails.BatchNumber, SuppId = itemBarcodeDetails.SuppId, SuppNo = itemBarcodeDetails.SuppNo, DepotCode = mesDepost.DepotCode, @@ -508,7 +569,8 @@ CheckDate = inventoryDetails.CheckDate, CheckRes = inventoryDetails.CheckRes, CheckStates = inventoryDetails.CheckStates, - ReceiveOrgId = inventory.ReceiveOrgId + ReceiveOrgId = inventory.ReceiveOrgId, + DepotId = Convert.ToInt64(depotCode2) }).IgnoreColumns(true).ExecuteCommand(); // 鎻掑叆 mes_inv_business2 琛� @@ -546,11 +608,13 @@ // 鎻掑叆 mes_inv_item_stocks 琛� } + + db.Insertable(new MesInvItemStocks { TaskNo = itemBarcodeDetails.TaskNo, ItemBarcode = itemBarcode, - ItemNo = itemBarcodeDetails.ItemNo, + ItemNo = cgddDetails.BatchNumber, LotNo = itemBarcodeDetails.LotNo, Quantity = itemBarcodeDetails.Quantity, DepotsCode = mesDepost.DepotCode, @@ -567,7 +631,11 @@ LineK3id = itemBarcodeDetails.LineK3id, ItemId = itemBarcodeDetails.ItemId, BillNo = itemBarcodeDetails.BillNo, - DepotId = Convert.ToInt32(depotCode2) + DepotId = Convert.ToInt32(depotCode2), + OwnerId = cgddDetails.DemandOrg, + OwnerType = owner_type, + StockOrgId = mesDepost.FSubsidiary, + IndepUserCode = user }).IgnoreColumns(true).ExecuteCommand(); itemBarcodeDetails.Hbdy ??= 0; -- Gitblit v1.9.3