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