OWbInveMngServiceImpl.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package com.emato.biz.service.impl;
  2. import java.util.*;
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.emato.biz.config.OmsConfig;
  7. import com.emato.common.utils.DateUtils;
  8. import com.emato.common.utils.oms.request.OkHttpUtils;
  9. import com.emato.common.utils.oms.request.OmsSign;
  10. import okhttp3.Request;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import com.emato.biz.mapper.warehouse.OWbInveMngMapper;
  16. import com.emato.biz.domain.warehouse.OWbInveMng;
  17. import com.emato.biz.service.warehouse.IOWbInveMngService;
  18. import org.springframework.transaction.annotation.Transactional;
  19. /**
  20. * 库存管理,wms入库回传时,增加库存数Service业务层处理
  21. *
  22. * @author yangbo
  23. * @date 2021-02-01
  24. */
  25. @Service
  26. public class OWbInveMngServiceImpl implements IOWbInveMngService
  27. {
  28. @Autowired
  29. private OWbInveMngMapper oWbInveMngMapper;
  30. private static final Logger LOGGER = LoggerFactory.getLogger(OWbInveMngServiceImpl.class);
  31. /**
  32. * 查询库存管理,wms入库回传时,增加库存数
  33. *
  34. * @param inveSn 库存管理,wms入库回传时,增加库存数ID
  35. * @return 库存管理,wms入库回传时,增加库存数
  36. */
  37. @Override
  38. public OWbInveMng selectOWbInveMngById(String inveSn)
  39. {
  40. return oWbInveMngMapper.selectOWbInveMngById(inveSn);
  41. }
  42. /**
  43. * 查询库存管理,wms入库回传时,增加库存数列表
  44. *
  45. * @param oWbInveMng 库存管理,wms入库回传时,增加库存数
  46. * @return 库存管理,wms入库回传时,增加库存数
  47. */
  48. @Override
  49. public List<OWbInveMng> selectOWbInveMngList(OWbInveMng oWbInveMng)
  50. {
  51. return oWbInveMngMapper.selectOWbInveMngList(oWbInveMng);
  52. }
  53. /**
  54. * 新增库存管理,wms入库回传时,增加库存数
  55. *
  56. * @param oWbInveMng 库存管理,wms入库回传时,增加库存数
  57. * @return 结果
  58. */
  59. @Override
  60. public int insertOWbInveMng(OWbInveMng oWbInveMng)
  61. {
  62. oWbInveMng.setCreateTime(DateUtils.getNowDate());
  63. return oWbInveMngMapper.insertOWbInveMng(oWbInveMng);
  64. }
  65. /**
  66. * 修改库存管理,wms入库回传时,增加库存数
  67. *
  68. * @param oWbInveMng 库存管理,wms入库回传时,增加库存数
  69. * @return 结果
  70. */
  71. @Override
  72. public int updateOWbInveMng(OWbInveMng oWbInveMng)
  73. {
  74. return oWbInveMngMapper.updateOWbInveMng(oWbInveMng);
  75. }
  76. /**
  77. * 批量删除库存管理,wms入库回传时,增加库存数
  78. *
  79. * @param inveSns 需要删除的库存管理,wms入库回传时,增加库存数ID
  80. * @return 结果
  81. */
  82. @Override
  83. public int deleteOWbInveMngByIds(String[] inveSns)
  84. {
  85. return oWbInveMngMapper.deleteOWbInveMngByIds(inveSns);
  86. }
  87. /**
  88. * 删除库存管理,wms入库回传时,增加库存数信息
  89. *
  90. * @param inveSn 库存管理,wms入库回传时,增加库存数ID
  91. * @return 结果
  92. */
  93. @Override
  94. public int deleteOWbInveMngById(String inveSn)
  95. {
  96. return oWbInveMngMapper.deleteOWbInveMngById(inveSn);
  97. }
  98. /**
  99. * 根据商户编号去拉取数据
  100. *
  101. * @param merchSn
  102. * @return
  103. */
  104. @Override
  105. @Transactional
  106. public int pullInveMng(String merchSn) {
  107. int page = 1;
  108. Integer querySize = OmsConfig.getQuerySize();
  109. int resultCode = pullInveMngFromOms(merchSn,page, querySize);
  110. while(resultCode != 1){
  111. page = page + 1;
  112. resultCode = pullInveMngFromOms(merchSn, page, querySize);
  113. }
  114. return resultCode;
  115. }
  116. private int pullInveMngFromOms(String merchSn, int page, Integer querySize) {
  117. Map<String,String> data = new HashMap();
  118. data.put("merchId",merchSn);
  119. data.put("page",page+"");
  120. data.put("limit",querySize.toString());
  121. Map<String, String> sParaTemp = new TreeMap<String, String>();
  122. sParaTemp.put("data", JSON.toJSONString(data));
  123. sParaTemp.put("merchId",OmsConfig.getMerchSn());
  124. String timestamp = String.valueOf(System.currentTimeMillis()/1000);
  125. sParaTemp.put("timestamp", timestamp);
  126. //生成要请求给oms秘钥
  127. // String sign = OmsSign.sign(sParaTemp,cus.getWaybill().get("secret-key"));
  128. LOGGER.info("md5混淆码参数:" + OmsConfig.getMd5Salt());
  129. String sign = OmsSign.sign(sParaTemp,OmsConfig.getMd5Salt());
  130. sParaTemp.put("sign", sign);
  131. //构建Request
  132. String url = OmsConfig.getQueryMngInveUrl();
  133. // url = "http://127.0.0.1:8680/al/shop/order/query";
  134. Request request = OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
  135. LOGGER.info("oms的请求报文:" + request);
  136. // 同步访问,返回结果字符串
  137. String responseString = null;
  138. try {
  139. responseString = OkHttpUtils.post(request);
  140. } catch (Exception e) {
  141. e.printStackTrace();
  142. LOGGER.error(e.getMessage());
  143. return 1;
  144. // throw e;
  145. }
  146. try {
  147. LOGGER.info("oms的响应报文"+responseString);
  148. //解析响应数据
  149. JSONObject jsonObject = JSONObject.parseObject(responseString);
  150. JSONArray result = (JSONArray) jsonObject.get("data");
  151. Object msg = jsonObject.get("msg");
  152. Object code = jsonObject.get("code");
  153. if(result == null || result.size() == 0){
  154. return 1;
  155. }
  156. for(int i = 0 ; i < result.size(); i ++){
  157. JSONObject o = (JSONObject) result.get(i);
  158. OWbInveMng oWbInveMng = o.toJavaObject(OWbInveMng.class);
  159. // OWbInveMng wb = (OWbInveMng) o;
  160. oWbInveMngMapper.saveOrUpdate(oWbInveMng);
  161. }
  162. if("202".equals(code)){
  163. return 1;
  164. }
  165. } catch (Exception e) {
  166. e.printStackTrace();
  167. LOGGER.error(e.getMessage());
  168. return 1;
  169. }
  170. return 0;
  171. }
  172. }