From bf780b6c83012b5beb3d7515b8fb61753c5fb736 Mon Sep 17 00:00:00 2001 From: sjz <1240968267@qq.com> Date: 星期四, 26 六月 2025 08:48:37 +0800 Subject: [PATCH] 采购承诺交期改string类型 --- MES.Service/service/BasicData/MesRohInManager.cs | 430 ++++++++++++++++++++++------------------------------- 1 files changed, 176 insertions(+), 254 deletions(-) diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs index 384fc85..737ae4c 100644 --- a/MES.Service/service/BasicData/MesRohInManager.cs +++ b/MES.Service/service/BasicData/MesRohInManager.cs @@ -1,274 +1,196 @@ 锘縰sing MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; -using MES.Service.util; using SqlSugar; -namespace MES.Service.service.BasicData +namespace MES.Service.service.BasicData; + +public class MesRohInManager : Repository<MesRohIn> { - public class MesRohInManager : Repository<MesRohIn> + private readonly MesRohInDataManager rohInDataManager = new(); + + // Save 鏂规硶鐢ㄤ簬淇濆瓨鍗曚釜 RohIn 璁板綍锛屾牴鎹被鍨嬫墽琛屼笉鍚岀殑鎿嶄綔 + public bool Save(RohIn rohIn) { - private readonly MesRohInDataManager rohInDataManager = new(); + var rohInErpRohIn = rohIn.ErpRohIn; + var mesRohIn = GetMesRohIn(rohInErpRohIn); + var mesRohInDatas = + GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type); - // Save 鏂规硶鐢ㄤ簬淇濆瓨鍗曚釜 RohIn 璁板綍锛屾牴鎹被鍨嬫墽琛屼笉鍚岀殑鎿嶄綔 - public bool Save(RohIn rohIn) + return UseTransaction(db => { - var rohInErpRohIn = rohIn.ErpRohIn; - var mesRohIn = GetMesRohIn(rohInErpRohIn); - var mesRohInDatas = - GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type); - - return UseTransaction(db => + switch (rohInErpRohIn.Type) { - switch (rohInErpRohIn.Type) - { - // case "2": - // return InsertData(db, mesRohIn, mesRohInDatas, - // rohInErpRohIn.FBILLTYPE) - // ? 1 - // : 0; - case "3": - return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; - case "2": - case "4": - return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) - ? 1 - : 0; - default: - 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 "3": + return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; + case "2": + case "4": + case "5": 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; - } + return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) + ? 1 + : 0; + default: + throw new NotImplementedException( + $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷"); } + }) > 0; + } - 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 insertOrUpdate = db + .Deleteable<MesRohInData>().In(decimals) + .ExecuteCommand() > 0; - // 鏇存柊鏁版嵁鐨勬柟娉� - private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn, - List<MesRohInData> mesRohInDatas) + if (update && insertOrUpdate) return true; + throw new NotImplementedException("鏇存柊澶辫触"); + } + + // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶 + private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, + List<MesRohInData> mesRohInDatas) + { + if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); + + if (mesRohInDatas.Count > 0) + db.Deleteable<MesRohInData>() + .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand(); + + var orUpdate = base.Insert(mesRohIn); + var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas); + if (orUpdate && baOrUpdate) return true; + throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); + } + + // 鎵归噺淇濆瓨璁板綍鐨勬柟娉� + public bool SaveList(List<RohIn> rohIns) + { + var result = rohIns.Select(Save).ToList(); + return result.All(b => b); + } + + // 灏� ErpRohIn 瀵硅薄杞崲涓� MesRohIn 瀵硅薄鐨勬柟娉� + public MesRohIn GetMesRohIn(ErpRohIn rohIn) + { + var eid = Convert.ToDecimal(rohIn.id); + var mesRohIn = new MesRohIn(); + + var single = base.GetSingle(it => it.EbelnK3id == eid); + if (single != null) mesRohIn.Id = single.Id; + + mesRohIn.EbelnK3id = eid; + mesRohIn.BillNo = rohIn.FBillNo; + mesRohIn.DocumentStatus = rohIn.FDocumentStatus; + mesRohIn.DocumentType = rohIn.FBillTypeID; + mesRohIn.BusinessType = rohIn.FBusinessType; + if (rohIn.FDate != null) + mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate,"yyyy-MM-dd HH:mm:ss", null); + mesRohIn.Supplier = rohIn.FSupplierId; + mesRohIn.CloseStatus = rohIn.FCloseStatus; + mesRohIn.PurchaseOrg = rohIn.FPurchaseOrgId; + mesRohIn.PurchaseDept = rohIn.FPurchaseDeptId; + mesRohIn.PurchaseGroup = rohIn.FPurchaserGroupId; + mesRohIn.Purchaser = rohIn.FPurchaserId; + mesRohIn.SettlementParty = rohIn.FSettleId; + mesRohIn.PaymentParty = rohIn.FChargeId; + mesRohIn.Email = rohIn.FProviderEMail; + 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); + + mesRohIn.CreateBy = rohIn.FCreatorId; + mesRohIn.LastupdateBy = rohIn.FModifierId; + + if (rohIn.FModifyDate != null) + mesRohIn.LastupdateDate = DateTime.ParseExact(rohIn.FModifyDate,"yyyy-MM-dd HH:mm:ss", null); + + mesRohIn.ErpCheckBy = rohIn.FApproverId; + mesRohIn.ErpCheckDate = rohIn.FApproveDate; + mesRohIn.Changereason = rohIn.FChangeReason; + mesRohIn.CreateDate = DateTime.Now; + mesRohIn.ReceiveOrg = Convert.ToDecimal(rohIn.FReceiveOrgId); + mesRohIn.Remarks = rohIn.F_WWC_LARGETEXT; + mesRohIn.F_WWC_TEXT=rohIn.F_WWC_TEXT; + + + return mesRohIn; + } + + // 灏� ErpRohinData 瀵硅薄杞崲涓� MesRohInData 瀵硅薄鐨勬柟娉� + public List<MesRohInData> GetMesRohInDatas( + List<ErpRohinData> erpRohinDatas, string type) + { + return erpRohinDatas.Select(s => { - var decimals = mesRohInDatas.Select(s => s.Id).ToArray(); - var update = base.DeleteById(mesRohIn.Id); - var insertOrUpdate = db - .Deleteable<MesRohInData>().In(decimals) - .ExecuteCommand() > 0; - - if (update && insertOrUpdate) return true; - throw new NotImplementedException("鏇存柊澶辫触"); - } - - // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶 - private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, - List<MesRohInData> mesRohInDatas) - { - - if (mesRohIn.Id != null) + var entity = new MesRohInData { - base.DeleteById(mesRohIn.Id); - } + EbelnK3id = Convert.ToDecimal(s.id), + ErpId = Convert.ToDecimal(s.Eid), + BillNo = s.FBillNo, + OrderLineId=s.FSeq, + PurchaseOrderLineNumber = s.FSeq, + SalesOrderId = s.FXSHTH, + 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): null, + EarliestDeliveryDate = s.FDeliveryEarlyDate != null? DateTime.ParseExact(s.FDeliveryEarlyDate,"yyyy-MM-dd HH:mm:ss", null): null, + LatestDeliveryDate = s.FDeliveryLastDate != null? DateTime.ParseExact(s.FDeliveryLastDate,"yyyy-MM-dd HH:mm:ss", null): null, + IsGift = s.FGiveAway, + Remarks = s.FEntryNote, + SupplierItemCode = s.FSupMatId, + SupplierItemName = s.FSupMatName, + OutsourcingOrderId = s.FSubreqBillNo, + BatchNumber = s.FLot, + 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, + 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.FQty)-Convert.ToDecimal(s.FRemainReceiveQty), + RemainingReceivedQty = Convert.ToDecimal(s.FRemainReceiveQty), + TotalStoredQty = Convert.ToDecimal(s.FQty) - Convert.ToDecimal(s.FRemainStockINQty), + RemainingStoredQty = Convert.ToDecimal(s.FRemainStockINQty), + TotalReturnedQty = Convert.ToDecimal(s.FMrbQty), + ReturnableReceivedQty = Convert.ToDecimal(s.FBaseCheckRetQty), + ReturnableStoredQty = Convert.ToDecimal(s.FBaseStockRetQty), + SourceDocumentType = s.FSrcBillTypeId, + SourceDocumentId = s.FSrcBillNo, + DemandTrackingId = s.FReqTraceNo, + PlanTrackingId = s.FMtoNo, + ChangeFlag = s.FChangeFlag, + DemandSource = s.FDemandType, + DemandDocumentId = s.FDemandBillNo, + DemandDocumentLineId = s.FDemandBillEntrySeq, + Demand = s.FRequireOrgId, + DemandOrg = s.FRequireOrgId, + Receiving = s.FReceiveOrgId, + ReceivingOrg = s.FReceiveOrgId, + Settlement = s.FEntrySettleOrgId, + SettlementOrg = s.FEntrySettleOrgId, + DemandDept = s.FRequireDeptId, + ReceivingDept = s.FReceiveDeptId, + IsNew = Convert.ToDecimal(s.IsNewProduct), + PromiseDate = s.PromiseDate + }; - if (mesRohInDatas.Count > 0) - { - db.Deleteable<MesRohInData>().Where(s=>s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand(); - } + var single = rohInDataManager.GetSingle(it => + it.EbelnK3id == entity.EbelnK3id); + if (single != null) entity.Id = single.Id; - var orUpdate = base.Insert(mesRohIn); - var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas); - if (orUpdate && baOrUpdate) return true; - throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); - } - - // 鎵归噺淇濆瓨璁板綍鐨勬柟娉� - public bool SaveList(List<RohIn> rohIns) - { - var result = rohIns.Select(Save).ToList(); - return result.All(b => b); - } - - // 灏� ErpRohIn 瀵硅薄杞崲涓� MesRohIn 瀵硅薄鐨勬柟娉� - public MesRohIn GetMesRohIn(ErpRohIn rohIn) - { - var eid = Convert.ToDecimal(rohIn.id); - var mesRohIn = new MesRohIn(); - - var single = base.GetSingle(it => it.EbelnK3id == eid); - if (single != null) mesRohIn.Id = single.Id; - - mesRohIn.EbelnK3id = eid; - mesRohIn.BillNo = rohIn.FBillNo; - mesRohIn.DocumentStatus = rohIn.FDocumentStatus; - mesRohIn.DocumentType = rohIn.FBillTypeID; - mesRohIn.BusinessType = rohIn.FBusinessType; - - if (rohIn.FDate != null) - mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate, - "yyyy-MM-dd HH:mm:ss", null); - - mesRohIn.Supplier = rohIn.FSupplierId; - mesRohIn.CloseStatus = rohIn.FCloseStatus; - 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_UNW_BZ; - mesRohIn.FixtureMoldProcurement = rohIn.F_UNW_Combo_zjmj; - 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); - - mesRohIn.CreateBy = rohIn.FCreatorId; - - if (rohIn.FCreateDate != null) - mesRohIn.CreateDate = DateTime.ParseExact(rohIn.FCreateDate, - "yyyy-MM-dd HH:mm:ss", null); - - mesRohIn.LastupdateBy = rohIn.FModifierId; - - if (rohIn.FModifyDate != null) - mesRohIn.LastupdateDate = DateTime.ParseExact(rohIn.FModifyDate, - "yyyy-MM-dd HH:mm:ss", null); - - mesRohIn.ErpCheckBy = rohIn.FApproverId; - mesRohIn.ErpCheckDate = rohIn.FApproveDate; - mesRohIn.Changereason = rohIn.FCHANGEREASON; - - return mesRohIn; - } - - // 灏� ErpRohinData 瀵硅薄杞崲涓� MesRohInData 瀵硅薄鐨勬柟娉� - public List<MesRohInData> GetMesRohInDatas( - List<ErpRohinData> erpRohinDatas, string type) - { - return erpRohinDatas.Select(s => - { - var entity = new MesRohInData - { - EbelnK3id = Convert.ToDecimal(s.id), - ErpId = Convert.ToDecimal(s.Eid), - BillNo = s.FBillNo, - SalesOrderId = s.F_UNW_Text_xsddh, - 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) - : null, - EarliestDeliveryDate = s.FDeliveryEarlyDate != null - ? DateTime.ParseExact(s.FDeliveryEarlyDate, - "yyyy-MM-dd HH:mm:ss", null) - : null, - LatestDeliveryDate = s.FDeliveryLastDate != null - ? DateTime.ParseExact(s.FDeliveryLastDate, - "yyyy-MM-dd HH:mm:ss", null) - : null, - IsGift = s.FGiveAway, - Remarks = s.FEntryNote, - SupplierItemCode = s.FSupMatId, - SupplierItemName = s.FSupMatName, - OutsourcingOrderId = s.FSUBREQBILLNO, - BatchNumber = s.FLot, - 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, - 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.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), - ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY), - SourceDocumentType = s.FSrcBillTypeId, - SourceDocumentId = s.FSrcBillNo, - DemandTrackingId = s.FReqTraceNo, - PlanTrackingId = s.FMtoNo, - ChangeFlag = s.FChangeFlag, - DemandSource = s.FDEMANDTYPE, - DemandDocumentId = s.FDEMANDBILLNO, - DemandDocumentLineId = s.FDEMANDBILLENTRYSEQ, - PurchaseOrderLineNumber = s.PurchaseOrderLineNumber, - Demand = s.Demand, - Receiving = s.Receiving, - Settlement = s.Settlement - }; - - var single = rohInDataManager.GetSingle(it => - it.EbelnK3id == entity.EbelnK3id); - if (single != null) entity.Id = single.Id; - - return entity; - }).ToList(); - } + return entity; + }).ToList(); } } \ No newline at end of file -- Gitblit v1.9.3