# 工伤接口切换说明 ## 概述 工伤接口支持在模拟接口和真实接口之间进行切换,通过注释代码的方式实现手动切换。 ## 切换位置 ### 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"; ``` **切换步骤**: 1. 注释掉当前使用的URL 2. 取消注释要使用的URL ### 2. 返回结果处理切换 **文件位置**: `src/main/java/thyyxxk/sizyfeeoprnsystm/service/SiZyFeeService.java` **切换方法**: 在以下方法中,通过注释切换不同的处理逻辑: #### 2.1 工伤接口返回结果代码提取 ```java private Integer extractWorkInjuryResultCode(JSONObject result) { // 模拟接口处理(注释掉,需要时手动切换) if (result.containsKey("data") && result.getJSONObject("data").containsKey("data")) { return result.getJSONObject("data").getJSONObject("data").getInteger(RESULT_CODE); } // 真实接口处理(当前使用) else if (result.containsKey("data")) { return result.getJSONObject("data").getInteger(RESULT_CODE); } return null; } ``` #### 2.2 工伤费用上传返回结果提取 ```java private JSONArray extractWorkInjuryUploadResult(JSONObject result) { // 模拟接口处理(注释掉,需要时手动切换) if (result.containsKey("data") && result.getJSONObject("data").containsKey("data")) { return result.getJSONObject("data").getJSONObject("data").getJSONArray(OUTPUT); } // 真实接口处理(当前使用) else if (result.containsKey("data")) { return result.getJSONObject("data").getJSONArray(OUTPUT); } return new JSONArray(); } ``` #### 2.3 工伤预结算返回结果提取 ```java private JSONObject extractWorkInjuryPreSettlementResult(JSONObject result) { // 模拟接口处理(注释掉,需要时手动切换) if (result.containsKey("data") && result.getJSONObject("data").containsKey("data")) { return result.getJSONObject("data").getJSONObject("data").getJSONObject(OUTPUT); } // 真实接口处理(当前使用) else if (result.containsKey("data")) { return result.getJSONObject("data").getJSONObject(OUTPUT); } return new JSONObject(); } ``` #### 2.4 工伤接口错误信息提取 ```java private String extractWorkInjuryErrorMessage(JSONObject result) { // 模拟接口处理(注释掉,需要时手动切换) if (result.containsKey("data") && result.getJSONObject("data").containsKey("data")) { return result.getJSONObject("data").getJSONObject("data").getString(ERROR_MESSAGE); } // 真实接口处理(当前使用) else if (result.containsKey("data")) { return result.getJSONObject("data").getString(ERROR_MESSAGE); } return "未知错误"; } ``` ## 接口返回结构对比 ### 模拟接口返回结构 ```json { "code": 1, "data": { "success": true, "code": 200, "message": "交易成功", "device": "江苏工伤联网接口(模拟)", "transactionCode": "2204", "data": { "infcode": "0", "inf_refmsgid": "xxx", "err_msg": "", "output": {} } } } ``` ### 真实接口返回结构 ```json { "success": true, "code": 200, "message": "交易成功", "device": "江苏工伤联网接口", "transactionCode": "2204", "data": { "infcode": "0", "inf_refmsgid": "xxx", "err_msg": "", "output": {} } } ``` ## 切换步骤 ### 从真实接口切换到模拟接口 1. **修改URL**: ```java // 注释掉真实接口URL // private static final String WORK_INJURY_API_URL = "http://localhost:8321/api/entry/workinjury"; // 取消注释模拟接口URL private static final String WORK_INJURY_API_URL = "http://130.150.161.72:9206/thyy/api/public/injury/workinjury"; ``` 2. **修改返回结果处理**: 在每个提取方法中,注释掉真实接口处理逻辑,取消注释模拟接口处理逻辑。 ### 从模拟接口切换到真实接口 1. **修改URL**: ```java // 注释掉模拟接口URL // private static final String WORK_INJURY_API_URL = "http://130.150.161.72:9206/thyy/api/public/injury/workinjury"; // 取消注释真实接口URL private static final String WORK_INJURY_API_URL = "http://localhost:8321/api/entry/workinjury"; ``` 2. **修改返回结果处理**: 在每个提取方法中,注释掉模拟接口处理逻辑,取消注释真实接口处理逻辑。 ## 注意事项 1. **切换时需要同时修改URL和返回结果处理逻辑** 2. **切换后需要重新编译和部署** 3. **建议在测试环境先验证切换是否正确** 4. **切换前请备份当前配置** ## 支持的接口 - **2204**: 工伤费用上传 - **2205**: 工伤费用撤销 - **2206**: 工伤预结算 所有接口都支持模拟接口和真实接口的切换。