|
@@ -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"];
|
|
|
+ }
|
|
|
}
|
|
|
}
|