From fd8a1399090dd3a57b557a7c8d270362397bc21f Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期六, 20 九月 2025 16:45:04 +0800
Subject: [PATCH] 报工修改

---
 service/QC/OAJyService.cs |  234 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 108 insertions(+), 126 deletions(-)

diff --git a/service/QC/OAJyService.cs b/service/QC/OAJyService.cs
index d9fd9e3..c7fb134 100644
--- a/service/QC/OAJyService.cs
+++ b/service/QC/OAJyService.cs
@@ -1,8 +1,21 @@
-锘縰sing System.Net;
+锘縰sing MES.Service.Models;
+using Microsoft.IdentityModel.Tokens;
+using NewPdaSqlServer.Controllers;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using Newtonsoft.Json;
+using SqlSugar;
+using System.Net;
 using System.Security.Cryptography;
 using System.Text;
-using NewPdaSqlServer.DB;
-using Newtonsoft.Json;
+using static Azure.Core.HttpHeader;
+using System.Security.Cryptography;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Security;
+using System.Security.Cryptography.X509Certificates;
 using Org.BouncyCastle.Crypto.Parameters;
 using Org.BouncyCastle.Security;
 
@@ -10,30 +23,65 @@
 
 public class OAJyService : RepositoryNoEntity
 {
+    private readonly HttpClient _client = new HttpClient();
+
     private const string APPID = "303233EF-AC39-40C1-8364-AC989C6258A5";
-
     private const string SECRET = "30b41949-bcfb-48f8-9847-feb6e043fe72";
-
     // private const string SPK = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB";
     private const string HOST = "http://192.168.1.149:8099";
 
-    private const string SPK =
-        @"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB";
+    private const string SPK = @"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB";
 
-    private readonly HttpClient _client = new();
+
+    public static class RsaHelper
+    {
+        public static string Encrypt(string plainText, string publicKeyPem)
+        {
+            //// 灏哖EM鏍煎紡鐨勫叕閽ヨ浆鎹负XML鏍煎紡
+            //var rsa = RSA.Create();
+            //rsa.ImportFromPem(publicKeyPem);  // 浣跨敤.NET 5+ 鍐呯疆PEM瑙f瀽鏂规硶
+
+            //var parameters = rsa.ExportParameters(false);
+            //string publicKeyXml = $"<RSAKeyValue><Modulus>{Convert.ToBase64String(parameters.Modulus)}</Modulus><Exponent>{Convert.ToBase64String(parameters.Exponent)}</Exponent></RSAKeyValue>";
+
+            //using var rsaProvider = new RSACryptoServiceProvider();
+            //rsaProvider.FromXmlString(publicKeyXml);  // 浣跨敤杞崲鍚庣殑XML鏍煎紡鍏挜
+
+            //var data = Encoding.UTF8.GetBytes(plainText);
+            //var encrypted = rsaProvider.Encrypt(data, false);
+            //return Convert.ToBase64String(encrypted);
+
+            RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKeyPem));
+            string XML = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>",
+            Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()),
+            Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned()));
+            string encryptedContent = string.Empty;
+            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
+            {
+                rsa.FromXmlString(XML);
+                byte[] encryptedData = rsa.Encrypt(Encoding.Default.GetBytes(plainText), false);
+                encryptedContent = Convert.ToBase64String(encryptedData);
+            }
+            return encryptedContent;
+        }
+    }
 
     public string PostDataSSL(string url,
-        Dictionary<string, string> parameters,
-        Dictionary<string, string> headers)
+            Dictionary<string, string> parameters,
+            Dictionary<string, string> headers)
     {
         var request = new HttpRequestMessage(HttpMethod.Post, url);
 
         foreach (var header in headers)
+        {
             request.Headers.Add(header.Key, header.Value);
+        }
 
         // 濡傛灉闇�瑕佽〃鍗曞弬鏁�
         if (parameters.Count > 0)
+        {
             request.Content = new FormUrlEncodedContent(parameters);
+        }
 
         var response = _client.SendAsync(request).Result;
         return response.Content.ReadAsStringAsync().Result;
@@ -41,6 +89,7 @@
 
     public string GetToken()
     {
+
         var userId = "1268";
         var encryptedUserId = RsaHelper.Encrypt(userId, SPK);
         ;
@@ -59,9 +108,11 @@
             if (!string.IsNullOrEmpty(response))
             {
                 var res = JsonConvert.DeserializeObject<dynamic>(response);
-                if (res.status == "true") return res.token.ToString();
+                if (res.status == "true")
+                {
+                    return res.token.ToString();
+                }
             }
-
             return "token涓嶅瓨鍦紒";
         }
         catch (Exception ex)
@@ -141,8 +192,7 @@
         try
         {
             // 鍙傛暟鏍¢獙
-            if (query == null)
-                throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
+            if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
             //if (query.workflowId == null) throw new ArgumentException("workflowId涓嶈兘涓虹┖");
             //if (query.mainData == null) throw new ArgumentException("mainData涓嶈兘涓虹┖");
 
@@ -158,47 +208,46 @@
             //    detailDataDict = ((IEnumerable<KeyValuePair<string, object>>)query.detailData)
             //        .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
             //}
-
+    
             // 鍔犲瘑澶勭悊
             var userId = "1268";
             var encryptedUserId = RsaHelper.Encrypt(userId, SPK);
-            var strToken = GetToken();
+            string strToken = GetToken();
 
 
             // 鏇挎崲鍘熸湁鐨勬祴mainDataDict璇曟暟鎹瀯寤�
             mainDataDict = BuildMainDataFromQuery(query);
 
-
+    
             // 璋冪敤鏂规硶澧炲姞userid璇锋眰澶�
             var result = SubmitWorkflowRequest(
-                strToken,
-                379,
-                mainDataDict,
+                token: strToken,
+                workflowId: 379,
+                mainData: mainDataDict,
                 requestName: "MES->OA娴嬭瘯娴佺▼鏍囬",
-                otherParams: null,
-                remark: "Test",
-                requestLevel: "",
-                encryptedUserId: encryptedUserId // 鏂板鍙傛暟
+                otherParams:null,
+                remark:"Test",
+                requestLevel:"",
+                encryptedUserId: encryptedUserId  // 鏂板鍙傛暟
             );
             return result;
         }
         catch (Exception ex)
         {
             // 鏇磋缁嗙殑閿欒澶勭悊
-            return new
-            {
+            return new {
                 status = -1,
-                message = $"瀹屾暣閿欒淇℃伅锛歿ex}" // 鏄剧ず瀹屾暣鍫嗘爤
+                message = $"瀹屾暣閿欒淇℃伅锛歿ex.ToString()}"  // 鏄剧ず瀹屾暣鍫嗘爤
             };
         }
     }
 
     // 淇敼鏂规硶绛惧悕
     public dynamic SubmitWorkflowRequest(
-        string token,
+        string token, 
         int workflowId,
         Dictionary<string, object> mainData,
-        string encryptedUserId, // 鐢ㄦ埛id
+        string encryptedUserId,  // 鐢ㄦ埛id
         Dictionary<string, object> detailData = null,
         Dictionary<string, object> otherParams = null,
         string remark = "",
@@ -207,22 +256,19 @@
     {
         try
         {
-            ServicePointManager.ServerCertificateValidationCallback +=
-                (s, cert, chain, sslPolicyErrors) => true;
+            ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
             ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
 
             var url = new Uri($"{HOST}/api/workflow/paService/doCreateRequest");
             var request = WebRequest.Create(url) as HttpWebRequest;
             request.Method = "POST";
             request.Timeout = 20000;
-            request.ContentType =
-                "application/x-www-form-urlencoded"; // 淇敼涓篔SON鏍煎紡
+            request.ContentType = "application/x-www-form-urlencoded";  // 淇敼涓篔SON鏍煎紡
 
             // 鏋勫缓璇锋眰澶�
             request.Headers.Set("appid", APPID);
             request.Headers.Set("token", token);
-            request.Headers.Set("Content-Type",
-                "application/x-www-form-urlencoded");
+            request.Headers.Set("Content-Type", "application/x-www-form-urlencoded");
             request.Headers.Set("userId", encryptedUserId);
             // 鍋囪闇�瑕佸姞瀵嗙殑userid浠庡叾浠栧湴鏂硅幏鍙栵紝杩欓噷闇�瑕佽ˉ鍏呰幏鍙栭�昏緫
 
@@ -231,11 +277,9 @@
             {
                 //["userId"] = "1268",
                 ["workflowId"] = workflowId,
-                ["mainData"] =
-                    new List<Dictionary<string, object>> { mainData }, // 鍖呰鎴愭暟缁�
+                ["mainData"] = new List<Dictionary<string, object>> { mainData }, // 鍖呰鎴愭暟缁�
                 ["detailData"] = null,
-                ["otherParams"] =
-                    otherParams ?? new Dictionary<string, object>(),
+                ["otherParams"] = otherParams ?? new Dictionary<string, object>(),
                 ["remark"] = remark,
                 ["requestLevel"] = requestLevel,
                 ["requestName"] = requestName
@@ -243,7 +287,7 @@
 
             // 搴忓垪鍖栬姹備綋
             var jsonBody = JsonConvert.SerializeObject(requestBody);
-            var byteData = Encoding.UTF8.GetBytes(jsonBody);
+            byte[] byteData = Encoding.UTF8.GetBytes(jsonBody);
 
             // 鍙戦�佽姹�
             using (var stream = request.GetRequestStream())
@@ -258,19 +302,19 @@
                 using (var reader = new StreamReader(stream, Encoding.UTF8))
                 {
                     var responseJson = reader.ReadToEnd();
-                    var result =
-                        JsonConvert.DeserializeObject<dynamic>(responseJson);
-
+                    var result = JsonConvert.DeserializeObject<dynamic>(responseJson);
+                    
                     // 娣诲姞鐘舵�佺爜妫�鏌�
-                    if (response.StatusCode != HttpStatusCode.OK ||
-                        result.code != "SUCCESS")
+                    if (response.StatusCode != HttpStatusCode.OK || result.code != "SUCCESS")
+                    {
                         throw new Exception($"娴佺▼鎻愪氦澶辫触锛歿result.errMsg}");
-
+                    }
+                    
                     return new
                     {
-                        result.code,
-                        result.data,
-                        result.errMsg
+                        code = result.code,
+                        data = result.data,
+                        errMsg = result.errMsg
                     };
                 }
             }
@@ -281,8 +325,7 @@
             using (var reader = new StreamReader(stream))
             {
                 var errorDetails = reader.ReadToEnd();
-                throw new Exception(
-                    $"璇锋眰澶辫触 [Status: {response.StatusCode}]: {errorDetails}");
+                throw new Exception($"璇锋眰澶辫触 [Status: {response.StatusCode}]: {errorDetails}");
             }
         }
         catch (Exception ex)
@@ -299,93 +342,32 @@
         {
             // 琛ㄧ粨鏋勫畾涔�
             ["tableDBName"] = "formtable_main_33",
-            ["workflowRequestTableRecords"] =
-                new List<Dictionary<string, object>>
+            ["workflowRequestTableRecords"] = new List<Dictionary<string, object>>
+            {
+                new Dictionary<string, object>
                 {
-                    new()
+                    ["recordOrder"] = 0,
+                    ["workflowRequestTableFields"] = new List<Dictionary<string, object>>
                     {
-                        ["recordOrder"] = 0,
-                        ["workflowRequestTableFields"] =
-                            new List<Dictionary<string, object>>
-                            {
-                                new()
-                                {
-                                    ["fieldName"] = "wlbm",
-                                    ["fieldValue"] = "1.01.01.001"
-                                },
-                                new()
-                                {
-                                    ["fieldName"] = "khgys",
-                                    ["fieldValue"] = "闄堥洩骞�"
-                                },
-                                new()
-                                {
-                                    ["fieldName"] = "jzmcwlmc",
-                                    ["fieldValue"] = "椤剁洊"
-                                },
-                                new()
-                                {
-                                    ["fieldName"] = "bhgpqxms",
-                                    ["fieldValue"] = "澶栬涓嶅悎鏍硷紝灏哄涓嶅悎鏍硷紝棰滆壊涓嶇鍚�"
-                                },
-                                new()
-                                {
-                                    ["fieldName"] = "dhdhmes",
-                                    ["fieldValue"] = "MES001"
-                                }
-                            }
+                        new Dictionary<string, object> { ["fieldName"] = "wlbm", ["fieldValue"] = "1.01.01.001" },
+                        new Dictionary<string, object> { ["fieldName"] = "khgys", ["fieldValue"] = "闄堥洩骞�" },
+                        new Dictionary<string, object> { ["fieldName"] = "jzmcwlmc", ["fieldValue"] = "椤剁洊" },
+                        new Dictionary<string, object> { ["fieldName"] = "bhgpqxms", ["fieldValue"] = "澶栬涓嶅悎鏍硷紝灏哄涓嶅悎鏍硷紝棰滆壊涓嶇鍚�" },
+                        new Dictionary<string, object> { ["fieldName"] = "dhdhmes", ["fieldValue"] = "MES001" }
                     }
                 }
+            }
         };
 
         return mainData;
     }
 
     // 杈呭姪鏂规硶鐢ㄤ簬瀹夊叏娣诲姞灞炴��
-    private void TryAddProperty(Dictionary<string, object> dict, string key,
-        object value)
+    private void TryAddProperty(Dictionary<string, object> dict, string key, object value)
     {
-        if (value != null) dict[key] = value;
-    }
-
-
-    public static class RsaHelper
-    {
-        public static string Encrypt(string plainText, string publicKeyPem)
+        if (value != null)
         {
-            //// 灏哖EM鏍煎紡鐨勫叕閽ヨ浆鎹负XML鏍煎紡
-            //var rsa = RSA.Create();
-            //rsa.ImportFromPem(publicKeyPem);  // 浣跨敤.NET 5+ 鍐呯疆PEM瑙f瀽鏂规硶
-
-            //var parameters = rsa.ExportParameters(false);
-            //string publicKeyXml = $"<RSAKeyValue><Modulus>{Convert.ToBase64String(parameters.Modulus)}</Modulus><Exponent>{Convert.ToBase64String(parameters.Exponent)}</Exponent></RSAKeyValue>";
-
-            //using var rsaProvider = new RSACryptoServiceProvider();
-            //rsaProvider.FromXmlString(publicKeyXml);  // 浣跨敤杞崲鍚庣殑XML鏍煎紡鍏挜
-
-            //var data = Encoding.UTF8.GetBytes(plainText);
-            //var encrypted = rsaProvider.Encrypt(data, false);
-            //return Convert.ToBase64String(encrypted);
-
-            var publicKeyParam =
-                (RsaKeyParameters)PublicKeyFactory.CreateKey(
-                    Convert.FromBase64String(publicKeyPem));
-            var XML = string.Format(
-                "<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>",
-                Convert.ToBase64String(publicKeyParam.Modulus
-                    .ToByteArrayUnsigned()),
-                Convert.ToBase64String(publicKeyParam.Exponent
-                    .ToByteArrayUnsigned()));
-            var encryptedContent = string.Empty;
-            using (var rsa = new RSACryptoServiceProvider())
-            {
-                rsa.FromXmlString(XML);
-                var encryptedData =
-                    rsa.Encrypt(Encoding.Default.GetBytes(plainText), false);
-                encryptedContent = Convert.ToBase64String(encryptedData);
-            }
-
-            return encryptedContent;
+            dict[key] = value;
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3