1
0

MallInveMngServiceImpl.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package com.emato.biz.service.impl;
  2. import java.io.IOException;
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import com.alibaba.fastjson.JSONArray;
  8. import com.emato.biz.config.KmallConfig;
  9. import com.emato.biz.domain.mall.MallGoodsVO;
  10. import com.emato.biz.mapper.mall.MallGoodsMapper;
  11. import com.emato.common.utils.DateUtils;
  12. import com.emato.common.utils.oms.OkHttpUtils;
  13. import okhttp3.Request;
  14. import okhttp3.RequestBody;
  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.mall.MallInveMngMapper;
  20. import com.emato.biz.domain.mall.MallInveMng;
  21. import com.emato.biz.service.mall.IMallInveMngService;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import javax.annotation.Resource;
  24. /**
  25. * 库存管理,wms入库回传时,增加库存数Service业务层处理
  26. *
  27. * @author yangbo
  28. * @date 2021-02-01
  29. */
  30. @Service
  31. public class MallInveMngServiceImpl implements IMallInveMngService
  32. {
  33. Logger log = LoggerFactory.getLogger(MallInveMngServiceImpl.class);
  34. @Autowired
  35. private MallInveMngMapper mallInveMngMapper;
  36. @Resource
  37. private MallGoodsMapper mallGoodsMapper;
  38. /**
  39. * 查询商品信息
  40. *
  41. * @param mallInveMng
  42. * @return
  43. */
  44. @Override
  45. public List<MallGoodsVO> getMalGoodsVOList(MallInveMng mallInveMng) {
  46. return mallGoodsMapper.selectMallGoodsList(mallInveMng);
  47. }
  48. /**
  49. * 查询库存管理,wms入库回传时,增加库存数
  50. *
  51. * @param inveSn 库存管理,wms入库回传时,增加库存数ID
  52. * @return 库存管理,wms入库回传时,增加库存数
  53. */
  54. @Override
  55. public MallInveMng selectMallInveMngById(String inveSn)
  56. {
  57. return mallInveMngMapper.selectMallInveMngById(inveSn);
  58. }
  59. /**
  60. * 查询库存管理,wms入库回传时,增加库存数列表
  61. *
  62. * @param mallInveMng 库存管理,wms入库回传时,增加库存数
  63. * @return 库存管理,wms入库回传时,增加库存数
  64. */
  65. @Override
  66. public List<MallInveMng> selectMallInveMngList(MallInveMng mallInveMng)
  67. {
  68. return mallInveMngMapper.selectMallInveMngList(mallInveMng);
  69. }
  70. /**
  71. * 新增库存管理,wms入库回传时,增加库存数
  72. *
  73. * @param mallInveMng 库存管理,wms入库回传时,增加库存数
  74. * @return 结果
  75. */
  76. @Override
  77. public int insertMallInveMng(MallInveMng mallInveMng)
  78. {
  79. mallInveMng.setCreateTime(DateUtils.getNowDate());
  80. return mallInveMngMapper.insertMallInveMng(mallInveMng);
  81. }
  82. /**
  83. * 修改库存管理,wms入库回传时,增加库存数
  84. *
  85. * @param mallInveMng 库存管理,wms入库回传时,增加库存数
  86. * @return 结果
  87. */
  88. @Override
  89. public int updateMallInveMng(MallInveMng mallInveMng)
  90. {
  91. return mallInveMngMapper.updateMallInveMng(mallInveMng);
  92. }
  93. /**
  94. * 批量删除库存管理,wms入库回传时,增加库存数
  95. *
  96. * @param inveSns 需要删除的库存管理,wms入库回传时,增加库存数ID
  97. * @return 结果
  98. */
  99. @Override
  100. public int deleteMallInveMngByIds(String[] inveSns)
  101. {
  102. return mallInveMngMapper.deleteMallInveMngByIds(inveSns);
  103. }
  104. /**
  105. * 删除库存管理,wms入库回传时,增加库存数信息
  106. *
  107. * @param inveSn 库存管理,wms入库回传时,增加库存数ID
  108. * @return 结果
  109. */
  110. @Override
  111. public int deleteMallInveMngById(String inveSn)
  112. {
  113. return mallInveMngMapper.deleteMallInveMngById(inveSn);
  114. }
  115. @Override
  116. @Transactional
  117. public int pullKmallInveMng() {
  118. Integer page = 0;
  119. Integer pageSize = 1000;
  120. int resultCode = pullMallInveMng(page, pageSize);
  121. while(resultCode != 0){
  122. page = page + pageSize;
  123. resultCode = pullMallInveMng(page, pageSize);
  124. }
  125. return resultCode==0?1:resultCode;
  126. }
  127. private int pullMallInveMng(Integer page, Integer pageSize) {
  128. try {
  129. String response = null;
  130. Map sPara = new HashMap();
  131. sPara.put("page", page+"");
  132. sPara.put("pageSize", pageSize+"");
  133. //构造RequestBody
  134. // RequestBody requestBody = OkHttpUtils.buildRequestBody(sPara);
  135. //构建Request
  136. String url = KmallConfig.getQueryAllInveMngUrl();
  137. Request request = OkHttpUtils.buildRequest(sPara,url);
  138. // 同步访问,返回结果字符串
  139. response = OkHttpUtils.post(request,null);
  140. List<MallInveMng> mallInveMngs = JSONArray.parseArray(response, MallInveMng.class);
  141. if(mallInveMngs == null || mallInveMngs.size() == 0){
  142. return 0;
  143. }
  144. for (MallInveMng mallInveMng : mallInveMngs) {
  145. Long inveNum = Long.valueOf(mallInveMng.getGoodsNumber() == null ? 0 : mallInveMng.getGoodsNumber());
  146. Long freezeNum = Long.valueOf(mallInveMng.getToBeRestored() == null ? 0 : mallInveMng.getToBeRestored() );
  147. mallInveMng.setInveNum(inveNum);
  148. mallInveMng.setFreezeNum(freezeNum);
  149. mallInveMng.setValidNum(mallInveMng.getInveNum() - freezeNum);
  150. mallInveMng.setCreateTime(new Date());
  151. mallInveMng.setModTime(new Date());
  152. mallInveMng.setInveSn(mallInveMng.getId()+"");
  153. mallInveMng.setGoodsName(mallInveMng.getName());
  154. mallInveMngMapper.saveOrUpdate(mallInveMng);
  155. }
  156. } catch (Exception e) {
  157. log.error("拉取 Kmall 电商库存异常 => ", e);
  158. return 0;
  159. }
  160. return 1;
  161. }
  162. }