From fba48d2d676cd9b6d493163aef9d87f6e5090aee Mon Sep 17 00:00:00 2001 From: 如洲 陈 <1278080563@qq.com> Date: 星期五, 12 九月 2025 19:02:00 +0800 Subject: [PATCH] 出库检和退货检验 --- MES.Service/service/Warehouse/MesReturnwareManager.cs | 122 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 110 insertions(+), 12 deletions(-) diff --git a/MES.Service/service/Warehouse/MesReturnwareManager.cs b/MES.Service/service/Warehouse/MesReturnwareManager.cs index c83afa9..7bb85c8 100644 --- a/MES.Service/service/Warehouse/MesReturnwareManager.cs +++ b/MES.Service/service/Warehouse/MesReturnwareManager.cs @@ -4,6 +4,7 @@ using MES.Service.DB; using MES.Service.Modes; using MES.Service.Dto.webApi; +using System.Data; namespace MES.Service.service { @@ -92,7 +93,12 @@ var orUpdate = base.Insert(mesReturnware); var baOrUpdate = ReturnwareDetailsManager.InsertRange(mesReturnwareDetails); - if (orUpdate && baOrUpdate) return true; + if (orUpdate && baOrUpdate) + { + // 淇濆瓨鎴愬姛鍚庯紝璋冪敤瀛樺偍杩囩▼鐢熸垚妫�楠屽崟 + GenerateInspectionOrder(db, mesReturnware, mesReturnwareDetails); + return true; + } throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); @@ -117,7 +123,12 @@ var insertOrUpdate = db.Deleteable<MesReturnwareDetails>().Where(it => mesReturnwareDetail.Any(p => p.ReturnwareNo == it.ReturnNo && p.ReturnwareType == it.ReturnType)).ExecuteCommand() > 0; - if (update && insertOrUpdate) return true; + if (update && insertOrUpdate) + { + // 鏇存柊鎴愬姛鍚庯紝璋冪敤瀛樺偍杩囩▼鐢熸垚妫�楠屽崟 + GenerateInspectionOrder(db, mesReturnware, mesReturnwareDetails); + return true; + } throw new NotImplementedException("鏇存柊澶辫触"); } @@ -187,27 +198,114 @@ public bool Delete(YFDelete data) { - - return UseTransaction(db => { - var update = db.Deleteable<MesReturnware>() - .Where(it => it.ReturnNo == data.FBillNo && - it.ReturnType == data.FBillTypeID) - .ExecuteCommand() > 0; - - var insertOrUpdate = db.Deleteable<MesReturnwareDetails>() + // 鍏堝垹闄ら��璐ч�氱煡鍗曟槑缁� + var detailsDeleted = db.Deleteable<MesReturnwareDetails>() .Where(it => it.ReturnNo == data.FBillNo && it.ReturnType == data.FBillTypeID) .ExecuteCommand() > 0; + // 鍐嶅垹闄ら��璐ч�氱煡鍗曚富琛� + var mainDeleted = db.Deleteable<MesReturnware>() + .Where(it => it.ReturnNo == data.FBillNo && + it.ReturnType == data.FBillTypeID) + .ExecuteCommand() > 0; - - if (update && insertOrUpdate) return 1; + if (detailsDeleted && mainDeleted) + { + // 鍒犻櫎鎴愬姛鍚庯紝璋冪敤瀛樺偍杩囩▼鍒犻櫎瀵瑰簲鐨勬楠屽崟 + DeleteInspectionOrder(db, data.FBillTypeID, data.FBillNo); + return 1; + } + throw new NotImplementedException("鍒犻櫎澶辫触"); }) > 0; + } + /// <summary> + /// 璋冪敤瀛樺偍杩囩▼鐢熸垚妫�楠屽崟 + /// </summary> + /// <param name="mesReturnware">閫�璐ч�氱煡鍗曚富琛�</param> + /// <param name="mesReturnwareDetails">閫�璐ч�氱煡鍗曟槑缁嗚〃</param> + private void GenerateInspectionOrder(SqlSugarScope db, MesReturnware mesReturnware, List<MesReturnwareDetails> mesReturnwareDetails) + { + try + { + // 瀹氫箟杈撳叆鍙傛暟 + var inputParam1 = new SugarParameter("P_RETURN_TYPE", mesReturnware.ReturnType ?? ""); + var inputParam2 = new SugarParameter("P_RETURN_NO", mesReturnware.ReturnNo ?? ""); + + // 瀹氫箟杈撳嚭鍙傛暟 + var outParam1 = new SugarParameter("P_RESULT", null, true); + var outParam2 = new SugarParameter("P_MESSAGE", null, true); + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand("BEGIN SP_GEN_RETURN_INSP(:P_RETURN_TYPE,:P_RETURN_NO,:P_RESULT,:P_MESSAGE); END;", + inputParam1, inputParam2, outParam1, outParam2); + + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + int result = int.Parse((string)outParam1.Value); + string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; + + if (result != 1) + { + // 璁板綍璀﹀憡鏃ュ織锛屼絾涓嶅奖鍝嶉��璐ч�氱煡鍗曠殑淇濆瓨 + Console.WriteLine($"鐢熸垚妫�楠屽崟璀﹀憡: {message}"); + } + else + { + Console.WriteLine($"鐢熸垚妫�楠屽崟鎴愬姛: {message}"); + } + } + catch (Exception ex) + { + // 璁板綍閿欒鏃ュ織锛屼絾涓嶅奖鍝嶉��璐ч�氱煡鍗曠殑淇濆瓨 + Console.WriteLine($"鐢熸垚妫�楠屽崟鏃跺彂鐢熼敊璇�: {ex.Message}"); + } + } + + /// <summary> + /// 璋冪敤瀛樺偍杩囩▼鍒犻櫎妫�楠屽崟 + /// </summary> + /// <param name="db">鏁版嵁搴撹繛鎺�</param> + /// <param name="returnType">閫�璐у崟鍒�</param> + /// <param name="returnNo">閫�璐у崟鍙�</param> + private void DeleteInspectionOrder(SqlSugarScope db, string returnType, string returnNo) + { + try + { + // 瀹氫箟杈撳叆鍙傛暟 + var inputParam1 = new SugarParameter("P_RETURN_TYPE", returnType ?? ""); + var inputParam2 = new SugarParameter("P_RETURN_NO", returnNo ?? ""); + + // 瀹氫箟杈撳嚭鍙傛暟 + var outParam1 = new SugarParameter("P_RESULT", null, true); + var outParam2 = new SugarParameter("P_MESSAGE", null, true); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand("BEGIN SP_DEL_RETURN_INSP(:P_RETURN_TYPE,:P_RETURN_NO,:P_RESULT,:P_MESSAGE); END;", + inputParam1, inputParam2, outParam1, outParam2); + + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + int result = int.Parse((string)outParam1.Value); + string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; + + if (result != 1) + { + // 璁板綍璀﹀憡鏃ュ織锛屼絾涓嶅奖鍝嶉��璐ч�氱煡鍗曠殑鍒犻櫎 + Console.WriteLine($"鍒犻櫎妫�楠屽崟璀﹀憡: {message}"); + } + else + { + Console.WriteLine($"鍒犻櫎妫�楠屽崟鎴愬姛: {message}"); + } + } + catch (Exception ex) + { + // 璁板綍閿欒鏃ュ織锛屼絾涓嶅奖鍝嶉��璐ч�氱煡鍗曠殑鍒犻櫎 + Console.WriteLine($"鍒犻櫎妫�楠屽崟鏃跺彂鐢熼敊璇�: {ex.Message}"); + } } -- Gitblit v1.9.3