瀏覽代碼

Merge remote-tracking branch 'origin/master'

hurx 1 周之前
父節點
當前提交
55cfe1c71a

+ 4 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/zhongche/RemoteZhongChePullService.java

@@ -7,7 +7,9 @@ import org.dromara.common.core.domain.zhongche.aftersale.bo.AfterSaleReturnRecei
 import org.dromara.common.core.exception.api.ZhongcheException;
 import org.dromara.external.api.zhongche.domain.bo.OrderConfirmBo;
 import org.dromara.external.api.zhongche.domain.bo.OrderRejectBo;
+import org.dromara.external.api.zhongche.domain.bo.ZhongCheOrderDeliverBo;
 import org.dromara.external.api.zhongche.domain.vo.GoodsUpdateVo;
+import org.dromara.external.api.zhongche.domain.vo.ZhongCheOrderDeliverVo;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
@@ -27,4 +29,6 @@ public interface RemoteZhongChePullService {
     GoodsUpdateVo mallAftersaleReturnGoodsReceived(AfterSaleReturnReceivedBo bo) throws ZhongcheException;
     //确认退款
     GoodsUpdateVo mallAftersaleRefund(AfterSaleRefundBo bo) throws ZhongcheException;
+    //发货
+    ZhongCheOrderDeliverVo mallOrderDeliverGoods(ZhongCheOrderDeliverBo bo) throws ZhongcheException;
 }

+ 5 - 0
ruoyi-api/ruoyi-api-order/src/main/java/org/dromara/product/api/RemoteExternalOrderService.java

@@ -31,6 +31,11 @@ public interface RemoteExternalOrderService {
     * */
     void notice(OrderNoticeDto bo);
 
+    /**
+    * 订单发货
+    * */
+    void deliverOrder(Long orderId);
+
     /**
      * 获取订单编号
      * @param ZCorderNo

+ 2 - 4
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/ZhongChePushController.java

@@ -321,12 +321,10 @@ public class ZhongChePushController {
                 //有货
                 stocksResult.setStockState("1");
                 stocksResult.setStockStateDesc("下单立即发货");
-                if (goodsNum < 50){
+                if (goodsNum <= nowInventory){
                     stocksResult.setRemainNum(nowInventory.intValue());
-                }else if (goodsNum <= 100){
-                    stocksResult.setRemainNum(-1);
                 }else {
-                    stocksResult.setRemainNum(goodsNum);
+                    stocksResult.setRemainNum(0);
                 }
             }else {
                 //无货

+ 18 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/handle/impl/OrderCreateMessageHandler.java

@@ -1,6 +1,7 @@
 package org.dromara.external.controller.zhongche.handle.impl;
 
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -14,7 +15,10 @@ import org.dromara.external.api.zhongche.domain.vo.GoodsUpdateVo;
 import org.dromara.external.api.zhongche.domain.vo.MessageVo;
 import org.dromara.external.controller.zhongche.ZhongChePullController;
 import org.dromara.external.controller.zhongche.handle.MallMessageHandler;
+import org.dromara.external.domain.ExternalProduct;
 import org.dromara.external.enums.MallMessageTypeEnum;
+import org.dromara.external.mapper.ExternalProductMapper;
+import org.dromara.external.service.IExternalProductService;
 import org.dromara.product.api.RemoteExternalOrderService;
 import org.dromara.product.api.domain.dto.OrderNoDto;
 import org.springframework.stereotype.Component;
@@ -22,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 
 import java.math.BigDecimal;
 import java.util.Collections;
+import java.util.List;
 
 @Component
 @Slf4j
@@ -30,6 +35,8 @@ public class OrderCreateMessageHandler implements MallMessageHandler {
 
     private final ZhongChePullController zhongChePullController;
 
+    private final IExternalProductService externalProductService;
+
     @DubboReference
     private final RemoteExternalOrderService remoteExternalOrderService;
 
@@ -129,6 +136,17 @@ public class OrderCreateMessageHandler implements MallMessageHandler {
 //        orderDetailVo.setOrderInvoice(invoice);
         OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
         if (orderNoDto.getSuccess()){
+            List<OrderGoodsItem> orderGoods = orderDetailVo.getOrderGoods();
+            for (OrderGoodsItem orderGoodsItem : orderGoods) {
+                ExternalProduct one = externalProductService.getOne(Wrappers.<ExternalProduct>lambdaQuery().
+                    eq(ExternalProduct::getProductNo, orderGoodsItem.getGoodsId())
+                    .eq(ExternalProduct::getItemId, "2028409445955592193")
+                );
+                one.setAvailableInventory(one.getAvailableInventory()-orderGoodsItem.getNum().intValue());
+                externalProductService.updateById(one);
+            }
+            //更新商品库存
+
             return new MessageVo("1");
         }else {
             return new MessageVo("0","获取订单详情失败");

+ 12 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/dubbo/RemoteZhongChePullServiceImpl.java

@@ -11,7 +11,9 @@ import org.dromara.common.core.exception.api.ZhongcheException;
 import org.dromara.external.api.zhongche.RemoteZhongChePullService;
 import org.dromara.external.api.zhongche.domain.bo.OrderConfirmBo;
 import org.dromara.external.api.zhongche.domain.bo.OrderRejectBo;
+import org.dromara.external.api.zhongche.domain.bo.ZhongCheOrderDeliverBo;
 import org.dromara.external.api.zhongche.domain.vo.GoodsUpdateVo;
+import org.dromara.external.api.zhongche.domain.vo.ZhongCheOrderDeliverVo;
 import org.dromara.external.controller.zhongche.ZhongChePullController;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -59,4 +61,14 @@ public class RemoteZhongChePullServiceImpl implements RemoteZhongChePullService
     public GoodsUpdateVo mallAftersaleRefund(AfterSaleRefundBo bo) throws ZhongcheException {
         return zhongChePullController.mallAftersaleRefund(bo);
     }
+
+    /**
+     * @param bo
+     * @return
+     * @throws ZhongcheException
+     */
+    @Override
+    public ZhongCheOrderDeliverVo mallOrderDeliverGoods(ZhongCheOrderDeliverBo bo) throws ZhongcheException {
+        return zhongChePullController.mallOrderDeliverGoods(bo);
+    }
 }

+ 10 - 0
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/dubbo/RemoteExternalOrderServiceImpl.java

@@ -154,6 +154,16 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
 
     }
 
+    /**
+     * 订单发货
+     *
+     * @param orderId
+     */
+    @Override
+    public void deliverOrder(Long orderId) {
+
+    }
+
     /**
      * 获取订单编号
      * @param ZCorderNo

+ 50 - 5
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderDeliverServiceImpl.java

@@ -18,10 +18,10 @@ import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.redis.utils.SequenceUtils;
 import org.dromara.customer.api.RemoteCustomerService;
-import org.dromara.order.domain.OrderDeliver;
-import org.dromara.order.domain.OrderDeliverProduct;
-import org.dromara.order.domain.OrderMain;
-import org.dromara.order.domain.OrderStatusLog;
+import org.dromara.external.api.zhongche.RemoteZhongChePullService;
+import org.dromara.external.api.zhongche.domain.bo.ZhongCheOrderDeliverBo;
+import org.dromara.external.api.zhongche.domain.vo.ZhongCheOrderDeliverVo;
+import org.dromara.order.domain.*;
 import org.dromara.order.domain.bo.OrderDeliverBo;
 import org.dromara.order.domain.bo.OrderDeliverProductBo;
 import org.dromara.order.domain.vo.OrderDeliverProductVo;
@@ -29,6 +29,9 @@ import org.dromara.order.domain.vo.OrderDeliverVo;
 import org.dromara.order.domain.vo.OrderQuantitySummary;
 import org.dromara.order.mapper.*;
 import org.dromara.order.service.IOrderDeliverService;
+import org.dromara.order.service.IOrderDeliverThirdService;
+import org.dromara.order.service.IOrderMainCrrcExtService;
+import org.dromara.order.service.IZhongCheOrderMainService;
 import org.dromara.order.utils.kd100.Kd100Util;
 import org.dromara.order.utils.kd100.domain.QueryTrackDTO;
 import org.dromara.order.utils.kd100.domain.TrackVO;
@@ -61,6 +64,10 @@ public class OrderDeliverServiceImpl extends ServiceImpl<OrderDeliverMapper, Ord
     @DubboReference
     private RemoteCustomerService remoteCustomerService;
 
+    @DubboReference
+    private RemoteZhongChePullService remoteZhongChePullService;
+
+
     private final OrderDeliverMapper baseMapper;
 
     private final OrderMainMapper orderMainMapper;
@@ -72,6 +79,10 @@ public class OrderDeliverServiceImpl extends ServiceImpl<OrderDeliverMapper, Ord
 
     private final OrderDeliverProductMapper orderDeliverProductMapper;
 
+    private final IOrderMainCrrcExtService orderMainCrrcExtService;
+
+    private final IOrderDeliverThirdService orderDeliverThirdService;
+
     /**
      * 查询订单发货主
      *
@@ -280,7 +291,41 @@ public class OrderDeliverServiceImpl extends ServiceImpl<OrderDeliverMapper, Ord
             }
             /*中车订单发货后调用接口通知中车*/
             if ("zhongche".equals(orderMain.getDataSource())) {
-
+                OrderMainCrrcExt orderMainCrrcExt = orderMainCrrcExtService.getById(bo.getOrderId());
+                ZhongCheOrderDeliverBo zhongCheOrderDeliverBo = new ZhongCheOrderDeliverBo();
+                zhongCheOrderDeliverBo.setOrderNo(orderMainCrrcExt.getCrrcOrderNo());
+                if (Objects.equals(bo.getDeliverMethod(),"0")) {
+                    zhongCheOrderDeliverBo.setDeliveryType("2");
+                }else if (Objects.equals(bo.getDeliverMethod(),"1")){
+                    zhongCheOrderDeliverBo.setDeliveryType("1");
+                    zhongCheOrderDeliverBo.setExpressCode(bo.getLogisticNo());
+                    zhongCheOrderDeliverBo.setExpressCompanyName(bo.getLogisticsCompanyCode());
+                }
+                ZhongCheOrderDeliverVo zhongCheOrderDeliverVo = remoteZhongChePullService.mallOrderDeliverGoods(zhongCheOrderDeliverBo);
+                //保存第三方订单发货信息
+                OrderDeliverThird orderDeliverThird = new OrderDeliverThird();
+                orderDeliverThird.setDeliverId(deliver.getId());
+                orderDeliverThird.setOutgoingCode(zhongCheOrderDeliverVo.getOutgoingCode());
+                orderDeliverThirdService.save(orderDeliverThird);
+            }
+            /*同济订单发货后调用接口通知同济*/
+            if ("tongji".equals(orderMain.getDataSource())) {
+                OrderMainCrrcExt orderMainCrrcExt = orderMainCrrcExtService.getById(bo.getOrderId());
+                ZhongCheOrderDeliverBo zhongCheOrderDeliverBo = new ZhongCheOrderDeliverBo();
+                zhongCheOrderDeliverBo.setOrderNo(orderMainCrrcExt.getCrrcOrderNo());
+                if (Objects.equals(bo.getDeliverMethod(),"0")) {
+                    zhongCheOrderDeliverBo.setDeliveryType("2");
+                }else if (Objects.equals(bo.getDeliverMethod(),"1")){
+                    zhongCheOrderDeliverBo.setDeliveryType("1");
+                    zhongCheOrderDeliverBo.setExpressCode(bo.getLogisticNo());
+                    zhongCheOrderDeliverBo.setExpressCompanyName(bo.getLogisticsCompanyCode());
+                }
+                ZhongCheOrderDeliverVo zhongCheOrderDeliverVo = remoteZhongChePullService.mallOrderDeliverGoods(zhongCheOrderDeliverBo);
+                //保存第三方订单发货信息
+                OrderDeliverThird orderDeliverThird = new OrderDeliverThird();
+                orderDeliverThird.setDeliverId(deliver.getId());
+                orderDeliverThird.setOutgoingCode(zhongCheOrderDeliverVo.getOutgoingCode());
+                orderDeliverThirdService.save(orderDeliverThird);
             }
 
             // 8. 处理父订单状态同步

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteProductTaxrateServiceImpl.java

@@ -22,4 +22,6 @@ public class RemoteProductTaxrateServiceImpl implements RemoteProductTaxrateServ
     public RemoteProductTaxrateVo selectByTaxrateNo(String taxrateNo) {
         return BeanUtil.toBean(productTaxrateService.selectByTaxrateNo(taxrateNo), RemoteProductTaxrateVo.class);
     }
+
+
 }