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 | 124 +++++++++++++++++++++++++---------------- 1 files changed, 75 insertions(+), 49 deletions(-) diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs index a4144f0..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; @@ -15,7 +17,7 @@ var rohInErpRohIn = rohIn.ErpRohIn; var mesRohIn = GetMesRohIn(rohInErpRohIn); var mesRohInDatas = - GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type); + GetMesRohInDatas(rohIn.ErpRohinDatas); return UseTransaction(db => { @@ -37,15 +39,15 @@ private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn, List<MesRohInData> mesRohInDatas) { - var decimals = mesRohInDatas.Select(s => s.Id).ToArray(); + var decimals = mesRohInDatas.Select(s => s.Guid).ToArray(); var update = db.Deleteable<MesRohIn>() - .Where(a => a.Id == mesRohIn.Id) + .Where(a => a.Guid == mesRohIn.Guid) .ExecuteCommand() > 0; var insertOrUpdate = db .Deleteable<MesRohInData>() - .Where(s => decimals.Contains(s.Id)) + .Where(s => decimals.Contains(s.Guid)) .ExecuteCommand() > 0; if (update && insertOrUpdate) return true; @@ -56,16 +58,22 @@ private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, List<MesRohInData> mesRohInDatas) { - if (mesRohIn.Id != null) - db.Deleteable<MesRohIn>().Where(s => s.Id == 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("鎻掑叆鎴栨洿鏂板け璐�"); } @@ -83,8 +91,9 @@ 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; @@ -104,15 +113,16 @@ mesRohIn.Purchaser = rohIn.FPurchaserId; mesRohIn.SettlementParty = rohIn.FSettleId; mesRohIn.PaymentParty = rohIn.FChargeId; - mesRohIn.Emall = rohIn.FProviderEMail; - mesRohIn.Remarks = rohIn.F_XIFG_Text_qtr1; + 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; @@ -129,21 +139,27 @@ mesRohIn.ErpCheckBy = rohIn.FApproverId; mesRohIn.ErpCheckDate = rohIn.FApproveDate; mesRohIn.Changereason = rohIn.FChangeReason; - mesRohIn.Prearrivaldate = rohIn.FPREARRIVALDATE != null - ? DateTime.ParseExact(rohIn.FPREARRIVALDATE, + mesRohIn.Prearrivaldate = rohIn.Prearrivaldate != null + ? DateTime.ParseExact(rohIn.Prearrivaldate, "yyyy-MM-dd HH:mm:ss", null) : null; 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 瀵硅薄鐨勬柟娉� private List<MesRohInData> GetMesRohInDatas( - List<ErpRohinData> erpRohinDatas, string type) + List<ErpRohinData> erpRohinDatas) { return erpRohinDatas.Select(s => { @@ -152,14 +168,12 @@ EbelnK3id = Convert.ToDecimal(s.id), ErpId = Convert.ToDecimal(s.Eid), BillNo = s.FBillNo, - SalesOrderId = s.F_XIFG_Text_k79, 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) @@ -172,11 +186,6 @@ ? DateTime.ParseExact(s.FDeliveryLastDate, "yyyy-MM-dd HH:mm:ss", null) : null, - DemandOrg = s.FRequireOrgId, - DemandDepartment = s.FRequireDeptId, - ReceivingOrg = s.FReceiveOrgId, - ReceivingDepartment = s.FReceiveDeptId, - SettlementOrg = s.FEntrySettleOrgId, IsGift = s.FGiveAway, Remarks = s.FEntryNote, SupplierItemCode = s.FSupMatId, @@ -186,47 +195,64 @@ 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, - TotalReceivedQty = Convert.ToDecimal(s.FBASERECEIVEQTY), //绱鏀舵枡鏁� + //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.FBASESTOCKINQTY), //绱鍏ュ簱鏁� + TotalStoredQty = Convert.ToDecimal(s.FStockInQty), //绱鍏ュ簱鏁� RemainingStoredQty = Convert.ToDecimal(s.FRemainStockINQty), TotalReturnedQty = Convert.ToDecimal(s.FMrbQty), ReturnableReceivedQty = - Convert.ToDecimal(s.FBASECHECKRETQTY), //鏀舵枡鍙��鏁� - ReturnableStoredQty = - Convert.ToDecimal(s.FBASESTOCKRETQTY), //搴撳瓨鍙��鏁� + Convert.ToDecimal(s.FCHECKRETQTY), //鏀舵枡鍙��鏁� + ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY), //搴撳瓨鍙��鏁� SourceDocumentType = s.FSrcBillTypeId, - SourceDocumentId = s.FSourceBillNo, + SourceDocumentId = s.FSrcBillNo, DemandTrackingId = s.FReqTraceNo, PlanTrackingId = s.FMtoNo, ChangeFlag = s.FChangeFlag, DemandSource = s.FDEMANDTYPE, DemandDocumentId = s.FDEMANDBILLNO, DemandDocumentLineId = s.FDEMANDBILLENTRYSEQ, - prearrivaldate = s.FTerminateDate != 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 + DemandOrg = s.FRequireOrgId, + ReceivingOrg = s.FReceiveOrgId, + SettlementOrg = s.FEntrySettleOrgId, + PurchaseOrderLineNumber = s.FSEQ, + Demand = s.FRequireOrgId, + Receiving = s.FReceiveOrgId, + Settlement = s.FSETTLEORGID, + DemandDepartment = s.FRequireDeptId, + 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