OWbInveReceiptGoodsServiceImpl.java 6.4 KB

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