|
@@ -4,12 +4,15 @@ import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.emato.biz.config.OmsConfig;
|
|
|
+import com.emato.biz.domain.OutRequest;
|
|
|
import com.emato.biz.domain.merchant.MerchUser;
|
|
|
import com.emato.biz.domain.merchant.ThirdMerchantBiz;
|
|
|
import com.emato.biz.domain.warehouse.Page;
|
|
@@ -20,6 +23,7 @@ import com.emato.biz.mapper.warehouse.WbInveMngMapper;
|
|
|
import com.emato.biz.util.JsonUtil;
|
|
|
import com.emato.biz.util.OmsDataUtil;
|
|
|
import com.emato.biz.util.RoleUtils;
|
|
|
+import com.emato.common.core.Result;
|
|
|
import com.emato.common.core.domain.AjaxResult;
|
|
|
import com.emato.common.core.domain.entity.SysUser;
|
|
|
import com.emato.common.exception.ServiceException;
|
|
@@ -79,27 +83,19 @@ public class OWbInveMngServiceImpl implements IOWbInveMngService
|
|
|
*/
|
|
|
@Override
|
|
|
public AjaxResult pullInveMng(PullInveQueryVO queryVO) {
|
|
|
- // 声明处理数量
|
|
|
- AtomicInteger rows = new AtomicInteger(0);
|
|
|
// 声明页数
|
|
|
int page = 1;
|
|
|
- queryVO.setPage(page);
|
|
|
- queryVO.setLimit(10);
|
|
|
-
|
|
|
- ThirdMerchantBiz merchantBiz = thirdMerchantBizMapper.selectByClientMerchSn(queryVO.getMerchId());
|
|
|
- if (Objects.nonNull(merchantBiz)) {
|
|
|
- queryVO.setThirdMerchId(merchantBiz.getThirdMerchSn());
|
|
|
- }
|
|
|
-
|
|
|
+ // 处理查询参数
|
|
|
+ setQueryVO(queryVO, page, OmsConfig.getQuerySize());
|
|
|
|
|
|
+ // 声明处理数量
|
|
|
+ AtomicInteger rows = new AtomicInteger(0);
|
|
|
// 查询 OMS 分页数据
|
|
|
Optional<Page<OWbInveMng>> firstPageOpt =
|
|
|
OmsDataUtil.fetchOmsPageData(queryVO, OmsConfig.getQueryMngInveUrl(), OWbInveMng.class);
|
|
|
|
|
|
// 如果有数据
|
|
|
- /*firstPageOpt.ifPresent(firstPage -> {
|
|
|
- // 如果有数据,开始批量处理
|
|
|
- firstPage.getList().forEach(obj -> log.debug("拉取的 sku => {}", obj.getSku()));
|
|
|
+ firstPageOpt.ifPresent(firstPage -> {
|
|
|
// 插入数据库
|
|
|
firstPage.getList().stream().forEach(obj -> {
|
|
|
// 插入数据库
|
|
@@ -108,9 +104,7 @@ public class OWbInveMngServiceImpl implements IOWbInveMngService
|
|
|
rows.getAndIncrement();
|
|
|
});
|
|
|
|
|
|
- List<CompletableFuture<Void>> tasks = new ArrayList<>();
|
|
|
-
|
|
|
- for(int pageNum = 2; pageNum <= firstPage.getTotalPage(); pageNum++) {
|
|
|
+ for(int pageNum = page + 1; pageNum <= firstPage.getTotalPage(); pageNum++) {
|
|
|
log.debug("当前拉取的页数 => {}", pageNum);
|
|
|
queryVO.setPage(pageNum);
|
|
|
// 分页拉取远程数据
|
|
@@ -119,15 +113,9 @@ public class OWbInveMngServiceImpl implements IOWbInveMngService
|
|
|
wbInveMngMapper.saveOrUpdate(obj);
|
|
|
rows.getAndIncrement();
|
|
|
});
|
|
|
- // 查询 OMS 数据
|
|
|
- CompletableFuture<Void> task = CompletableFuture.runAsync(() -> {
|
|
|
- }, threadPoolExecutor);
|
|
|
- // 将任务添加到列表中
|
|
|
- tasks.add(task);
|
|
|
}
|
|
|
- CompletableFuture.allOf(tasks.toArray(new CompletableFuture[0])).join();
|
|
|
|
|
|
- });*/
|
|
|
+ });
|
|
|
|
|
|
log.debug("拉取库存成功,拉取数据条数 => {}", rows.get());
|
|
|
return AjaxResult.success("拉取库存成功!");
|
|
@@ -420,4 +408,36 @@ public class OWbInveMngServiceImpl implements IOWbInveMngService
|
|
|
return Optional.empty();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理查询参数
|
|
|
+ *
|
|
|
+ * @param queryVO
|
|
|
+ * @param page
|
|
|
+ * @param limit
|
|
|
+ */
|
|
|
+ private void setQueryVO(PullInveQueryVO queryVO, int page, int limit) {
|
|
|
+ queryVO.setPage(page);
|
|
|
+ queryVO.setLimit(limit);
|
|
|
+
|
|
|
+ // 查询是否是三方商户
|
|
|
+ ThirdMerchantBiz thirdMerchantBiz = thirdMerchantBizMapper.selectByClientMerchSn(queryVO.getMerchId());
|
|
|
+ if (Objects.nonNull(thirdMerchantBiz)) {
|
|
|
+ // 如果是三方商户,查询条件加入三方商户
|
|
|
+ queryVO.setThirdMerchId(thirdMerchantBiz.getThirdMerchSn());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将 sku 变成 skuSet 参数
|
|
|
+ if (StrUtil.isNotBlank(queryVO.getSku())) {
|
|
|
+ List<String> skus = StrUtil.split(queryVO.getSku(), ",");
|
|
|
+ Set<String> skuSet = skus.stream().collect(Collectors.toSet());
|
|
|
+ queryVO.setSkuSets(skuSet);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将门店编号转为门店列表
|
|
|
+ if (StrUtil.isNotBlank(queryVO.getShopSn())) {
|
|
|
+ List<String> shopList = StrUtil.split(queryVO.getShopSn(), ",");
|
|
|
+ queryVO.setShopSnList(shopList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|