|
@@ -29,6 +29,9 @@ import com.fjhx.victoriatourist.service.jd.constants.InitDictConstant;
|
|
|
import com.fjhx.victoriatourist.service.jd.constants.JdParamConstant;
|
|
|
import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
|
|
|
import com.fjhx.victoriatourist.service.jd.factory.JdClientFactory;
|
|
|
+import com.google.common.collect.ArrayTable;
|
|
|
+import com.google.common.collect.HashBasedTable;
|
|
|
+import com.google.common.collect.Table;
|
|
|
import com.jd.open.api.sdk.JdClient;
|
|
|
import com.jd.open.api.sdk.domain.supplier.PoCommonForJosWebService.response.getcomponentlist.Component;
|
|
|
import com.jd.open.api.sdk.domain.supplier.PoCommonForJosWebService.response.getwaredeliverdistinctlist.WarehouseDto;
|
|
@@ -337,7 +340,7 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
int pageSize = 30;
|
|
|
Page<JdOrder> page = new Page<>(pageIndex, pageSize);
|
|
|
do {
|
|
|
- Page<JdOrder> jdOrderPage = jdOrderService.lambdaQuery().notIn(JdOrder::getState, notIn).orderByAsc(JdOrder::getCreatedDate).page(page);
|
|
|
+ Page<JdOrder> jdOrderPage = jdOrderService.lambdaQuery().notIn(JdOrder::getState, notIn).orderByDesc(JdOrder::getCreatedDate).page(page);
|
|
|
//2.按每30个订单查询京东订单状态
|
|
|
List<JdOrder> records = jdOrderPage.getRecords();
|
|
|
totalPage = (jdOrderPage.getTotal() / pageSize) + (jdOrderPage.getTotal() % pageSize > 0 ? 1 : 0);
|
|
@@ -350,18 +353,41 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
for (JdOrder jdOrder : jdOrderList) {
|
|
|
Long id = collect.get(jdOrder.getOrderId()).getId();
|
|
|
jdOrder.setId(id);
|
|
|
- //删除当前订单下的明细
|
|
|
- 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);
|
|
|
+ if(JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())) {
|
|
|
+ List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
+ //重新插入明细
|
|
|
+ boolean hasExFlag = dealOrderDetail(jdClient, jdOrder, jdOrderDetailsList);
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
+ //获取当前明细记录
|
|
|
+ List<JdOrderDetails> dbJdOrderDetails = jdOrderDetailsService.lambdaQuery().eq(JdOrderDetails::getJdOrderId, id).list();
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ if (hasExFlag) {
|
|
|
+ jdOrder.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
+ jdOrder.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
+ }else{
|
|
|
+ jdOrder.setHasEx(RunParamConstant.NO_EXCEPTION);
|
|
|
+ jdOrder.setHandleStatus(null);
|
|
|
+ }
|
|
|
+ jdOrderDetailsService.saveOrUpdateBatch(dbJdOrderDetails);
|
|
|
}
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
|
|
|
- jdOrderDetailsService.saveBatch(jdOrderDetailsList);
|
|
|
jdOrderService.saveOrUpdate(jdOrder);
|
|
|
}
|
|
|
pageIndex++;
|
|
@@ -409,6 +435,10 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
item.setExDesc(exDesc);
|
|
|
item.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
|
|
|
hasExFlag.set(true);
|
|
|
+ }else {
|
|
|
+ item.setHasEx(null);
|
|
|
+ item.setExDesc(null);
|
|
|
+ item.setHandleStatus(null);
|
|
|
}
|
|
|
}
|
|
|
});
|