|
@@ -34,7 +34,8 @@ public class MingleiPortServiceImpl implements MingleiPortService {
|
|
|
private static final String HOST_ACCOUNT = "tiptop";
|
|
private static final String HOST_ACCOUNT = "tiptop";
|
|
|
private static final String HOST_TIMESTAMP = "20260807164700004";
|
|
private static final String HOST_TIMESTAMP = "20260807164700004";
|
|
|
private static final String SERVICE_PRODUCT = "T100";
|
|
private static final String SERVICE_PRODUCT = "T100";
|
|
|
- private static final String SERVICE_NAME = "ProcurementApprovalPrice";
|
|
|
|
|
|
|
+ static final String SUPPLIER_PRICE_APPROVAL_SERVICE_NAME = "ProcurementApprovalPrice";
|
|
|
|
|
+ static final String DINGTALK_TO_T100_SERVICE_NAME = "DingTalk To T100";
|
|
|
|
|
|
|
|
private final RestTemplate restTemplate;
|
|
private final RestTemplate restTemplate;
|
|
|
private final MingleiPortProperties properties;
|
|
private final MingleiPortProperties properties;
|
|
@@ -58,11 +59,11 @@ public class MingleiPortServiceImpl implements MingleiPortService {
|
|
|
Map<String, Object> parameter = new LinkedHashMap<String, Object>();
|
|
Map<String, Object> parameter = new LinkedHashMap<String, Object>();
|
|
|
parameter.put("head", request.getHead());
|
|
parameter.put("head", request.getHead());
|
|
|
parameter.put("detail", request.getDetail());
|
|
parameter.put("detail", request.getDetail());
|
|
|
- return submitDocument(parameter, null);
|
|
|
|
|
|
|
+ return submitDocument(parameter, null, SUPPLIER_PRICE_APPROVAL_SERVICE_NAME);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 提交除供应商核价单外的通用 T100 单据。
|
|
|
|
|
|
|
+ * 提交除供应商核价单外的通用 T100 单据,服务名沿用供应商价格审批单。
|
|
|
*
|
|
*
|
|
|
* @param parameter T100 标准报文中的 parameter 内容
|
|
* @param parameter T100 标准报文中的 parameter 内容
|
|
|
* @param dataKeyType T100 datakey.type 单据类型
|
|
* @param dataKeyType T100 datakey.type 单据类型
|
|
@@ -70,25 +71,40 @@ public class MingleiPortServiceImpl implements MingleiPortService {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public Map<String, Object> submitT100Document(Map<String, Object> parameter, String dataKeyType) {
|
|
public Map<String, Object> submitT100Document(Map<String, Object> parameter, String dataKeyType) {
|
|
|
|
|
+ return submitT100Document(parameter, dataKeyType, SUPPLIER_PRICE_APPROVAL_SERVICE_NAME);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 提交指定服务名的 T100 单据。包材材质核价、包材料号清单和供应商暂停/退出使用 DingTalk To T100。
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param parameter T100 标准报文中的 parameter 内容
|
|
|
|
|
+ * @param dataKeyType T100 datakey.type 单据类型
|
|
|
|
|
+ * @param serviceName T100 service.name
|
|
|
|
|
+ * @return 外部接口原始响应体
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Map<String, Object> submitT100Document(Map<String, Object> parameter, String dataKeyType, String serviceName) {
|
|
|
if (parameter == null) {
|
|
if (parameter == null) {
|
|
|
throw new IllegalArgumentException("T100 parameter must not be null");
|
|
throw new IllegalArgumentException("T100 parameter must not be null");
|
|
|
}
|
|
}
|
|
|
require(dataKeyType, "T100 datakey.type must not be blank");
|
|
require(dataKeyType, "T100 datakey.type must not be blank");
|
|
|
- return submitDocument(parameter, dataKeyType);
|
|
|
|
|
|
|
+ require(serviceName, "T100 service.name must not be blank");
|
|
|
|
|
+ return submitDocument(parameter, dataKeyType, serviceName);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private Map<String, Object> submitDocument(Map<String, Object> parameter, String dataKeyType) {
|
|
|
|
|
|
|
+ private Map<String, Object> submitDocument(Map<String, Object> parameter, String dataKeyType, String serviceName) {
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
|
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
|
|
|
|
|
|
|
validateConfiguration();
|
|
validateConfiguration();
|
|
|
- LOGGER.info("Submitting T100 document dataKeyType={} parameterKeys={}", dataKeyType, parameter.keySet());
|
|
|
|
|
|
|
+ LOGGER.info("Submitting T100 document dataKeyType={} serviceName={} parameterKeys={}",
|
|
|
|
|
+ dataKeyType, serviceName, parameter.keySet());
|
|
|
|
|
|
|
|
ResponseEntity<Map<String, Object>> response = restTemplate.exchange(
|
|
ResponseEntity<Map<String, Object>> response = restTemplate.exchange(
|
|
|
properties.getSupplierPriceApprovalUrl(),
|
|
properties.getSupplierPriceApprovalUrl(),
|
|
|
HttpMethod.POST,
|
|
HttpMethod.POST,
|
|
|
- new HttpEntity<Map<String, Object>>(createExternalRequest(parameter, dataKeyType), headers),
|
|
|
|
|
|
|
+ new HttpEntity<Map<String, Object>>(createExternalRequest(parameter, dataKeyType, serviceName), headers),
|
|
|
new ParameterizedTypeReference<Map<String, Object>>() {
|
|
new ParameterizedTypeReference<Map<String, Object>>() {
|
|
|
});
|
|
});
|
|
|
return response.getBody() == null ? Collections.<String, Object>emptyMap() : response.getBody();
|
|
return response.getBody() == null ? Collections.<String, Object>emptyMap() : response.getBody();
|
|
@@ -97,10 +113,12 @@ public class MingleiPortServiceImpl implements MingleiPortService {
|
|
|
/**
|
|
/**
|
|
|
* 使用固定的外层协议字段组装外部接口请求,仅透传调用方提供的 head 和 detail。
|
|
* 使用固定的外层协议字段组装外部接口请求,仅透传调用方提供的 head 和 detail。
|
|
|
*
|
|
*
|
|
|
- * @param request 本地精简请求体
|
|
|
|
|
|
|
+ * @param parameter T100 标准报文中的 parameter 内容
|
|
|
|
|
+ * @param dataKeyType T100 datakey.type 单据类型
|
|
|
|
|
+ * @param serviceName T100 service.name
|
|
|
* @return 外部接口完整请求体
|
|
* @return 外部接口完整请求体
|
|
|
*/
|
|
*/
|
|
|
- private Map<String, Object> createExternalRequest(Map<String, Object> parameter, String dataKeyType) {
|
|
|
|
|
|
|
+ private Map<String, Object> createExternalRequest(Map<String, Object> parameter, String dataKeyType, String serviceName) {
|
|
|
Map<String, Object> host = new LinkedHashMap<String, Object>();
|
|
Map<String, Object> host = new LinkedHashMap<String, Object>();
|
|
|
host.put("prod", HOST_PRODUCT);
|
|
host.put("prod", HOST_PRODUCT);
|
|
|
host.put("ip", HOST_IP);
|
|
host.put("ip", HOST_IP);
|
|
@@ -110,7 +128,7 @@ public class MingleiPortServiceImpl implements MingleiPortService {
|
|
|
|
|
|
|
|
Map<String, Object> service = new LinkedHashMap<String, Object>();
|
|
Map<String, Object> service = new LinkedHashMap<String, Object>();
|
|
|
service.put("prod", SERVICE_PRODUCT);
|
|
service.put("prod", SERVICE_PRODUCT);
|
|
|
- service.put("name", SERVICE_NAME);
|
|
|
|
|
|
|
+ service.put("name", serviceName);
|
|
|
service.put("ip", HOST_IP);
|
|
service.put("ip", HOST_IP);
|
|
|
service.put("id", erpT100Properties.getRequest().getServiceId());
|
|
service.put("id", erpT100Properties.getRequest().getServiceId());
|
|
|
|
|
|