diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java index a39ad946..0b8939bb 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java @@ -23,11 +23,11 @@ public interface ErpExternalApi { @PostMapping(PREFIX + "/submit") @Operation(summary = "erp数据提交") - HashMap submitDataToErp(@Valid @RequestBody ErpSubmitReqDTO reqDTO); + Map submitDataToErp(@Valid @RequestBody ErpSubmitReqDTO reqDTO); @PostMapping(PREFIX + "/query") @Operation(summary = "erp数据查询") - HashMap queryDataToErp(@Valid @RequestBody ErpQueryReqDTO reqDTO); + Map queryDataToErp(@Valid @RequestBody ErpQueryReqDTO reqDTO); @PostMapping(PREFIX + "/queryProductiveVersion") @Operation(summary = "生产版本数据查询") diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java index 39ca91f0..637ca540 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java @@ -24,14 +24,19 @@ public class ErpSubmitReqDTO { */ @Schema(description = "接口编号,必须,参见RFC功能列表,可调用接口编号范围051-900") private String funcnr; + @Schema(description = "调用系统业务单据编号,必须,在外部系统唯一,用于关联") private String bskey; + @Schema(description = "SAP系统ID, 必须") private String usrid; + @Schema(description = "源调用系统ID,必须") private String usrnm; -// @Schema(description = "签名,uuid+srcsys+密码,MD5 32位小写签名,密码另行约定") -// private String sign; + + @Schema(description = "签名,uuid+srcsys+密码,MD5 32位小写签名,密码另行约定") + private String sign; + @Schema(description = "具体参数,参见RFC功能列表") private Map req; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java index 682f1236..7a9a073f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java @@ -40,12 +40,12 @@ public class ErpExternalApiImpl implements ErpExternalApi { @Override - public HashMap submitDataToErp(ErpSubmitReqDTO reqDTO) { + public Map submitDataToErp(ErpSubmitReqDTO reqDTO) { return erpConfig.pushDataToErp(reqDTO); } @Override - public HashMap queryDataToErp(ErpQueryReqDTO reqDTO) { + public Map queryDataToErp(ErpQueryReqDTO reqDTO) { String funcnr = reqDTO.getFuncnr(); Map req = reqDTO.getReq(); return erpConfig.fetchDataFromERP(funcnr, req); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBillMainServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBillMainServiceImpl.java index 5b89d904..6914dfa6 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBillMainServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBillMainServiceImpl.java @@ -136,7 +136,7 @@ public class ErpBillMainServiceImpl implements ErpBillMainService { // 抽取重复代码:提交 ERP 并记录日志 private String submitToErp(ErpSubmitReqDTO reqDTO) { - HashMap response = erpExternalApi.submitDataToErp(reqDTO); + Map response = erpExternalApi.submitDataToErp(reqDTO); return response.get("resStr"); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java index 3f1ce853..b8585886 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java @@ -14,6 +14,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.erp.enums.ErrorCodeConstants.*; @@ -31,7 +32,7 @@ public class ErpConfig { /** * 调用ERP接口获取erp数据 */ - public HashMap fetchDataFromERP(String funcnr, Map req) { + public Map fetchDataFromERP(String funcnr, Map req) { try { // 构建完整URL String url = "http://" + erpAddress + "/api/rfc/get"; @@ -60,7 +61,7 @@ public class ErpConfig { throw exception(ERP_NOT_EXISTS); } - HashMap resMap = new HashMap<>(); + Map resMap = new ConcurrentHashMap<>(); JSONObject jsonResponse = JSON.parseObject(responseBody); if (jsonResponse == null) { throw exception(ERP_NOT_JSON_EXISTS); @@ -94,7 +95,7 @@ public class ErpConfig { /** * 调用ERP接口更新erp数据 */ - public HashMap pushDataToErp(ErpSubmitReqDTO reqDTO) { + public Map pushDataToErp(ErpSubmitReqDTO reqDTO) { try { // 构建完整URL String url = "http://" + erpAddress + "/api/rfc/post"; @@ -108,15 +109,14 @@ public class ErpConfig { requestBody.put("bskey", reqDTO.getBskey()); requestBody.put("usrid", reqDTO.getUsrid()); requestBody.put("usrnm", reqDTO.getUsrnm()); - //todo 密码另行约定 -// requestBody.put("sign", StrUtil.(uuid + sapsys + "密码另行约定")); + // todo 密码另行约定 + //requestBody.put("sign", StrUtil.(uuid + sapsys + "密码另行约定")); if (reqDTO.getReq() != null) { requestBody.put("req", reqDTO.getReq()); } // 设置请求头 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); - // 创建HTTP请求实体 HttpEntity requestEntity = new HttpEntity<>(requestBody.toJSONString(), headers); @@ -135,7 +135,7 @@ public class ErpConfig { throw exception(ERP_NOT_JSON_EXISTS); } - HashMap resMap = new HashMap<>(); + Map resMap = new ConcurrentHashMap<>(); boolean succeed = jsonResponse.getBoolean("succeed"); JSONObject data = jsonResponse.getJSONObject("data"); if (data == null) {