From 4e3503ad797d70b4c48a9cd2a13fa41273d6e1ce Mon Sep 17 00:00:00 2001 From: cnf <3200815559@qq.com> Date: 星期五, 13 六月 2025 10:32:16 +0800 Subject: [PATCH] RUKU --- MES.Service/service/WomcaaManager.cs | 203 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 146 insertions(+), 57 deletions(-) diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs index 3e98070..a697391 100644 --- a/MES.Service/service/WomcaaManager.cs +++ b/MES.Service/service/WomcaaManager.cs @@ -22,21 +22,21 @@ public bool Save(ErpWOM wom) { var womErpCaa = wom.ErpCaa; - var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa); - var mesWomcabs = - MapErpCABtoWomcab(wom.ErpCabs); + var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo); + var mesWomcabs =MapErpCABtoWomcab(wom.ErpCabs); return UseTransaction(db => { switch (womErpCaa.Type) { case "3": - return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; + return DeleteData(db, mesWomcaa, mesWomcabs) ? 1 : 0; + case "1": case "2": case "4": - return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) - ? 1 - : 0; + return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; + case "5": + return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0; default: throw new NotImplementedException( $"type娌℃湁{womErpCaa.Type}杩欎釜绫诲瀷"); @@ -44,62 +44,124 @@ }) > 0; } - private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa, - List<Womcab> mesWomcabs) + private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs) { - if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id); - + if (mesWomcaa.Id != null) + { + base.DeleteById(mesWomcaa.Id); + } if (mesWomcabs.Count > 0) - db.Deleteable<Womcab>() - .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); - + { + db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand(); + } var orUpdate = base.Insert(mesWomcaa); var baOrUpdate = _womcabManager.InsertRange(mesWomcabs); - if (orUpdate && baOrUpdate) return true; + db.Ado.CommitTran(); + if (orUpdate && baOrUpdate) { + //瀹氫箟杈撳叆鍙傛暟 + var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001); + // 瀹氫箟杈撳嚭鍙傛暟 + var outParam1 = new SugarParameter("c_Result", null, true); + var outParam2 = new SugarParameter("C_MSG", null, true); + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;", inputParam1, outParam1, outParam2); + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + int result = int.Parse((string)outParam1.Value); + string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; + if (result == 1) + { + //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊� + //db.Ado.RollbackTran(); + throw new Exception(message); + } + // 鎻愪氦浜嬪姟 + //db.Ado.CommitTran(); + return true; + } throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); } - private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, - List<Womcab> mesWomcabs) + 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 = base.Insert(mesWomcaa); + var baOrUpdate = _womcabManager.InsertRange(mesWomcabs); + db.Ado.CommitTran(); + if (orUpdate && baOrUpdate) + { + //瀹氫箟杈撳叆鍙傛暟 + var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001); + // 瀹氫箟杈撳嚭鍙傛暟 + var outParam1 = new SugarParameter("c_Result", null, true); + var outParam2 = new SugarParameter("C_MSG", null, true); + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;", inputParam1, outParam1, outParam2); + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + int result = int.Parse((string)outParam1.Value); + string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; + if (result == 1) + { + //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊� + //db.Ado.RollbackTran(); + throw new Exception(message); + } + // 鎻愪氦浜嬪姟 + //db.Ado.CommitTran(); + return true; + } + throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); + } + + private bool DeleteData(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; + var insertOrUpdate = db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0; if (update && insertOrUpdate) return true; throw new NotImplementedException("鏇存柊澶辫触"); } - private Womcaa MapErpCAAtoWomcaa(ErpCAA dto) + private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string FBillNo) { - return new Womcaa + var entity = new Womcaa { Erpid = Convert.ToDecimal(dto.Id), - Caa001 = dto.FBillNo, - WorkShopId = dto.FWorkShopID0, - RoutingId = dto.FRoutingId, - DepotCode = dto.FStockId, - CreateDate = dto.FDate, + Caa001 = FBillNo, Caa004 = dto.FBillType, - Caa023 = dto.FStatus, + Caa005 = dto.FConveyDate, 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, + Caa012 = Convert.ToDecimal(dto.FQty), + Caa013 = dto.FBomId, + Caa015 = dto.FSaleOrderNo, + Caa016 = dto.FDescription, + Caa017 = 0, + Caa018 = Convert.ToDecimal(dto.PLAN_ID), + Caa019 = dto.PLAN_SEQ, + Caa020 = dto.PLAN_NUM, + Caa021 = dto.FWorkShopID, + Fstatus = 0, + Caa022 = Convert.ToDecimal(dto.FQty), + Caa023 = dto.FStatus, + Caa024 = 0, + RoutingId = dto.FRoutingId, + WorkShopId = dto.FREMWorkShopId, + DepotCode = dto.FStockId, + CreateDate = dto.FDate, + WorkGroupId = dto.FWorkGroupId, + PlanId = dto.FPlannerID, StockInlimith = dto.FStockInLimitH, StockInlimitl = dto.FStockInLimitL, Mtono = dto.FMTONO, Lot = dto.FLot, - Caa013 = dto.FBomId, - Caa015 = dto.F_UNW_Text_xsddh, CreateType = dto.FCreateType, SrcBillType = dto.FSrcBillType, SrcBillNo = dto.FSrcBillNo, @@ -109,11 +171,29 @@ ForceCloserid = dto.FForceCloserId, CloseType = dto.FCloseType, SrcSplitBillno = dto.FSrcSplitBillNo, - Caa016 = dto.FMemoItem, - Caa018 = Convert.ToDecimal(dto.planId), - Caa019 = Convert.ToDecimal(dto.planSeq), - Caa020 = dto.planNum + PrdOrg=dto.FPrdOrgId, + TrustOrg=dto.FEnTrustOrgId, + TbTime=DateTime.Now, + JaBs = "0", + F_WWC_BASEPROPERTY = dto.F_wwc_BaseProperty, + F_WWC_DATETIME = dto.F_WWC_DATETIME != null ? DateTime.ParseExact(dto.F_WWC_DATETIME, "yyyy-MM-dd HH:mm:ss", null) : null, + FGS = Convert.ToDecimal(dto.FGS), + F_WWC_DECIMAL = Convert.ToDecimal(dto.F_WWC_DECIMAL), + F_WWC_XB = dto.F_WWC_XB, + F_WWC_BASE = dto.F_WWC_BASE, + IsXg = 0 + }; + if (dto.FStatus == "6" || dto.FStatus == "7") + { + entity.JaBs = "1"; + entity.JaTime = DateTime.Now; + } + + var single = base.GetSingle(it => it.Erpid == entity.Erpid); + if (single != null) entity.Id = single.Id; + + return entity; } private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList) @@ -124,33 +204,42 @@ { var womcab = new Womcab { - Erpid = Convert.ToDecimal(dto.ID), + Erpid = Convert.ToDecimal(dto.Id), Cab001 = dto.FBillNo, - Cab003 = dto.FMaterialID2, - Cab006 = !string.IsNullOrEmpty(dto.FNeedQty2) - ? Convert.ToDecimal(dto.FNeedQty2) - : null, - Cab007 = !string.IsNullOrEmpty(dto.FPickedQty) - ? Convert.ToDecimal(dto.FPickedQty) - : null, + Cab002 = dto.FSeq, + Cab003 = dto.FMaterialID, + Cab006 = Convert.ToDecimal(dto.FMustQty), + Cab007 = Convert.ToDecimal(dto.FPickedQty), + Cab009 = dto.FUnitID, + Cab012 = Convert.ToDecimal(dto.FStdQty), + Cab014 = dto.FIsKeyItem, + Pid = Convert.ToDecimal(dto.Pid), + Eid = Convert.ToDecimal(dto.Pid), PositionNo = dto.FPositionNO, + IssuingOrganization=dto.FSupplyOrg, + SupplyOrganization=dto.FChildSupplyOrgId, 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, - Cab012 = !string.IsNullOrEmpty(dto.FStdQty) - ? Convert.ToDecimal(dto.FStdQty) - : null, - Cab014 = dto.FIsKeyItem, - Numerator = dto.FNumerator, - Denominator = dto.FDenominator, - Eid = Convert.ToDecimal(dto.PID) + Numerator = Convert.ToDecimal(dto.FNumerator), + Denominator = Convert.ToDecimal(dto.FDenominator), + SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty), + SCRAPRATE = Convert.ToDecimal(dto.FScrapRate), + SalesOrder = dto.F_WWC_TEXT, + F_WWC_TEXT1 = dto.F_WWC_TEXT1, + F_WWC_DATE = dto.F_WWC_DATE != null ? DateTime.ParseExact(dto.F_WWC_DATE, "yyyy-MM-dd HH:mm:ss", null) : null, + F_WWC_BASEPROPERTY = dto.F_wwc_BaseProperty, + FUSERATE = dto.FUseRate, + FMATERIALTYPE = dto.FMaterialType }; + var entity = Db.Queryable<Womcab>() + .Where(s => s.Erpid == womcab.Erpid).Single(); + if (entity != null) womcab.Id = entity.Id; + womcabList.Add(womcab); } -- Gitblit v1.9.3