MallInveMngServiceImpl.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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.common.utils.DateUtils;
  10. import com.emato.common.utils.oms.request.OkHttpUtils;
  11. import okhttp3.Request;
  12. import okhttp3.RequestBody;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import com.emato.biz.mapper.mall.MallInveMngMapper;
  16. import com.emato.biz.domain.mall.MallInveMng;
  17. import com.emato.biz.service.mall.IMallInveMngService;
  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 MallInveMngServiceImpl implements IMallInveMngService
  27. {
  28. @Autowired
  29. private MallInveMngMapper mallInveMngMapper;
  30. /**
  31. * 查询库存管理,wms入库回传时,增加库存数
  32. *
  33. * @param inveSn 库存管理,wms入库回传时,增加库存数ID
  34. * @return 库存管理,wms入库回传时,增加库存数
  35. */
  36. @Override
  37. public MallInveMng selectMallInveMngById(String inveSn)
  38. {
  39. return mallInveMngMapper.selectMallInveMngById(inveSn);
  40. }
  41. /**
  42. * 查询库存管理,wms入库回传时,增加库存数列表
  43. *
  44. * @param mallInveMng 库存管理,wms入库回传时,增加库存数
  45. * @return 库存管理,wms入库回传时,增加库存数
  46. */
  47. @Override
  48. public List<MallInveMng> selectMallInveMngList(MallInveMng mallInveMng)
  49. {
  50. return mallInveMngMapper.selectMallInveMngList(mallInveMng);
  51. }
  52. /**
  53. * 新增库存管理,wms入库回传时,增加库存数
  54. *
  55. * @param mallInveMng 库存管理,wms入库回传时,增加库存数
  56. * @return 结果
  57. */
  58. @Override
  59. public int insertMallInveMng(MallInveMng mallInveMng)
  60. {
  61. mallInveMng.setCreateTime(DateUtils.getNowDate());
  62. return mallInveMngMapper.insertMallInveMng(mallInveMng);
  63. }
  64. /**
  65. * 修改库存管理,wms入库回传时,增加库存数
  66. *
  67. * @param mallInveMng 库存管理,wms入库回传时,增加库存数
  68. * @return 结果
  69. */
  70. @Override
  71. public int updateMallInveMng(MallInveMng mallInveMng)
  72. {
  73. return mallInveMngMapper.updateMallInveMng(mallInveMng);
  74. }
  75. /**
  76. * 批量删除库存管理,wms入库回传时,增加库存数
  77. *
  78. * @param inveSns 需要删除的库存管理,wms入库回传时,增加库存数ID
  79. * @return 结果
  80. */
  81. @Override
  82. public int deleteMallInveMngByIds(String[] inveSns)
  83. {
  84. return mallInveMngMapper.deleteMallInveMngByIds(inveSns);
  85. }
  86. /**
  87. * 删除库存管理,wms入库回传时,增加库存数信息
  88. *
  89. * @param inveSn 库存管理,wms入库回传时,增加库存数ID
  90. * @return 结果
  91. */
  92. @Override
  93. public int deleteMallInveMngById(String inveSn)
  94. {
  95. return mallInveMngMapper.deleteMallInveMngById(inveSn);
  96. }
  97. @Override
  98. @Transactional
  99. public int pullKmallInveMng() {
  100. Integer page = 0;
  101. Integer pageSize = 1000;
  102. int resultCode = pullMallInveMng(page, pageSize);
  103. while(resultCode != 0){
  104. page = page + pageSize;
  105. resultCode = pullMallInveMng(page, pageSize);
  106. }
  107. return resultCode;
  108. }
  109. private int pullMallInveMng(Integer page, Integer pageSize) {
  110. try {
  111. String response = null;
  112. Map sPara = new HashMap();
  113. sPara.put("page", page+"");
  114. sPara.put("pageSize", pageSize+"");
  115. //构造RequestBody
  116. RequestBody requestBody = OkHttpUtils.buildRequestBody(sPara);
  117. //构建Request
  118. String url = KmallConfig.getQueryAllInveMngUrl();
  119. Request request = OkHttpUtils.buildRequest(url,requestBody);
  120. // 同步访问,返回结果字符串
  121. response = OkHttpUtils.post(request);
  122. List<MallInveMng> mallInveMngs = JSONArray.parseArray(response, MallInveMng.class);
  123. if(mallInveMngs == null || mallInveMngs.size() == 0){
  124. return 0;
  125. }
  126. for (MallInveMng mallInveMng : mallInveMngs) {
  127. Long inveNum = Long.valueOf(mallInveMng.getGoodsNumber() == null ? 0 : mallInveMng.getGoodsNumber());
  128. Long freezeNum = Long.valueOf(mallInveMng.getToBeRestored() == null ? 0 : mallInveMng.getToBeRestored() );
  129. mallInveMng.setInveNum(inveNum);
  130. mallInveMng.setFreezeNum(freezeNum);
  131. mallInveMng.setValidNum(mallInveMng.getInveNum() - freezeNum);
  132. mallInveMng.setCreateTime(new Date());
  133. mallInveMng.setModTime(new Date());
  134. mallInveMng.setInveSn(mallInveMng.getId()+"");
  135. mallInveMng.setGoodsName(mallInveMng.getName());
  136. mallInveMngMapper.saveOrUpdate(mallInveMng);
  137. }
  138. } catch (IOException e) {
  139. e.printStackTrace();
  140. return 0;
  141. }
  142. return 1;
  143. }
  144. }