|
@@ -2133,21 +2133,65 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
return goodsDao.queryObjectBySn(goodsSn);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 全量拉取
|
|
|
+ */
|
|
|
@Override
|
|
|
public void syncOmsHsCodeTask() {
|
|
|
- List<String> skuList = goodsDao.queryNonSyncOmsHsCodeSkuList();
|
|
|
- syncOmsHsCode(skuList);
|
|
|
+ syncOmsHsCodeSegment(goodsDao.queryNonSyncOmsHsCodeSkuList());
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 全量计算
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void syncGoodsRateTask() {
|
|
|
+ // 查询出所有商品
|
|
|
+ List<GoodsEntity> allGoodsList = goodsDao.queryAllList(null,null);
|
|
|
+ syncGoodsRate(allGoodsList);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 选择拉取
|
|
|
+ * @param ids
|
|
|
+ */
|
|
|
@Override
|
|
|
public void syncOmsHsCodeGoode(List<Integer> ids) {
|
|
|
- syncOmsHsCode(goodsDao.syncOmsHsCodeGoode(ids));
|
|
|
+ syncOmsHsCodeSegment(goodsDao.syncOmsHsCodeGoode(ids));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 选择计算
|
|
|
+ * @param ids
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void syncGoodsRateGoode(List<Integer> ids) {
|
|
|
+ syncGoodsRate(goodsDao.syncGoodsRateGoode(ids));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void syncOmsHsCodeSegment(List<String> skuList) {
|
|
|
+ int segmentLimitSize = 300;
|
|
|
+ if (skuList.size() < segmentLimitSize) {
|
|
|
+ this.syncOmsHsCode(skuList);
|
|
|
+ } else {
|
|
|
+ int segmentSize = skuList.size() % segmentLimitSize == 0 ? skuList.size() / segmentLimitSize : (skuList.size() / segmentLimitSize) + 1;
|
|
|
+ List<List<String>> segment = new ArrayList<>();
|
|
|
+ for (int i = 0; i < segmentSize; i++) {
|
|
|
+ int end = (i == segmentSize - 1) ? skuList.size() : i * segmentLimitSize + segmentLimitSize;
|
|
|
+ segment.add(new ArrayList<>(skuList.subList(i * segmentLimitSize, end)));
|
|
|
+ }
|
|
|
+ for (List<String> tmp : segment) {
|
|
|
+ this.syncOmsHsCode(tmp);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
public void syncOmsHsCode(List<String> skuList) {
|
|
|
if (Objects.nonNull(skuList) && skuList.size()>0){
|
|
|
String result = HttpUtil.get("https://oms.ds-bay.com/oms-controller-mgt/pdProductRecord/hsCodeMapBySkuList?skuList=" + skuList);
|
|
|
+ //String result = HttpUtil.get("http://183.3.221.143:8080/oms-controller-mgt/pdProductRecord/hsCodeMapBySkuList?skuList=" + skuList);
|
|
|
+ //String result = HttpUtil.get("http://127.0.0.1:8080/oms-controller-mgt/pdProductRecord/hsCodeMapBySkuList?skuList=" + skuList);
|
|
|
Map<String,Map> map = JSON.parseObject(result, Map.class);
|
|
|
|
|
|
for (String sku : skuList) {
|
|
@@ -2189,12 +2233,10 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
@Transactional
|
|
|
- public void syncGoodsRate() {
|
|
|
+ public void syncGoodsRate(List<GoodsEntity> allGoodsList) {
|
|
|
String storeId = "163"; // 市场部说所有门店价格一致,并且活动一致,可直接取其中一个门店价格进行计算税率
|
|
|
- // 查询出所有商品
|
|
|
- List<GoodsEntity> allGoodsList = goodsDao.queryAllList(null,null);
|
|
|
+
|
|
|
for (GoodsEntity goodsEntity : allGoodsList) {
|
|
|
// 同步过海关商品编码才可以算税率
|
|
|
if ("1".equals(goodsEntity.getIsSyncHsCode())) {
|