|
@@ -284,9 +284,12 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
if (ObjectUtil.isNull(jdInfoVo)) {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- saveJdOrder(jdInfoVo);
|
|
|
- log.info("京东订单采集完成");
|
|
|
+ try {
|
|
|
+ saveJdOrder(jdInfoVo);
|
|
|
+ log.info("京东订单采集完成");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("京东订单采集出错:{}", e.getMessage(), e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -298,9 +301,12 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
if (ObjectUtil.isNull(jdInfoVo)) {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- getJdBackOrder(jdInfoVo);
|
|
|
- log.info("京东退货单采集完成");
|
|
|
+ try {
|
|
|
+ getJdBackOrder(jdInfoVo);
|
|
|
+ log.info("京东退货单采集完成");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("京东退货单采集出错:{}", e.getMessage(), e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -312,9 +318,12 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
if (ObjectUtil.isNull(jdInfoVo)) {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- handleRefreshDate();
|
|
|
- log.info("刷新京东状态完成");
|
|
|
+ try {
|
|
|
+ handleRefreshDate();
|
|
|
+ log.info("刷新京东状态完成");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("刷新京东状态失败", e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -331,8 +340,6 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
} finally {
|
|
|
DynamicDataSourceContextHolder.poll();
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
log.info("字典初始化完成");
|
|
|
}
|
|
|
|
|
@@ -401,8 +408,7 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
/**
|
|
|
* 处理刷新token数据
|
|
|
*/
|
|
|
- private void handleRefreshDate() {
|
|
|
-
|
|
|
+ private void handleRefreshDate() throws Exception {
|
|
|
Date endDate = new Date();
|
|
|
Date startDate = DateUtil.offsetMonth(endDate, -3);
|
|
|
|
|
@@ -422,63 +428,56 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
// 2.按50个订单查询京东订单状态
|
|
|
List<List<JdOrder>> splitJdOrder = ListUtil.split(jdOrders, 50);
|
|
|
|
|
|
- try {
|
|
|
-
|
|
|
- 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);
|
|
|
-
|
|
|
- //3.更新订单信息
|
|
|
- for (JdOrder jdOrder : jdOrderList) {
|
|
|
- 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);
|
|
|
-
|
|
|
- //获取当前明细记录
|
|
|
- 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());
|
|
|
- dbJdOrderDetail.setDeliverCenterName(onlineJdOrderDetails.getDeliverCenterName());
|
|
|
- dbJdOrderDetail.setWareName(onlineJdOrderDetails.getWareName());
|
|
|
- dbJdOrderDetail.setPurchasePrice(onlineJdOrderDetails.getPurchasePrice());
|
|
|
- dbJdOrderDetail.setOriginalNum(onlineJdOrderDetails.getOriginalNum());
|
|
|
- dbJdOrderDetail.setConfirmNum(onlineJdOrderDetails.getConfirmNum());
|
|
|
- dbJdOrderDetail.setActualNum(onlineJdOrderDetails.getActualNum());
|
|
|
- dbJdOrderDetail.setNonDeliveryReason(onlineJdOrderDetails.getNonDeliveryReason());
|
|
|
- dbJdOrderDetail.setTotoalPrice(onlineJdOrderDetails.getTotoalPrice());
|
|
|
- dbJdOrderDetail.setStoreId(onlineJdOrderDetails.getStoreId());
|
|
|
- dbJdOrderDetail.setStoreName(onlineJdOrderDetails.getStoreName());
|
|
|
- dbJdOrderDetail.setHasEx(onlineJdOrderDetails.getHasEx());
|
|
|
- dbJdOrderDetail.setExDesc(onlineJdOrderDetails.getExDesc());
|
|
|
- dbJdOrderDetail.setHandleStatus(onlineJdOrderDetails.getHandleStatus());
|
|
|
- }
|
|
|
+ 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);
|
|
|
|
|
|
- if (hasExFlag) {
|
|
|
- jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
- jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
- } else {
|
|
|
- jdOrder.setHasEx(RunParamConstant.NO_EXCEPTION);
|
|
|
- jdOrder.setHandleStatus(null);
|
|
|
- }
|
|
|
+ //3.更新订单信息
|
|
|
+ for (JdOrder jdOrder : jdOrderList) {
|
|
|
+ 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);
|
|
|
+
|
|
|
+ //获取当前明细记录
|
|
|
+ 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());
|
|
|
+ dbJdOrderDetail.setDeliverCenterName(onlineJdOrderDetails.getDeliverCenterName());
|
|
|
+ dbJdOrderDetail.setWareName(onlineJdOrderDetails.getWareName());
|
|
|
+ dbJdOrderDetail.setPurchasePrice(onlineJdOrderDetails.getPurchasePrice());
|
|
|
+ dbJdOrderDetail.setOriginalNum(onlineJdOrderDetails.getOriginalNum());
|
|
|
+ dbJdOrderDetail.setConfirmNum(onlineJdOrderDetails.getConfirmNum());
|
|
|
+ dbJdOrderDetail.setActualNum(onlineJdOrderDetails.getActualNum());
|
|
|
+ dbJdOrderDetail.setNonDeliveryReason(onlineJdOrderDetails.getNonDeliveryReason());
|
|
|
+ dbJdOrderDetail.setTotoalPrice(onlineJdOrderDetails.getTotoalPrice());
|
|
|
+ dbJdOrderDetail.setStoreId(onlineJdOrderDetails.getStoreId());
|
|
|
+ dbJdOrderDetail.setStoreName(onlineJdOrderDetails.getStoreName());
|
|
|
+ dbJdOrderDetail.setHasEx(onlineJdOrderDetails.getHasEx());
|
|
|
+ dbJdOrderDetail.setExDesc(onlineJdOrderDetails.getExDesc());
|
|
|
+ dbJdOrderDetail.setHandleStatus(onlineJdOrderDetails.getHandleStatus());
|
|
|
+ }
|
|
|
|
|
|
- jdOrderDetailsService.updateBatchById(dbJdOrderDetails);
|
|
|
+ if (hasExFlag) {
|
|
|
+ jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
+ jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
+ } else {
|
|
|
+ jdOrder.setHasEx(RunParamConstant.NO_EXCEPTION);
|
|
|
+ jdOrder.setHandleStatus(null);
|
|
|
}
|
|
|
- jdOrderService.updateById(jdOrder);
|
|
|
- }
|
|
|
|
|
|
+ jdOrderDetailsService.updateBatchById(dbJdOrderDetails);
|
|
|
+ }
|
|
|
+ jdOrderService.updateById(jdOrder);
|
|
|
}
|
|
|
-
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("刷新京东状态失败", e);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -496,16 +495,14 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = josDetailResultDto.getPurchaseAllocationDetailList();
|
|
|
List<JdOrderDetails> jdOrderDetails = BeanUtil.copyToList(purchaseAllocationDetailList, JdOrderDetails.class);
|
|
|
|
|
|
+ Set<String> wareIdSet = jdOrderDetails.stream().map(item -> item.getWareId().toString()).collect(Collectors.toSet());
|
|
|
+ Map<String, Long> productMap = productInfoService.mapKV(ProductInfo::getCustomCode, ProductInfo::getId,
|
|
|
+ q -> q.in(ProductInfo::getCustomCode, wareIdSet));
|
|
|
+
|
|
|
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());
|
|
|
- }
|
|
|
+ item.setProductId(productMap.get(item.getWareId().toString()));
|
|
|
+
|
|
|
if (JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())) {
|
|
|
//如果京东采购单状态 = 已完成 & 明细数据中存在 实收 != 回告 & 分流类型 == 仓库发货(10),则给京东采购单打上【异常】标记
|
|
|
//如果实收>回告,则:给对应的明细打上【多货】标记;如果实收<回告,则:给对应的明细打上【少货】标记
|
|
@@ -657,7 +654,7 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
/**
|
|
|
* 获取京东订单
|
|
|
*/
|
|
|
- private void saveJdOrder(JdInfoVo jdInfoVo) {
|
|
|
+ private void saveJdOrder(JdInfoVo jdInfoVo) throws Exception {
|
|
|
//获取开始同步的时间
|
|
|
Date startTime = jdInfoVo.getInitQueryDate();
|
|
|
Date endTime = new Date();
|
|
@@ -668,120 +665,105 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
startTime = lastJdOrder.getCreatedDate();
|
|
|
}
|
|
|
|
|
|
- try {
|
|
|
- List<PurchaseOrderDto> purchaseOrderDtoList = getJdOrderInfo(startTime, endTime, null);
|
|
|
-
|
|
|
- if (CollectionUtil.isEmpty(purchaseOrderDtoList)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // 订单id集合
|
|
|
- Set<Long> orderIdSet = purchaseOrderDtoList.stream().map(PurchaseOrderDto::getOrderId).collect(Collectors.toSet());
|
|
|
-
|
|
|
- // 获取已同步的京东订单id
|
|
|
- Set<Long> existOrderIdSet = jdOrderService.list(q -> q.select(JdOrder::getOrderId).in(JdOrder::getOrderId, orderIdSet))
|
|
|
- .stream().map(JdOrder::getOrderId).collect(Collectors.toSet());
|
|
|
+ List<PurchaseOrderDto> purchaseOrderDtoList = getJdOrderInfo(startTime, endTime, null);
|
|
|
|
|
|
- // 过滤已同步的订单
|
|
|
- purchaseOrderDtoList = purchaseOrderDtoList.stream()
|
|
|
- .filter(item -> !existOrderIdSet.contains(item.getOrderId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isEmpty(purchaseOrderDtoList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- //转为系统自己的实体类
|
|
|
- List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderDtoList, JdOrder.class);
|
|
|
+ // 订单id集合
|
|
|
+ Set<Long> orderIdSet = purchaseOrderDtoList.stream().map(PurchaseOrderDto::getOrderId).collect(Collectors.toSet());
|
|
|
|
|
|
- //获取明细
|
|
|
- List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
+ // 获取已同步的京东订单id
|
|
|
+ Set<Long> existOrderIdSet = jdOrderService.list(q -> q.select(JdOrder::getOrderId).in(JdOrder::getOrderId, orderIdSet))
|
|
|
+ .stream().map(JdOrder::getOrderId).collect(Collectors.toSet());
|
|
|
|
|
|
- for (JdOrder jdOrder : jdOrderList) {
|
|
|
- jdOrder.setId(IdWorker.getId());
|
|
|
- jdOrder.setTenantId(RunParamConstant.tenantId);
|
|
|
+ // 过滤已同步的订单
|
|
|
+ purchaseOrderDtoList = purchaseOrderDtoList.stream()
|
|
|
+ .filter(item -> !existOrderIdSet.contains(item.getOrderId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
- boolean hasExFlag = dealOrderDetail(jdOrder, jdOrderDetailsList);
|
|
|
+ // 转为系统自己的实体类
|
|
|
+ List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderDtoList, JdOrder.class);
|
|
|
|
|
|
- if (hasExFlag) {
|
|
|
- jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
- jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
- }
|
|
|
+ // 获取明细
|
|
|
+ List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
|
|
|
+ for (JdOrder jdOrder : jdOrderList) {
|
|
|
+ jdOrder.setId(IdWorker.getId());
|
|
|
+ jdOrder.setTenantId(RunParamConstant.tenantId);
|
|
|
+ boolean hasExFlag = dealOrderDetail(jdOrder, jdOrderDetailsList);
|
|
|
+ if (hasExFlag) {
|
|
|
+ jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
+ jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
}
|
|
|
-
|
|
|
- //将数据存储到库
|
|
|
- jdOrderService.saveBatch(jdOrderList);
|
|
|
- jdOrderDetailsService.saveOrUpdateBatch(jdOrderDetailsList);
|
|
|
-
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("获取京东订单出错:{}", e.getMessage(), e);
|
|
|
}
|
|
|
|
|
|
+ // 将数据存储到库
|
|
|
+ jdOrderService.saveBatch(jdOrderList);
|
|
|
+ jdOrderDetailsService.saveOrUpdateBatch(jdOrderDetailsList);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取京东退货订单
|
|
|
*/
|
|
|
- private void getJdBackOrder(JdInfoVo jdInfoVo) {
|
|
|
- try {
|
|
|
- Date startTime = jdInfoVo.getInitQueryDate();
|
|
|
- Date endTime = new Date();
|
|
|
- //根据下单时间获取数据库里最后一个订单
|
|
|
- JdBack lastJdBack = jdBackService.getOne(q -> q.orderByDesc(JdBack::getCreateDate));
|
|
|
- if (ObjectUtil.isNotNull(lastJdBack)) {
|
|
|
- //将最后一个下单时间设置为开始时间
|
|
|
- startTime = lastJdBack.getCreateDate();
|
|
|
- }
|
|
|
-
|
|
|
- List<RoDto> roDtoList = getJdBackInfo(startTime, endTime);
|
|
|
- if (CollectionUtil.isEmpty(roDtoList)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- //过滤出不在数据库里的新数据
|
|
|
- List<Long> returnIds = roDtoList.stream().map(RoDto::getReturnId).collect(Collectors.toList());
|
|
|
- List<Long> existReturnIds = jdBackService.list(q -> q.select(JdBack::getReturnId).in(JdBack::getReturnId, returnIds))
|
|
|
- .stream().map(JdBack::getReturnId).collect(Collectors.toList());
|
|
|
- roDtoList = roDtoList.stream().filter(item -> !existReturnIds.contains(item.getReturnId())).collect(Collectors.toList());
|
|
|
+ private void getJdBackOrder(JdInfoVo jdInfoVo) throws Exception {
|
|
|
+ Date startTime = jdInfoVo.getInitQueryDate();
|
|
|
+ Date endTime = new Date();
|
|
|
+ //根据下单时间获取数据库里最后一个订单
|
|
|
+ JdBack lastJdBack = jdBackService.getOne(q -> q.orderByDesc(JdBack::getCreateDate));
|
|
|
+ if (ObjectUtil.isNotNull(lastJdBack)) {
|
|
|
+ //将最后一个下单时间设置为开始时间
|
|
|
+ startTime = lastJdBack.getCreateDate();
|
|
|
+ }
|
|
|
|
|
|
- //转成我们自己的实体类
|
|
|
- List<JdBack> jdBackList = BeanUtil.copyToList(roDtoList, JdBack.class);
|
|
|
+ List<RoDto> roDtoList = getJdBackInfo(startTime, endTime);
|
|
|
+ if (CollectionUtil.isEmpty(roDtoList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- //获取明细
|
|
|
- List<JdBackDetails> JdBackDetailsList = new ArrayList<>();
|
|
|
+ //过滤出不在数据库里的新数据
|
|
|
+ List<Long> returnIds = roDtoList.stream().map(RoDto::getReturnId).collect(Collectors.toList());
|
|
|
+ List<Long> existReturnIds = jdBackService.list(q -> q.select(JdBack::getReturnId).in(JdBack::getReturnId, returnIds))
|
|
|
+ .stream().map(JdBack::getReturnId).collect(Collectors.toList());
|
|
|
+ roDtoList = roDtoList.stream().filter(item -> !existReturnIds.contains(item.getReturnId())).collect(Collectors.toList());
|
|
|
|
|
|
- Set<Long> wareIdSet = new HashSet<>();
|
|
|
+ //转成我们自己的实体类
|
|
|
+ List<JdBack> jdBackList = BeanUtil.copyToList(roDtoList, JdBack.class);
|
|
|
|
|
|
- for (JdBack jdBack : jdBackList) {
|
|
|
- jdBack.setId(IdWorker.getId());
|
|
|
+ //获取明细
|
|
|
+ List<JdBackDetails> JdBackDetailsList = new ArrayList<>();
|
|
|
|
|
|
- VcGetReturnOrderDetailRequest request = new VcGetReturnOrderDetailRequest();
|
|
|
- request.setReturnId(jdBack.getReturnId());
|
|
|
- VcGetReturnOrderDetailResponse response = jdClient.execute(request);
|
|
|
- DetailResultDto detailResultDto = response.getDetailResultDto();
|
|
|
- List<JdBackDetails> jdBackDetails = BeanUtil.copyToList(detailResultDto.getDetailDtoList(), JdBackDetails.class);
|
|
|
+ Set<Long> wareIdSet = new HashSet<>();
|
|
|
|
|
|
- jdBackDetails.forEach(item -> {
|
|
|
- item.setJdBackId(jdBack.getId());
|
|
|
- wareIdSet.add(item.getWareId());
|
|
|
- });
|
|
|
- JdBackDetailsList.addAll(jdBackDetails);
|
|
|
- }
|
|
|
+ for (JdBack jdBack : jdBackList) {
|
|
|
+ jdBack.setId(IdWorker.getId());
|
|
|
|
|
|
- // 赋值产品编码
|
|
|
- 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();
|
|
|
- }
|
|
|
+ VcGetReturnOrderDetailRequest request = new VcGetReturnOrderDetailRequest();
|
|
|
+ request.setReturnId(jdBack.getReturnId());
|
|
|
+ VcGetReturnOrderDetailResponse response = jdClient.execute(request);
|
|
|
+ DetailResultDto detailResultDto = response.getDetailResultDto();
|
|
|
+ List<JdBackDetails> jdBackDetails = BeanUtil.copyToList(detailResultDto.getDetailDtoList(), JdBackDetails.class);
|
|
|
|
|
|
- jdBackService.saveBatch(jdBackList);
|
|
|
- jdBackDetailsService.saveBatch(JdBackDetailsList);
|
|
|
+ jdBackDetails.forEach(item -> {
|
|
|
+ item.setJdBackId(jdBack.getId());
|
|
|
+ wareIdSet.add(item.getWareId());
|
|
|
+ });
|
|
|
+ JdBackDetailsList.addAll(jdBackDetails);
|
|
|
+ }
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("获取京东退货订单出错:{}", e.getMessage(), e);
|
|
|
+ // 赋值产品编码
|
|
|
+ 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();
|
|
|
}
|
|
|
|
|
|
+ jdBackService.saveBatch(jdBackList);
|
|
|
+ jdBackDetailsService.saveBatch(JdBackDetailsList);
|
|
|
}
|
|
|
|
|
|
/**
|