From 770f02888443c1be46549f164abfd3be78a3dbd3 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期二, 25 十一月 2025 09:42:22 +0800
Subject: [PATCH] 1.标准版更新(20251125)

---
 service/QC/OaApi.cs |  171 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 116 insertions(+), 55 deletions(-)

diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs
index 98bba9c..67e5712 100644
--- a/service/QC/OaApi.cs
+++ b/service/QC/OaApi.cs
@@ -23,9 +23,13 @@
 public class OaApiService : Repository<dynamic>
 {
     private readonly HttpClient _httpClient;
-    private const string AppId = "303233EF-AC39-40C1-8364-AC989C6258A5";
-    private const string BaseUrl = "http://192.168.1.149:8099/api/ec/dev/auth/";
-    private const string WorkflowUrl = "http://192.168.1.149:8099/api/workflow/paService/doCreateRequest";
+    //private const string AppId = "303233EF-AC39-40C1-8364-AC989C6258A5";
+    //private const string BaseUrl = "http://192.168.1.149:8099/api/ec/dev/auth/";
+    //private const string WorkflowUrl = "http://192.168.1.149:8099/api/workflow/paService/doCreateRequest";
+
+    private const string AppId = "AB7F0461-89C3-4EAD-B5B5-B7D540617921";
+    private const string BaseUrl = "http://192.168.1.20:80/api/ec/dev/auth/";
+    private const string WorkflowUrl = "http://192.168.1.20:80/api/workflow/paService/doCreateRequest";
 
     public OaApiService()
     {
@@ -54,15 +58,47 @@
             // 2. 鑾峰彇璁块棶浠ょ墝
             var tokenResult =  ApplyTokenAsync(secret, spk);
             var token = tokenResult["token"].ToString();
+            string oaUserId = "";
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("select_oa_userid", conn))
+                {
+                    
+                    try
+                    {
+                        conn.Open();
+                        cmd.CommandType = CommandType.StoredProcedure;
+                        cmd.Parameters.Add(new SqlParameter("@guid", SqlDbType.VarChar, 100) { Value = queryObj.qcczdGuid.ToString() });
+
+                        using (var reader = cmd.ExecuteReader())
+                        {
+                            if (reader.Read())
+                            {
+                                oaUserId = reader["result"]?.ToString();
+                            }
+                        }
+                    }
+                    catch (Exception logEx)
+                    {
+                        Console.WriteLine($"鑾峰彇OA鐢ㄦ埛ID澶辫触: {logEx.Message}");
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
 
             // 3. 鍑嗗璇锋眰澶达紙绉婚櫎Content-Type璁剧疆锛�
             _httpClient.DefaultRequestHeaders.Clear();
             _httpClient.DefaultRequestHeaders.Add("token", token);
             _httpClient.DefaultRequestHeaders.Add("appid", AppId);
-            _httpClient.DefaultRequestHeaders.Add("userid", RSAEncrypt("1268", spk));
+            _httpClient.DefaultRequestHeaders.Add("userid", RSAEncrypt(oaUserId, spk));
 
             // 4. 鏋勫缓璇锋眰浣�
             var requestData = BuildRequestData(queryObj);
+
+            //var A = JObject.FromObject(requestData).ToString();
 
             // 5. 鍙戦�佽姹�
             var response = PostForm(WorkflowUrl, requestData);
@@ -160,7 +196,7 @@
         {
             {"mainData", BuildMainData(queryObj)},
             {"requestName", $"IQC寮傚父澶勭疆鍗曟祦绋�-{DateTime.Now:yyyyMMddHHmmss}"},
-            {"workflowId", "379"},
+            {"workflowId", "602"},//娴嬭瘯锛�379 姝e紡锛�600->602
             //{"otherParams", BuildOtherParams()},
             {"detailData", BuildDetailData(queryObj)}
         };
@@ -243,7 +279,7 @@
 WHERE pGuid = @guid";
 
         var fileData = Db.Ado.SqlQuery<dynamic>(fileSql, new { guid = queryObj.qcczdGuid });
-        var files = CreateFileData(fileData);
+        var files = fileData.Count > 0 ? CreateFileData(fileData) : null; // 鏂板
 
         // 娣诲姞鏂囦欢瀛楁
         result.Add(new JObject
@@ -372,57 +408,82 @@
 
     private JArray BuildDetailData(dynamic queryObj)
     {
-        // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
-        const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
-               chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
-            from Mes_QC_Exceptional_Detail A
-            LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
-            LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
-            WHERE pGuid = @guid";
-    
-        var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
-    
-        var tableRecords = new JArray();
-        
-        // 閬嶅巻姣忔潯鏄庣粏鏁版嵁
-        foreach (var record in details ?? Enumerable.Empty<dynamic>())
+        // 灏嗙洿鎺QL鏌ヨ鏇挎崲涓哄瓨鍌ㄨ繃绋嬭皟鐢�
+        var parameters = new[]
         {
-            // 淇瀛楁绫诲瀷杞崲锛堟暟鍊肩被鍨嬪幓闄ゅ瓧绗︿覆鍖呰9锛�
-            var fields = new JArray
-            {
-                //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
-                new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
-                 new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
-                new JObject { 
-                    ["fieldName"] = "jydrq", 
-                    // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
-                    ["fieldValue"] = (record.jydrq != null 
-                        ? Convert.ToDateTime(record.jydrq).ToString("yyyy-MM-dd ") 
-                        : DateTime.Now.ToString("yyyy-MM-dd"))
-                },
-                // 鏁板�煎瓧娈典繚鎸佹暟瀛楃被鍨嬭�岄潪瀛楃涓�
-                // 淇鏁板�肩被鍨嬭浆鎹㈡柟寮�
-                new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
-                new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
-                new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
-                new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
-            };
-    
-            tableRecords.Add(new JObject
-            {
-                ["recordOrder"] = 0,  // 瀹為檯涓氬姟涓彲鑳介渶瑕佹牴鎹鍙疯缃�
-                ["workflowRequestTableFields"] = fields
-            });
-        }
-    
-        return new JArray
-        {
-            new JObject
-            {
-                ["tableDBName"] = "formtable_main_33_dt1",
-                ["workflowRequestTableRecords"] = tableRecords
-            }
+            new SugarParameter("@pi_guid", queryObj.qcczdGuid),
+            new SugarParameter("@inP1", null),
+            new SugarParameter("@inP2", null),
+            new SugarParameter("@inP3", null),
+            new SugarParameter("@inP4", null)
         };
+
+        try
+        {
+            var details = Db.Ado.SqlQuery<dynamic>(
+                "EXEC select_oa_BuildDetailData @pi_guid,@inP1,@inP2,@inP3,@inP4", 
+                parameters);
+
+
+            var tableRecords = new JArray();
+        
+            // 閬嶅巻姣忔潯鏄庣粏鏁版嵁
+            foreach (var record in details ?? Enumerable.Empty<dynamic>())
+            {
+                // 淇瀛楁绫诲瀷杞崲锛堟暟鍊肩被鍨嬪幓闄ゅ瓧绗︿覆鍖呰9锛�
+                var fields = new JArray
+                {
+                    //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
+                    new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
+                    new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
+                    new JObject { ["fieldName"] = "xblb", ["fieldValue"] = record.xblb?.ToString() ?? "" },
+                    new JObject { 
+                        ["fieldName"] = "jydrq", 
+                        // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
+                        ["fieldValue"] = (record.jydrq != null 
+                            ? Convert.ToDateTime(record.jydrq).ToString("yyyy-MM-dd ") 
+                            : DateTime.Now.ToString("yyyy-MM-dd"))
+                    },
+                    // 鏁板�煎瓧娈典繚鎸佹暟瀛楃被鍨嬭�岄潪瀛楃涓�
+                    // 淇鏁板�肩被鍨嬭浆鎹㈡柟寮�
+                    new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
+                    new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
+                    new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
+                    new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
+                };
+        
+                tableRecords.Add(new JObject
+                {
+                    ["recordOrder"] = 0,  // 瀹為檯涓氬姟涓彲鑳介渶瑕佹牴鎹鍙疯缃�
+                    ["workflowRequestTableFields"] = fields
+                });
+            }
+        
+            return new JArray
+            {
+                new JObject
+                {
+                    ["tableDBName"] = "formtable_main_321_dt1",//娴嬭瘯锛歠ormtable_main_33_dt1
+                    ["workflowRequestTableRecords"] = tableRecords
+                }
+            };
+        }
+        catch (Exception ex)
+        {
+            throw new Exception($"鏌ヨ寮傚父鏄庣粏澶辫触: {ex.Message}");
+        }
+
+        // // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
+        // const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
+        //        chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
+        //     from Mes_QC_Exceptional_Detail A
+        //     LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
+        //     LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
+        //     WHERE pGuid = @guid";
+    
+        // var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
+    
+        
     }
 
     private JObject BuildOtherParams()

--
Gitblit v1.9.3