| | |
| | | public class MesRohInManager : Repository<MesRohIn> |
| | | { |
| | | private readonly MesRohInDataManager rohInDataManager = new(); |
| | | |
| | | // Save 方法用于保存单个 RohIn 记录,根据类型执行不同的操作 |
| | | public bool Save(RohIn rohIn) |
| | | { |
| | | var rohInErpRohIn = rohIn.ErpRohIn; |
| | |
| | | { |
| | | 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": |
| | | case "5": |
| | | case "B": |
| | | return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) |
| | | ? 1 |
| | | : 0; |
| | | return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; |
| | | default: |
| | | throw new NotImplementedException( |
| | | $"type没有{rohInErpRohIn.Type}这个类型"); |
| | | 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) |
| | | 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; |
| | | var insertOrUpdate = db.Deleteable<MesRohInData>().In(decimals).ExecuteCommand() > 0; |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | | if (update && insertOrUpdate) |
| | | { |
| | | return true; |
| | | } |
| | | throw new NotImplementedException("更新失败"); |
| | | } |
| | | |
| | | // 插入或更新数据的方法 |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, |
| | | List<MesRohInData> mesRohInDatas) |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,List<MesRohInData> mesRohInDatas) |
| | | { |
| | | if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); |
| | | if (mesRohIn.Id != null) |
| | | { |
| | | base.DeleteById(mesRohIn.Id); |
| | | } |
| | | |
| | | if (mesRohInDatas.Count > 0) |
| | | db.Deleteable<MesRohInData>() |
| | | .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand(); |
| | | |
| | | { |
| | | 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; |
| | |
| | | var mesRohIn = new MesRohIn(); |
| | | |
| | | var single = base.GetSingle(it => it.EbelnK3id == eid); |
| | | if (single != null) mesRohIn.Id = single.Id; |
| | | if (single != null) |
| | | { |
| | | mesRohIn.Id = single.Id; |
| | | } |
| | | |
| | | mesRohIn.EbelnK3id = eid; |
| | | mesRohIn.BillNo = rohIn.FBillNo; |
| | |
| | | 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.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.CancellationPerson = rohIn.FCancellerId; |
| | | |
| | | if (rohIn.FCancelDate != null) |
| | | mesRohIn.CancellationDate = |
| | | DateTime.ParseExact(rohIn.FCancelDate, |
| | | "yyyy-MM-dd HH:mm:ss", 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.LastupdateDate = DateTime.ParseExact(rohIn.FModifyDate, "yyyy-MM-dd HH:mm:ss", null); |
| | | } |
| | | mesRohIn.ErpCheckBy = rohIn.FApproverId; |
| | | mesRohIn.ErpCheckDate = rohIn.FApproveDate; |
| | | mesRohIn.Changereason = rohIn.FChangeReason; |
| | |
| | | } |
| | | |
| | | // 将 ErpRohinData 对象转换为 MesRohInData 对象的方法 |
| | | public List<MesRohInData> GetMesRohInDatas( |
| | | List<ErpRohinData> erpRohinDatas, string type) |
| | | public List<MesRohInData> GetMesRohInDatas(List<ErpRohinData> erpRohinDatas, string type) |
| | | { |
| | | return erpRohinDatas.Select(s => |
| | | { |
| | |
| | | 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, |
| | | 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.FNote, |
| | | SupplierItemCode = s.FSupMatId, |
| | |
| | | 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 = 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, |
| | | 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), |
| | | ReturnableReceivedQty = Convert.ToDecimal(s.Fcheckretqty), |
| | | ReturnableStoredQty = Convert.ToDecimal(s.Fstockretqty), |
| | | SourceDocumentType = s.FSrcBillTypeId, |
| | | SourceDocumentId = s.FSrcBillNo, |
| | | DemandTrackingId = s.FReqTraceNo, |
| | |
| | | DemandOrg = s.FRequireOrgId, |
| | | Receiving = s.FReceiveOrgId, |
| | | ReceivingOrg = s.FReceiveOrgId, |
| | | Settlement = s.FEntrySettleOrgId, |
| | | SettlementOrg = s.FEntrySettleOrgId, |
| | | Settlement = s.Fsettleorgid, |
| | | SettlementOrg = s.Fsettleorgid, |
| | | DemandDept = s.FRequireDeptId, |
| | | ReceivingDept = s.FReceiveDeptId |
| | | }; |
| | | |
| | | var single = rohInDataManager.GetSingle(it => |
| | | it.EbelnK3id == entity.EbelnK3id); |
| | | if (single != null) entity.Id = single.Id; |
| | | var single = rohInDataManager.GetSingle(it =>it.EbelnK3id == entity.EbelnK3id); |
| | | if (single != null) |
| | | { |
| | | entity.Id = single.Id; |
| | | } |
| | | |
| | | return entity; |
| | | }).ToList(); |