优化封装post提交asp

This commit is contained in:
liss
2025-09-24 16:05:09 +08:00
parent d49d5ae37d
commit 071790f01a

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.erp.common.conf;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -144,50 +145,50 @@ public class ErpConfig {
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
return postResult(response);
// 解析响应结果
String responseBody = response.getBody();
if (responseBody.isEmpty()) {
throw new RuntimeException("ERP接口返回结果为空");
}
JSONObject jsonResponse = JSON.parseObject(responseBody);
if (jsonResponse == null) {
throw new RuntimeException("ERP接口响应无法解析为JSON");
}
return postResult(jsonResponse);
} catch (Exception e) {
log.error("调用ERP RFC接口失败:" + e.getMessage(), e);
return null;
throw new RuntimeException("调用ERP RFC接口失败: " + e);
}
}
// POST请求处理
public HashMap<String, String> postResult(ResponseEntity<String> result) {
public HashMap<String, String> postResult(JSONObject result) {
HashMap<String, String> resMap = new HashMap<>();
String E_RSLT = null;
boolean succeed = result.getHeaders().containsKey("succeed");
// JSONObject data = result.getBody("data");
// if (data == null) {
// throw new RuntimeException("SAP接口返回值为空," + result.getMsg());
// } else if (succeed && "S".equals(data.getString("E_FLAG"))) {
// String E_FLAG = data.getString("E_FLAG");
// String flag = "S";
// String E_RESP = data.getString("E_RESP");
// String E_MSG = data.getString("ET_MSG");
//// log.info("请求SAP成功 E_RESP{}", E_RESP);
//// log.info("请求SAP成功 E_MSG{}", E_MSG);
// resMap.put("E_RESP", E_RESP);
// resMap.put("resStr", E_MSG);
// resMap.put("flag", flag);
// return resMap;
// } else if (!succeed && "E".equals(data.getString("E_FLAG"))) {
// String E_FLAG = data.getString("E_FLAG");
// String flag = "E";
// String E_RESP = data.getString("E_DATA");
// String E_MSG = data.getString("ET_MSG");
// if (StrUtil.isBlank(E_MSG)) {
// E_MSG = result.getMsg();
// E_MSG = "[{\"MESSAGE\":\"" + result.getMsg() + "\"}]";
// }
// resMap.put("resStr", E_MSG);
// resMap.put("flag", flag);
//// log.info("请求SAP失败 E_MSG{}", E_MSG);
// return resMap;
// } else {
// throw new RuntimeException("SAP接口异常," + result);
// }
boolean succeed = result.getBoolean("succeed");
JSONObject data = result.getJSONObject("data");
if (data == null) {
throw new RuntimeException("SAP接口返回值为空," + result.getString("msg"));
} else if (succeed && "S".equals(data.getString("E_FLAG"))) {
String flag = "S";
String E_RESP = data.getString("E_RESP");
String E_MSG = data.getString("ET_MSG");
resMap.put("E_RESP", E_RESP);
resMap.put("resStr", E_MSG);
resMap.put("flag", flag);
return resMap;
} else if (!succeed && "E".equals(data.getString("E_FLAG"))) {
String flag = "E";
String E_MSG = data.getString("ET_MSG");
if (StrUtil.isBlank(E_MSG)) {
E_MSG = result.getString("msg");
}
resMap.put("resStr", E_MSG);
resMap.put("flag", flag);
return resMap;
} else {
throw new RuntimeException("SAP接口异常," + result);
}
}