| | |
| | | { |
| | | 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 update = db.Deleteable<MesRohIn>() |
| | | .Where(a => a.Id == mesRohIn.Id) |
| | | .ExecuteCommand() > 0; |
| | | |
| | | var insertOrUpdate = db |
| | | .Deleteable<MesRohInData>().In(decimals) |
| | | .Deleteable<MesRohInData>() |
| | | .Where(s => decimals.Contains(s.Id)) |
| | | .ExecuteCommand() > 0; |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, |
| | | List<MesRohInData> mesRohInDatas) |
| | | { |
| | | if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); |
| | | if (mesRohIn.Id != null) |
| | | db.Deleteable<MesRohIn>().Where(s => s.Id == mesRohIn.Id) |
| | | .ExecuteCommand(); |
| | | |
| | | if (mesRohInDatas.Count > 0) |
| | | db.Deleteable<MesRohInData>() |
| | |
| | | } |
| | | |
| | | // 将 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); |
| | |
| | | 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; |
| | | |
| | |
| | | |
| | | 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; |
| | | |
| | | |
| | | return mesRohIn; |
| | | } |
| | | |
| | | // 将 ErpRohinData 对象转换为 MesRohInData 对象的方法 |
| | | public List<MesRohInData> GetMesRohInDatas( |
| | | List<ErpRohinData> erpRohinDatas, string type) |
| | | private List<MesRohInData> GetMesRohInDatas( |
| | | List<ErpRohinData> erpRohinDatas) |
| | | { |
| | | return erpRohinDatas.Select(s => |
| | | { |
| | | var entity = new MesRohInData |
| | | { |
| | | EbelnK3id = Convert.ToDecimal(s.id), |
| | | 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) |
| | |
| | | "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, |
| | |
| | | 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 |
| | | }; |
| | | |
| | | var single = rohInDataManager.GetSingle(it => |