|
@@ -2,6 +2,7 @@ package com.fjhx.victoriatourist.service.jd.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.collection.ListUtil;
|
|
|
import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
@@ -64,7 +65,6 @@ import com.jd.open.api.sdk.response.supplier.VcGetpurchaseorderlistResponse;
|
|
|
import com.jd.open.api.sdk.response.supplier.VcGetwaredeliverdistinctlistResponse;
|
|
|
import com.jd.open.api.sdk.response.supplier.VcReturnOrderListPageGetResponse;
|
|
|
import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
-import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
import org.apache.http.HttpEntity;
|
|
@@ -90,6 +90,7 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
@@ -322,9 +323,16 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
@DSTransactional
|
|
|
@Override
|
|
|
public void initTenantDict() {
|
|
|
- handleDeliveryCenter();
|
|
|
- handleComponent();
|
|
|
- handleReturnStates();
|
|
|
+ try {
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
+ handleDeliveryCenter();
|
|
|
+ handleComponent();
|
|
|
+ handleReturnStates();
|
|
|
+ } finally {
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
log.info("字典初始化完成");
|
|
|
}
|
|
|
|
|
@@ -334,21 +342,43 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
@DSTransactional
|
|
|
@Override
|
|
|
public void compensatingProductNon() {
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.ITEM);
|
|
|
- List<ProductInfo> productInfoList = productInfoService.list();
|
|
|
- Map<String, ProductInfo> productInfoMap = productInfoList.stream().collect(Collectors.toMap(ProductInfo::getCustomCode, o -> o, (v1, v2) -> v2));
|
|
|
- DynamicDataSourceContextHolder.poll();
|
|
|
-
|
|
|
- jdOrderDetailsService.lambdaQuery().isNull(JdOrderDetails::getProductId).list().forEach(jdOrderDetails -> {
|
|
|
- Long wareId = jdOrderDetails.getWareId();
|
|
|
- ProductInfo productInfo = productInfoMap.get(StrUtil.toString(wareId));
|
|
|
- if (ObjectUtil.isNotNull(productInfo)) {
|
|
|
- jdOrderDetails.setProductId(productInfo.getId());
|
|
|
- jdOrderDetailsService.updateById(jdOrderDetails);
|
|
|
+
|
|
|
+ List<JdOrderDetails> list = jdOrderDetailsService.list(q -> q
|
|
|
+ .select(BaseIdPo::getId, JdOrderDetails::getWareId)
|
|
|
+ .isNull(JdOrderDetails::getProductId)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (list.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Long> productMap;
|
|
|
+
|
|
|
+ try {
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.ITEM);
|
|
|
+ Set<String> wareIdSet = list.stream().map(item -> item.getWareId().toString()).collect(Collectors.toSet());
|
|
|
+ productMap = productInfoService.mapKV(ProductInfo::getCustomCode, ProductInfo::getId,
|
|
|
+ q -> q.in(ProductInfo::getCustomCode, wareIdSet));
|
|
|
+ } finally {
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<JdOrderDetails> updateList = list.stream().filter(item -> {
|
|
|
+ Long productId = productMap.get(item.getWareId().toString());
|
|
|
+ if (productId == null) {
|
|
|
+ return false;
|
|
|
}
|
|
|
- });
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
+
|
|
|
+ item.setProductId(productId);
|
|
|
+ return true;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (updateList.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ jdOrderDetailsService.updateBatchById(updateList);
|
|
|
+
|
|
|
log.info("补偿商品id完成");
|
|
|
}
|
|
|
|
|
@@ -372,46 +402,48 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
* 处理刷新token数据
|
|
|
*/
|
|
|
private void handleRefreshDate() {
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
+
|
|
|
+ Date endDate = new Date();
|
|
|
+ Date startDate = DateUtil.offsetMonth(endDate, -3);
|
|
|
+
|
|
|
+ //1.查询列表订单状态不为审核不通过/供应商驳回/已完成
|
|
|
+ List<JdOrder> jdOrders = jdOrderService.list(q -> q
|
|
|
+ .notIn(JdOrder::getState, notIn)
|
|
|
+ .between(JdOrder::getCreatedDate, startDate, endDate)
|
|
|
+ .orderByDesc(JdOrder::getCreatedDate)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (CollectionUtil.isEmpty(jdOrders)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Long, JdOrder> jdOrderMap = jdOrders.stream().collect(Collectors.toMap(JdOrder::getOrderId, Function.identity()));
|
|
|
+
|
|
|
+ // 2.按50个订单查询京东订单状态
|
|
|
+ List<List<JdOrder>> splitJdOrder = ListUtil.split(jdOrders, 50);
|
|
|
+
|
|
|
try {
|
|
|
- //1.查询列表订单状态不为审核不通过/供应商驳回/已完成
|
|
|
- List<JdOrder> jdOrderPage = jdOrderService.lambdaQuery().notIn(JdOrder::getState, notIn).orderByDesc(JdOrder::getCreatedDate).list();
|
|
|
- if (CollectionUtil.isEmpty(jdOrderPage)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- int pageIndex = 1;
|
|
|
- int pageSize = 30;
|
|
|
- List<List<JdOrder>> pages = new ArrayList<>();
|
|
|
- for (int i = 0; i < jdOrderPage.size(); i += pageSize) {
|
|
|
- int endIndex = Math.min(i + pageSize, jdOrderPage.size());
|
|
|
- List<JdOrder> page = jdOrderPage.subList(i, endIndex);
|
|
|
- pages.add(page);
|
|
|
- }
|
|
|
- int totalPage = pages.size();
|
|
|
|
|
|
- do {
|
|
|
- //2.按每30个订单查询京东订单状态
|
|
|
- List<JdOrder> records = pages.get(pageIndex - 1);
|
|
|
+ for (List<JdOrder> orders : splitJdOrder) {
|
|
|
+ List<Long> orderIdList = orders.stream().map(JdOrder::getOrderId).collect(Collectors.toList());
|
|
|
+ List<PurchaseOrderDto> jdOrderInfo = getJdOrderInfo(null, null, orderIdList);
|
|
|
+ List<JdOrder> jdOrderList = BeanUtil.copyToList(jdOrderInfo, JdOrder.class);
|
|
|
|
|
|
- List<Long> orderIds = records.stream().map(JdOrder::getOrderId).collect(Collectors.toList());
|
|
|
- JOSOrderResultDto josOrderResultDto = getJdOrderInfo(1, pageSize + 20, records.get(0).getCreatedDate(), DateUtil.offsetDay(records.get(0).getCreatedDate(), 90), orderIds);
|
|
|
- List<PurchaseOrderDto> purchaseOrderList = josOrderResultDto.getPurchaseOrderList();
|
|
|
- List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderList, JdOrder.class);
|
|
|
- Map<Long, JdOrder> collect = records.stream().collect(Collectors.toMap(JdOrder::getOrderId, o -> o));
|
|
|
//3.更新订单信息
|
|
|
for (JdOrder jdOrder : jdOrderList) {
|
|
|
- Long id = collect.get(jdOrder.getOrderId()).getId();
|
|
|
+ Long id = jdOrderMap.get(jdOrder.getOrderId()).getId();
|
|
|
jdOrder.setId(id);
|
|
|
if (JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())) {
|
|
|
List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
+
|
|
|
//重新插入明细
|
|
|
boolean hasExFlag = dealOrderDetail(jdOrder, jdOrderDetailsList);
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
+
|
|
|
//获取当前明细记录
|
|
|
- List<JdOrderDetails> dbJdOrderDetails = jdOrderDetailsService.lambdaQuery().eq(JdOrderDetails::getJdOrderId, id).list();
|
|
|
+ List<JdOrderDetails> dbJdOrderDetails = jdOrderDetailsService.list(q -> q.eq(JdOrderDetails::getJdOrderId, id));
|
|
|
Table<Long, Long, JdOrderDetails> jdOrderDetailsTable = HashBasedTable.create();
|
|
|
jdOrderDetailsList.forEach(item -> jdOrderDetailsTable.put(item.getOrderId(), item.getWareId(), item));
|
|
|
+
|
|
|
for (JdOrderDetails dbJdOrderDetail : dbJdOrderDetails) {
|
|
|
JdOrderDetails onlineJdOrderDetails = jdOrderDetailsTable.get(dbJdOrderDetail.getOrderId(), dbJdOrderDetail.getWareId());
|
|
|
dbJdOrderDetail.setDeliverCenterId(onlineJdOrderDetails.getDeliverCenterId());
|
|
@@ -429,6 +461,7 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
dbJdOrderDetail.setExDesc(onlineJdOrderDetails.getExDesc());
|
|
|
dbJdOrderDetail.setHandleStatus(onlineJdOrderDetails.getHandleStatus());
|
|
|
}
|
|
|
+
|
|
|
if (hasExFlag) {
|
|
|
jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
@@ -436,71 +469,74 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
jdOrder.setHasEx(RunParamConstant.NO_EXCEPTION);
|
|
|
jdOrder.setHandleStatus(null);
|
|
|
}
|
|
|
- jdOrderDetailsService.saveOrUpdateBatch(dbJdOrderDetails);
|
|
|
+
|
|
|
+ jdOrderDetailsService.updateBatchById(dbJdOrderDetails);
|
|
|
}
|
|
|
- jdOrderService.saveOrUpdate(jdOrder);
|
|
|
+ jdOrderService.updateById(jdOrder);
|
|
|
}
|
|
|
- pageIndex++;
|
|
|
- } while (pageIndex <= totalPage);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("刷新京东状态失败", e);
|
|
|
- } finally {
|
|
|
- DynamicDataSourceContextHolder.clear();
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private boolean dealOrderDetail(JdOrder jdOrder, List<JdOrderDetails> jdOrderDetailsList) throws Exception {
|
|
|
- VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
|
|
|
- request.setOrderId(jdOrder.getOrderId());
|
|
|
- request.setIsPage(false);
|
|
|
- VcGetdetailbyorderidResponse response = jdClient.execute(request);
|
|
|
- JOSDetailResultDto josDetailResultDto = response.getJosDetailResultDto();
|
|
|
- List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = ObjectUtil.isNull(josDetailResultDto) ? new ArrayList<>()
|
|
|
- : josDetailResultDto.getPurchaseAllocationDetailList();
|
|
|
-
|
|
|
- List<JdOrderDetails> jdOrderDetails = BeanUtil.copyToList(purchaseAllocationDetailList, JdOrderDetails.class);
|
|
|
|
|
|
DynamicDataSourceContextHolder.push(SourceConstant.ITEM);
|
|
|
AtomicBoolean hasExFlag = new AtomicBoolean(false);
|
|
|
- jdOrderDetails.forEach(item -> {
|
|
|
- item.setJdOrderId(jdOrder.getId());
|
|
|
- //产品编码
|
|
|
- Long wareId = item.getWareId();
|
|
|
- List<ProductInfo> list = productInfoService.lambdaQuery().eq(ProductInfo::getCustomCode, wareId).list();
|
|
|
- if (CollectionUtil.isEmpty(list)) {
|
|
|
- //TODO 没有产品触发异常;
|
|
|
- } else {
|
|
|
- item.setProductId(list.get(0).getId());
|
|
|
- }
|
|
|
- if (JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())) {
|
|
|
- //如果京东采购单状态 = 已完成 & 明细数据中存在 实收 != 回告 & 分流类型 == 仓库发货(10),则给京东采购单打上【异常】标记
|
|
|
- //如果实收>回告,则:给对应的明细打上【多货】标记;如果实收<回告,则:给对应的明细打上【少货】标记
|
|
|
- if (
|
|
|
- ObjectUtil.isNotNull(item.getActualNum())
|
|
|
- && ObjectUtil.isNotNull(item.getConfirmNum())
|
|
|
- && ObjectUtil.isNotEmpty(jdOrder.getDiversionType())
|
|
|
- && item.getActualNum().compareTo(item.getConfirmNum()) != 0
|
|
|
- && jdOrder.getDiversionType() == 10
|
|
|
- ) {
|
|
|
- String exDesc;
|
|
|
- if (item.getActualNum().compareTo(item.getConfirmNum()) > 0) {
|
|
|
- exDesc = RunParamConstant.EXCESS;
|
|
|
+
|
|
|
+ try {
|
|
|
+ VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
|
|
|
+ request.setOrderId(jdOrder.getOrderId());
|
|
|
+ request.setIsPage(false);
|
|
|
+ VcGetdetailbyorderidResponse response = jdClient.execute(request);
|
|
|
+ JOSDetailResultDto josDetailResultDto = response.getJosDetailResultDto();
|
|
|
+ List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = josDetailResultDto.getPurchaseAllocationDetailList();
|
|
|
+ List<JdOrderDetails> jdOrderDetails = BeanUtil.copyToList(purchaseAllocationDetailList, JdOrderDetails.class);
|
|
|
+
|
|
|
+ jdOrderDetails.forEach(item -> {
|
|
|
+ item.setJdOrderId(jdOrder.getId());
|
|
|
+ //产品编码
|
|
|
+ Long wareId = item.getWareId();
|
|
|
+ List<ProductInfo> list = productInfoService.lambdaQuery().eq(ProductInfo::getCustomCode, wareId).list();
|
|
|
+ if (CollectionUtil.isEmpty(list)) {
|
|
|
+ //TODO 没有产品触发异常;
|
|
|
+ } else {
|
|
|
+ item.setProductId(list.get(0).getId());
|
|
|
+ }
|
|
|
+ if (JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())) {
|
|
|
+ //如果京东采购单状态 = 已完成 & 明细数据中存在 实收 != 回告 & 分流类型 == 仓库发货(10),则给京东采购单打上【异常】标记
|
|
|
+ //如果实收>回告,则:给对应的明细打上【多货】标记;如果实收<回告,则:给对应的明细打上【少货】标记
|
|
|
+ if (
|
|
|
+ ObjectUtil.isNotNull(item.getActualNum())
|
|
|
+ && ObjectUtil.isNotNull(item.getConfirmNum())
|
|
|
+ && ObjectUtil.isNotEmpty(jdOrder.getDiversionType())
|
|
|
+ && item.getActualNum().compareTo(item.getConfirmNum()) != 0
|
|
|
+ && jdOrder.getDiversionType() == 10
|
|
|
+ ) {
|
|
|
+ String exDesc;
|
|
|
+ if (item.getActualNum().compareTo(item.getConfirmNum()) > 0) {
|
|
|
+ exDesc = RunParamConstant.EXCESS;
|
|
|
+ } else {
|
|
|
+ exDesc = RunParamConstant.SHORTAGE;
|
|
|
+ }
|
|
|
+ item.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
+ item.setExDesc(exDesc);
|
|
|
+ item.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
+ hasExFlag.set(true);
|
|
|
} else {
|
|
|
- exDesc = RunParamConstant.SHORTAGE;
|
|
|
+ item.setHasEx(null);
|
|
|
+ item.setExDesc(null);
|
|
|
+ item.setHandleStatus(null);
|
|
|
}
|
|
|
- item.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
- item.setExDesc(exDesc);
|
|
|
- item.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
- hasExFlag.set(true);
|
|
|
- } else {
|
|
|
- item.setHasEx(null);
|
|
|
- item.setExDesc(null);
|
|
|
- item.setHandleStatus(null);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- jdOrderDetailsList.addAll(jdOrderDetails);
|
|
|
+ });
|
|
|
+ jdOrderDetailsList.addAll(jdOrderDetails);
|
|
|
+ } finally {
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ }
|
|
|
return hasExFlag.get();
|
|
|
}
|
|
|
|
|
@@ -510,8 +546,6 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
private void handleComponent() {
|
|
|
componentDictTypeMap.forEach((k, v) -> {
|
|
|
VcGetcomponentlistRequest request = new VcGetcomponentlistRequest();
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
try {
|
|
|
request.setType(k);
|
|
|
VcGetcomponentlistResponse response = jdClient.execute(request);
|
|
@@ -523,16 +557,11 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
for (Component component : arg89) {
|
|
|
commonDictDataList.add(new CommonDictData(component.getKey(), component.getName()));
|
|
|
}
|
|
|
- if ("orderAttribute".equals(k)) {
|
|
|
- System.out.println(123);
|
|
|
- }
|
|
|
handleDictData(commonDictDataList, dictTenantType);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
- DynamicDataSourceContextHolder.poll();
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -542,8 +571,7 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
private void handleDeliveryCenter() {
|
|
|
//获取京东仓库,并存入字典表
|
|
|
VcGetwaredeliverdistinctlistRequest request = new VcGetwaredeliverdistinctlistRequest();
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
+
|
|
|
try {
|
|
|
VcGetwaredeliverdistinctlistResponse response = jdClient.execute(request);
|
|
|
|
|
@@ -558,28 +586,20 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
} catch (Exception e) {
|
|
|
log.error("转换配送中心到字典出现异常", e);
|
|
|
}
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
- DynamicDataSourceContextHolder.poll();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理jd退货状态字典
|
|
|
*/
|
|
|
private void handleReturnStates() {
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
try {
|
|
|
DictTenantType dictTenantType = handleDictType(InitDictConstant.RETURN_STATES, InitDictConstant.RETURN_STATES_LABEL);
|
|
|
List<CommonDictData> commonDictDataList = new ArrayList<>();
|
|
|
- returnStatesMap.forEach((k, v) -> {
|
|
|
- commonDictDataList.add(new CommonDictData(k, v));
|
|
|
- });
|
|
|
+ returnStatesMap.forEach((k, v) -> commonDictDataList.add(new CommonDictData(k, v)));
|
|
|
handleDictData(commonDictDataList, dictTenantType);
|
|
|
} catch (Exception e) {
|
|
|
log.error("处理jd退货状态字典出现异常", e);
|
|
|
}
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
- DynamicDataSourceContextHolder.poll();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -638,9 +658,6 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
* 获取京东订单
|
|
|
*/
|
|
|
private void saveJdOrder(JdInfoVo jdInfoVo) {
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
-
|
|
|
//获取开始同步的时间
|
|
|
Date startTime = jdInfoVo.getInitQueryDate();
|
|
|
Date endTime = new Date();
|
|
@@ -691,15 +708,10 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
|
|
|
//将数据存储到库
|
|
|
jdOrderService.saveBatch(jdOrderList);
|
|
|
-
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
jdOrderDetailsService.saveOrUpdateBatch(jdOrderDetailsList);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
log.error("获取京东订单出错:{}", e.getMessage(), e);
|
|
|
- } finally {
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
- DynamicDataSourceContextHolder.clear();
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -708,8 +720,6 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
* 获取京东退货订单
|
|
|
*/
|
|
|
private void getJdBackOrder(JdInfoVo jdInfoVo) {
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
- SecurityUtils.setTenantId(RunParamConstant.tenantId);
|
|
|
try {
|
|
|
Date startTime = jdInfoVo.getInitQueryDate();
|
|
|
Date endTime = new Date();
|
|
@@ -756,20 +766,20 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
}
|
|
|
|
|
|
// 赋值产品编码
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.ITEM);
|
|
|
- Map<String, Long> map = productInfoService.mapKV(ProductInfo::getCustomCode, BaseIdPo::getId,
|
|
|
- q -> q.in(ProductInfo::getCustomCode, wareIdSet));
|
|
|
- JdBackDetailsList.forEach(item -> item.setProductId(map.get(item.getWareId().toString())));
|
|
|
+ try {
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.ITEM);
|
|
|
+ Map<String, Long> map = productInfoService.mapKV(ProductInfo::getCustomCode, BaseIdPo::getId,
|
|
|
+ q -> q.in(ProductInfo::getCustomCode, wareIdSet));
|
|
|
+ JdBackDetailsList.forEach(item -> item.setProductId(map.get(item.getWareId().toString())));
|
|
|
+ } finally {
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ }
|
|
|
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
jdBackService.saveBatch(jdBackList);
|
|
|
jdBackDetailsService.saveBatch(JdBackDetailsList);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
log.error("获取京东退货订单出错:{}", e.getMessage(), e);
|
|
|
- } finally {
|
|
|
- SecurityUtils.clearTenantId();
|
|
|
- DynamicDataSourceContextHolder.clear();
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -820,7 +830,15 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
}
|
|
|
VcGetpurchaseorderlistResponse response = jdClient.execute(request);
|
|
|
validSuccess(response, "获取京东订单信息分页");
|
|
|
- return response.getJosOrderResultDto();
|
|
|
+ JOSOrderResultDto josOrderResultDto = response.getJosOrderResultDto();
|
|
|
+
|
|
|
+ boolean success = josOrderResultDto.getSuccess();
|
|
|
+ if (!success) {
|
|
|
+ log.error("获取京东订单信息失败:{}", josOrderResultDto.getResultMessage());
|
|
|
+ throw new RuntimeException("获取京东订单信息失败:" + josOrderResultDto.getResultMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return josOrderResultDto;
|
|
|
}
|
|
|
|
|
|
/**
|