LIJU 1 月之前
父節點
當前提交
b6d2fc68af
共有 23 個文件被更改,包括 866 次插入105 次删除
  1. 二進制
      .vs/ThCardReader/CopilotIndices/17.14.786.1071/CodeChunks.db
  2. 二進制
      .vs/ThCardReader/CopilotIndices/17.14.786.1071/SemanticSymbols.db
  3. 二進制
      .vs/ThCardReader/FileContentIndex/5be398a7-b36a-47a9-be4e-59595fd0ccff.vsidx
  4. 二進制
      .vs/ThCardReader/FileContentIndex/6335c2bb-0ea5-42f2-930d-486dbeacc953.vsidx
  5. 二進制
      .vs/ThCardReader/FileContentIndex/9b2f1db5-790e-4c40-86c5-13052409ba4b.vsidx
  6. 二進制
      .vs/ThCardReader/FileContentIndex/9bac8a11-f38f-4b6f-badb-586518387fcd.vsidx
  7. 二進制
      .vs/ThCardReader/v17/.suo
  8. 6 6
      .vs/ThCardReader/v17/DocumentLayout.backup.json
  9. 1 1
      .vs/ThCardReader/v17/DocumentLayout.json
  10. 222 51
      ThCardReader/EntryController.cs
  11. 7 6
      ThCardReader/JiangSuWorkInjuryBusiness.cs
  12. 二進制
      ThCardReader/bin/x86/Release/ThCardReader.exe
  13. 二進制
      ThCardReader/bin/x86/Release/ThCardReader.pdb
  14. 二進制
      ThCardReader/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache
  15. 二進制
      ThCardReader/obj/x86/Release/ThCardReader.csproj.AssemblyReference.cache
  16. 8 9
      ThCardReader/obj/x86/Release/ThCardReader.csproj.FileListAbsolute.txt
  17. 二進制
      ThCardReader/obj/x86/Release/ThCardReader.exe
  18. 0 27
      ThCardReader/obj/x86/Release/ThCardReader.exe.config
  19. 二進制
      ThCardReader/obj/x86/Release/ThCardReader.pdb
  20. 183 0
      test_parameter_return_simple.html
  21. 434 0
      test_request_parameters.html
  22. 2 2
      test_workinjury_interface.html
  23. 3 3
      workinjury_test_interface.html

二進制
.vs/ThCardReader/CopilotIndices/17.14.786.1071/CodeChunks.db


二進制
.vs/ThCardReader/CopilotIndices/17.14.786.1071/SemanticSymbols.db


二進制
.vs/ThCardReader/FileContentIndex/5be398a7-b36a-47a9-be4e-59595fd0ccff.vsidx


二進制
.vs/ThCardReader/FileContentIndex/6335c2bb-0ea5-42f2-930d-486dbeacc953.vsidx


二進制
.vs/ThCardReader/FileContentIndex/9b2f1db5-790e-4c40-86c5-13052409ba4b.vsidx


二進制
.vs/ThCardReader/FileContentIndex/9bac8a11-f38f-4b6f-badb-586518387fcd.vsidx


二進制
.vs/ThCardReader/v17/.suo


+ 6 - 6
.vs/ThCardReader/v17/DocumentLayout.backup.json

@@ -34,8 +34,12 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 0,
+          "SelectedChildIndex": 1,
           "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{56df62a4-05a3-4e5b-aa1a-99371ccfb997}"
+            },
             {
               "$type": "Document",
               "DocumentIndex": 0,
@@ -44,7 +48,7 @@
               "RelativeDocumentMoniker": "ThCardReader\\MainForm.Designer.cs",
               "ToolTip": "E:\\huaihaiProject\\ThCardReader\\mhCardReader\\ThCardReader\\MainForm.Designer.cs",
               "RelativeToolTip": "ThCardReader\\MainForm.Designer.cs",
-              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAsAAAAWAAAAAAAAAA==",
+              "ViewState": "AgIAAAIAAAAAAAAAAAAYwAsAAAAWAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-06-27T09:53:42.838Z",
               "EditorCaption": ""
@@ -93,10 +97,6 @@
               "WhenOpened": "2025-06-23T01:02:05.881Z",
               "EditorCaption": " [\u53EA\u8BFB]"
             },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{56df62a4-05a3-4e5b-aa1a-99371ccfb997}"
-            },
             {
               "$type": "Document",
               "DocumentIndex": 1,

+ 1 - 1
.vs/ThCardReader/v17/DocumentLayout.json

@@ -48,7 +48,7 @@
               "RelativeDocumentMoniker": "ThCardReader\\MainForm.Designer.cs",
               "ToolTip": "E:\\huaihaiProject\\ThCardReader\\mhCardReader\\ThCardReader\\MainForm.Designer.cs",
               "RelativeToolTip": "ThCardReader\\MainForm.Designer.cs",
-              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAsAAAAWAAAAAAAAAA==",
+              "ViewState": "AgIAAAIAAAAAAAAAAAAYwAsAAAAWAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-06-27T09:53:42.838Z",
               "EditorCaption": ""

+ 222 - 51
ThCardReader/EntryController.cs

@@ -559,6 +559,8 @@ namespace ThCardReader
                     result["message"] = "请求体不能为空";
                     result["device"] = "江苏工伤联网接口";
                     result["debug_step"] = "请求体为空";
+                    // 添加传入参数(即使是null)
+                    result["request_parameters"] = null;
                     return result;
                 }
                 
@@ -577,6 +579,8 @@ namespace ThCardReader
                     result["message"] = "action参数不能为空";
                     result["device"] = "江苏工伤联网接口";
                     result["debug_step"] = "action参数为空";
+                    // 添加传入参数
+                    result["request_parameters"] = request;
                     return result;
                 }
 
@@ -598,6 +602,8 @@ namespace ThCardReader
                             result["device"] = "江苏工伤联网接口";
                             result["debug_step"] = "测试模式立即返回";
                             result["test_config"] = request["config"];
+                            // 添加传入参数
+                            result["request_parameters"] = request;
                             break;
                         }
                         
@@ -606,8 +612,13 @@ namespace ThCardReader
                             var initResult = HandleWorkInjuryInit(request);
                             if (initResult != null)
                             {
+                                // 替换为HandleWorkInjuryInit的结果并保留debug信息
+                                PreserveDebugInfo(result, initResult);
                                 result = initResult;
+                                
                                 result["debug_controller_step"] = "初始化操作完成";
+                                // 添加传入参数
+                                result["request_parameters"] = request;
                             }
                             else
                             {
@@ -616,6 +627,8 @@ namespace ThCardReader
                                 result["message"] = "HandleWorkInjuryInit返回null";
                                 result["device"] = "江苏工伤联网接口";
                                 result["debug_step"] = "HandleWorkInjuryInit返回null";
+                                // 添加传入参数
+                                result["request_parameters"] = request;
                             }
                         }
                         catch (System.Exception initEx)
@@ -626,62 +639,127 @@ namespace ThCardReader
                             result["device"] = "江苏工伤联网接口";
                             result["debug_step"] = "HandleWorkInjuryInit调用异常";
                             result["debug_error"] = initEx.Message;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
                         }
                         break;
 
                     case "transaction":
                         result["debug_step"] = "执行交易操作";
-                        result = HandleWorkInjuryTransaction(request);
-                        if (result != null)
+                        var transactionResult = HandleWorkInjuryTransaction(request);
+                        if (transactionResult != null)
                         {
+                            // 替换为HandleWorkInjuryTransaction的结果并保留debug信息
+                            PreserveDebugInfo(result, transactionResult);
+                            result = transactionResult;
+                            
                             result["debug_controller_step"] = "交易操作完成";
+                            // 添加传入参数
+                            result["request_parameters"] = request;
                         }
                         break;
 
                     case "health":
                         result["debug_step"] = "执行健康检查";
-                        result = JiangSuWorkInjuryBusiness.HealthCheck();
-                        if (result != null)
+                        var healthResult = JiangSuWorkInjuryBusiness.HealthCheck();
+                        if (healthResult != null)
                         {
+                            PreserveDebugInfo(result, healthResult);
+                            result = healthResult;
                             result["debug_controller_step"] = "健康检查完成";
+                            // 添加传入参数
+                            result["request_parameters"] = request;
                         }
                         break;
 
                     case "stats":
-                        result = JiangSuWorkInjuryBusiness.GetTransactionStatistics();
+                        var statsResult = JiangSuWorkInjuryBusiness.GetTransactionStatistics();
+                        if (statsResult != null)
+                        {
+                            PreserveDebugInfo(result, statsResult);
+                            result = statsResult;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
+                        }
                         break;
 
                     case "signin_status":
-                        result = JiangSuWorkInjuryBusiness.GetSignInStatus();
+                        var signinStatusResult = JiangSuWorkInjuryBusiness.GetSignInStatus();
+                        if (signinStatusResult != null)
+                        {
+                            PreserveDebugInfo(result, signinStatusResult);
+                            result = signinStatusResult;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
+                        }
                         break;
 
                     case "batch_upload":
-                        result = HandleWorkInjuryBatchUpload(request);
+                        var batchUploadResult = HandleWorkInjuryBatchUpload(request);
+                        if (batchUploadResult != null)
+                        {
+                            PreserveDebugInfo(result, batchUploadResult);
+                            result = batchUploadResult;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
+                        }
                         break;
 
                     case "complete_process":
-                        result = HandleWorkInjuryCompleteProcess(request);
+                        var completeProcessResult = HandleWorkInjuryCompleteProcess(request);
+                        if (completeProcessResult != null)
+                        {
+                            PreserveDebugInfo(result, completeProcessResult);
+                            result = completeProcessResult;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
+                        }
                         break;
 
                     case "retry":
-                        result = HandleWorkInjuryRetry(request);
+                        var retryResult = HandleWorkInjuryRetry(request);
+                        if (retryResult != null)
+                        {
+                            PreserveDebugInfo(result, retryResult);
+                            result = retryResult;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
+                        }
                         break;
 
                     case "reverse":
-                        result = HandleWorkInjuryReverse(request);
+                        var reverseResult = HandleWorkInjuryReverse(request);
+                        if (reverseResult != null)
+                        {
+                            PreserveDebugInfo(result, reverseResult);
+                            result = reverseResult;
+                            // 添加传入参数
+                            result["request_parameters"] = request;
+                        }
                         break;
 
                     default:
-                        result.Add("success", false);
-                        result.Add("code", 1003);
-                        result.Add("message", $"不支持的操作类型: {action}");
-                        result.Add("device", "江苏工伤联网接口");
-                        result.Add("supportedActions", "init, transaction, health, stats, signin_status, batch_upload, complete_process, retry, reverse");
+                        result["success"] = false;
+                        result["code"] = 1003;
+                        result["message"] = $"不支持的操作类型: {action}";
+                        result["device"] = "江苏工伤联网接口";
+                        result["supportedActions"] = "init, transaction, health, stats, signin_status, batch_upload, complete_process, retry, reverse";
+                        // 添加传入参数
+                        result["request_parameters"] = request;
                         break;
                 }
             }
             catch (System.AccessViolationException avEx)
             {
+                // 保存原有的debug信息
+                string debugEntryTime = result["debug_entry_time"]?.ToString();
+                bool? debugMethodEntered = result["debug_method_entered"]?.ToObject<bool>();
+                string debugStage = result["debug_stage"]?.ToString();
+                string debugTimestamp = result["debug_timestamp"]?.ToString();
+                string debugStep = result["debug_step"]?.ToString();
+                JToken debugRequest = result["debug_request"];
+                string debugAction = result["debug_action"]?.ToString();
+                
                 result = new JObject(); // 重新创建以确保不为空
                 result["success"] = false;
                 result["code"] = 9001;
@@ -691,9 +769,35 @@ namespace ThCardReader
                 result["debug_step"] = "Controller捕获访问冲突异常";
                 result["debug_error"] = avEx.Message;
                 result["debug_stacktrace"] = avEx.StackTrace;
+                
+                // 恢复原有的debug信息
+                if (!string.IsNullOrEmpty(debugEntryTime))
+                    result["debug_entry_time"] = debugEntryTime;
+                if (debugMethodEntered.HasValue)
+                    result["debug_method_entered"] = debugMethodEntered.Value;
+                if (!string.IsNullOrEmpty(debugStage))
+                    result["debug_stage"] = debugStage;
+                if (!string.IsNullOrEmpty(debugTimestamp))
+                    result["debug_timestamp"] = debugTimestamp;
+                if (debugRequest != null)
+                    result["debug_request"] = debugRequest;
+                if (!string.IsNullOrEmpty(debugAction))
+                    result["debug_action"] = debugAction;
+                
+                // 添加传入参数
+                result["request_parameters"] = request;
             }
             catch (System.Runtime.InteropServices.SEHException sehEx)
             {
+                // 保存原有的debug信息
+                string debugEntryTime = result["debug_entry_time"]?.ToString();
+                bool? debugMethodEntered = result["debug_method_entered"]?.ToObject<bool>();
+                string debugStage = result["debug_stage"]?.ToString();
+                string debugTimestamp = result["debug_timestamp"]?.ToString();
+                string debugStep = result["debug_step"]?.ToString();
+                JToken debugRequest = result["debug_request"];
+                string debugAction = result["debug_action"]?.ToString();
+                
                 result = new JObject(); // 重新创建以确保不为空
                 result["success"] = false;
                 result["code"] = 9002;
@@ -703,9 +807,35 @@ namespace ThCardReader
                 result["debug_step"] = "Controller捕获SEH异常";
                 result["debug_error"] = sehEx.Message;
                 result["debug_stacktrace"] = sehEx.StackTrace;
+                
+                // 恢复原有的debug信息
+                if (!string.IsNullOrEmpty(debugEntryTime))
+                    result["debug_entry_time"] = debugEntryTime;
+                if (debugMethodEntered.HasValue)
+                    result["debug_method_entered"] = debugMethodEntered.Value;
+                if (!string.IsNullOrEmpty(debugStage))
+                    result["debug_stage"] = debugStage;
+                if (!string.IsNullOrEmpty(debugTimestamp))
+                    result["debug_timestamp"] = debugTimestamp;
+                if (debugRequest != null)
+                    result["debug_request"] = debugRequest;
+                if (!string.IsNullOrEmpty(debugAction))
+                    result["debug_action"] = debugAction;
+                
+                // 添加传入参数
+                result["request_parameters"] = request;
             }
             catch (System.Exception ex)
             {
+                // 保存原有的debug信息
+                string debugEntryTime = result["debug_entry_time"]?.ToString();
+                bool? debugMethodEntered = result["debug_method_entered"]?.ToObject<bool>();
+                string debugStage = result["debug_stage"]?.ToString();
+                string debugTimestamp = result["debug_timestamp"]?.ToString();
+                string debugStep = result["debug_step"]?.ToString();
+                JToken debugRequest = result["debug_request"];
+                string debugAction = result["debug_action"]?.ToString();
+                
                 result = new JObject(); // 重新创建以确保不为空
                 result["success"] = false;
                 result["code"] = 1000;
@@ -716,6 +846,23 @@ namespace ThCardReader
                 result["debug_error"] = ex.Message;
                 result["debug_stacktrace"] = ex.StackTrace;
                 result["debug_exception_details"] = ex.ToString();
+                
+                // 恢复原有的debug信息
+                if (!string.IsNullOrEmpty(debugEntryTime))
+                    result["debug_entry_time"] = debugEntryTime;
+                if (debugMethodEntered.HasValue)
+                    result["debug_method_entered"] = debugMethodEntered.Value;
+                if (!string.IsNullOrEmpty(debugStage))
+                    result["debug_stage"] = debugStage;
+                if (!string.IsNullOrEmpty(debugTimestamp))
+                    result["debug_timestamp"] = debugTimestamp;
+                if (debugRequest != null)
+                    result["debug_request"] = debugRequest;
+                if (!string.IsNullOrEmpty(debugAction))
+                    result["debug_action"] = debugAction;
+                
+                // 添加传入参数
+                result["request_parameters"] = request;
             }
 
             // 确保返回的result不为null并且有基本结构
@@ -727,6 +874,8 @@ namespace ThCardReader
                 result["message"] = "未知错误 - result为null";
                 result["device"] = "江苏工伤联网接口";
                 result["debug_step"] = "result为null保护";
+                // 添加传入参数
+                result["request_parameters"] = request;
             }
 
             // 强制确保必要字段存在
@@ -856,10 +1005,10 @@ namespace ThCardReader
                 if (string.IsNullOrEmpty(transactionName))
                 {
                     var result = new JObject();
-                    result.Add("success", false);
-                    result.Add("code", 1005);
-                    result.Add("message", "transactionName参数不能为空");
-                    result.Add("device", "江苏工伤联网接口");
+                    result["success"] = false;
+                    result["code"] = 1005;
+                    result["message"] = "transactionName参数不能为空";
+                    result["device"] = "江苏工伤联网接口";
                     return result;
                 }
 
@@ -875,10 +1024,10 @@ namespace ThCardReader
             catch (System.Exception ex)
             {
                 var result = new JObject();
-                result.Add("success", false);
-                result.Add("code", 1006);
-                result.Add("message", $"工伤联网交易处理异常: {ex.Message}");
-                result.Add("device", "江苏工伤联网接口");
+                result["success"] = false;
+                result["code"] = 1006;
+                result["message"] = $"工伤联网交易处理异常: {ex.Message}";
+                result["device"] = "江苏工伤联网接口";
                 return result;
             }
         }
@@ -894,10 +1043,10 @@ namespace ThCardReader
                 if (prescriptionsArray == null || prescriptionsArray.Length == 0)
                 {
                     var result = new JObject();
-                    result.Add("success", false);
-                    result.Add("code", 1007);
-                    result.Add("message", "prescriptions参数不能为空");
-                    result.Add("device", "江苏工伤联网接口");
+                    result["success"] = false;
+                    result["code"] = 1007;
+                    result["message"] = "prescriptions参数不能为空";
+                    result["device"] = "江苏工伤联网接口";
                     return result;
                 }
 
@@ -909,10 +1058,10 @@ namespace ThCardReader
             catch (System.Exception ex)
             {
                 var result = new JObject();
-                result.Add("success", false);
-                result.Add("code", 1008);
-                result.Add("message", $"工伤联网批量上传处理异常: {ex.Message}");
-                result.Add("device", "江苏工伤联网接口");
+                result["success"] = false;
+                result["code"] = 1008;
+                result["message"] = $"工伤联网批量上传处理异常: {ex.Message}";
+                result["device"] = "江苏工伤联网接口";
                 return result;
             }
         }
@@ -932,10 +1081,10 @@ namespace ThCardReader
             catch (System.Exception ex)
             {
                 var result = new JObject();
-                result.Add("success", false);
-                result.Add("code", 1009);
-                result.Add("message", $"工伤联网完整流程处理异常: {ex.Message}");
-                result.Add("device", "江苏工伤联网接口");
+                result["success"] = false;
+                result["code"] = 1009;
+                result["message"] = $"工伤联网完整流程处理异常: {ex.Message}";
+                result["device"] = "江苏工伤联网接口";
                 return result;
             }
         }
@@ -951,10 +1100,10 @@ namespace ThCardReader
                 if (string.IsNullOrEmpty(transactionName))
                 {
                     var result = new JObject();
-                    result.Add("success", false);
-                    result.Add("code", 1010);
-                    result.Add("message", "transactionName参数不能为空");
-                    result.Add("device", "江苏工伤联网接口");
+                    result["success"] = false;
+                    result["code"] = 1010;
+                    result["message"] = "transactionName参数不能为空";
+                    result["device"] = "江苏工伤联网接口";
                     return result;
                 }
 
@@ -967,10 +1116,10 @@ namespace ThCardReader
             catch (System.Exception ex)
             {
                 var result = new JObject();
-                result.Add("success", false);
-                result.Add("code", 1011);
-                result.Add("message", $"工伤联网智能重试处理异常: {ex.Message}");
-                result.Add("device", "江苏工伤联网接口");
+                result["success"] = false;
+                result["code"] = 1011;
+                result["message"] = $"工伤联网智能重试处理异常: {ex.Message}";
+                result["device"] = "江苏工伤联网接口";
                 return result;
             }
         }
@@ -986,10 +1135,10 @@ namespace ThCardReader
                 if (string.IsNullOrEmpty(originalMessageId))
                 {
                     var result = new JObject();
-                    result.Add("success", false);
-                    result.Add("code", 1012);
-                    result.Add("message", "originalMessageId参数不能为空");
-                    result.Add("device", "江苏工伤联网接口");
+                    result["success"] = false;
+                    result["code"] = 1012;
+                    result["message"] = "originalMessageId参数不能为空";
+                    result["device"] = "江苏工伤联网接口";
                     return result;
                 }
 
@@ -998,12 +1147,34 @@ namespace ThCardReader
             catch (System.Exception ex)
             {
                 var result = new JObject();
-                result.Add("success", false);
-                result.Add("code", 1013);
-                result.Add("message", $"工伤联网冲正处理异常: {ex.Message}");
-                result.Add("device", "江苏工伤联网接口");
+                result["success"] = false;
+                result["code"] = 1013;
+                result["message"] = $"工伤联网冲正处理异常: {ex.Message}";
+                result["device"] = "江苏工伤联网接口";
                 return result;
             }
         }
+
+        /// <summary>
+        /// 保留调试信息到结果中
+        /// </summary>
+        private void PreserveDebugInfo(JObject target, JObject source)
+        {
+            if (source["debug_entry_time"] != null) target["debug_entry_time"] = source["debug_entry_time"];
+            if (source["debug_method_entered"] != null) target["debug_method_entered"] = source["debug_method_entered"];
+            if (source["debug_stage"] != null) target["debug_stage"] = source["debug_stage"];
+            if (source["debug_timestamp"] != null) target["debug_timestamp"] = source["debug_timestamp"];
+            if (source["debug_step"] != null) target["debug_step"] = source["debug_step"];
+            if (source["debug_request"] != null) target["debug_request"] = source["debug_request"];
+            if (source["debug_action"] != null) target["debug_action"] = source["debug_action"];
+            if (source["debug_error"] != null) target["debug_error"] = source["debug_error"];
+            if (source["debug_stacktrace"] != null) target["debug_stacktrace"] = source["debug_stacktrace"];
+            if (source["debug_exception_details"] != null) target["debug_exception_details"] = source["debug_exception_details"];
+            if (source["debug_controller_step"] != null) target["debug_controller_step"] = source["debug_controller_step"];
+            if (source["debug_handler_entry"] != null) target["debug_handler_entry"] = source["debug_handler_entry"];
+            if (source["debug_handler_stage"] != null) target["debug_handler_stage"] = source["debug_handler_stage"];
+            if (source["debug_handler_complete"] != null) target["debug_handler_complete"] = source["debug_handler_complete"];
+            if (source["test_config"] != null) target["test_config"] = source["test_config"];
+        }
     }
 }

+ 7 - 6
ThCardReader/JiangSuWorkInjuryBusiness.cs

@@ -437,7 +437,7 @@ namespace ThCardReader
             string operatorName = "")
         {
             var result = new JObject();
-            
+            object inputData = null; // 新增变量,便于所有分支都能访问
             try
             {
                 // 1. 解析交易编号
@@ -482,7 +482,7 @@ namespace ThCardReader
                 }
                 
                 // 4. 构造标准输入参数
-                var inputData = BuildTransactionInput(transactionCode, businessParams, identifyMode, qrCodeInfo, operatorId, operatorName);
+                inputData = BuildTransactionInput(transactionCode, businessParams, identifyMode, qrCodeInfo, operatorId, operatorName);
                 string inputJson = JsonConvert.SerializeObject(inputData, Formatting.None);
                 
                 // 5. 调用底层DLL交易函数 - 增强异常处理
@@ -507,6 +507,7 @@ namespace ThCardReader
                     result["debug_transaction_step"] = "Si_Busi调用发生访问冲突";
                     result["debug_error"] = avEx.Message;
                     result["transactionCode"] = transactionCode;
+                    if (inputData != null) result["transformed_parameters"] = JToken.FromObject(inputData);
                     return result;
                 }
                 catch (System.DllNotFoundException dllEx)
@@ -519,6 +520,7 @@ namespace ThCardReader
                     result["debug_transaction_step"] = "Si_Busi调用时DLL未找到";
                     result["debug_error"] = dllEx.Message;
                     result["transactionCode"] = transactionCode;
+                    if (inputData != null) result["transformed_parameters"] = JToken.FromObject(inputData);
                     return result;
                 }
                 catch (System.EntryPointNotFoundException epEx)
@@ -531,6 +533,7 @@ namespace ThCardReader
                     result["debug_transaction_step"] = "Si_Busi函数入口点未找到";
                     result["debug_error"] = epEx.Message;
                     result["transactionCode"] = transactionCode;
+                    if (inputData != null) result["transformed_parameters"] = JToken.FromObject(inputData);
                     return result;
                 }
                 
@@ -538,12 +541,10 @@ namespace ThCardReader
                 string outputJson = outputBuffer.ToString();
                 result["debug_output_json"] = outputJson;
                 result = ParseTransactionOutput(outputJson, dllResult, transactionCode);
-                
                 // 7. 特殊交易后处理
                 PostProcessTransaction(transactionCode, result);
-                
+                if (inputData != null) result["transformed_parameters"] = JToken.FromObject(inputData);
                 LogInfo($"交易 {transactionName}({transactionCode}) 完成,结果: {result["success"]}");
-                
             }
             catch (Exception ex)
             {
@@ -553,7 +554,7 @@ namespace ThCardReader
                 result["device"] = "江苏工伤联网接口";
                 result["exception"] = ex.GetType().Name;
                 result["transactionName"] = transactionName;
-                
+                if (inputData != null) result["transformed_parameters"] = JToken.FromObject(inputData);
                 LogError($"交易 {transactionName} 异常: {ex.Message}");
             }
             

二進制
ThCardReader/bin/x86/Release/ThCardReader.exe


二進制
ThCardReader/bin/x86/Release/ThCardReader.pdb


二進制
ThCardReader/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache


二進制
ThCardReader/obj/x86/Release/ThCardReader.csproj.AssemblyReference.cache


+ 8 - 9
ThCardReader/obj/x86/Release/ThCardReader.csproj.FileListAbsolute.txt

@@ -31,15 +31,6 @@ E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardRe.96
 E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe
 E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardReader.pdb
 E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe.config
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.AssemblyReference.cache
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe.config
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.MainForm.resources
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.Properties.Resources.resources
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.UpdateForm.resources
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.GenerateResource.cache
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.CoreCompileInputs.cache
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe
-E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.pdb
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\ThCardReader.exe.config
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\ThCardReader.exe
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\ThCardReader.pdb
@@ -63,4 +54,12 @@ E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Newtons
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Net.Http.Formatting.xml
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Http.xml
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Http.Owin.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.AssemblyReference.cache
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.MainForm.resources
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.Properties.Resources.resources
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.UpdateForm.resources
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.GenerateResource.cache
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.CoreCompileInputs.cache
 E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardRe.969156AA.Up2Date
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.pdb

二進制
ThCardReader/obj/x86/Release/ThCardReader.exe


+ 0 - 27
ThCardReader/obj/x86/Release/ThCardReader.exe.config

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-    <startup> 
-        
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-5.2.8.0" newVersion="5.2.8.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-5.2.8.0" newVersion="5.2.8.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-    <loadFromRemoteSources enabled="true"/>
-  </runtime>
-</configuration>

二進制
ThCardReader/obj/x86/Release/ThCardReader.pdb


+ 183 - 0
test_parameter_return_simple.html

@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>传入参数返回功能验证</title>
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            margin: 20px;
+            background-color: #f5f5f5;
+        }
+        .container {
+            max-width: 800px;
+            margin: 0 auto;
+            background-color: white;
+            padding: 20px;
+            border-radius: 8px;
+            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+        }
+        h1 {
+            color: #333;
+            text-align: center;
+        }
+        button {
+            background-color: #007bff;
+            color: white;
+            border: none;
+            padding: 10px 20px;
+            border-radius: 5px;
+            cursor: pointer;
+            margin: 10px;
+            font-size: 14px;
+        }
+        button:hover {
+            background-color: #0056b3;
+        }
+        .result {
+            margin-top: 15px;
+            padding: 15px;
+            border-radius: 5px;
+            white-space: pre-wrap;
+            font-family: 'Courier New', monospace;
+            font-size: 12px;
+            max-height: 400px;
+            overflow-y: auto;
+        }
+        .success {
+            background-color: #d4edda;
+            border: 1px solid #c3e6cb;
+            color: #155724;
+        }
+        .error {
+            background-color: #f8d7da;
+            border: 1px solid #f5c6cb;
+            color: #721c24;
+        }
+        .info {
+            background-color: #d1ecf1;
+            border: 1px solid #bee5eb;
+            color: #0c5460;
+        }
+    </style>
+</head>
+<body>
+    <div class="container">
+        <h1>传入参数返回功能验证</h1>
+        
+        <p>此页面用于验证工伤接口是否正确返回传入的参数。</p>
+        
+        <button onclick="testInit()">测试初始化</button>
+        <button onclick="testHealth()">测试健康检查</button>
+        <button onclick="testError()">测试错误情况</button>
+        
+        <div id="result" class="result" style="display: none;"></div>
+    </div>
+
+    <script>
+        const API_BASE_URL = 'http://localhost:8321/api/entry/workinjury';
+        
+        async function callAPI(requestData) {
+            try {
+                const response = await fetch(API_BASE_URL, {
+                    method: 'POST',
+                    headers: {
+                        'Content-Type': 'application/json',
+                    },
+                    body: JSON.stringify(requestData)
+                });
+                
+                const result = await response.json();
+                return {
+                    success: true,
+                    status: response.status,
+                    data: result
+                };
+            } catch (error) {
+                return {
+                    success: false,
+                    error: error.message,
+                    data: null
+                };
+            }
+        }
+
+        function showResult(apiResult, originalRequest, testName) {
+            const element = document.getElementById('result');
+            element.style.display = 'block';
+            
+            if (!apiResult.success) {
+                element.className = 'result error';
+                element.textContent = `API调用失败: ${apiResult.error}`;
+                return;
+            }
+            
+            const result = apiResult.data;
+            const hasRequestParams = result.hasOwnProperty('request_parameters');
+            const paramsMatch = hasRequestParams && JSON.stringify(result.request_parameters) === JSON.stringify(originalRequest);
+            
+            let resultText = `=== ${testName} ===\n\n`;
+            resultText += `HTTP状态: ${apiResult.status}\n`;
+            resultText += `API成功: ${result.success}\n`;
+            resultText += `返回代码: ${result.code}\n`;
+            resultText += `消息: ${result.message}\n\n`;
+            
+            resultText += `=== 参数返回检查 ===\n`;
+            resultText += `request_parameters字段存在: ${hasRequestParams ? '✅ 是' : '❌ 否'}\n`;
+            resultText += `参数内容匹配: ${paramsMatch ? '✅ 是' : '❌ 否'}\n\n`;
+            
+            resultText += `=== 传入的原始参数 ===\n`;
+            resultText += JSON.stringify(originalRequest, null, 2);
+            resultText += `\n\n`;
+            
+            resultText += `=== 返回的request_parameters ===\n`;
+            if (hasRequestParams) {
+                resultText += JSON.stringify(result.request_parameters, null, 2);
+            } else {
+                resultText += "undefined (字段不存在)";
+            }
+            
+            element.className = hasRequestParams && paramsMatch ? 'result success' : 'result error';
+            element.textContent = resultText;
+        }
+
+        async function testInit() {
+            const requestData = {
+                action: "init",
+                timestamp: new Date().toISOString(),
+                testField: "测试值",
+                nestedData: {
+                    key1: "value1",
+                    key2: "value2"
+                }
+            };
+            
+            const result = await callAPI(requestData);
+            showResult(result, requestData, '初始化测试');
+        }
+
+        async function testHealth() {
+            const requestData = {
+                action: "health",
+                timestamp: new Date().toISOString(),
+                checkType: "full"
+            };
+            
+            const result = await callAPI(requestData);
+            showResult(result, requestData, '健康检查测试');
+        }
+
+        async function testError() {
+            const requestData = {
+                action: "invalid_action",
+                timestamp: new Date().toISOString(),
+                errorTest: "测试错误情况"
+            };
+            
+            const result = await callAPI(requestData);
+            showResult(result, requestData, '错误情况测试');
+        }
+    </script>
+</body>
+</html> 

+ 434 - 0
test_request_parameters.html

@@ -0,0 +1,434 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>传入参数返回测试</title>
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            margin: 20px;
+            background-color: #f5f5f5;
+        }
+        .container {
+            max-width: 1000px;
+            margin: 0 auto;
+            background-color: white;
+            padding: 20px;
+            border-radius: 8px;
+            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+        }
+        h1 {
+            color: #333;
+            text-align: center;
+        }
+        .test-section {
+            margin-bottom: 30px;
+            padding: 20px;
+            border: 1px solid #ddd;
+            border-radius: 5px;
+            background-color: #fafafa;
+        }
+        .test-section h3 {
+            color: #555;
+            margin-top: 0;
+        }
+        button {
+            background-color: #007bff;
+            color: white;
+            border: none;
+            padding: 10px 20px;
+            border-radius: 5px;
+            cursor: pointer;
+            margin: 5px;
+            font-size: 14px;
+        }
+        button:hover {
+            background-color: #0056b3;
+        }
+        .result {
+            margin-top: 15px;
+            padding: 15px;
+            border-radius: 5px;
+            white-space: pre-wrap;
+            font-family: 'Courier New', monospace;
+            font-size: 12px;
+            max-height: 600px;
+            overflow-y: auto;
+        }
+        .success {
+            background-color: #d4edda;
+            border: 1px solid #c3e6cb;
+            color: #155724;
+        }
+        .error {
+            background-color: #f8d7da;
+            border: 1px solid #f5c6cb;
+            color: #721c24;
+        }
+        .info {
+            background-color: #d1ecf1;
+            border: 1px solid #bee5eb;
+            color: #0c5460;
+        }
+        .parameter-check {
+            background-color: #fff3cd;
+            border: 1px solid #ffeaa7;
+            color: #856404;
+            padding: 10px;
+            margin: 10px 0;
+            border-radius: 3px;
+        }
+    </style>
+</head>
+<body>
+    <div class="container">
+        <h1>传入参数返回测试</h1>
+        
+        <div class="test-section">
+            <h3>测试说明</h3>
+            <p>此页面用于测试工伤接口是否正确返回传入的参数。主要检查:</p>
+            <ul>
+                <li><strong>request_parameters</strong> 字段是否存在</li>
+                <li>传入的参数是否完整返回</li>
+                <li>参数内容是否与发送时一致</li>
+            </ul>
+        </div>
+
+        <div class="test-section">
+            <h3>初始化测试</h3>
+            <p>测试初始化接口的参数返回:</p>
+            <button onclick="testInit()">测试初始化</button>
+            <button onclick="testInitWithConfig()">测试初始化(带配置)</button>
+            <button onclick="testInitTestMode()">测试初始化(测试模式)</button>
+            <div id="initResult" class="result" style="display: none;"></div>
+        </div>
+
+        <div class="test-section">
+            <h3>交易测试</h3>
+            <p>测试交易接口的参数返回:</p>
+            <button onclick="testTransaction()">测试交易</button>
+            <div id="transactionResult" class="result" style="display: none;"></div>
+        </div>
+
+        <div class="test-section">
+            <h3>健康检查测试</h3>
+            <p>测试健康检查接口的参数返回:</p>
+            <button onclick="testHealth()">测试健康检查</button>
+            <div id="healthResult" class="result" style="display: none;"></div>
+        </div>
+
+        <div class="test-section">
+            <h3>批量测试</h3>
+            <p>批量测试所有接口的参数返回:</p>
+            <button onclick="runAllTests()">运行所有测试</button>
+            <div id="allTestsResult" class="result" style="display: none;"></div>
+        </div>
+    </div>
+
+    <script>
+        const API_BASE_URL = 'http://localhost:8321/api/entry/workinjury';
+        
+        // 通用API调用函数
+        async function callAPI(requestData) {
+            try {
+                const response = await fetch(API_BASE_URL, {
+                    method: 'POST',
+                    headers: {
+                        'Content-Type': 'application/json',
+                    },
+                    body: JSON.stringify(requestData)
+                });
+                
+                const result = await response.json();
+                return {
+                    success: true,
+                    status: response.status,
+                    data: result
+                };
+            } catch (error) {
+                return {
+                    success: false,
+                    error: error.message,
+                    data: null
+                };
+            }
+        }
+
+        // 检查传入参数是否正确返回
+        function checkRequestParameters(apiResult, originalRequest, testName) {
+            const result = apiResult.data;
+            
+            // 检查request_parameters字段是否存在
+            if (!result.hasOwnProperty('request_parameters')) {
+                return {
+                    testName: testName,
+                    success: false,
+                    message: "❌ request_parameters字段缺失",
+                    details: "返回结果中没有request_parameters字段"
+                };
+            }
+            
+            const returnedParams = result.request_parameters;
+            
+            // 如果原始请求为null,检查返回的也是null
+            if (originalRequest === null) {
+                if (returnedParams === null) {
+                    return {
+                        testName: testName,
+                        success: true,
+                        message: "✅ 参数返回正确(null)",
+                        details: "原始请求为null,返回也为null"
+                    };
+                } else {
+                    return {
+                        testName: testName,
+                        success: false,
+                        message: "❌ 参数返回错误",
+                        details: "原始请求为null,但返回的不是null"
+                    };
+                }
+            }
+            
+            // 比较参数内容
+            const originalStr = JSON.stringify(originalRequest, null, 2);
+            const returnedStr = JSON.stringify(returnedParams, null, 2);
+            
+            if (originalStr === returnedStr) {
+                return {
+                    testName: testName,
+                    success: true,
+                    message: "✅ 参数返回完全一致",
+                    details: "传入的参数与返回的参数完全匹配"
+                };
+            } else {
+                return {
+                    testName: testName,
+                    success: false,
+                    message: "❌ 参数返回不一致",
+                    details: `原始参数: ${originalStr}\n返回参数: ${returnedStr}`
+                };
+            }
+        }
+
+        // 显示结果
+        function showResult(elementId, apiResult, originalRequest, testName) {
+            const element = document.getElementById(elementId);
+            element.style.display = 'block';
+            
+            if (!apiResult.success) {
+                element.className = 'result error';
+                element.textContent = `API调用失败: ${apiResult.error}`;
+                return;
+            }
+            
+            const paramCheck = checkRequestParameters(apiResult, originalRequest, testName);
+            
+            let resultText = `=== ${testName} ===\n\n`;
+            resultText += `HTTP状态: ${apiResult.status}\n`;
+            resultText += `API成功: ${apiResult.data.success}\n`;
+            resultText += `返回代码: ${apiResult.data.code}\n`;
+            resultText += `消息: ${apiResult.data.message}\n\n`;
+            
+            resultText += `=== 参数返回检查 ===\n`;
+            resultText += `结果: ${paramCheck.message}\n`;
+            resultText += `详情: ${paramCheck.details}\n\n`;
+            
+            resultText += `=== 传入的原始参数 ===\n`;
+            resultText += JSON.stringify(originalRequest, null, 2);
+            resultText += `\n\n`;
+            
+            resultText += `=== 返回的request_parameters ===\n`;
+            if (apiResult.data.request_parameters !== undefined) {
+                resultText += JSON.stringify(apiResult.data.request_parameters, null, 2);
+            } else {
+                resultText += "undefined (字段不存在)";
+            }
+            resultText += `\n\n`;
+            
+            resultText += `=== 完整响应数据 ===\n`;
+            resultText += JSON.stringify(apiResult.data, null, 2);
+            
+            element.className = paramCheck.success ? 'result success' : 'result error';
+            element.textContent = resultText;
+        }
+
+        // 测试初始化
+        async function testInit() {
+            const requestData = {
+                action: "init",
+                timestamp: new Date().toISOString()
+            };
+            
+            const result = await callAPI(requestData);
+            showResult('initResult', result, requestData, '初始化测试');
+        }
+
+        // 测试初始化(带配置)
+        async function testInitWithConfig() {
+            const requestData = {
+                action: "init",
+                timestamp: new Date().toISOString(),
+                config: {
+                    fixmedinsCode: "SQ201348",
+                    fixmedinsName: "沭阳铭和医院",
+                    interfaceVersion: "V2.1",
+                    customField: "自定义字段值"
+                }
+            };
+            
+            const result = await callAPI(requestData);
+            showResult('initResult', result, requestData, '初始化测试(带配置)');
+        }
+
+        // 测试初始化(测试模式)
+        async function testInitTestMode() {
+            const requestData = {
+                action: "init",
+                timestamp: new Date().toISOString(),
+                test_mode: "immediate_return",
+                config: {
+                    fixmedinsCode: "TEST001",
+                    fixmedinsName: "测试医院",
+                    interfaceVersion: "V1.0"
+                },
+                extraData: {
+                    testField: "测试值",
+                    nestedObject: {
+                        key1: "value1",
+                        key2: "value2"
+                    }
+                }
+            };
+            
+            const result = await callAPI(requestData);
+            showResult('initResult', result, requestData, '初始化测试(测试模式)');
+        }
+
+        // 测试交易
+        async function testTransaction() {
+            const requestData = {
+                action: "transaction",
+                timestamp: new Date().toISOString(),
+                transactionName: "SignIn",
+                identifyMode: "1",
+                businessParams: {
+                    operatorId: "001",
+                    operatorName: "测试操作员"
+                },
+                qrCodeInfo: "测试二维码信息",
+                operatorId: "001",
+                operatorName: "测试操作员"
+            };
+            
+            const result = await callAPI(requestData);
+            showResult('transactionResult', result, requestData, '交易测试');
+        }
+
+        // 测试健康检查
+        async function testHealth() {
+            const requestData = {
+                action: "health",
+                timestamp: new Date().toISOString(),
+                checkType: "full",
+                includeDetails: true
+            };
+            
+            const result = await callAPI(requestData);
+            showResult('healthResult', result, requestData, '健康检查测试');
+        }
+
+        // 运行所有测试
+        async function runAllTests() {
+            const element = document.getElementById('allTestsResult');
+            element.style.display = 'block';
+            element.className = 'result info';
+            element.textContent = '正在运行所有测试...';
+            
+            const tests = [
+                {
+                    name: '初始化',
+                    request: {
+                        action: "init",
+                        timestamp: new Date().toISOString()
+                    }
+                },
+                {
+                    name: '初始化(带配置)',
+                    request: {
+                        action: "init",
+                        timestamp: new Date().toISOString(),
+                        config: {
+                            fixmedinsCode: "SQ201348",
+                            fixmedinsName: "沭阳铭和医院",
+                            interfaceVersion: "V2.1"
+                        }
+                    }
+                },
+                {
+                    name: '初始化(测试模式)',
+                    request: {
+                        action: "init",
+                        timestamp: new Date().toISOString(),
+                        test_mode: "immediate_return",
+                        config: {
+                            fixmedinsCode: "TEST001",
+                            fixmedinsName: "测试医院"
+                        }
+                    }
+                },
+                {
+                    name: '健康检查',
+                    request: {
+                        action: "health",
+                        timestamp: new Date().toISOString()
+                    }
+                },
+                {
+                    name: '统计信息',
+                    request: {
+                        action: "stats",
+                        timestamp: new Date().toISOString()
+                    }
+                },
+                {
+                    name: '签到状态',
+                    request: {
+                        action: "signin_status",
+                        timestamp: new Date().toISOString()
+                    }
+                }
+            ];
+            
+            let allResults = `=== 批量参数返回测试结果 ===\n\n`;
+            let successCount = 0;
+            let totalCount = tests.length;
+            
+            for (const test of tests) {
+                allResults += `--- ${test.name} ---\n`;
+                
+                const result = await callAPI(test.request);
+                const paramCheck = checkRequestParameters(result, test.request, test.name);
+                
+                allResults += `API状态: ${result.success ? '✅ 成功' : '❌ 失败'}\n`;
+                allResults += `参数返回: ${paramCheck.message}\n`;
+                
+                if (result.success && paramCheck.success) {
+                    successCount++;
+                }
+                
+                allResults += `\n`;
+            }
+            
+            allResults += `=== 总结 ===\n`;
+            allResults += `总测试数: ${totalCount}\n`;
+            allResults += `成功数: ${successCount}\n`;
+            allResults += `失败数: ${totalCount - successCount}\n`;
+            allResults += `成功率: ${((successCount / totalCount) * 100).toFixed(1)}%\n`;
+            
+            element.className = successCount === totalCount ? 'result success' : 'result error';
+            element.textContent = allResults;
+        }
+    </script>
+</body>
+</html> 

+ 2 - 2
test_workinjury_interface.html

@@ -231,7 +231,7 @@
                     logPath: "logs/workinjury/"
                 }
             },
-            signin: {
+            SignIn: {
                 action: "transaction",
                 transactionName: "SignIn",
                 identifyMode: "1",
@@ -276,7 +276,7 @@
         
                  // 加载签到参数
          function loadSignInParams() {
-             inputArea.value = JSON.stringify(defaultParams.signin, null, 2);
+             inputArea.value = JSON.stringify(defaultParams.SignIn, null, 2);
              updateStatus('已加载签到参数 - 操作员登录工伤系统');
              updateCurrentFunction('操作员签到');
          }

+ 3 - 3
workinjury_test_interface.html

@@ -376,7 +376,7 @@
                 
                 <div class="function-group">
                     <h3>👤 认证类</h3>
-                    <button class="function-btn" onclick="loadFunction('signin', event)">操作员签到</button>
+                    <button class="function-btn" onclick="loadFunction('SignIn', event)">操作员签到</button>
                     <button class="function-btn" onclick="loadFunction('signout', event)">操作员签退</button>
                     <button class="function-btn" onclick="loadFunction('signin_status', event)">签到状态</button>
                 </div>
@@ -531,7 +531,7 @@
                     logPath: "logs/workinjury/"
                 }
             },
-            signin: {
+            SignIn: {
                 action: "transaction",
                 transactionName: "SignIn",
                 identifyMode: "1",
@@ -778,7 +778,7 @@
         function getFunctionDisplayName(functionName) {
             const displayNames = {
                 init: "系统初始化",
-                signin: "操作员签到", 
+                SignIn: "操作员签到", 
                 signout: "操作员签退",
                 readcard: "工伤读卡",
                 register: "患者登记",