| | |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace MES.Service.service.BasicData; |
| | | |
| | |
| | | var mesRohInDatas = |
| | | GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type); |
| | | |
| | | var erpLineDetailsDB = GetErpLineDetailsDB(rohIn.ErpLineDetails, rohInErpRohIn.Type); |
| | | |
| | | |
| | | |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | | return rohInErpRohIn.Type switch |
| | | { |
| | | "2" or "4" or "5" => SaveOrUpdateData(db, mesRohIn, |
| | | mesRohInDatas) |
| | | mesRohInDatas, erpLineDetailsDB) |
| | | ? 1 |
| | | : 0, |
| | | "3" => DeleteData(db, mesRohIn, mesRohInDatas) ? 1 : 0, |
| | |
| | | |
| | | // 插入或更新数据的方法 |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, |
| | | List<MesRohInData> mesRohInDatas) |
| | | List<MesRohInData> mesRohInDatas, List<ErpLineDetailsDB> erpLineDetails) |
| | | { |
| | | if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); |
| | | |
| | | if (mesRohInDatas.Count > 0) |
| | | db.Deleteable<MesRohInData>() |
| | | .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand(); |
| | | |
| | | if (mesRohInDatas.Count > 0) |
| | | db.Deleteable<ErpLineDetailsDB>() |
| | | .Where(s => s.Eid == mesRohIn.EbelnK3id).ExecuteCommand(); |
| | | //var orUpdate = base.Insert(mesRohIn); |
| | | //var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas); |
| | | var orUpdate = db.Insertable(mesRohIn) |
| | |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand() > 0; |
| | | |
| | | var ba1OrUpdate = db.Insertable(erpLineDetails).PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand() > 0; |
| | | if (erpLineDetails==null ||erpLineDetails.Count==0) |
| | | { |
| | | ba1OrUpdate = true; |
| | | } |
| | | |
| | | if (orUpdate && baOrUpdate) return true; |
| | | if (orUpdate && baOrUpdate&& ba1OrUpdate) return true; |
| | | throw new NotImplementedException("插入或更新失败"); |
| | | } |
| | | |
| | |
| | | // 将 ErpRohIn 对象转换为 MesRohIn 对象的方法 |
| | | private MesRohIn GetMesRohIn(ErpRohIn rohIn) |
| | | { |
| | | var eid = Convert.ToDecimal(rohIn.id); |
| | | var eid = rohIn.id; |
| | | var mesRohIn = new MesRohIn(); |
| | | |
| | | var single = base.GetSingle(it => it.EbelnK3id == eid); |
| | | if (single != null) mesRohIn.Id = single.Id; |
| | | |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(s=>s.U9Id == rohIn.FSupplierId |
| | | && s.OrgId == rohIn.FReceiveOrgId |
| | | && s.TableType == "MES_SUPPLIER").First(); |
| | | .Where(s => s.U9Id == rohIn.FSupplierId |
| | | && s.OrgId == rohIn.FReceiveOrgId |
| | | && s.TableType == "MES_SUPPLIER").First(); |
| | | |
| | | if (mesLinkU9 != null) |
| | | { |
| | | mesRohIn.Supplier = mesLinkU9.MesId; |
| | | } |
| | | |
| | | if (mesLinkU9 != null) mesRohIn.Supplier = mesLinkU9.MesId; |
| | | |
| | | mesRohIn.EbelnK3id = eid; |
| | | mesRohIn.BillNo = rohIn.FBillNo; |
| | | mesRohIn.DocumentStatus = rohIn.FDocumentStatus; |
| | |
| | | if (rohIn.FDate != null) |
| | | mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate, |
| | | "yyyy-MM-dd HH:mm:ss", null); |
| | | |
| | | |
| | | mesRohIn.CloseStatus = rohIn.FCloseStatus; |
| | | mesRohIn.PurchaseOrg = rohIn.FPurchaseOrgId; |
| | | mesRohIn.PurchaseDept = rohIn.FPurchaseDeptId; |
| | |
| | | mesRohIn.ErpCheckBy = rohIn.FApproverId; |
| | | mesRohIn.ErpCheckDate = rohIn.FApproveDate; |
| | | mesRohIn.Changereason = rohIn.PubDescSeg2; |
| | | mesRohIn.ReceiveOrg = Convert.ToDecimal(rohIn.FReceiveOrgId); |
| | | mesRohIn.ReceiveOrg = rohIn.FReceiveOrgId; |
| | | mesRohIn.Remarks = rohIn.Remarks; |
| | | mesRohIn.CancellationStatus = rohIn.FCancelStatus; |
| | | |
| | | mesRohIn.SrcDocType = rohIn.FSrcDocType; |
| | | mesRohIn.SrcDoc = rohIn.FSrcDoc; |
| | | mesRohIn.TradePathName = rohIn.FTradePathName; |
| | |
| | | mesRohIn.Version = rohIn.FVersion; |
| | | |
| | | //作废的相关字段 |
| | | // mesRohIn.CancellationStatus = rohIn.FCancelStatus; |
| | | mesRohIn.CancellationStatus = rohIn.FCancelStatus; |
| | | // mesRohIn.CancellationPerson = rohIn.FCancellerId; |
| | | // |
| | | // if (rohIn.FCancelDate != null) |
| | |
| | | { |
| | | var entity = new MesRohInData |
| | | { |
| | | EbelnK3id = Convert.ToDecimal(s.id), |
| | | ErpId = Convert.ToDecimal(s.Eid), |
| | | EbelnK3id = s.id, |
| | | ErpId = s.Eid, |
| | | BillNo = s.FBillNo, |
| | | OrderLineId = s.FSeq, |
| | | BusinessFreeze = s.FStatus, |
| | | PurchaseOrderLineNumber = s.FSeq, |
| | | SalesOrderId = s.FDemandBillEntrySeq, |
| | | |
| | | |
| | | PurchaseUnit = s.FUnitId, |
| | | PurchaseQty = Convert.ToDecimal(s.FQty), |
| | | PricingUnit = s.FPriceUnitId, |
| | |
| | | DemandDocumentId = s.FDemandBillNo, |
| | | DemandDocumentLineId = s.FDemandBillEntrySeq, |
| | | RdProject = s.RdProject, |
| | | Project = s.Project, |
| | | ProjectPurchaser = s.ProjectPurchaser |
| | | }; |
| | | |
| | | if (s.FDeliveryDate != null) |
| | | entity.DeliveryDate = |
| | | DateTime.ParseExact(s.FDeliveryDate, |
| | | "yyyy-MM-dd HH:mm:ss", null); |
| | | |
| | | var single = rohInDataManager.GetSingle(it => |
| | | it.EbelnK3id == entity.EbelnK3id); |
| | | if (single != null) entity.Id = single.Id; |
| | | |
| | | |
| | | //ItemId = s.FMaterialId, |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(x=>x.U9Id == s.FMaterialId |
| | | && x.OrgId == s.FReceiveOrgId |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | .Where(x => x.U9Id == s.FMaterialId |
| | | && x.OrgId == s.FReceiveOrgId |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | |
| | | if (mesLinkU9 != null) |
| | | if (mesLinkU9 != null) entity.ItemId = mesLinkU9.MesId; |
| | | |
| | | |
| | | var mesLinkU92 = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == s.Project |
| | | && x.OrgId == s.FReceiveOrgId |
| | | && x.TableType == "MES_PROJECT").First(); |
| | | |
| | | if (mesLinkU92 != null) entity.Project = mesLinkU92.MesId; |
| | | |
| | | return entity; |
| | | }).ToList(); |
| | | } |
| | | |
| | | private List<ErpLineDetailsDB> GetErpLineDetailsDB( |
| | | List<ErpLineDetails> erpLineDetails, string type) |
| | | { |
| | | if (erpLineDetails ==null) |
| | | { |
| | | return null; |
| | | } |
| | | return erpLineDetails.Select(s => |
| | | { |
| | | var entity = new ErpLineDetailsDB |
| | | { |
| | | entity.ItemId = mesLinkU9.MesId; |
| | | } |
| | | Mid= s.Mid, |
| | | Eid = s.Eid, |
| | | FlineNo = s.FlineNo, |
| | | FMaterialId = s.FMaterialId, |
| | | ReqQty = s.ReqQty, |
| | | PlannedQty = s.PlannedQty, |
| | | SupplierConfirmsQty = s.SupplierConfirmsQty, |
| | | RequestDeliveryDate = s.RequestDeliveryDate, |
| | | ActualArrivalQty = s.ActualArrivalQty |
| | | |
| | | |
| | | }; |
| | | |
| | | //ItemId = s.FMaterialId, |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == s.FMaterialId |
| | | && x.OrgId == s.FMaterialId |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | |
| | | if (mesLinkU9 != null) entity.FMaterialId = mesLinkU9.MesId; |
| | | |
| | | |
| | | return entity; |
| | | }).ToList(); |