123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package com.emato.biz.util;
- import cn.hutool.http.HttpRequest;
- import com.alibaba.fastjson.JSONObject;
- import com.emato.biz.config.OmsConfig;
- import com.emato.biz.domain.warehouse.Page;
- import com.emato.biz.domain.warehouse.PullInveQueryVO;
- import com.emato.biz.service.impl.OWbInveMngServiceImpl;
- import com.emato.common.exception.ServiceException;
- import com.emato.common.utils.oms.JacksonUtils;
- import com.emato.common.utils.oms.request.OmsSign;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.Map;
- import java.util.Optional;
- import java.util.TreeMap;
- /**
- * OMS 数据工具类
- *
- * @author frankeleyn
- * @email lvjian@qhdswl.com
- * @date 2023/4/19 14:25
- */
- public class OmsDataUtil {
- private static final Logger log = LoggerFactory.getLogger(OWbInveMngServiceImpl.class);
- /**
- * 拉取 OMS 库存数据
- *
- * @param queryVO 请求 OMS 数据
- * @param url 请求 OMS 地址
- * @param clazz 返回的分页数据类
- *
- * @return
- */
- public static <T> Optional<Page<T>> fetchOmsPageData(PullInveQueryVO queryVO,
- String url,
- Class<T> clazz) {
- // 构建请求报文
- // 初始化请求 oms 参数 Map
- Map<String, String> reqOmsPram = new TreeMap<>();
- // 请求 oms 数据
- reqOmsPram.put("data", JacksonUtils.toJsonStr(queryVO));
- // 请求 oms 商户号
- reqOmsPram.put("merchId", OmsConfig.getMerchSn());
- log.debug("===== 请求 oms 商户号 ====> {}", OmsConfig.getMerchSn());
- // 请求 oms 时间戳
- String timestamp = System.currentTimeMillis() / 1000 + "";
- reqOmsPram.put("timestamp", timestamp);
- log.debug("===== 请求 oms 时间戳 ====> {}", timestamp);
- // 请求 oms 签名
- String sign = OmsSign.sign(reqOmsPram, OmsConfig.getMd5Salt());
- reqOmsPram.put("sign", sign);
- // oms 请求地址
- log.debug("===== 请求 oms 地址 ====> {}", url);
- // 请求 oms 报文
- String reqBody = JacksonUtils.toJsonStr(reqOmsPram);
- log.debug("===== 请求 oms 报文 ====> {}", reqBody);
- // oms 返回数据
- String body = null;
- try {
- body = HttpRequest.post(url)
- .body(JacksonUtils.toJsonStr(reqOmsPram))
- .execute()
- .body();
- } catch (Exception e) {
- log.error("请求 OMS 异常 => ", e);
- throw new ServiceException("请求 OMS 异常!");
- }
- log.debug("OMS 响应信息 => {}", body);
- // 解析返回的数据
- JSONObject jsonObject = JSONObject.parseObject(body);
- String code = jsonObject.getString("code");
- if ("200".equals(code)){
- Page<T> page = JsonUtil.parsePage(jsonObject, clazz);
- if (!page.getList().isEmpty())
- // 如果 page 有值就返回
- return Optional.of(page);
- }else {
- log.error("OMS 返回异常信息 => {}", jsonObject);
- throw new ServiceException("请求 OMS 异常!");
- }
- return Optional.empty();
- }
- }
|