瀏覽代碼

中车API对接

Lijingyang 1 月之前
父節點
當前提交
b5db589263

+ 87 - 69
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/ZhongChePullController.java

@@ -54,10 +54,13 @@ public class ZhongChePullController {
     private static final String AREA_QUERY_URL = "https://supply-test.crrcgo.cc/mallapi";
     // 中车提供的配置(替换为真实值)
     private static final String CLIENT_ID = "KFZAVuIyC56";
+    //正式环境
+    /*private static final String PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgpQdXwMi21Mg1FhWad2AQLOwfNiDHgwhootau0YerQbagCgYIKoEcz1UBgi2hRANCAATVjJs6XRAMTZ72G6aWbgCAjfAnW0j5R9VFnHySTiF8+1mOisc3xOOr9w/Tu3hixzL5H2gVyLzHDRWkFtyeVqrX"; // 电商平台私钥
+    private static final String ZC_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q=="; // 中车公钥*/
+    //测试环境
     private static final String PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgpQdXwMi21Mg1FhWad2AQLOwfNiDHgwhootau0YerQbagCgYIKoEcz1UBgi2hRANCAATVjJs6XRAMTZ72G6aWbgCAjfAnW0j5R9VFnHySTiF8+1mOisc3xOOr9w/Tu3hixzL5H2gVyLzHDRWkFtyeVqrX"; // 电商平台私钥
-    private static final String ZC_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q=="; // 中车公钥
+    private static final String ZC_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE1YybOl0QDE2e9humlm4AgI3wJ1tI+UfVRZx8kk4hfPtZjorHN8Tjq/cP07t4Yscy+R9oFci8xw0VpBbcnlaq1w=="; // 中车公钥
     //企采公钥
-    private static final String QC_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q==";
     private static final String VERSION = "1.0.0";
 
 
@@ -194,75 +197,13 @@ public class ZhongChePullController {
         return zcTokenBo;
     }
 
-    //导入商品
-    /*public static void main(String[] args) {
-        String username = "admin";
-        List<GoodsImportItem> batchGoods = new ArrayList<>();
-        GoodsImportItem item = new GoodsImportItem();
-        item.setGoodsId("362031");
-        item.setCatalogId("13012");
-        item.setCatalogName("原装墨盒");
-        item.setStandardCatalogId("1750717233748832257");
-        item.setStandardCatalogName("铁圈装订机耗材");
-        item.setBrandName("得力");
-        item.setName("得力");
-        item.setDsPrice(new BigDecimal(41));
-        item.setPrice(new BigDecimal(34));
-        item.setUnit("个");
-        item.setStock(100);
-        item.setBarImgUrls("[\"https://img1.com\",\"https://img2.com\"]");
-        item.setDescription("得力商品");
-        item.setProperties("{\"颜色\":\"红色\",\"尺寸\":\"XL\",\"材质\":\"棉|涤纶\"}");
-        item.setIsSelfOperated(1);
-        item.setTax(new BigDecimal(0.05));
-        item.setTaxCode("123456");
-        batchGoods.add(item);
-        GoodsImportBo bo = new GoodsImportBo();
-        bo.setAccount(username);
-        bo.setGoods(batchGoods);
-        ZhongChePullController zhongChePullController = new ZhongChePullController();
-        GoodsImportVo resp = zhongChePullController.egoodsImport(bo);
-        System.out.println(resp);
-    }*/
 
-    /*public static void main(String[] args) {
-        OrderDetailBo bo = new OrderDetailBo();
-        bo.setOrderNo("20260210110174131");
-        ZhongChePullController zhongChePullController = new ZhongChePullController();
-        OrderDetailVo orderDetailVo =  zhongChePullController.mallOrderDetail(bo);
-        System.out.println(orderDetailVo);
-        //待签名字符串:{"clientId":"KFZAVuIyC56","data":"eyJvcmRlck5vIjoiMjAyNjAyMTAxMTAxNzQxMzAifQ==","timestamp":"20260210174806","version":"1.0.0"}
-        //OrderDetailVo(orderNo=20260210110174130, purchaserOrderNo=2026021010452504, preOrder=0, mallOrderNo=null, orderStatus=1, orderAmount=205.24, freight=0.00, orderGoods=[OrderGoodsItem(goodsId=362032, num=7.0000, price=29.3200, subAmount=205.24, wishDeliveryDate=null)], name=111, provinceId=1, cityId=2800, countyId=55835, townId=0, address=中车智程, zip=null, mobile=13381115928, phone=null, email=service_yg@bosssoft.com.cn, memo=, orderTime=2026-02-10 17:25:18, buyer=常恒瑀, buyerMobile=18801195315, purchaserName=中国中车, purchaserDeptName=中国中车-中车科技园发展有限公司-中车智程文化科技(北京)有限公司, paymentType=01, orderInvoice=ZhongCheOrderInvoice(invoiceType=2, selectedInvoiceTitle=5, companyName=中车智程文化科技(北京), invoiceContent=1, invoiceName=王琳, invoicePhone=15249101907, invoiceFullAddress=北京海淀区羊坊店街道北京市海淀区羊坊店路11号, regCompanyName=中车智程文化科技(北京), regCode=91110108MAC4385K6J, regAddr=北京市海淀区羊坊店路11号四层428室测试, regPhone=010-51891021, regBank=中国工商银行股份有限公司北京玉渊潭支行测试, regBankAccount=111111111), voucher=0, payClient=0, paySerialNum=null, payAccount=null, payMoney=null, payPrestore=null, files=null)
-    }*/
-    /*public static void main(String[] args) {
-        OrderConfirmBo bo = new OrderConfirmBo();
-        bo.setOrderNo("20260211110174132");
-        bo.setMallOrderNo("RS20260002");
-        ZhongChePullController zhongChePullController = new ZhongChePullController();
-        GoodsUpdateVo goodsUpdateVo =  zhongChePullController.mallOrderConfirm(bo);
-        System.out.println(goodsUpdateVo);
-        //待签名字符串:{"clientId":"KFZAVuIyC56","data":"eyJvcmRlck5vIjoiMjAyNjAyMTAxMTAxNzQxMzEiLCJtYWxsT3JkZXJObyI6IlJTMjAyNjAwMDEifQ==","timestamp":"20260210175937","version":"1.0.0"}
-        //GoodsUpdateVo(result=1, message=null)
-    }*/
 
-    //发货
-    /*public static void main(String[] args) {
-        ZhongCheOrderDeliverBo bo = new ZhongCheOrderDeliverBo();
-        bo.setOrderNo("20260211110174132");
-        bo.setDeliveryType("1");
-        bo.setExpressCode("434848895994511");
-        bo.setExpressCompanyName("韵达");
-        List<OrderDeliverGoods> orderDeliverGoods1 = new ArrayList<>();
-        OrderDeliverGoods orderDeliverGoods = new OrderDeliverGoods();
-        orderDeliverGoods.setGoodsId("362032");
-        orderDeliverGoods.setNum(new BigDecimal(7.0000));
-        orderDeliverGoods.setVoucher("[\"imgUrl1\",\"imgUrl2\"]");
-        orderDeliverGoods1.add(orderDeliverGoods);
-        bo.setOrderDeliverGoods(orderDeliverGoods1);
-        ZhongChePullController zhongChePullController = new ZhongChePullController();
-        ZhongCheOrderDeliverVo vo =  zhongChePullController.mallOrderDeliverGoods(bo);
-        System.out.println(vo);
-    }*/
+
+
+
+
+
 
     //换货新品发货
     /*public static void main(String[] args) {
@@ -329,6 +270,20 @@ public class ZhongChePullController {
         System.out.println(vo);
     }*/
 
+    //接单
+    /*public static void main(String[] args) {
+        OrderConfirmBo bo = new OrderConfirmBo();
+        bo.setOrderNo("20260211110174132");
+        bo.setMallOrderNo("RS20260002");
+        ZhongChePullController zhongChePullController = new ZhongChePullController();
+        GoodsUpdateVo goodsUpdateVo =  zhongChePullController.mallOrderConfirm(bo);
+        System.out.println(goodsUpdateVo);
+        //待签名字符串:{"clientId":"KFZAVuIyC56","data":"eyJvcmRlck5vIjoiMjAyNjAyMTAxMTAxNzQxMzEiLCJtYWxsT3JkZXJObyI6IlJTMjAyNjAwMDEifQ==","timestamp":"20260210175937","version":"1.0.0"}
+        //GoodsUpdateVo(result=1, message=null)
+    }*/
+
+
+
     //确认退款
     public static void main(String[] args) {
         AfterSaleRefundBo bo = new AfterSaleRefundBo();
@@ -361,6 +316,69 @@ public class ZhongChePullController {
 
     //他们售后发货了
 //{"id":"d0094ec3-e032-43df-b95a-7cfb4ac91261","type":"2103","content":{"afterSaleNo":"1471137739549315072","expressCode":"21312321","expressCompanyName":"顺丰快递","freight":0,"deliverTime":"20260211135600"},"time":"20260211135601149","protocolId":null}
+//{"id":"d0094ec3-e032-43df-b95a-7cfb4ac91261","type":"2001","content":{"orderNo":"20260210110174130"},"time":"20260211135601149"}
+//{"id":"d0094ec3-e032-43df-b95a-7cfb4ac91261","type":"2002","content":{"orderNo":"20260210110174130","cancelReason":"不想要了"},"time":"20260211135601149"}
+
+    //查询订单详情
+    /*public static void main(String[] args) {
+        OrderDetailBo bo = new OrderDetailBo();
+        bo.setOrderNo("20260210110174131");
+        ZhongChePullController zhongChePullController = new ZhongChePullController();
+        OrderDetailVo orderDetailVo =  zhongChePullController.mallOrderDetail(bo);
+        System.out.println(orderDetailVo);
+        //待签名字符串:{"clientId":"KFZAVuIyC56","data":"eyJvcmRlck5vIjoiMjAyNjAyMTAxMTAxNzQxMzAifQ==","timestamp":"20260210174806","version":"1.0.0"}
+        //OrderDetailVo(orderNo=20260210110174130, purchaserOrderNo=2026021010452504, preOrder=0, mallOrderNo=null, orderStatus=1, orderAmount=205.24, freight=0.00, orderGoods=[OrderGoodsItem(goodsId=362032, num=7.0000, price=29.3200, subAmount=205.24, wishDeliveryDate=null)], name=111, provinceId=1, cityId=2800, countyId=55835, townId=0, address=中车智程, zip=null, mobile=13381115928, phone=null, email=service_yg@bosssoft.com.cn, memo=, orderTime=2026-02-10 17:25:18, buyer=常恒瑀, buyerMobile=18801195315, purchaserName=中国中车, purchaserDeptName=中国中车-中车科技园发展有限公司-中车智程文化科技(北京)有限公司, paymentType=01, orderInvoice=ZhongCheOrderInvoice(invoiceType=2, selectedInvoiceTitle=5, companyName=中车智程文化科技(北京), invoiceContent=1, invoiceName=王琳, invoicePhone=15249101907, invoiceFullAddress=北京海淀区羊坊店街道北京市海淀区羊坊店路11号, regCompanyName=中车智程文化科技(北京), regCode=91110108MAC4385K6J, regAddr=北京市海淀区羊坊店路11号四层428室测试, regPhone=010-51891021, regBank=中国工商银行股份有限公司北京玉渊潭支行测试, regBankAccount=111111111), voucher=0, payClient=0, paySerialNum=null, payAccount=null, payMoney=null, payPrestore=null, files=null)
+    }*/
+
+    //导入商品
+    /*public static void main(String[] args) {
+        String username = "admin";
+        List<GoodsImportItem> batchGoods = new ArrayList<>();
+        GoodsImportItem item = new GoodsImportItem();
+        item.setGoodsId("362031");
+        item.setCatalogId("13012");
+        item.setCatalogName("原装墨盒");
+        item.setStandardCatalogId("1750717233748832257");
+        item.setStandardCatalogName("铁圈装订机耗材");
+        item.setBrandName("得力");
+        item.setName("得力");
+        item.setDsPrice(new BigDecimal(41));
+        item.setPrice(new BigDecimal(34));
+        item.setUnit("个");
+        item.setStock(100);
+        item.setBarImgUrls("[\"https://img1.com\",\"https://img2.com\"]");
+        item.setDescription("得力商品");
+        item.setProperties("{\"颜色\":\"红色\",\"尺寸\":\"XL\",\"材质\":\"棉|涤纶\"}");
+        item.setIsSelfOperated(1);
+        item.setTax(new BigDecimal(0.05));
+        item.setTaxCode("123456");
+        batchGoods.add(item);
+        GoodsImportBo bo = new GoodsImportBo();
+        bo.setAccount(username);
+        bo.setGoods(batchGoods);
+        ZhongChePullController zhongChePullController = new ZhongChePullController();
+        GoodsImportVo resp = zhongChePullController.egoodsImport(bo);
+        System.out.println(resp);
+    }*/
+
+    //发货
+    /*public static void main(String[] args) {
+        ZhongCheOrderDeliverBo bo = new ZhongCheOrderDeliverBo();
+        bo.setOrderNo("20260211110174132");
+        bo.setDeliveryType("1");
+        bo.setExpressCode("434848895994511");
+        bo.setExpressCompanyName("韵达");
+        List<OrderDeliverGoods> orderDeliverGoods1 = new ArrayList<>();
+        OrderDeliverGoods orderDeliverGoods = new OrderDeliverGoods();
+        orderDeliverGoods.setGoodsId("362032");
+        orderDeliverGoods.setNum(new BigDecimal(7.0000));
+        orderDeliverGoods.setVoucher("[\"imgUrl1\",\"imgUrl2\"]");
+        orderDeliverGoods1.add(orderDeliverGoods);
+        bo.setOrderDeliverGoods(orderDeliverGoods1);
+        ZhongChePullController zhongChePullController = new ZhongChePullController();
+        ZhongCheOrderDeliverVo vo =  zhongChePullController.mallOrderDeliverGoods(bo);
+        System.out.println(vo);
+    }*/
 
     //5.2.1	商品导入
     @PostMapping("/egoods/import")

+ 14 - 6
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/ZhongChePushController.java

@@ -70,13 +70,21 @@ public class ZhongChePushController {
 
     private final IExternalProductCategoryService externalProductCategoryService;
 
-    private static final String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q=="; // 电商提供的私钥
+    //正式环境
+    /*private static final String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q=="; // 电商提供的私钥
+
+    private static final String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgpQdXwMi21Mg1FhWad2AQLOwfNiDHgwhootau0YerQbagCgYIKoEcz1UBgi2hRANCAATVjJs6XRAMTZ72G6aWbgCAjfAnW0j5R9VFnHySTiF8+1mOisc3xOOr9w/Tu3hixzL5H2gVyLzHDRWkFtyeVqrX";  // 电商提供的公钥*/
+
+
+    //测试环境
+    private static final String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE1YybOl0QDE2e9humlm4AgI3wJ1tI+UfVRZx8kk4hfPtZjorHN8Tjq/cP07t4Yscy+R9oFci8xw0VpBbcnlaq1w=="; // 电商提供的私钥
 
     private static final String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgpQdXwMi21Mg1FhWad2AQLOwfNiDHgwhootau0YerQbagCgYIKoEcz1UBgi2hRANCAATVjJs6XRAMTZ72G6aWbgCAjfAnW0j5R9VFnHySTiF8+1mOisc3xOOr9w/Tu3hixzL5H2gVyLzHDRWkFtyeVqrX";  // 电商提供的公钥
 
 
 
-    //TODO 登录
+
+    //登录
     @PostMapping("/login")
     public ZCR login(@RequestBody ZCTokenBo zcTokenBo) {
         //业务参数
@@ -580,7 +588,7 @@ public class ZhongChePushController {
         return ZCR.ok(respDataBase64, respSign);
     }
 
-    //TODO 4.8 消息监听     消息类型枚举没做
+    //4.8 消息监听
     @PostMapping("/message/listening")
     public ZCR listener(@RequestBody ZCTokenBo zcTokenBo) {
         // 1. 公共请求参数校验
@@ -787,10 +795,10 @@ public class ZhongChePushController {
         // 1️⃣ 构造请求对象(和你 controller 里的一模一样)
         ZCTokenBo bo = new ZCTokenBo();
         bo.setVersion("1.0.0");
-        bo.setTimestamp("20260209101939");
+        bo.setTimestamp("20260210162447");
         bo.setClientId("KFZAVuIyC56");
-        bo.setData("eyJwYXNzd29yZCI6ImFkbWluMTIzIiwidXNlcm5hbWUiOiJhZG1pbiJ9");
-        //bo.setAccessToken( "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJNU1hqa1d5dHFzUmpBUnNLYWJyQkpTMnI1Vkg3QUpIUiIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.Dz419ohWjWmBLuNOx4a1seiW0AbipIds0MkfgG4BAEU");
+        bo.setData("eyJpZCI6ImQwMDk0ZWMzLWUwMzItNDNkZi1iOTVhLTdjZmI0YWM5MTI2MSIsInR5cGUiOiIyMDAyIiwiY29udGVudCI6eyJvcmRlck5vIjoiMjAyNjAyMTAxMTAxNzQxMzAiLCJjYW5jZWxSZWFzb24iOiLkuI3mg7PopoHkuoYifSwidGltZSI6IjIwMjYwMjExMTM1NjAxMTQ5In0=");
+        bo.setAccessToken( "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiI4U2Zwa1owb3YyS2xLakNPa1BMcjRKcUxWcXExN2FYWSIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.fyF_TFAORlA2SQGwQbJFEoT7DiRoWywzykWNcfcaPuU");
         // 注意:此时不要 setSign
 
         // 2️⃣ 打印待签名内容(用于和中车排查)

+ 2 - 5
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/handle/impl/OrderCancelMessageHandler.java

@@ -27,11 +27,8 @@ public class OrderCancelMessageHandler implements MallMessageHandler {
         return MallMessageTypeEnum.ORDER_CANCEL;
     }
 
+
     @Override
-    public MessageVo handle(MessageBo messageBo) {
-        return new MessageVo("1");
-    }
-    /*@Override
     public MessageVo handle(MessageBo messageBo) {
         String orderNo = (String) messageBo.getContent().get("orderNo");
         String cancelReason = (String) messageBo.getContent().get("cancelReason");
@@ -41,5 +38,5 @@ public class OrderCancelMessageHandler implements MallMessageHandler {
             return new MessageVo("1");
         }
         return new MessageVo("0",orderNoDto.getCancelReason());
-    }*/
+    }
 }

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

@@ -3,6 +3,8 @@ package org.dromara.external.controller.zhongche.handle.impl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.common.core.domain.zhongche.domain.OrderGoodsItem;
+import org.dromara.common.core.domain.zhongche.domain.ZhongCheOrderInvoice;
 import org.dromara.common.core.domain.zhongche.vo.OrderDetailVo;
 import org.dromara.external.api.zhongche.domain.bo.MessageBo;
 import org.dromara.external.api.zhongche.domain.bo.OrderConfirmBo;
@@ -17,6 +19,9 @@ import org.dromara.product.api.domain.dto.OrderNoDto;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.math.BigDecimal;
+import java.util.Collections;
+
 @Component
 @Slf4j
 @RequiredArgsConstructor
@@ -32,18 +37,7 @@ public class OrderCreateMessageHandler implements MallMessageHandler {
         return MallMessageTypeEnum.ORDER_CREATE;
     }
 
-    /*@Override
-    public MessageVo handle(MessageBo messageBo) {
-        String orderNo = (String) messageBo.getContent().get("orderNo");
-        log.info("处理新订单消息,orderNo={}", orderNo);
-        OrderDetailBo orderDetailBo = new OrderDetailBo();
-        orderDetailBo.setOrderNo(orderNo);
-        OrderDetailVo orderDetailVo = zhongChePullController.mallOrderDetail(orderDetailBo);
-        OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
-        System.out.println("中车订单消息:"+orderDetailVo.toString());
-        //OrderConfirmBo bo = new OrderConfirmBo();
-        return new MessageVo("1");
-    }*/
+
     @Override
     public MessageVo handle(MessageBo messageBo) {
         //获取中车订单号获取订单详情,我们电商平台没有接单功能胡哥说的,然后默认接单 就发起接单的请求
@@ -53,42 +47,90 @@ public class OrderCreateMessageHandler implements MallMessageHandler {
         orderDetailBo.setOrderNo(orderNo);
         OrderDetailVo orderDetailVo = zhongChePullController.mallOrderDetail(orderDetailBo);
         OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
-        OrderConfirmBo bo = new OrderConfirmBo();
         if (orderNoDto.getSuccess()){
-            //中车电子商城订单号
-            bo.setOrderNo(orderNo);
-            //电商平台订单号
-            bo.setMallOrderNo(orderNoDto.getOrderNo());
-            //发起接单
-            zhongChePullController.mallOrderConfirm(bo);
             return new MessageVo("1");
         }else {
             return new MessageVo("0","获取订单详情失败");
         }
     }
 
+
     /*@Override
     public MessageVo handle(MessageBo messageBo) {
         //获取中车订单号获取订单详情,我们电商平台没有接单功能胡哥说的,然后默认接单 就发起接单的请求
         String orderNo = (String) messageBo.getContent().get("orderNo");
         log.info("处理新订单消息,orderNo={}", orderNo);
-        OrderDetailBo orderDetailBo = new OrderDetailBo();
-        orderDetailBo.setOrderNo(orderNo);
-        OrderDetailVo orderDetailVo = zhongChePullController.mallOrderDetail(orderDetailBo);
+        OrderDetailVo orderDetailVo = new OrderDetailVo();
+
+// ===== 基本信息 =====
+        orderDetailVo.setOrderNo("20260210110174131");
+        orderDetailVo.setPurchaserOrderNo("2026021010452504");
+        orderDetailVo.setPreOrder(0);
+        orderDetailVo.setMallOrderNo(null);
+        orderDetailVo.setOrderStatus("1");
+        orderDetailVo.setOrderAmount(new BigDecimal("205.24"));
+        orderDetailVo.setFreight(new BigDecimal("0.00"));
+
+// ===== 收货信息 =====
+        orderDetailVo.setName("111");
+        orderDetailVo.setProvinceId("1");
+        orderDetailVo.setCityId("2800");
+        orderDetailVo.setCountyId("55835");
+        orderDetailVo.setTownId("0");
+        orderDetailVo.setAddress("中车智程");
+        orderDetailVo.setZip(null);
+        orderDetailVo.setMobile("13381115928");
+        orderDetailVo.setPhone(null);
+        orderDetailVo.setEmail("service_yg@bosssoft.com.cn");
+
+// ===== 下单信息 =====
+        orderDetailVo.setMemo("");
+        orderDetailVo.setOrderTime("2026-02-10 17:25:18");
+        orderDetailVo.setBuyer("常恒瑀");
+        orderDetailVo.setBuyerMobile("18801195315");
+        orderDetailVo.setPurchaserName("中国中车");
+        orderDetailVo.setPurchaserDeptName("中国中车-中车科技园发展有限公司-中车智程文化科技(北京)有限公司");
+
+// ===== 支付信息 =====
+        orderDetailVo.setPaymentType("01");
+        orderDetailVo.setVoucher("0");
+        orderDetailVo.setPayClient("0");
+        orderDetailVo.setPaySerialNum(null);
+        orderDetailVo.setPayAccount(null);
+        orderDetailVo.setPayMoney(null);
+        orderDetailVo.setPayPrestore(null);
+
+        OrderGoodsItem goodsItem = new OrderGoodsItem();
+        goodsItem.setGoodsId("362032");
+        goodsItem.setNum(new BigDecimal("7.0000"));
+        goodsItem.setPrice(new BigDecimal("29.3200"));
+        goodsItem.setSubAmount(new BigDecimal("205.24"));
+        goodsItem.setWishDeliveryDate(null);
+
+        orderDetailVo.setOrderGoods(Collections.singletonList(goodsItem));
+        ZhongCheOrderInvoice invoice = new ZhongCheOrderInvoice();
+        invoice.setInvoiceType("2");
+        invoice.setSelectedInvoiceTitle("5");
+        invoice.setCompanyName("中车智程文化科技(北京)");
+        invoice.setInvoiceContent("1");
+        invoice.setInvoiceName("王琳");
+        invoice.setInvoicePhone("15249101907");
+        invoice.setInvoiceFullAddress("北京海淀区羊坊店街道北京市海淀区羊坊店路11号");
+        invoice.setRegCompanyName("中车智程文化科技(北京)");
+        invoice.setRegCode("91110108MAC4385K6J");
+        invoice.setRegAddr("北京市海淀区羊坊店路11号四层428室测试");
+        invoice.setRegPhone("010-51891021");
+        invoice.setRegBank("中国工商银行股份有限公司北京玉渊潭支行测试");
+        invoice.setRegBankAccount("111111111");
+        orderDetailVo.setOrderInvoice(invoice);
         OrderNoDto orderNoDto = remoteExternalOrderService.createZhongCheOrder(orderDetailVo);
-        OrderConfirmBo bo = new OrderConfirmBo();
-
-        if (orderNoDto.getSuccess() == true){
-            //中车电子商城订单号
-            bo.setOrderNo(orderNo);
-            //电商平台订单号
-            bo.setMallOrderNo(orderNoDto.getOrderNo());
-            //发起接单
-            zhongChePullController.mallOrderConfirm(bo);
+        if (orderNoDto.getSuccess()){
             return new MessageVo("1");
         }else {
             return new MessageVo("0","获取订单详情失败");
         }
     }*/
 
+
+
 }

+ 4 - 5
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/handle/impl/OrderReceiveConfirmMessageHandler.java

@@ -25,23 +25,22 @@ public class OrderReceiveConfirmMessageHandler implements MallMessageHandler {
         return MallMessageTypeEnum.ORDER_RECEIVE_CONFIRM;
     }
 
-    @Override
+    /*@Override
     public MessageVo handle(MessageBo messageBo) {
         String orderNo = (String) messageBo.getContent().get("orderNo");
         String outgoingCode = (String) messageBo.getContent().get("outgoingCode");
         System.out.println("订单号:"+orderNo + "发货单号:"+outgoingCode);
         return new MessageVo("1");
-    }
-    /*@Override
+    }*/
+    @Override
     public MessageVo handle(MessageBo messageBo) {
         String orderNo = (String) messageBo.getContent().get("orderNo");
         String outgoingCode = (String) messageBo.getContent().get("outgoingCode");
 
         boolean b = remoteExternalOrderService.confirmReceive(orderNo, outgoingCode);
-
         if (b){
             return new MessageVo("1");
         }
         return new MessageVo("0","确认收获失败");
-    }*/
+    }
 }

+ 1 - 1
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/enums/MallMessageTypeEnum.java

@@ -36,7 +36,7 @@ public enum MallMessageTypeEnum {
 
     /* ======================= 账户 ======================= */
     //TODO 税收编码 写一个伪数据   商品规格没有 就写一个伪数据
-    //TODO没有做品类映射
+    //TODO没有做品类映射 ,目前就只返回了一个1,没有做保存到时候商品直接导入就行了
     ACCOUNT_ACTIVE("2201", "账户", "电商账户已生效"),
     //没做常老师说不需要
     ACCOUNT_NOTICE("2202", "账户", "通知公告信息"),

+ 19 - 14
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/dubbo/RemoteExternalOrderServiceImpl.java

@@ -173,7 +173,6 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
 
     @Override
     public ZhongCheTrackVo queryLogisticsTrack(String outgoingCode, String waybillType) {
-/*
         OrderDeliverThird one1 = orderDeliverThirdService.lambdaQuery()
             .eq(OrderDeliverThird::getOutgoingCode, outgoingCode)
             .last("limit 1")
@@ -189,7 +188,6 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
             .one();
         // 新增:空值防护(查询不到发货单直接返回null,避免空指针)
         if (one == null) {
-
             return null;
         }
 
@@ -199,13 +197,6 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
         trackVo.setExpressCompanyName(name);
         trackVo.setDeliveryTrack(deliveryTracks);
         trackVo.setExpressCode(one.getLogisticNo());
-        return trackVo;*/
-        ZhongCheTrackVo trackVo = new ZhongCheTrackVo();
-        trackVo.setExpressCode("434848895994511");
-        trackVo.setExpressCompanyName("韵达");
-        List<DeliveryTrack> deliveryTracks = queryDeliverTrack("yunda", "434848895994511", "17683851082");
-        trackVo.setDeliveryTrack(deliveryTracks);
-        System.out.println(trackVo);
         return trackVo;
     }
 
@@ -280,10 +271,15 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
     @Override
     public OrderNoDto cancelOrder(String orderNo, String cancelReason) {
         OrderNoDto orderNoDto = new OrderNoDto();
+        OrderMainCrrcExt orderMainCrrcExt = orderMainCrrcExtService.lambdaQuery()
+            .eq(OrderMainCrrcExt::getCrrcOrderNo, orderNo)
+            .select(OrderMainCrrcExt::getId)
+            .one();
+
         boolean update = orderMainService.lambdaUpdate()
-            .eq(OrderMain::getOrderNo, orderNo)
-            .eq(OrderMain::getOrderStatus, "2")
-            .set(OrderMain::getOrderStatus, "7")
+            .eq(OrderMain::getId, orderMainCrrcExt.getId())
+            .in(OrderMain::getOrderStatus, "2", "3")
+            .set(OrderMain::getOrderStatus, "8")
             .set(OrderMain::getCancelReason, cancelReason)
             .update();
         if (update != true){
@@ -374,8 +370,16 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
             log.error("日期转换错误", e);
         }
         orderMain.setOrderTime(orderTime);
-        //下单来源
-        orderMain.setOrderSource("zhongche");
+        //数据来源
+        orderMain.setDataSource("zhongche");
+        //商品总数量
+        long totalQuantity = orderDetailVo.getOrderGoods()
+            .stream()
+            .map(OrderGoodsItem::getNum)
+            .filter(Objects::nonNull)
+            .mapToInt(BigDecimal::intValueExact)
+            .sum();
+        orderMain.setProductQuantity(totalQuantity);
         boolean orderMainFlag = orderMainService.save(orderMain);
         Long id = orderMain.getId();
         //副表
@@ -460,6 +464,7 @@ public class RemoteExternalOrderServiceImpl implements RemoteExternalOrderServic
         ZhongCheOrderInvoice zhongCheorderInvoice = orderDetailVo.getOrderInvoice();
         if (zhongCheorderInvoice != null) {
             OrderInvoice orderInvoice = new OrderInvoice();
+            orderInvoice.setOrderId(id);
             orderInvoice.setInvoiceType(zhongCheorderInvoice.getInvoiceType());
             orderInvoice.setSelectedInvoiceTitle(zhongCheorderInvoice.getSelectedInvoiceTitle());
             if (ObjectUtil.isNotEmpty(zhongCheorderInvoice.getCompanyName())){