From da5cf3d82ea1044c338513147b0078be031465a0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 20 五月 2026 14:54:10 +0800
Subject: [PATCH] Merge branch '1.1' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   92 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 73 insertions(+), 19 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index fc3b1a3..0072100 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -4883,7 +4883,7 @@
         if(order.getPayType()==3){
             // 免密查询 如果成功则调用结算
             CreditOrderQueryDto dto = new CreditOrderQueryDto();
-            dto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
+            dto.setBusinessOrderId(order.getBusinessOrderId());
             dto.setAuthOrderId(order.getAuthOrderId());
             dto.setPayType("13");
             R<CreditOrderQueryVo> creditOrderQueryVoR = xpPayFrontClient.queryCreditOrder(dto);
@@ -5093,17 +5093,46 @@
 
         ArrayList<XpInvoiceVo> xpInvoiceVoList = new ArrayList<>(list.size());
 
-        R<List<XpVehicle>> r = xpVehicleClient.listByIds(list.stream().map(XpOrder::getVehicleId).collect(Collectors.toList()));
-        List<XpVehicle> vehicleList = r.getData();
-
         // 数据组装
         for (XpOrder xpOrder : list) {
             XpInvoiceVo xpInvoiceVo = new XpInvoiceVo();
             xpInvoiceVo.setUid(xpOrder.getAppUserId().toString());
             xpInvoiceVo.setOrderNo(xpOrder.getOrderNumber());
-            xpInvoiceVo.setOrderTotalAmount(xpOrder.getOrderMoney());
+
+            BigDecimal orderMoney = xpOrder.getOrderMoney() == null ? BigDecimal.ZERO : xpOrder.getOrderMoney();
+            XpInvoiceVo.GoodsDetail goodsDetail = new XpInvoiceVo.GoodsDetail();
+            goodsDetail.setProductName("Robotaxi出行服务");
+            goodsDetail.setProductCode(null);
+            goodsDetail.setProductSpecCode("XE2000398");
+            goodsDetail.setProductSpec(null);
+            goodsDetail.setProductUnit("次");
+            goodsDetail.setQuantity(1);
+            goodsDetail.setUnitPrice(orderMoney);
+            goodsDetail.setInTaxAmount(orderMoney);
+            goodsDetail.setTaxRate(null);
+            goodsDetail.setTaxAmount(null);
+            goodsDetail.setExTaxAmount(null);
+            goodsDetail.setItemId(xpOrder.getOrderNumber());
+            goodsDetail.setCouponAmount(xpOrder.getCouponMoney());
+            goodsDetail.setCompanyCode("8000");
+            xpInvoiceVo.setGoodsDetail(JSON.toJSONString(goodsDetail));
+
+            xpInvoiceVo.setOrderTotalAmount(xpOrder.getPayMoney());
+            xpInvoiceVo.setOrderBusAmount(xpOrder.getOrderMoney());
+
             xpInvoiceVo.setOrderDiscountAmount(xpOrder.getCouponMoney());
             xpInvoiceVo.setOrderFinishTime(xpOrder.getTripEnd()!=null?String.valueOf(xpOrder.getTripEnd()):"");
+
+
+            JSONObject extData = new JSONObject();
+            extData.put("companyCode", "8000");
+            extData.put("realCompanyCode", null);
+            extData.put("siteName",null);
+            extData.put("pile", null);
+            extData.put("payFag", null);
+            extData.put("supplierCode", null);
+            xpInvoiceVo.setExtData(JSON.toJSONString(extData));
+
             xpInvoiceVo.setXpInvoiceFlag(true);
             xpInvoiceVo.setInvoiceStatus(xpOrder.getInvoiceStatus());
             XpInvoiceVo.Itinerary itinerary = new XpInvoiceVo.Itinerary();
@@ -5112,14 +5141,11 @@
             itinerary.setTripEndDate(xpOrder.getTripEnd()!=null?xpOrder.getTripEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")):"");
 
 
-            XpVehicle xpVehicle = vehicleList.stream().filter(vehicle -> vehicle.getId().equals(xpOrder.getVehicleId())).findFirst().get();
-            itinerary.setCarType(xpVehicle.getVehicleModel());
             itinerary.setTripStartDate(xpOrder.getBoardingTime()!=null?xpOrder.getBoardingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")):"");
 
-            itinerary.setCity(xpOrder.getCityName());
             itinerary.setStartPoint(xpOrder.getStartAddress());
             itinerary.setEndPoint(xpOrder.getEndAddress());
-            itinerary.setMileage(null == xpOrder.getMileageKilometers() ? "0" : xpOrder.getMileageKilometers().toString());
+            itinerary.setMileage(xpOrder.getMileageKilometers()!=null ? xpOrder.getMileageKilometers().toString() :"0");
             itinerary.setAmount(xpOrder.getOrderMoney());
 
             xpInvoiceVo.setItinerary(itinerary);
@@ -5155,26 +5181,54 @@
             XpInvoiceVo xpInvoiceVo = new XpInvoiceVo();
             xpInvoiceVo.setUid(xpOrder.getAppUserId().toString());
             xpInvoiceVo.setOrderNo(xpOrder.getOrderNumber());
-            xpInvoiceVo.setOrderTotalAmount(xpOrder.getOrderMoney());
+
+            BigDecimal orderMoney = xpOrder.getOrderMoney() == null ? BigDecimal.ZERO : xpOrder.getOrderMoney();
+            XpInvoiceVo.GoodsDetail goodsDetail = new XpInvoiceVo.GoodsDetail();
+            goodsDetail.setProductName("Robotaxi出行服务");
+            goodsDetail.setProductCode(null);
+            goodsDetail.setProductSpecCode("XE2000398");
+            goodsDetail.setProductSpec(null);
+            goodsDetail.setProductUnit("次");
+            goodsDetail.setQuantity(1);
+            goodsDetail.setUnitPrice(orderMoney);
+            goodsDetail.setInTaxAmount(orderMoney);
+            goodsDetail.setTaxRate(null);
+            goodsDetail.setTaxAmount(null);
+            goodsDetail.setExTaxAmount(null);
+            goodsDetail.setItemId(xpOrder.getOrderNumber());
+            goodsDetail.setCouponAmount(xpOrder.getCouponMoney());
+            goodsDetail.setCompanyCode("8000");
+            xpInvoiceVo.setGoodsDetail(JSON.toJSONString(goodsDetail));
+
+            xpInvoiceVo.setOrderTotalAmount(xpOrder.getPayMoney());
+            xpInvoiceVo.setOrderBusAmount(xpOrder.getOrderMoney());
+
             xpInvoiceVo.setOrderDiscountAmount(xpOrder.getCouponMoney());
-            xpInvoiceVo.setOrderFinishTime(String.valueOf(xpOrder.getTripEnd()));
+            xpInvoiceVo.setOrderFinishTime(xpOrder.getTripEnd()!=null?String.valueOf(xpOrder.getTripEnd()):"");
+
+
+            JSONObject extData = new JSONObject();
+            extData.put("companyCode", "8000");
+            extData.put("realCompanyCode", null);
+            extData.put("siteName",null);
+            extData.put("pile", null);
+            extData.put("payFag", null);
+            extData.put("supplierCode", null);
+            xpInvoiceVo.setExtData(JSON.toJSONString(extData));
+
             xpInvoiceVo.setXpInvoiceFlag(true);
             xpInvoiceVo.setInvoiceStatus(xpOrder.getInvoiceStatus());
             XpInvoiceVo.Itinerary itinerary = new XpInvoiceVo.Itinerary();
             // yyyy-MM-dd格式
-            itinerary.setTripStartDate(xpOrder.getAcceptanceTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
-            itinerary.setTripEndDate(xpOrder.getTripEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+            itinerary.setTripStartDate(xpOrder.getAcceptanceTime()!=null?xpOrder.getAcceptanceTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")):"");
+            itinerary.setTripEndDate(xpOrder.getTripEnd()!=null?xpOrder.getTripEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")):"");
 
 
-            XpVehicle xpVehicle = vehicleList.stream().filter(vehicle -> vehicle.getId().equals(xpOrder.getVehicleId())).findFirst().get();
-            itinerary.setCarType(xpVehicle.getVehicleModel());
-            itinerary.setTripStartDate(xpOrder.getBoardingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+            itinerary.setTripStartDate(xpOrder.getBoardingTime()!=null?xpOrder.getBoardingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")):"");
 
-            itinerary.setCity(xpOrder.getCityName());
             itinerary.setStartPoint(xpOrder.getStartAddress());
             itinerary.setEndPoint(xpOrder.getEndAddress());
-            itinerary.setMileage(xpOrder.getMileageKilometers().toString());
-            itinerary.setAmount(xpOrder.getOrderMoney());
+            itinerary.setMileage(xpOrder.getMileageKilometers()!=null ? xpOrder.getMileageKilometers().toString() :"0");
 
             xpInvoiceVo.setItinerary(itinerary);
             xpInvoiceVoList.add(xpInvoiceVo);

--
Gitblit v1.7.1