From e33ee3adc98f5411395682cbfc9b1d367cdae7ee Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期六, 15 二月 2025 10:20:22 +0800 Subject: [PATCH] 1.生产报工优化 2.采购入库优化 --- entity/MesWorkProdCDetails.cs | 8 + NewPdaSqlServer.sln | 2 entity/MesWorkProd.cs | 11 ++ service/Wom/MesWorkProdManager.cs | 28 ++++-- service/Warehouse/MesInvItemInCDetailsManager.cs | 148 +++++++++++++++++++++++++++---------- 5 files changed, 146 insertions(+), 51 deletions(-) diff --git a/NewPdaSqlServer.sln b/NewPdaSqlServer.sln index a1cbe04..e7e095e 100644 --- a/NewPdaSqlServer.sln +++ b/NewPdaSqlServer.sln @@ -3,7 +3,7 @@ # Visual Studio Version 17 VisualStudioVersion = 17.11.35327.3 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NewPdaSqlServer", "NewPdaSqlServer.csproj", "{927F4816-FDC4-45F2-B329-3E2DB246946C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NewPdaSqlServer", "NewPdaSqlServer.csproj", "{927F4816-FDC4-45F2-B329-3E2DB246946C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/entity/MesWorkProd.cs b/entity/MesWorkProd.cs index a0a4971..62f5c43 100644 --- a/entity/MesWorkProd.cs +++ b/entity/MesWorkProd.cs @@ -115,4 +115,15 @@ /// </summary> [SugarColumn(ColumnName = "box_qty")] public decimal? BoxQty { get; set; } + + /// <summary> + /// 鎶ュ伐浜哄憳 + /// </summary> + [SugarColumn(ColumnName = "report_by")] + public string? ReportBy { get; set; } + /// <summary> + /// 鎶ュ伐鏃堕棿 + /// </summary> + [SugarColumn(ColumnName = "report_date")] + public DateTime? ReportDate { get; set; } } \ No newline at end of file diff --git a/entity/MesWorkProdCDetails.cs b/entity/MesWorkProdCDetails.cs index e4cfe4e..498cfe1 100644 --- a/entity/MesWorkProdCDetails.cs +++ b/entity/MesWorkProdCDetails.cs @@ -102,5 +102,11 @@ /// 鎶ュ伐鍛樺伐 /// </summary> [SugarColumn(ColumnName = "bg_yg")] - public decimal? BgYg { get; set; } + public string? BgYg { get; set; } + + /// <summary> + /// 鎶ュ伐鍛樺伐 + /// </summary> + [SugarColumn(ColumnName = "mes_work_prod_id")] + public Guid? MesWorkProdId { get; set; } } \ No newline at end of file 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; diff --git a/service/Wom/MesWorkProdManager.cs b/service/Wom/MesWorkProdManager.cs index 75aa089..e7fe661 100644 --- a/service/Wom/MesWorkProdManager.cs +++ b/service/Wom/MesWorkProdManager.cs @@ -84,7 +84,7 @@ var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>( (a, b) => new JoinQueryInfos(JoinType.Inner, - a.BillNo == b.BillNo)) + a.Id == b.MesWorkProdId)) .Where((a, b) => b.ItemBarcode == request.ItemBarcode && a.BillTypeId == billTypeId && a.TransactionNo == transactionNo) @@ -133,8 +133,8 @@ db.Updateable<MesInvItemBarcodes>() .SetColumns(x => new MesInvItemBarcodes { - WorkFlg = true, - Quantity = reportQty + WorkFlg = true + //Quantity = reportQty }) .Where(x => x.Guid == barcode.Guid) .ExecuteCommand(); @@ -147,13 +147,15 @@ DateTime.Now.Date.ToString("yyyy-MM-dd") && x.BillTypeId == billTypeId && x.TransactionNo == transactionNo - && x.Status == 0) + && x.ReportBy == request.StaffNo) .First(); + var id = Guid.Empty; + var billNo = ""; if (workProd == null) { - var id = Guid.NewGuid(); - var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)"); + id = Guid.NewGuid(); + billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)"); workProd = new MesWorkProd { @@ -168,11 +170,18 @@ LastupdateDate = DateTime.Now, BillTypeId = billTypeId, TransactionNo = transactionNo, - TaskNo = barcode.BillNo + TaskNo = barcode.BillNo, + ReportBy = request.StaffNo, + ReportDate = DateTime.Now }; db.Insertable(workProd).IgnoreColumns(true) .ExecuteCommand(); + } + else + { + id = workProd.Id; + billNo = workProd.BillNo; } // 12. 鎻掑叆鎶ュ伐鏄庣粏 @@ -180,7 +189,8 @@ db.Insertable(new MesWorkProdCDetails { Id = detailId, - BillNo = workProd.BillNo, + MesWorkProdId = id, + BillNo = billNo, ItemBarcode = request.ItemBarcode, Quantity = (int)reportQty, Company = barcode.Company, @@ -194,7 +204,7 @@ SilkPqty = barcode.SilkPqty, SilkId = barcode.SilkId, Silk = barcode.Silk, - BgYg = staff.Id + BgYg = request.StaffNo }).IgnoreColumns(true).ExecuteCommand(); // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲� -- Gitblit v1.9.3