|
@@ -6,6 +6,7 @@ import com.fs.common.annotation.QuartzRunnable;
|
|
|
import com.fs.common.core.redis.RedisCache;
|
|
import com.fs.common.core.redis.RedisCache;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
import com.fs.common.utils.DateUtils;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
import com.fs.common.utils.StringUtils;
|
|
|
|
|
+import com.fs.erp.service.impl.JSTErpOrderServiceImpl;
|
|
|
import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
|
|
import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
|
|
|
import com.fs.huifuPay.dto.*;
|
|
import com.fs.huifuPay.dto.*;
|
|
|
import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
|
import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
|
@@ -41,6 +42,7 @@ import com.fs.store.vo.FsUserShareVO;
|
|
|
import com.fs.system.service.ISysConfigService;
|
|
import com.fs.system.service.ISysConfigService;
|
|
|
import com.fs.wx.domain.FsWxExpressTask;
|
|
import com.fs.wx.domain.FsWxExpressTask;
|
|
|
import com.fs.wx.mapper.FsWxExpressTaskMapper;
|
|
import com.fs.wx.mapper.FsWxExpressTaskMapper;
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.google.common.util.concurrent.RateLimiter;
|
|
import com.google.common.util.concurrent.RateLimiter;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang.ObjectUtils;
|
|
import org.apache.commons.lang.ObjectUtils;
|
|
@@ -245,61 +247,134 @@ public class StoreTask {
|
|
|
public void jstCodPush(){
|
|
public void jstCodPush(){
|
|
|
fsJstCodPushService.jstCodPush();
|
|
fsJstCodPushService.jstCodPush();
|
|
|
}
|
|
}
|
|
|
- /**
|
|
|
|
|
- * 发货任务
|
|
|
|
|
- */
|
|
|
|
|
- @QuartzRunnable(name = "发货任务")
|
|
|
|
|
- public void deliveryOp() {
|
|
|
|
|
- List<FsStoreOrder> list = orderService.selectDeliverPenddingData();
|
|
|
|
|
- Date nowDate = DateUtils.getNowDate();
|
|
|
|
|
- for (FsStoreOrder order: list) {
|
|
|
|
|
- order.setUpdateTime(nowDate);
|
|
|
|
|
- orderService.updateFsStoreOrderDb(order);
|
|
|
|
|
- String orderCode = order.getOrderCode();
|
|
|
|
|
- ErpOrderQueryRequert request = new ErpOrderQueryRequert();
|
|
|
|
|
- request.setCode(order.getExtendOrderId());
|
|
|
|
|
|
|
|
|
|
- try{
|
|
|
|
|
- // 根据仓库code找erp
|
|
|
|
|
- if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
|
|
|
|
|
- String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
|
|
|
|
|
- ErpContextHolder.setErpType(erp);
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private JSTErpOrderServiceImpl jstErpOrderService;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private void jstErpOrderDelivery(List<Long> o_ids) throws InterruptedException {
|
|
|
|
|
+ if (org.springframework.util.CollectionUtils.isEmpty(o_ids)) return;
|
|
|
|
|
+
|
|
|
|
|
+ List<List<Long>> batches = Lists.partition(o_ids, 100);
|
|
|
|
|
+ List<String> extendIds = new ArrayList<>();
|
|
|
|
|
+ for (List<Long> batch : batches) {
|
|
|
|
|
+ int pageIndex = 1;
|
|
|
|
|
+ boolean has_next = false;
|
|
|
|
|
+ do {
|
|
|
|
|
+ Thread.sleep(300);
|
|
|
|
|
+ ErpOrderQueryRequert request = new ErpOrderQueryRequert();
|
|
|
|
|
+ request.setPage_size(100);
|
|
|
|
|
+ request.setPage_index(pageIndex);
|
|
|
|
|
+ request.setShop_id("18675245");
|
|
|
|
|
+ request.setO_ids(batch); // 设置当前批次
|
|
|
|
|
+
|
|
|
|
|
+ ErpOrderQueryResponse response = jstErpOrderService.getOrder(request);
|
|
|
|
|
+ has_next = response.hasNextSafe();
|
|
|
|
|
+ for (Long l : batch) {
|
|
|
|
|
+ extendIds.add(l.toString());
|
|
|
}
|
|
}
|
|
|
- ErpOrderQueryResponse response = erpOrderService.getOrder(request);
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(response.getOrders())) {
|
|
|
|
|
- for (ErpOrderQuery orderQuery : response.getOrders()) {
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(orderQuery.getDeliverys())) {
|
|
|
|
|
- // 部分发货或者全部发货
|
|
|
|
|
- if (ObjectUtils.equals(orderQuery.getDelivery_state(), 1) || ObjectUtils.equals(orderQuery.getDelivery_state(), 2)) {
|
|
|
|
|
-
|
|
|
|
|
- orderStatusService.create(order.getId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
|
|
|
|
|
- OrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
|
|
-
|
|
|
|
|
- for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
|
|
|
|
|
-
|
|
|
|
|
- FsExpress express=expressService.selectFsExpressByOmsCode(delivery.getExpress_code());
|
|
|
|
|
- if(express == null){
|
|
|
|
|
- logger.warn("当前express_code: {} 不存在!",delivery.getExpress_code());
|
|
|
|
|
|
|
+ orderService.updateUpdateTimeByExtendIds(extendIds);
|
|
|
|
|
+
|
|
|
|
|
+ if (response.getOrders() != null) {
|
|
|
|
|
+ for(ErpOrderQuery orderQuery : response.getOrders()){
|
|
|
|
|
+ if(orderQuery.getDeliverys()!=null&& !orderQuery.getDeliverys().isEmpty()){
|
|
|
|
|
+ for(ErpDeliverys delivery:orderQuery.getDeliverys()){
|
|
|
|
|
+ if(delivery.getDelivery()&& org.apache.commons.lang3.StringUtils.isNotEmpty(delivery.getMail_no())){
|
|
|
|
|
+ orderStatusService.create(Long.valueOf(orderQuery.getCode()), OrderLogEnum.DELIVERY_GOODS.getValue(),
|
|
|
|
|
+ OrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
|
|
+ try {
|
|
|
|
|
+ for (ErpDeliverys deli : orderQuery.getDeliverys()) {
|
|
|
|
|
+ FsExpress express=expressService.selectFsExpressByOmsCode(deli.getExpress_code());
|
|
|
|
|
+ if(express == null){
|
|
|
|
|
+ logger.error("当前express_code: {} 不存在!",deli.getExpress_code());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (deli.getDelivery()) {
|
|
|
|
|
+ orderService.deliveryOrder(orderQuery.getCode(), deli.getMail_no(),
|
|
|
|
|
+ deli.getExpress_code(), deli.getExpress_name());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ logger.error("同步订单状态失败 {}",delivery.getMail_no(),e);
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- if (delivery.getDelivery()) {
|
|
|
|
|
- orderService.deliveryOrder(orderCode, delivery.getMail_no(),
|
|
|
|
|
- delivery.getExpress_code(), delivery.getExpress_name());
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- logger.info("订单 {} 发货信息同步成功",order.getOrderCode());
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
|
|
- logger.error(String.format("[发货任务]调用erp查询接口失败!原因: %s",e));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ pageIndex++;
|
|
|
|
|
+ } while (has_next);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 发货任务
|
|
|
|
|
+ */
|
|
|
|
|
+ @QuartzRunnable(name = "发货任务")
|
|
|
|
|
+ public void deliveryOp() throws InterruptedException {
|
|
|
|
|
+ List<FsStoreOrder> list = orderService.selectDeliverPenddingData();
|
|
|
|
|
|
|
|
|
|
+ //聚水潭
|
|
|
|
|
+ ArrayList<Long> o_ids = new ArrayList<>();
|
|
|
|
|
+ for (FsStoreOrder fsStoreOrder : list) {
|
|
|
|
|
+ o_ids.add(Long.parseLong(fsStoreOrder.getExtendOrderId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!org.springframework.util.CollectionUtils.isEmpty(o_ids)){
|
|
|
|
|
+ jstErpOrderDelivery(o_ids);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// Date nowDate = DateUtils.getNowDate();
|
|
|
|
|
+// for (FsStoreOrder order: list) {
|
|
|
|
|
+// order.setUpdateTime(nowDate);
|
|
|
|
|
+// orderService.updateFsStoreOrderDb(order);
|
|
|
|
|
+// String orderCode = order.getOrderCode();
|
|
|
|
|
+// ErpOrderQueryRequert request = new ErpOrderQueryRequert();
|
|
|
|
|
+// request.setCode(order.getExtendOrderId());
|
|
|
|
|
+//
|
|
|
|
|
+// try{
|
|
|
|
|
+// // 根据仓库code找erp
|
|
|
|
|
+// if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
|
|
|
|
|
+// String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
|
|
|
|
|
+// ErpContextHolder.setErpType(erp);
|
|
|
|
|
+// }
|
|
|
|
|
+// ErpOrderQueryResponse response = erpOrderService.getOrder(request);
|
|
|
|
|
+// if (CollectionUtils.isNotEmpty(response.getOrders())) {
|
|
|
|
|
+// for (ErpOrderQuery orderQuery : response.getOrders()) {
|
|
|
|
|
+// if (CollectionUtils.isNotEmpty(orderQuery.getDeliverys())) {
|
|
|
|
|
+// // 部分发货或者全部发货
|
|
|
|
|
+// if (ObjectUtils.equals(orderQuery.getDelivery_state(), 1) || ObjectUtils.equals(orderQuery.getDelivery_state(), 2)) {
|
|
|
|
|
+//
|
|
|
|
|
+// orderStatusService.create(order.getId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
|
|
|
|
|
+// OrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
|
|
+//
|
|
|
|
|
+// for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
|
|
|
|
|
+//
|
|
|
|
|
+// FsExpress express=expressService.selectFsExpressByOmsCode(delivery.getExpress_code());
|
|
|
|
|
+// if(express == null){
|
|
|
|
|
+// logger.warn("当前express_code: {} 不存在!",delivery.getExpress_code());
|
|
|
|
|
+// continue;
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// if (delivery.getDelivery()) {
|
|
|
|
|
+// orderService.deliveryOrder(orderCode, delivery.getMail_no(),
|
|
|
|
|
+// delivery.getExpress_code(), delivery.getExpress_name());
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// logger.info("订单 {} 发货信息同步成功",order.getOrderCode());
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }catch (Exception e){
|
|
|
|
|
+// logger.error(String.format("[发货任务]调用erp查询接口失败!原因: %s",e));
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|