From 3da0e2b539be6f7c9f22ecdefaeca677008501ca Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期二, 13 五月 2025 08:48:25 +0800 Subject: [PATCH] MES->OA回写状态 --- service/QC/OaApi.cs | 99 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 90 insertions(+), 9 deletions(-) diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs index a126489..90891f4 100644 --- a/service/QC/OaApi.cs +++ b/service/QC/OaApi.cs @@ -2,6 +2,8 @@ using System; using System.Collections.Generic; using System.Dynamic; +using System.Data.SqlClient; +using System.Data; using System.IO; using System.Net.Http; using System.Security.Cryptography; @@ -34,7 +36,8 @@ public async Task<dynamic> SubmitIQCToOA(dynamic queryObj) { // 淇敼鍙傛暟楠岃瘉瀛楁鍚� - //if (queryObj.userId.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛id涓嶅厑璁镐负绌�"); + if (string.IsNullOrEmpty(queryObj.userId.ToString())) throw new Exception("鐢ㄦ埛id涓嶅厑璁镐负绌�"); + if (string.IsNullOrEmpty(queryObj.qcczdGuid.ToString())) throw new Exception("寮傚父澶勭疆鍗昳d涓嶈兘涓虹┖"); //if (queryObj.qcczdGuid.IsNullOrEmpty()) throw new Exception("寮傚父澶勭疆鍗昳d涓嶈兘涓虹┖"); // 鍘熷弬鏁板悕涓� qcczdGuid try @@ -63,13 +66,89 @@ // 5. 鍙戦�佽姹� var response = await PostFormAsync(WorkflowUrl, requestData); - return JObject.Parse(response); + + // 鏂板鏃ュ織璁板綍锛堝湪杩斿洖鍝嶅簲鍓嶏級 + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + using (var cmd = new SqlCommand("prc_log_create", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + SqlParameter[] logParams = + { + new("@edtUserGuid", SqlDbType.UniqueIdentifier) { Value = Guid.Parse(queryObj.userId.ToString()) }, + new("@abtGuid", SqlDbType.UniqueIdentifier) { Value = Guid.Parse(queryObj.qcczdGuid.ToString()) }, + new("@abtTable", SqlDbType.NVarChar, 40) { Value = "Mes_QC_Exceptional" }, + new("@detail", SqlDbType.NVarChar, 2500) { Value = "鎻愪氦IQC鍒癘A绯荤粺" }, + new("@hNo", SqlDbType.NVarChar, 100) { Value = "" }, + new("@SendJson", SqlDbType.NVarChar) { Value = JObject.FromObject(requestData).ToString() }, + new("@RtnJson", SqlDbType.NVarChar) { Value = response.Content.ToString() } + }; + + foreach (var param in logParams) + cmd.Parameters.Add(param); + + cmd.ExecuteNonQuery(); + } + catch (Exception logEx) + { + // 鏃ュ織璁板綍澶辫触涓嶄腑鏂富娴佺▼ + Console.WriteLine($"鏃ュ織璁板綍澶辫触: {logEx.Message}"); + } + finally + { + conn.Close(); + } + } + } + + var result = JObject.Parse(response.Content.ToString()); + + // 鏂板鐘舵�佹洿鏂帮紙褰揙A杩斿洖鎴愬姛鏃讹級 + if (result.code?.ToString() == "SUCCESS") + { + var updateSql = @"UPDATE Mes_QC_Exceptional +SET checkStatus = 1, + checkDate = GETDATE(), + checkBy = (select top 1 u.[ACCOUNT] from [dbo].[SYS_USER] u where u.guid = @edtUserCode) +WHERE GUID = @inOrderGuid"; + + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + using (var cmd = new SqlCommand(updateSql, conn)) + { + try + { + conn.Open(); + //cmd.Parameters.AddWithValue("@dt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + cmd.Parameters.AddWithValue("@edtUserCode", queryObj.userId?.ToString()); + cmd.Parameters.AddWithValue("@inOrderGuid", queryObj.qcczdGuid?.ToString()); + cmd.ExecuteNonQuery(); + } + catch (Exception updateEx) + { + Console.WriteLine($"鐘舵�佹洿鏂板け璐�: {updateEx.Message}"); + } + finally + { + conn.Close(); + } + } + } + } + + return result; // 鐩存帴瑙f瀽涓篔Object + } catch (Exception ex) { dynamic error = new ExpandoObject(); - error.Error = true; - error.Message = ex.Message; + error.code = "SYSTEM_INNER_ERROR"; // 鏂板鏍囧噯閿欒鐮� + error.errMsg = ex.Message; // 淇瀛楁鍚嶅尮閰嶈鑼� + error.data = new JObject(); + error.reqFailMsg = new JObject(); return error; } } @@ -112,7 +191,9 @@ C.item_name AS jzmcwlmc, D.supp_name AS khgys, B.bill_no AS dhdhmes, - A.remark AS bhgpqxms + (SELECT STRING_AGG(releaseNo+':' + mx.fng_desc+'\n', ',') AS OrderIDs +FROM [Mes_QC_Exceptional_Detail] mx where mx.pGuid=a.guid +) AS bhgpqxms FROM Mes_QC_Exceptional A LEFT JOIN MES_INV_ITEM_ARN B ON A.aboutGuid = b.guid LEFT JOIN MES_ITEMS C ON A.itemId = c.item_id @@ -157,7 +238,7 @@ 'http://192.168.1.145:81/upload/'+url_Path as url FROM [Mes_QC_Exceptional_Detail] A LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no -LEFT JOIN MES_FILE C ON C.parent_Guid = B.guid +RIGHT JOIN MES_FILE C ON C.parent_Guid = B.guid WHERE pGuid = @guid"; var fileData = Db.Ado.SqlQuery<dynamic>(fileSql, new { guid = queryObj.qcczdGuid }); @@ -394,7 +475,7 @@ return encryptedContent; } - private async Task<string> PostFormAsync(string url, Dictionary<string, object> data) + private async Task<dynamic> PostFormAsync(string url, Dictionary<string, object> data) { // 鏀圭敤FormUrlEncodedContent骞舵纭缃瓹ontent-Type var formData = new List<KeyValuePair<string, string>>(); @@ -421,11 +502,11 @@ // 璋冭瘯杈撳嚭瀹屾暣鍝嶅簲淇℃伅 Console.WriteLine($"瀹屾暣鍝嶅簲锛歕n{responseInfo.ToString(Formatting.Indented)}"); - return responseInfo.ToString(); + return responseInfo; } public void Dispose() { _httpClient?.Dispose(); } -} \ No newline at end of file +} -- Gitblit v1.9.3