package com.xiaopeng.order.controller;
|
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
import cn.hutool.core.bean.BeanUtil;
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.xiaopeng.api.dto.QueryOrderRouteDTO;
|
import com.xiaopeng.api.dto.operation.LonLatDto;
|
import com.xiaopeng.api.dto.order.GetOrderNumDto;
|
import com.xiaopeng.api.dto.order.PopOrderDto;
|
import com.xiaopeng.api.dto.order.UpdateInvoiceStatusDto;
|
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
|
import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
|
import com.xiaopeng.api.dto.vehicleConvoy.BaseVehicleUserDto;
|
import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
|
import com.xiaopeng.api.feignClient.operation.XpWhiteListClient;
|
import com.xiaopeng.api.feignClient.vehicleConvoy.VehicleMacClient;
|
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
|
import com.xiaopeng.api.model.operation.XpOfficialPartner;
|
import com.xiaopeng.api.model.operation.XpWhitelist;
|
import com.xiaopeng.api.model.order.XpOrder;
|
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
|
import com.xiaopeng.api.query.order.InvoiceOrdersQuery;
|
import com.xiaopeng.api.query.order.XpOrderInvoiceQuery;
|
import com.xiaopeng.api.vo.operation.NavigationVo;
|
import com.xiaopeng.api.vo.operation.NearestNextVo;
|
import com.xiaopeng.api.vo.operation.RouteVo;
|
import com.xiaopeng.api.vo.order.*;
|
import com.xiaopeng.api.vo.vehicleConvoy.GetBleInfoVo;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.exception.ServiceException;
|
import com.xiaopeng.common.core.utils.StringUtils;
|
import com.xiaopeng.common.core.utils.WebUtils;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.common.redis.service.RedisService;
|
import com.xiaopeng.common.security.service.TokenService;
|
import com.xiaopeng.order.dto.OrderNavigationDto;
|
import com.xiaopeng.order.mangodb.model.OrderTrajectory;
|
import com.xiaopeng.order.model.dto.XpOrderCommentDto;
|
import com.xiaopeng.order.model.dto.XpOrderOperateDTO;
|
import com.xiaopeng.order.model.dto.XpOrderPayDto;
|
import com.xiaopeng.order.model.dto.XpOrderReassignDTO;
|
import com.xiaopeng.order.model.exportExcel.XpOrderExportExcel;
|
import com.xiaopeng.order.model.query.XpHistoryOrderListQuery;
|
import com.xiaopeng.order.model.query.XpOrderExcelQuery;
|
import com.xiaopeng.order.model.query.XpOrderPageQuery;
|
import com.xiaopeng.order.model.vo.XpOrderDetailVO;
|
import com.xiaopeng.order.model.vo.XpOrderHistoryVO;
|
import com.xiaopeng.order.model.vo.XpOrderPageVO;
|
import com.xiaopeng.order.service.IXpOrderService;
|
import com.xiaopeng.order.vo.BluetoothTokenVo;
|
import com.xiaopeng.order.vo.OrderDetailVo;
|
import com.xiaopeng.order.vo.UpdateOrderStatusVo;
|
import com.xiaopeng.order.vo.XpOrderInfoVo;
|
import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
|
import io.swagger.annotations.*;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.poi.ss.usermodel.Workbook;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.servlet.ServletOutputStream;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.validation.Valid;
|
import java.io.IOException;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.net.URLEncoder;
|
import java.time.LocalDateTime;
|
import java.time.ZoneOffset;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 订单 前端控制器
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
@RestController
|
@Api(tags = "订单发票")
|
@RequiredArgsConstructor(onConstructor_ = @Lazy)
|
public class XpInvoiceController {
|
|
private final IXpOrderService xpOrderService;
|
|
@Resource
|
private TokenService tokenService;
|
|
|
/**
|
* 开票列表数据查询
|
*
|
* @param query 查询参数
|
* @return 开票列表数据查询
|
*/
|
@ApiOperation(value = "开票列表数据查询", tags = {"三方对接"})
|
@PostMapping("/logan/order/invoice/invoiceList")
|
public R<List<XpInvoiceVo>> invoiceList(@RequestBody @Valid XpOrderInvoiceQuery query) {
|
return R.ok(xpOrderService.invoiceList(query));
|
}
|
|
|
/**
|
* 查询开票数据(批量)
|
* @param query
|
* @return
|
*/
|
@ApiOperation(value = "查询开票数据(批量)", tags = {"三方对接"})
|
@PostMapping("/logan/order/invoice/queryInvoiceOrders")
|
public R<List<XpInvoiceVo>> queryInvoiceOrders(@RequestBody @Valid InvoiceOrdersQuery query) {
|
return R.ok(xpOrderService.queryInvoiceOrders(query));
|
}
|
|
|
/**
|
* 订单状态推送
|
*/
|
|
@ApiOperation(value = "订单状态推送", tags = {"三方对接"})
|
@PostMapping("/logan/order/invoice/updateInvoiceStatus")
|
public R<?> updateInvoiceStatus(@RequestBody @Valid UpdateInvoiceStatusDto dto) {
|
xpOrderService.updateInvoiceStatus(dto);
|
return R.ok();
|
}
|
|
|
|
}
|