|
@@ -350,30 +350,18 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
for (JdOrder jdOrder : jdOrderList) {
|
|
|
Long id = collect.get(jdOrder.getOrderId()).getId();
|
|
|
jdOrder.setId(id);
|
|
|
- //如果京东采购单状态 = 已完成 & 明细数据中存在 实收 != 回告,则给京东采购单打上【异常】标记
|
|
|
- //如果实收>回告,则:给对应的明细打上【多货】标记;如果实收<回告,则:给对应的明细打上【少货】标记
|
|
|
- if(JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())){
|
|
|
- List<JdOrderDetails> jdOrderDetailsList = jdOrderDetailsService.lambdaQuery().eq(JdOrderDetails::getJdOrderId, jdOrder.getOrderId()).list();
|
|
|
- boolean flag = false;
|
|
|
- for (JdOrderDetails jdOrderDetail : jdOrderDetailsList) {
|
|
|
- if(ObjectUtil.isNotNull(jdOrderDetail.getActualNum()) && ObjectUtil.isNotNull(jdOrderDetail.getConfirmNum()) && jdOrderDetail.getActualNum().compareTo(jdOrderDetail.getConfirmNum()) != 0){
|
|
|
- flag = true;
|
|
|
- String exDesc = "";
|
|
|
- if (jdOrderDetail.getActualNum().compareTo(jdOrderDetail.getConfirmNum()) > 0){
|
|
|
- exDesc = RunParamConstant.EXCESS;
|
|
|
- }else {
|
|
|
- exDesc = RunParamConstant.SHORTAGE;
|
|
|
- }
|
|
|
- jdOrderDetail.setExDesc(exDesc);
|
|
|
- jdOrderDetail.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
- jdOrderDetail.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
- jdOrderDetailsService.updateById(jdOrderDetail);
|
|
|
- }
|
|
|
- }
|
|
|
- if(flag){
|
|
|
- jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
- }
|
|
|
+ //删除当前订单下的明细
|
|
|
+ jdOrderDetailsService.lambdaUpdate().eq(JdOrderDetails::getJdOrderId, jdOrder.getOrderId()).remove();
|
|
|
+ List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
+ //重新插入明细
|
|
|
+ boolean hasExFlag = dealOrderDetail(jdClient, jdOrder, jdOrderDetailsList);
|
|
|
+
|
|
|
+ if (hasExFlag){
|
|
|
+ jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
+ jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
}
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
+ jdOrderDetailsService.saveBatch(jdOrderDetailsList);
|
|
|
jdOrderService.saveOrUpdate(jdOrder);
|
|
|
}
|
|
|
pageIndex++;
|
|
@@ -387,6 +375,47 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private boolean dealOrderDetail(JdClient jdClient, 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 = 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())){
|
|
|
+ //如果京东采购单状态 = 已完成 & 明细数据中存在 实收 != 回告,则给京东采购单打上【异常】标记
|
|
|
+ //如果实收>回告,则:给对应的明细打上【多货】标记;如果实收<回告,则:给对应的明细打上【少货】标记
|
|
|
+ if(ObjectUtil.isNotNull(item.getActualNum()) && ObjectUtil.isNotNull(item.getConfirmNum()) && item.getActualNum().compareTo(item.getConfirmNum()) != 0){
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ jdOrderDetailsList.addAll(jdOrderDetails);
|
|
|
+ return hasExFlag.get();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 处理回告状态、订单属性、删除状态、图书回告不满足原因、订单状态
|
|
|
* @author hj
|
|
@@ -596,43 +625,8 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
//获取明细
|
|
|
List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
for (JdOrder jdOrder : jdOrderList) {
|
|
|
- VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
|
|
|
- request.setOrderId(jdOrder.getOrderId());
|
|
|
- request.setIsPage(false);
|
|
|
- VcGetdetailbyorderidResponse response = client.execute(request);
|
|
|
- JOSDetailResultDto josDetailResultDto = response.getJosDetailResultDto();
|
|
|
- List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = 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())){
|
|
|
- //如果京东采购单状态 = 已完成 & 明细数据中存在 实收 != 回告,则给京东采购单打上【异常】标记
|
|
|
- if(ObjectUtil.isNotNull(item.getActualNum()) && ObjectUtil.isNotNull(item.getConfirmNum()) && item.getActualNum().compareTo(item.getConfirmNum()) != 0){
|
|
|
- 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);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- jdOrderDetailsList.addAll(jdOrderDetails);
|
|
|
- if (hasExFlag.get()){
|
|
|
+ boolean hasExFlag = dealOrderDetail(client, jdOrder, jdOrderDetailsList);
|
|
|
+ if (hasExFlag){
|
|
|
jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
jdOrderService.updateById(jdOrder);
|
|
@@ -885,7 +879,7 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
request.setCreatedDateEnd(endTime);
|
|
|
request.setPageIndex(pageIndex);
|
|
|
request.setPageSize(pageSize);
|
|
|
-// request.setOrderIds("1618415008");
|
|
|
+ request.setOrderIds("1624825132");
|
|
|
if(CollectionUtil.isNotEmpty(orderIds)){
|
|
|
String orderIdsStr = orderIds.stream().map(Object::toString).collect(Collectors.joining(","));
|
|
|
request.setOrderIds(orderIdsStr);
|