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/QC/SJService.cs | 83 +++++++++++++++++++++++++++++++---------- 1 files changed, 62 insertions(+), 21 deletions(-) diff --git a/MES.Service/service/QC/SJService.cs b/MES.Service/service/QC/SJService.cs index f853ea4..4e6384f 100644 --- a/MES.Service/service/QC/SJService.cs +++ b/MES.Service/service/QC/SJService.cs @@ -6,6 +6,8 @@ using SqlSugar; using System.Net; using System.Xml.Linq; +using System.Data; +using System.Data.Common; namespace MES.Service.service.QC; @@ -439,7 +441,6 @@ var count = db.Queryable<QsItemIpiItemDetail>() .Where(s => s.Pid == detail.Pid).Count(); - var result = 0; if (qsItemIpiItem.LevelNum != count) return 0; @@ -460,7 +461,6 @@ return commit; }); - //鑷姩鍒ゅ畾鏄惁鍚堟牸 //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩悊璁轰釜鏁� var sum = db.Queryable<QsItemIpiItem>() @@ -476,30 +476,71 @@ //瀹為檯涓暟绛変簬鐞嗚涓暟鏃跺妫�楠屽崟杩涜鍒ゅ畾 if (sum == icount) { - result = 0; - - //鑾峰彇杩欎釜妫�楠屽崟涓嬬殑鎵�鏈夊悎鏍肩殑妫�楠岀粨鏋� - passCount = db.Queryable<QsItemIpiItemDetail>() - .Where(s => s.Gid == detail.Gid && s.Fstand == "鈭�").Count(); - - //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸 - if (icount == passCount) result = 1; - - useTransactionWithOracle += SqlSugarHelper.UseTransactionWithOracle( - db => - { - return db.Updateable<QsItemIpiReq>() - .SetColumns(s => s.IsPass == result) - .SetColumns(s => s.StatusUser == detail.CreateBy) - .SetColumns(s => s.CompleteTime == DateTime.Now) - .Where(s => s.Id == detail.Gid) - .ExecuteCommand(); - }); + // 璋冪敤瀛樺偍杩囩▼杩涜鑷姩鍒ゅ畾鍜屾彁浜� + CallSJAutoResultStoredProcedure(detail.Gid, detail.CreateBy); } return useTransactionWithOracle; } + /// <summary> + /// 璋冪敤棣栨鑷姩鍒ゅ畾鍜屾彁浜ゅ瓨鍌ㄨ繃绋� + /// </summary> + /// <param name="gid">棣栨涓昏〃ID</param> + /// <param name="createBy">鎿嶄綔浜�</param> + private void CallSJAutoResultStoredProcedure(decimal? gid, string createBy) + { + try + { + var db = SqlSugarHelper.GetInstance(); + + // 鑾峰彇棣栨鍗曚俊鎭� + var sjInfo = db.Queryable<QsItemIpiReq>() + .Where(s => s.Id == gid) + .First(); + + if (sjInfo == null) return; + + // 瀹氫箟杈撳嚭鍙傛暟 + var outputResult = new SugarParameter("o_Result", null, + System.Data.DbType.Int32, ParameterDirection.Output, 4000); + + var outputMessage = new SugarParameter("o_Msg", null, + System.Data.DbType.String, ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("p_Gid", gid, System.Data.DbType.Decimal, ParameterDirection.Input), + new("p_Bill_No", sjInfo.BillNo, System.Data.DbType.String, ParameterDirection.Input), + new("p_User", createBy, System.Data.DbType.String, ParameterDirection.Input), + outputResult, + outputMessage + }; + + // 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_MES_SJ_AUTO_RESULT(:p_Gid, :p_Bill_No, :p_User, :o_Result, :o_Msg); END;", + parameters.ToArray()); + + // 鑾峰彇杈撳嚭鍙傛暟鐨勫�� + var resultValue = outputResult.Value?.ToString(); + var messageValue = outputMessage.Value?.ToString(); + + if ("1".Equals(resultValue)) + { + throw new Exception($"棣栨鑷姩鍒ゅ畾澶辫触: {messageValue}"); + } + } + catch (Exception ex) + { + // 璁板綍鏃ュ織浣嗕笉褰卞搷涓绘祦绋� + Console.WriteLine($"棣栨鑷姩鍒ゅ畾瀛樺偍杩囩▼璋冪敤澶辫触: {ex.Message}"); + // 鍙互鏍规嵁闇�瑕佸喅瀹氭槸鍚︽姏鍑哄紓甯� + // throw new Exception($"棣栨鑷姩鍒ゅ畾澶辫触: {ex.Message}"); + } + } + public int UpdateQSItemDetail(QsItemIpiItemDetail detail) { var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => -- Gitblit v1.9.3