¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service; |
| | | |
| | | public class WomcaaManager : Repository<Womcaa> |
| | | { |
| | | private readonly WomcabManager _womcabManager = new(); |
| | | |
| | | public bool SaveList(List<ErpWOM> rohIns) |
| | | { |
| | | var result = rohIns.Select(Save).ToList(); |
| | | return result.All(b => b); |
| | | } |
| | | |
| | | public bool Save(ErpWOM wom) |
| | | { |
| | | var womErpCaa = wom.ErpCaa; |
| | | var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); |
| | | var mesWomcabs = |
| | | MapErpCABtoWomcab(wom.ErpCabs); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | | switch (womErpCaa.Type) |
| | | { |
| | | case "3": |
| | | return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; |
| | | case "2": |
| | | case "4": |
| | | case "5": |
| | | return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) |
| | | ? 1 |
| | | : 0; |
| | | default: |
| | | throw new NotImplementedException( |
| | | $"typeç±»å为{womErpCaa.Type}çä¸åå¨"); |
| | | } |
| | | }) > 0; |
| | | } |
| | | |
| | | private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | { |
| | | if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id); |
| | | |
| | | if (mesWomcabs.Count > 0) |
| | | db.Deleteable<Womcab>() |
| | | .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); |
| | | |
| | | var orUpdate = db.Insertable(mesWomcaa) |
| | | .IgnoreColumns(true).ExecuteCommand() > 0; |
| | | |
| | | var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand() > 0; |
| | | |
| | | if (orUpdate && baOrUpdate) return true; |
| | | throw new NotImplementedException("æ´æ°å¤±è´¥"); |
| | | } |
| | | |
| | | private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, |
| | | List<Womcab> mesWomcabs) |
| | | { |
| | | var decimals = mesWomcabs.Select(s => s.Id).ToArray(); |
| | | var update = base.DeleteById(mesWomcaa.Id); |
| | | var insertOrUpdate = db |
| | | .Deleteable<Womcab>().In(decimals) |
| | | .ExecuteCommand() > 0; |
| | | |
| | | if (update && insertOrUpdate) return true; |
| | | throw new NotImplementedException("æ´æ°å¤±è´¥"); |
| | | } |
| | | |
| | | private Womcaa MapErpCAAtoWomcaa(ErpCAA dto) |
| | | { |
| | | var entity = new Womcaa |
| | | { |
| | | Erpid = Convert.ToInt64(dto.Id), |
| | | Caa001 = dto.FBillNo, |
| | | Caa021 = dto.FWorkShopID, |
| | | RoutingId = dto.FRoutingId, |
| | | WorkShopId = dto.FREMWorkShopId, |
| | | DepotCode = dto.FStockId, |
| | | CreateDate = dto.FDate, |
| | | Caa004 = dto.FBillType, |
| | | Caa023 = dto.FStatus, |
| | | Caa006 = dto.FMaterialId, |
| | | Caa009 = dto.FUnitId, |
| | | Caa012 = !string.IsNullOrEmpty(dto.FQty) |
| | | ? Convert.ToDecimal(dto.FQty) |
| | | : null, |
| | | WorkGroupId = dto.FWorkGroupId, |
| | | PlanId = dto.FPlannerID, |
| | | Caa010 = dto.FPlanStartDate, |
| | | Caa011 = dto.FPlanFinishDate, |
| | | Caa005 = dto.FConveyDate, |
| | | StockInlimith = dto.FStockInLimitH, |
| | | StockInlimitl = dto.FStockInLimitL, |
| | | Mtono = dto.FMTONO, |
| | | Lot = dto.FLot, |
| | | Caa013 = dto.FBomId, |
| | | |
| | | CreateType = dto.FCreateType, |
| | | Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID) |
| | | ? Convert.ToInt64(dto.PLAN_ID) |
| | | : null, |
| | | Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ) |
| | | ? Convert.ToInt64(dto.PLAN_SEQ) |
| | | : null, |
| | | Caa020 = dto.PLAN_NUM, |
| | | SrcBillType = dto.FSrcBillType, |
| | | SrcBillNo = dto.FSrcBillNo, |
| | | SrcBillentryseq = dto.FSrcBillEntrySeq, |
| | | SaleOrderNo = dto.FSaleOrderNo, |
| | | SaleOrderEntryseq = dto.FSaleOrderEntrySeq, |
| | | ForceCloserid = dto.FForceCloserId, |
| | | CloseType = dto.FCloseType, |
| | | SrcSplitBillno = dto.FSrcSplitBillNo, |
| | | Caa016 = dto.FDescription, |
| | | //BTBZ = dto.BTBZ, |
| | | PrdOrg = dto.FPrdOrgId, |
| | | TrustOrg = dto.FEnTrustOrgId |
| | | //Typea = dto.TypeA |
| | | }; |
| | | |
| | | |
| | | var single = base.GetSingle(it => it.Erpid == entity.Erpid); |
| | | if (single != null) entity.Id = single.Id; |
| | | |
| | | //Caa006 = dto.FMaterialId, |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == dto.FMaterialId |
| | | && x.OrgId == dto.FPrdOrgId |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | |
| | | if (mesLinkU9 != null) entity.Caa006 = mesLinkU9.MesId; |
| | | |
| | | return entity; |
| | | } |
| | | |
| | | private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList) |
| | | { |
| | | var womcabList = new List<Womcab>(); |
| | | |
| | | foreach (var dto in dtoList) |
| | | { |
| | | var womcab = new Womcab |
| | | { |
| | | Erpid = !string.IsNullOrEmpty(dto.ID) |
| | | ? Convert.ToDecimal(dto.ID) |
| | | : throw new Exception("å表idä¸å
许为空"), |
| | | Cab001 = dto.FBillNo, |
| | | Cab002 = dto.FSeq, |
| | | Cab003 = dto.FMaterialID, |
| | | Cab006 = !string.IsNullOrEmpty(dto.FNeedQty) |
| | | ? Convert.ToDecimal(dto.FNeedQty) |
| | | : null, |
| | | MustQty = !string.IsNullOrEmpty(dto.FMustQty) |
| | | ? Convert.ToDecimal(dto.FMustQty) |
| | | : null, |
| | | Cab007 = !string.IsNullOrEmpty(dto.FPickedQty) |
| | | ? Convert.ToDecimal(dto.FPickedQty) |
| | | : null, |
| | | PositionNo = dto.FPositionNO, |
| | | SupplyOrganization = dto.FChildSupplyOrgId, |
| | | IssuingOrganization = dto.FSupplyOrg, |
| | | OwnerId = dto.FOwnerID, |
| | | Mtono = dto.FMTONO, |
| | | Lot = dto.FLot, |
| | | DepotCode = dto.FStockID, |
| | | IssueType = dto.FIssueType, |
| | | Cab009 = dto.FUnitID, |
| | | SupplyType = dto.FSupplyType, |
| | | Cab012 = !string.IsNullOrEmpty(dto.FStdQty) |
| | | ? Convert.ToDecimal(dto.FStdQty) |
| | | : null, |
| | | FreplaceGroup = !string.IsNullOrEmpty(dto.FReplaceGroup) |
| | | ? Convert.ToInt64(dto.FReplaceGroup) |
| | | : null, |
| | | UseRate = !string.IsNullOrEmpty(dto.FUseRate) |
| | | ? Convert.ToDecimal(dto.FUseRate) |
| | | : null, |
| | | MaterialType = dto.FMaterialType, |
| | | Cab014 = !string.IsNullOrEmpty(dto.FIsKeyItem) |
| | | ? Convert.ToInt64(dto.FIsKeyItem) |
| | | : null, |
| | | Numerator = !string.IsNullOrEmpty(dto.FNumerator) |
| | | ? Convert.ToDecimal(dto.FNumerator) |
| | | : null, |
| | | Denominator = !string.IsNullOrEmpty(dto.FDenominator) |
| | | ? Convert.ToDecimal(dto.FDenominator) |
| | | : null, |
| | | Pid = !string.IsNullOrEmpty(dto.FID) |
| | | ? Convert.ToDecimal(dto.FID) |
| | | : throw new Exception("ç¶idä¸å
许为空"), |
| | | Eid = !string.IsNullOrEmpty(dto.FID) |
| | | ? Convert.ToDecimal(dto.FID) |
| | | : throw new Exception("ç¶idä¸å
许为空"), |
| | | Scrapqty = !string.IsNullOrEmpty(dto.FFixScrapQty) |
| | | ? Convert.ToDecimal(dto.FFixScrapQty) |
| | | : null, |
| | | Scraprate = !string.IsNullOrEmpty(dto.FScrapRate) |
| | | ? Convert.ToDecimal(dto.FScrapRate) |
| | | : null, |
| | | TypeB = dto.TypeB |
| | | // WR_F_XIFG_Base_qtr = dto.F_XIFG_Base_qtr, |
| | | // WR_F_XIFG_Base_83g = dto.F_XIFG_Base_83g |
| | | }; |
| | | |
| | | var entity = Db.Queryable<Womcab>() |
| | | .Where(s => s.Erpid == womcab.Erpid).Single(); |
| | | if (entity != null) womcab.Id = entity.Id; |
| | | |
| | | //Cab003 = dto.FMaterialID |
| | | var mesLinkU9 = Db.Queryable<MesLinkU9>() |
| | | .Where(x => x.U9Id == dto.FMaterialID |
| | | && x.OrgId == "1002011210000095" |
| | | && x.TableType == "MES_ITEMS").First(); |
| | | |
| | | if (mesLinkU9 != null) womcab.Cab003 = mesLinkU9.MesId; |
| | | |
| | | womcabList.Add(womcab); |
| | | } |
| | | |
| | | return womcabList; |
| | | } |
| | | } |