xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -4744,7 +4744,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);
@@ -4954,17 +4954,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();
@@ -4973,15 +5002,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(xpOrder.getMileageKilometers()!=null ? xpOrder.getMileageKilometers().toString() :"0");
            itinerary.setAmount(xpOrder.getOrderMoney());
            xpInvoiceVo.setItinerary(itinerary);
            xpInvoiceVoList.add(xpInvoiceVo);
@@ -5016,26 +5041,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);