工伤接口切换说明.md 5.7 KB

工伤接口切换说明

当前状态

当前工伤接口处于测试状态,使用模拟接口进行开发和测试。

切换位置

1. URL切换位置

文件: src/main/java/thyyxxk/sizyfeeoprnsystm/service/ExecService.java

当前配置(测试状态):

// 模拟接口地址(当前使用)
private static final String WORK_INJURY_API_URL = "http://130.150.161.72:9206/thyy/api/public/injury/workinjury";
// 真实接口地址(注释掉,需要时手动切换)
// private static final String WORK_INJURY_API_URL = "http://localhost:8321/api/entry/workinjury";

切换到真实状态:

// 模拟接口地址(注释掉,需要时手动切换)
// private static final String WORK_INJURY_API_URL = "http://130.150.161.72:9206/thyy/api/public/injury/workinjury";
// 真实接口地址(当前使用)
private static final String WORK_INJURY_API_URL = "http://localhost:8321/api/entry/workinjury";

2. 返回结果处理切换位置

文件: src/main/java/thyyxxk/sizyfeeoprnsystm/service/SiZyFeeService.java

当前配置(测试状态):

// 模拟接口处理(当前使用)
if (result.containsKey("data") && result.getJSONObject("data").containsKey("data")) {
    JSONObject innerData = result.getJSONObject("data").getJSONObject("data");
    return innerData != null ? innerData.getInteger(RESULT_CODE) : null;
}
// 真实接口处理(注释掉,需要时手动切换)
// else if (result.containsKey("data")) {
//     JSONObject data = result.getJSONObject("data");
//     return data != null ? data.getInteger(RESULT_CODE) : null;
// }

切换到真实状态:

// 模拟接口处理(注释掉,需要时手动切换)
// if (result.containsKey("data") && result.getJSONObject("data").containsKey("data")) {
//     JSONObject innerData = result.getJSONObject("data").getJSONObject("data");
//     return innerData != null ? innerData.getInteger(RESULT_CODE) : null;
// }
// 真实接口处理(当前使用)
else if (result.containsKey("data")) {
    JSONObject data = result.getJSONObject("data");
    return data != null ? data.getInteger(RESULT_CODE) : null;
}

切换步骤

从测试状态切换到真实状态

  1. 修改URL: 在 ExecService.java 中注释掉模拟接口URL,取消注释真实接口URL
  2. 修改返回处理: 在 SiZyFeeService.java 中注释掉模拟接口处理逻辑,取消注释真实接口处理逻辑
  3. 重启应用: 确保配置生效

从真实状态切换到测试状态

  1. 修改URL: 在 ExecService.java 中注释掉真实接口URL,取消注释模拟接口URL
  2. 修改返回处理: 在 SiZyFeeService.java 中注释掉真实接口处理逻辑,取消注释模拟接口处理逻辑
  3. 重启应用: 确保配置生效

接口返回结构对比

测试接口返回结构

{
  "code": 1,
  "data": {
    "success": true,
    "code": 200,
    "message": "交易成功",
    "device": "江苏工伤联网接口(模拟)",
    "transactionCode": "2201",
    "data": {
      "infcode": "0",
      "inf_refmsgid": "320101202007301235414321",
      "refmsg_time": "20200730123541",
      "respond_time": "20200730123539",
      "err_msg": "",
      "warn_msg": "",
      "output": {}
    }
  },
  "message": "success"
}

真实接口返回结构

{
  "success": true,
  "code": 200,
  "message": "交易成功",
  "device": "江苏工伤联网接口",
  "transactionCode": "2201",
  "data": {
    "infcode": "0",
    "inf_refmsgid": "320101202007301235414321",
    "refmsg_time": "20200730123541",
    "respond_time": "20200730123539",
    "err_msg": "",
    "warn_msg": "",
    "output": {}
  }
}

支持的接口

2204 - 工伤费用上传

  • 测试状态: 使用模拟接口URL和双层嵌套处理逻辑
  • 真实状态: 使用真实接口URL和单层嵌套处理逻辑

2205 - 工伤费用撤销

  • 测试状态: 使用模拟接口URL和双层嵌套处理逻辑
  • 真实状态: 使用真实接口URL和单层嵌套处理逻辑

2206 - 工伤预结算

  • 测试状态: 使用模拟接口URL和双层嵌套处理逻辑
  • 真实状态: 使用真实接口URL和单层嵌套处理逻辑

注意事项

  1. 同步切换: URL和返回处理逻辑必须同时切换,保持一致性
  2. 重启应用: 修改配置后需要重启应用才能生效
  3. 测试验证: 切换后建议进行接口测试,确保功能正常
  4. 日志监控: 切换后注意观察日志,确保接口调用正常
  5. 日志记录: 工伤接口使用 transformed_parameters 中的信息进行日志记录

日志记录说明

工伤接口日志记录

工伤接口调用成功后,会在 t_si_log 表中记录详细的调用日志,包括:

  • 请求参数: 从 transformed_parameters 中获取 infnomsgidopter 等信息
  • 响应结果: 完整的接口返回结果
  • 处理状态: 接口调用的成功/失败状态
  • 患者信息: 住院号、住院次数、账页号等

日志记录位置

  • 2204 工伤费用上传: executeWorkInjuryUploadFees() 方法中
  • 2205 工伤费用撤销: revokeWorkInjuryUploadFees() 方法中
  • 2206 工伤预结算: workInjuryPreSettlement() 方法中

日志字段说明

字段 来源 说明
infno transformed_parameters.infno 接口功能号
msgid transformed_parameters.msgid 消息ID
opter transformed_parameters.opter 操作员ID
insuplc_admdvs 固定值 "" 工伤接口不需要医保区划
body logInput.toJSONString() 请求体
result result.toJSONString() 响应体
infcode extractWorkInjuryResultCode(result) 返回代码