From 26fadad29b5de7846ebf5ec043f39a7d5e0448bb Mon Sep 17 00:00:00 2001 From: zjh <2207896513@qq.com> Date: 星期二, 13 五月 2025 13:53:02 +0800 Subject: [PATCH] 查询来料检验单所有不良描述信息接口上传 --- StandardPda/MES.Service/service/WomcaaManager.cs | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 230 insertions(+), 0 deletions(-) diff --git a/StandardPda/MES.Service/service/WomcaaManager.cs b/StandardPda/MES.Service/service/WomcaaManager.cs new file mode 100644 index 0000000..3100366 --- /dev/null +++ b/StandardPda/MES.Service/service/WomcaaManager.cs @@ -0,0 +1,230 @@ +锘縰sing 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("鐖秈d涓嶅厑璁镐负绌�"), + Eid = !string.IsNullOrEmpty(dto.FID) + ? Convert.ToDecimal(dto.FID) + : throw new Exception("鐖秈d涓嶅厑璁镐负绌�"), + 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; + } +} \ No newline at end of file -- Gitblit v1.9.3