# 工伤接口切换说明 ## 当前状态 **当前工伤接口处于测试状态**,使用模拟接口进行开发和测试。 ## 切换位置 ### 1. URL切换位置 **文件**: `src/main/java/thyyxxk/sizyfeeoprnsystm/service/ExecService.java` **当前配置(测试状态)**: ```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"; ``` **切换到真实状态**: ```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"; ``` ### 2. 返回结果处理切换位置 **文件**: `src/main/java/thyyxxk/sizyfeeoprnsystm/service/SiZyFeeService.java` **当前配置(测试状态)**: ```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; // } ``` **切换到真实状态**: ```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; } ``` ## 切换步骤 ### 从测试状态切换到真实状态 1. **修改URL**: 在 `ExecService.java` 中注释掉模拟接口URL,取消注释真实接口URL 2. **修改返回处理**: 在 `SiZyFeeService.java` 中注释掉模拟接口处理逻辑,取消注释真实接口处理逻辑 3. **重启应用**: 确保配置生效 ### 从真实状态切换到测试状态 1. **修改URL**: 在 `ExecService.java` 中注释掉真实接口URL,取消注释模拟接口URL 2. **修改返回处理**: 在 `SiZyFeeService.java` 中注释掉真实接口处理逻辑,取消注释模拟接口处理逻辑 3. **重启应用**: 确保配置生效 ## 接口返回结构对比 ### 测试接口返回结构 ```json { "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" } ``` ### 真实接口返回结构 ```json { "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` 中获取 `infno`、`msgid`、`opter` 等信息 - **响应结果**: 完整的接口返回结果 - **处理状态**: 接口调用的成功/失败状态 - **患者信息**: 住院号、住院次数、账页号等 ### 日志记录位置 - **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)` | 返回代码 |