From a4ae3bf5f1826e8e29a95da3dc2c947d713d4ebb Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 06 六月 2025 15:38:14 +0800 Subject: [PATCH] 1.仓库信息储存逻辑调整 2.生产订单接口优化。 --- MES.Service/service/WomcaaManager.cs | 206 +++++++++++++++++++++++++++++---------------------- 1 files changed, 116 insertions(+), 90 deletions(-) diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs index 56e8138..c5bc955 100644 --- a/MES.Service/service/WomcaaManager.cs +++ b/MES.Service/service/WomcaaManager.cs @@ -1,6 +1,7 @@ 锘縰sing MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; +using MES.Service.util; using SqlSugar; namespace MES.Service.service; @@ -22,7 +23,8 @@ public bool Save(ErpWOM wom) { var womErpCaa = wom.ErpCaa; - var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); + + var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo); var mesWomcabs = MapErpCABtoWomcab(wom.ErpCabs); @@ -49,14 +51,23 @@ private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs) { - if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id); + if (StringUtil.CheckGuid(mesWomcaa.Guid)) + base.DeleteById(mesWomcaa.Guid); + if (mesWomcabs.Count > 0) db.Deleteable<Womcab>() - .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); + .Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand(); - var orUpdate = base.Insert(mesWomcaa); - var baOrUpdate = _womcabManager.InsertRange(mesWomcabs); + //鍗曟潯鎻掑叆蹇界暐绌哄瓧娈� + 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("鎻掑叆鎴栨洿鏂板け璐�"); } @@ -64,8 +75,8 @@ 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 decimals = mesWomcabs.Select(s => s.Guid).ToArray(); + var update = base.DeleteById(mesWomcaa.Guid); var insertOrUpdate = db .Deleteable<Womcab>().In(decimals) .ExecuteCommand() > 0; @@ -74,67 +85,75 @@ throw new NotImplementedException("鏇存柊澶辫触"); } - private Womcaa MapErpCAAtoWomcaa(ErpCAA dto) + private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string PPBOMNO) { var entity = new Womcaa { - Erpid = Convert.ToDecimal(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, + Erpid = Convert.ToInt32(dto.Id), /// ERPID + Caa001 = PPBOMNO, /// 鍗曞彿 + 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, + : null, /// 鏁伴噺 + WorkGroupId = dto.FWorkGroupId, /// 璁″垝缁� + PlanId = dto.FPlannerID, /// 璁″垝鍛� + Caa010 = dto.FPlanStartDate, /// 棰勮寮�宸ユ椂闂� + Caa011 = dto.FPlanFinishDate, /// 棰勮瀹屽伐鏃堕棿 + Caa005 = DateTime.TryParse(dto.FConveyDate, out var conveyDate) + ? (conveyDate <= new DateTime(1900, 1, 1) ? null : conveyDate.ToString()) + : null, /// 寮�鍗曟棩鏈� + StockInlimith = dto.FStockInLimitH, /// 鍏ュ簱涓婇檺 + StockInlimitl = dto.FStockInLimitL, /// 鍏ュ簱涓嬮檺 + Mtono = dto.FMTONO, /// 璁″垝璺熻釜鍙� + Lot = dto.FLot, /// 鎵瑰彿 + Caa013 = dto.FBomId, /// BOM鐗堟 - CreateType = dto.FCreateType, - 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, + CreateType = dto.FCreateType, /// 鐢熸垚鏂瑰紡 + 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, /// 澶囨敞 Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID) - ? Convert.ToDecimal(dto.PLAN_ID) - : null, + ? Convert.ToInt32(dto.PLAN_ID) + : null, /// ERP婧愬崟ID Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ) - ? Convert.ToDecimal(dto.PLAN_SEQ) - : null, - Caa020 = dto.PLAN_NUM, - Caa015 = dto.F_UNW_Text_xsddh, - EerSczz = dto.erP_SCZZ, - EerWtzz = dto.erP_WTZZ, - Caa015Head = dto.F_XIFG_Integer_tzk, - MainProductNo = dto.F_XIFG_Base_w5c, - MainProductQty = dto.F_XIFG_Qty_yrr, - CustomerItemNumber = dto.F_XIFG_Text_fg2, - PackingListNumber = dto.F_XIFG_Text_yrr, - CustomerName = dto.F_XIFG_Text_qtr1, - Customer = dto.F_XIFG_Base_83g1 + ? Convert.ToInt32(dto.PLAN_SEQ) + : null, /// ERP婧愬崟琛屽彿 + Caa020 = dto.PLAN_NUM, /// ERP婧愬崟鍗曞彿(浠诲姟鍗曞彿) + //Caa015 = dto.F_UNW_Text_xsddh, /// 閿�鍞鍗曞彿 + ErpSczz = Convert.ToInt32(dto.FPrdOrgId), /// 鐢熶骇缁勭粐ID + ErpWtzz = Convert.ToInt32(dto.FEnTrustOrgId), /// 濮旀墭缁勭粐ID + Btbz = dto.Btbz, /// 濮旀墭缁勭粐ID + //Caa015Head = dto.F_XIFG_Integer_tzk, /// 閿�鍞鍗曡鍙� + //MainProductNo = dto.F_XIFG_Base_w5c, /// 涓讳骇鍝佺紪鐮� + // MainProductQty = + // Convert.ToInt32(dto.F_XIFG_Qty_yrr), /// 涓讳骇鍝佺敓浜ф暟閲� + // CustomerItemNumber = dto.F_XIFG_Text_fg2, /// 瀹㈡埛璐у彿 + // PackingListNumber = dto.F_XIFG_Text_yrr, /// 鍖呰鍗曞彿 + // CustomerName = dto.F_XIFG_Text_qtr1, /// 瀹㈡埛鍚嶇О + // Customer = dto.F_XIFG_Base_83g1, /// 瀹㈡埛 + Caa0111 = dto.FPlanFinishDate, /// 棰勮瀹屽伐鏃堕棿澶囦唤 + Typea = dto.TypeA, /// 棰勮瀹屽伐鏃堕棿澶囦唤 + //Typeb = dto.TypeB /// 棰勮瀹屽伐鏃堕棿澶囦唤 + SynchronousDate = DateTime.Now }; var single = base.GetSingle(it => it.Erpid == entity.Erpid); - if (single != null) entity.Id = single.Id; + if (single != null) entity.Guid = single.Guid; return entity; } @@ -147,49 +166,56 @@ { var womcab = new Womcab { - Erpid = Convert.ToDecimal(dto.FENTRYID), - Cab001 = dto.FBillNo, - Cab002 = dto.FSeq, - Cab003 = dto.FMaterialID, + Erpid = Convert.ToInt32(dto.Id), /// ERPID + Cab001 = dto.FBillNo, /// 宸ュ崟鍗曞彿 + Cab002 = Convert.ToInt32(dto.FSeq), /// 搴忓彿 + Cab003 = dto.FMaterialID, /// 鏉愭枡缂栫爜 Cab006 = !string.IsNullOrEmpty(dto.FNeedQty) ? Convert.ToDecimal(dto.FNeedQty) - : null, + : 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, - Cab008 = dto.F_UNW_Text_tpgy, - Cab009 = dto.FUnitID, - SupplyType = dto.FSupplyType, + : 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, /// 鍙戞枡鏂瑰紡 + // Cab008 = dto.F_UNW_Text_tpgy, /// 宸ヨ壓 + Cab009 = dto.FUnitID, /// 鍗曚綅 + SupplyType = dto.FSupplyType, /// 渚涘簲绫诲瀷(C閲囪喘 Z鑷埗 W濮斿) Cab012 = !string.IsNullOrEmpty(dto.FStdQty) ? Convert.ToDecimal(dto.FStdQty) - : null, - Cab014 = dto.FIsKeyItem, - Numerator = dto.FNumerator, - Denominator = dto.FDenominator, - Eid = Convert.ToDecimal(dto.FID), - - Scrapqty = dto.FFixScrapQty, - Scraprate = dto.FScrapRate, - Fsaleorderno = dto.FSALEORDERNO, - - CustomerItemNumber = dto.F_XIFG_Text_re5, - PackingListNumber = dto.F_XIFG_Text_apv, - MainProduct = dto.F_XIFG_Base_re5, - MainProductQty = Convert.ToDecimal(dto.F_XIFG_Qty_apv), - ParentItemName = dto.F_XIFG_Base_apv + : null, /// 缁勬垚鐢ㄩ噺 + Cab014 = dto.FIsKeyItem, /// 鏄惁鏇挎枡 + Numerator = dto.FNumerator, /// 鍒嗗瓙 + Denominator = dto.FDenominator, /// 鍒嗘瘝 + Pid = Convert.ToInt32(dto.PID), /// ERP澶碔D + Eid = Convert.ToInt32(dto.Id), /// ERP ID + + Scrapqty = dto.FFixScrapQty, /// 鍥哄畾鎹熻�� + Scraprate = dto.FScrapRate, /// 鍙樺姩鎹熻�楃巼 + Freplacegroup = Convert.ToInt32(dto.FReplaceGroup), + UseRate = Convert.ToDecimal(dto.FUseRate), + MaterialType = dto.FMaterialType, + MustQty = Convert.ToDecimal(dto.FMustQty), + Typeb = dto.TypeB + // Fsaleorderno = dto.FSALEORDERNO, /// 閿�鍞鍗� + // + // CustomerItemNumber = dto.F_XIFG_Text_re5, /// 瀹㈡埛璐у彿 + // PackingListNumber = dto.F_XIFG_Text_apv, /// 鍖呰鍗曞彿 + // MainProduct = dto.F_XIFG_Base_re5, /// 涓讳骇鍝� + // MainProductQty = + // Convert.ToInt32(dto.F_XIFG_Qty_apv), /// 涓讳骇鍝佹暟閲� + // ParentItemName = dto.F_XIFG_Base_apv /// 鐖堕」鐗╂枡鍚嶇О }; var entity = Db.Queryable<Womcab>() - .Where(s => s.Erpid == womcab.Erpid).Single(); - if (entity != null) womcab.Id = entity.Id; + .Where(s => s.Eid == womcab.Eid).Single(); + if (entity != null) womcab.Guid = entity.Guid; womcabList.Add(womcab); } -- Gitblit v1.9.3