From a4ae3bf5f1826e8e29a95da3dc2c947d713d4ebb Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 06 六月 2025 15:38:14 +0800 Subject: [PATCH] 1.仓库信息储存逻辑调整 2.生产订单接口优化。 --- MES.Service/service/BasicData/MesRohInManager.cs | 194 ++++++++++++++++++++++-------------------------- 1 files changed, 88 insertions(+), 106 deletions(-) diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs index c6a5935..fd0edbc 100644 --- a/MES.Service/service/BasicData/MesRohInManager.cs +++ b/MES.Service/service/BasicData/MesRohInManager.cs @@ -1,7 +1,9 @@ -锘縰sing MES.Service.DB; +锘縰sing Masuit.Tools; +using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using SqlSugar; +using System.Globalization; namespace MES.Service.service.BasicData; @@ -14,77 +16,38 @@ { var rohInErpRohIn = rohIn.ErpRohIn; var mesRohIn = GetMesRohIn(rohInErpRohIn); - var mesRohInDatas = GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type); + var mesRohInDatas = + GetMesRohInDatas(rohIn.ErpRohinDatas); return UseTransaction(db => { - switch (rohInErpRohIn.Type) + return rohInErpRohIn.Type switch { - case "2": - case "4": - case "5": - return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; - case "3": - return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; - default: - throw new NotImplementedException( - $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷"); - } + "2" or "4" or "5" => SaveOrUpdateData(db, mesRohIn, + mesRohInDatas) + ? 1 + : 0, + "3" => UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0, + _ => throw new NotImplementedException( + $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷") + }; }) > 0; } - // 鎻掑叆鏁版嵁鐨勬柟娉� - private bool InsertData(SqlSugarScope db, MesRohIn mesRohIn, - List<MesRohInData> mesRohInDatas, string FBILLTYPE) - { - switch (FBILLTYPE) - { - case "A": - { - var decimals = mesRohInDatas.Select(s => s.Id).ToArray(); - - if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); - - if (decimals.Length > 0) - db.Deleteable<MesRohInData>().In(decimals).ExecuteCommand(); - - var insert = base.Insert(mesRohIn); - var insertRange = - rohInDataManager.InsertRange(mesRohInDatas); - - if (insert && insertRange) return true; - throw new NotImplementedException("鎻掑叆澶辫触"); - } - case "B": - { - var decimals = mesRohInDatas.Select(s => s.Id).ToArray(); - if (base.DeleteById(mesRohIn.Id) && db - .Deleteable<MesRohInData>().In(decimals) - .ExecuteCommand() > 0) - { - var insert = base.Insert(mesRohIn); - var insertRange = - rohInDataManager.InsertRange(mesRohInDatas); - - if (insert && insertRange) return true; - throw new NotImplementedException("鎻掑叆澶辫触"); - } - - break; - } - } - - throw new NotImplementedException("閲囪喘璁㈠崟绫诲瀷閿欒"); - } // 鏇存柊鏁版嵁鐨勬柟娉� private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn, List<MesRohInData> mesRohInDatas) { - var decimals = mesRohInDatas.Select(s => s.Id).ToArray(); - var update = base.DeleteById(mesRohIn.Id); + var decimals = mesRohInDatas.Select(s => s.Guid).ToArray(); + + var update = db.Deleteable<MesRohIn>() + .Where(a => a.Guid == mesRohIn.Guid) + .ExecuteCommand() > 0; + var insertOrUpdate = db - .Deleteable<MesRohInData>().In(decimals) + .Deleteable<MesRohInData>() + .Where(s => decimals.Contains(s.Guid)) .ExecuteCommand() > 0; if (update && insertOrUpdate) return true; @@ -95,14 +58,22 @@ private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, List<MesRohInData> mesRohInDatas) { - if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); + if (mesRohIn.Guid != null) + db.Deleteable<MesRohIn>().Where(s => s.Guid == mesRohIn.Guid) + .ExecuteCommand(); if (mesRohInDatas.Count > 0) db.Deleteable<MesRohInData>() .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand(); - var orUpdate = base.Insert(mesRohIn); - var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas); + var orUpdate = db.Insertable(mesRohIn) + .IgnoreColumns(true).ExecuteCommand() > 0; + + + var baOrUpdate = db.Insertable(mesRohInDatas).PageSize(1) + .IgnoreColumnsNull() + .ExecuteCommand() > 0; + if (orUpdate && baOrUpdate) return true; throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); } @@ -115,13 +86,14 @@ } // 灏� ErpRohIn 瀵硅薄杞崲涓� MesRohIn 瀵硅薄鐨勬柟娉� - public MesRohIn GetMesRohIn(ErpRohIn rohIn) + private MesRohIn GetMesRohIn(ErpRohIn rohIn) { - var eid = Convert.ToDecimal(rohIn.id); + var eid = long.Parse(rohIn.id); var mesRohIn = new MesRohIn(); + var single = base.GetSingle(it => it.EbelnK3id == eid); - if (single != null) mesRohIn.Id = single.Id; + if (single != null) mesRohIn.Guid = single.Guid; mesRohIn.EbelnK3id = eid; mesRohIn.BillNo = rohIn.FBillNo; @@ -138,22 +110,19 @@ mesRohIn.PurchaseOrg = rohIn.FPurchaseOrgId; mesRohIn.PurchaseDept = rohIn.FPurchaseDeptId; mesRohIn.PurchaseGroup = rohIn.FPurchaserGroupId; - mesRohIn.QtyAcceptance = rohIn.Facctype; mesRohIn.Purchaser = rohIn.FPurchaserId; - //mesRohIn.QualityReq = rohIn.F_UNW_Remarks_zlyq; mesRohIn.SettlementParty = rohIn.FSettleId; mesRohIn.PaymentParty = rohIn.FChargeId; - // mesRohIn.Email = rohIn.FProviderEMail; - // mesRohIn.TransportMethod = rohIn.F_UNW_Text_ysfs; - mesRohIn.Remarks = rohIn.F_XIFG_Text_qtr1; - // mesRohIn.FixtureMoldProcurement = rohIn.F_UNW_Combo_zjmj; + mesRohIn.Email = rohIn.FProviderEMail; + mesRohIn.Remarks = rohIn.Remarks; mesRohIn.CancellationStatus = rohIn.FCancelStatus; mesRohIn.CancellationPerson = rohIn.FCancellerId; if (rohIn.FCancelDate != null) - mesRohIn.CancellationDate = - DateTime.ParseExact(rohIn.FCancelDate, - "yyyy-MM-dd HH:mm:ss", null); + if (!mesRohIn.CancellationPerson.IsNullOrEmpty()) + mesRohIn.CancellationDate = + DateTime.ParseExact(rohIn.FCancelDate, + "yyyy-MM-dd HH:mm:ss", null); mesRohIn.CreateBy = rohIn.FCreatorId; @@ -169,22 +138,28 @@ mesRohIn.ErpCheckBy = rohIn.FApproverId; mesRohIn.ErpCheckDate = rohIn.FApproveDate; - mesRohIn.Changereason = rohIn.FCHANGEREASON; - mesRohIn.FPREARRIVALDATE = rohIn.FPREARRIVALDATE != null - ? DateTime.ParseExact(rohIn.FPREARRIVALDATE, + mesRohIn.Changereason = rohIn.FChangeReason; + mesRohIn.Prearrivaldate = rohIn.Prearrivaldate != null + ? DateTime.ParseExact(rohIn.Prearrivaldate, "yyyy-MM-dd HH:mm:ss", null) : null; - mesRohIn.FRECEIVEORGID = rohIn.FRECEIVEORGID; + mesRohIn.ReceiveOrgId = rohIn.FReceiveOrgId; + mesRohIn.ProviderId = rohIn.FProviderId; - mesRohIn.remark1 = rohIn.F_XIFG_PrintTimes_qtr; + mesRohIn.Anred = rohIn.FTContact; + mesRohIn.Telf1 = rohIn.Fmobilephone; + mesRohIn.FixedTelephone = rohIn.FixedTelephone; + mesRohIn.Address = rohIn.Address; + mesRohIn.Acctype = rohIn.Acctype; + mesRohIn.SynchronousDate = DateTime.Now; return mesRohIn; } // 灏� ErpRohinData 瀵硅薄杞崲涓� MesRohInData 瀵硅薄鐨勬柟娉� - public List<MesRohInData> GetMesRohInDatas( - List<ErpRohinData> erpRohinDatas, string type) + private List<MesRohInData> GetMesRohInDatas( + List<ErpRohinData> erpRohinDatas) { return erpRohinDatas.Select(s => { @@ -193,12 +168,12 @@ EbelnK3id = Convert.ToDecimal(s.id), ErpId = Convert.ToDecimal(s.Eid), BillNo = s.FBillNo, - SalesOrderId = s.F_XIFG_Text_k79, - OrderLineId = s.FSEQ, ItemId = s.FMaterialId, PurchaseUnit = s.FUnitId, PurchaseQty = Convert.ToDecimal(s.FQty), InventoryUnit = s.FStockUnitID, + PricingUnit = s.FPriceUnitId, + PricingQty = Convert.ToDecimal(s.FPriceUnitQty), DeliveryDate = s.FDeliveryDate != null ? DateTime.ParseExact(s.FDeliveryDate, "yyyy-MM-dd HH:mm:ss", null) @@ -212,7 +187,7 @@ "yyyy-MM-dd HH:mm:ss", null) : null, IsGift = s.FGiveAway, - Remarks = s.Fnote, + Remarks = s.FEntryNote, SupplierItemCode = s.FSupMatId, SupplierItemName = s.FSupMatName, OutsourcingOrderId = s.FSUBREQBILLNO, @@ -220,23 +195,29 @@ BusinessClose = s.FMRPCloseStatus, BusinessFreeze = s.FMRPFreezeStatus, Freezer = s.FFreezerId, - FreezeTime = s.FFreezeDate != null - ? DateTime.ParseExact(s.FFreezeDate, - "yyyy-MM-dd HH:mm:ss", null) - : null, + //FreezeTime = !string.IsNullOrEmpty(s.FFreezeDate) + // && DateTime.TryParseExact(s.FFreezeDate, + // new[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd" }, // 鏀寔澶氱鏍煎紡 + // CultureInfo.InvariantCulture, + // DateTimeStyles.None, + // out var parsedDate) + // && parsedDate > new DateTime(1900, 1, 1) + // ? parsedDate + // : (DateTime?)null, BusinessTerminate = s.FMRPTerminateStatus, Terminator = s.FTerminaterId, - TerminateTime = s.FTerminateDate != null - ? DateTime.ParseExact(s.FTerminateDate, - "yyyy-MM-dd HH:mm:ss", null) - : null, + //TerminateTime = s.FTerminateDate != null + // ? DateTime.ParseExact(s.FTerminateDate, + // "yyyy-MM-dd HH:mm:ss", null) + // : null, TotalReceivedQty = Convert.ToDecimal(s.FReceiveQty), //绱鏀舵枡鏁� RemainingReceivedQty = Convert.ToDecimal(s.FRemainReceiveQty), TotalStoredQty = Convert.ToDecimal(s.FStockInQty), //绱鍏ュ簱鏁� RemainingStoredQty = Convert.ToDecimal(s.FRemainStockINQty), TotalReturnedQty = Convert.ToDecimal(s.FMrbQty), - ReturnableReceivedQty = Convert.ToDecimal(s.FCHECKRETQTY), //鏀舵枡鍙��鏁� + ReturnableReceivedQty = + Convert.ToDecimal(s.FCHECKRETQTY), //鏀舵枡鍙��鏁� ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY), //搴撳瓨鍙��鏁� SourceDocumentType = s.FSrcBillTypeId, SourceDocumentId = s.FSrcBillNo, @@ -254,23 +235,24 @@ Receiving = s.FReceiveOrgId, Settlement = s.FSETTLEORGID, DemandDepartment = s.FRequireDeptId, - ReceivingDepartment = s.FReceiveDeptId, - FPREARRIVALDATE = s.FPREARRIVALDATE != null - ? DateTime.ParseExact(s.FPREARRIVALDATE, - "yyyy-MM-dd HH:mm:ss", null) - : null, - Remark1 = s.F_XIFG_Text_ne1, - Remark2 = s.F_XIFG_Text_6oq, - Remark3 = s.F_XIFG_Base_c1c, - Remark4 = s.F_XIFG_Text_qtr4, - FdemandbillnoLine = s.FdemandbillnoLine, - ElectricalProductModel = s.ElectricalProductModel, - ElectricalProductName = s.ElectricalProductName + ReceivingDepartment = s.FReceiveDeptId }; + + if (s.FFreezeDate != null) + if (!s.FFreezerId.IsNullOrEmpty()) + entity.FreezeTime = + DateTime.ParseExact(s.FFreezeDate, + "yyyy-MM-dd HH:mm:ss", null); + + if (s.FTerminateDate != null) + if (!s.FTerminaterId.IsNullOrEmpty()) + entity.TerminateTime = + DateTime.ParseExact(s.FTerminateDate, + "yyyy-MM-dd HH:mm:ss", null); var single = rohInDataManager.GetSingle(it => it.EbelnK3id == entity.EbelnK3id); - if (single != null) entity.Id = single.Id; + if (single != null) entity.Guid = single.Guid; return entity; }).ToList(); -- Gitblit v1.9.3