|
@@ -7,12 +7,14 @@ import com.qs.mp.admin.domain.TicketPackage;
|
|
|
import com.qs.mp.admin.domain.param.ChannelOrderPkgParam;
|
|
|
import com.qs.mp.admin.domain.param.ChannelOrderQueryParam;
|
|
|
import com.qs.mp.admin.domain.param.ChannelOrderShipParam;
|
|
|
+import com.qs.mp.admin.domain.param.UserDeliverOrderQueryParam;
|
|
|
import com.qs.mp.admin.domain.vo.TicketPackageVO;
|
|
|
import com.qs.mp.admin.service.ITicketPackageService;
|
|
|
import com.qs.mp.channel.domain.Channel;
|
|
|
import com.qs.mp.channel.domain.ChannelOrder;
|
|
|
import com.qs.mp.channel.domain.ChannelOrderDetail;
|
|
|
import com.qs.mp.channel.domain.ChannelOrderItem;
|
|
|
+import com.qs.mp.channel.domain.excel.ChannelOrderExcel;
|
|
|
import com.qs.mp.channel.domain.vo.ChannelOrderInfoVO;
|
|
|
import com.qs.mp.channel.domain.vo.ChannelOrderItemVO;
|
|
|
import com.qs.mp.channel.domain.vo.ChannelOrderVO;
|
|
@@ -29,6 +31,12 @@ import com.qs.mp.common.enums.BusinessType;
|
|
|
import com.qs.mp.common.enums.ErrorCodeEnum;
|
|
|
import com.qs.mp.common.enums.TicketPkgStatusEnum;
|
|
|
import com.qs.mp.common.service.IDeliveryCompanyService;
|
|
|
+import com.qs.mp.user.domain.UserDeliverOrder;
|
|
|
+import com.qs.mp.user.domain.UserDeliverOrderItem;
|
|
|
+import com.qs.mp.user.domain.excel.DeliverOrderExcel;
|
|
|
+import com.qs.mp.user.domain.vo.UserDeliverOrderItemVO;
|
|
|
+import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
|
|
|
+import com.qs.mp.utils.ExcelUtil;
|
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -93,8 +101,11 @@ public class ChannelOrderMgrController extends BaseApiController {
|
|
|
queryWrapper.orderByDesc("t1.order_id");
|
|
|
List<ChannelOrderVO> channelOrderVOList = channelOrderService.selectChannelOrderVoList(queryWrapper);
|
|
|
for (ChannelOrderVO channelOrderVO : channelOrderVOList) {
|
|
|
- channelOrderVO.setItems(channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
|
|
|
- .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId())));
|
|
|
+ List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
|
|
|
+ .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
|
|
|
+
|
|
|
+ List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
|
|
|
+ channelOrderVO.setItems(itemVOList);
|
|
|
}
|
|
|
return getDataTable(channelOrderVOList);
|
|
|
}
|
|
@@ -249,4 +260,125 @@ public class ChannelOrderMgrController extends BaseApiController {
|
|
|
}
|
|
|
return AjaxResult.success(list);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Log(title = "提货订单导出", businessType = BusinessType.EXPORT)
|
|
|
+ @PostMapping("/export")
|
|
|
+ @PreAuthorize("@ss.hasPermi('order:channel:export')")
|
|
|
+ public AjaxResult export(@RequestBody ChannelOrderQueryParam queryParam) {
|
|
|
+
|
|
|
+ List<ChannelOrderExcel> excelList = new ArrayList<ChannelOrderExcel>();
|
|
|
+ List<ChannelOrderVO> listAll = new ArrayList<ChannelOrderVO>();
|
|
|
+ // 首先查询要导出的数据总数
|
|
|
+ QueryWrapper<ChannelOrder> queryWrapper = new QueryWrapper<ChannelOrder>();
|
|
|
+ queryWrapper.eq(null != queryParam && null != queryParam.getChannelId(), "t1.channel_id" ,queryParam.getChannelId());
|
|
|
+ queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
|
|
|
+ queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
|
|
|
+ queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.created_time", queryParam.getStartTime());
|
|
|
+ queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
|
|
|
+ queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t1.title", queryParam.getTitle());
|
|
|
+ queryWrapper.orderByDesc("t1.order_id");
|
|
|
+
|
|
|
+ int totalSize = channelOrderService.selectChannelOrderCount(queryWrapper);
|
|
|
+ if (totalSize == 0) {
|
|
|
+ return AjaxResult.error("没有符合条件的经销商订单");
|
|
|
+ }
|
|
|
+
|
|
|
+ int pageSize = 2000;
|
|
|
+ if (totalSize > pageSize) {
|
|
|
+ int totalPage = totalSize % pageSize == 0 ? totalSize / pageSize : totalSize / pageSize + 1;
|
|
|
+ for (int i = 0; i < totalPage; i++) {
|
|
|
+ queryWrapper.last("limit " + (i * pageSize) + ", " + pageSize);
|
|
|
+ List<ChannelOrderVO> channelOrderVOList = channelOrderService.selectChannelOrderVoList(queryWrapper);
|
|
|
+ for (ChannelOrderVO channelOrderVO : channelOrderVOList) {
|
|
|
+ List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
|
|
|
+ .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
|
|
|
+ List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
|
|
|
+ if(null != itemVOList && itemVOList.size() > 0) {
|
|
|
+ for(ChannelOrderItemVO itemVO : itemVOList) {
|
|
|
+ if(null != itemVO && StringUtils.isNotBlank(itemVO.getBoxId())
|
|
|
+ && StringUtils.isNotBlank(itemVO.getOrderId())) {
|
|
|
+ LambdaQueryWrapper<ChannelOrderDetail> detailQueryWrapper = new LambdaQueryWrapper<ChannelOrderDetail>();
|
|
|
+ detailQueryWrapper.eq(ChannelOrderDetail::getOrderId, itemVO.getOrderId());
|
|
|
+ detailQueryWrapper.eq(ChannelOrderDetail::getBoxId, itemVO.getBoxId());
|
|
|
+ List<ChannelOrderDetail> detailList = channelOrderDetailService.list(detailQueryWrapper);
|
|
|
+ itemVO.setDetailList(detailList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ channelOrderVO.setItems(itemVOList);
|
|
|
+ }
|
|
|
+ if (null != channelOrderVOList && channelOrderVOList.size() > 0) {
|
|
|
+ listAll.addAll(channelOrderVOList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ listAll = channelOrderService.selectChannelOrderVoList(queryWrapper);
|
|
|
+ for (ChannelOrderVO channelOrderVO : listAll) {
|
|
|
+ List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
|
|
|
+ .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
|
|
|
+ List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
|
|
|
+ if(null != itemVOList && itemVOList.size() > 0) {
|
|
|
+ for(ChannelOrderItemVO itemVO : itemVOList) {
|
|
|
+ if(null != itemVO && StringUtils.isNotBlank(itemVO.getBoxId())
|
|
|
+ && StringUtils.isNotBlank(itemVO.getOrderId())) {
|
|
|
+ LambdaQueryWrapper<ChannelOrderDetail> detailQueryWrapper = new LambdaQueryWrapper<ChannelOrderDetail>();
|
|
|
+ detailQueryWrapper.eq(ChannelOrderDetail::getOrderId, itemVO.getOrderId());
|
|
|
+ detailQueryWrapper.eq(ChannelOrderDetail::getBoxId, itemVO.getBoxId());
|
|
|
+ List<ChannelOrderDetail> detailList = channelOrderDetailService.list(detailQueryWrapper);
|
|
|
+ itemVO.setDetailList(detailList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ channelOrderVO.setItems(itemVOList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (null != listAll && listAll.size() > 0) {
|
|
|
+ // listAll.sort(Comparator.comparing(UserDeliverOrderVO::getOrderId));
|
|
|
+ for (ChannelOrderVO channelOrder : listAll) {
|
|
|
+ if (null != channelOrder && StringUtils.isNotBlank(channelOrder.getOrderId())
|
|
|
+ && StringUtils.isNotBlank(channelOrder.getReceiver())
|
|
|
+ && StringUtils.isNotBlank(channelOrder.getTel())
|
|
|
+ && StringUtils.isNotBlank(channelOrder.getProvince())
|
|
|
+ && StringUtils.isNotBlank(channelOrder.getCity())
|
|
|
+ && StringUtils.isNotBlank(channelOrder.getArea())
|
|
|
+ && StringUtils.isNotBlank(channelOrder.getAddress()) && null != channelOrder.getItems()
|
|
|
+ && channelOrder.getItems().size() > 0) {
|
|
|
+ for (ChannelOrderItemVO channelOrderItem : channelOrder.getItems()) {
|
|
|
+ if (null != channelOrderItem) {
|
|
|
+ ChannelOrderExcel channelOrderExcel = new ChannelOrderExcel();
|
|
|
+ channelOrderExcel.setTitle(channelOrderItem.getTitle());
|
|
|
+ channelOrderExcel.setOrderNum(channelOrderItem.getOrderNum());
|
|
|
+ if(null != channelOrderItem.getDetailList() && channelOrderItem.getDetailList().size() > 0) {
|
|
|
+ StringBuffer buff = new StringBuffer();
|
|
|
+ for(ChannelOrderDetail orderDetail: channelOrderItem.getDetailList()) {
|
|
|
+ if(null != orderDetail && StringUtils.isNotBlank(orderDetail.getStartSn())
|
|
|
+ && StringUtils.isNotBlank(orderDetail.getEndSn())) {
|
|
|
+ buff.append("("+orderDetail.getStartSn()+"-"+orderDetail.getEndSn()+")");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ channelOrderExcel.setSnRrange(buff.toString());
|
|
|
+ }
|
|
|
+ channelOrderExcel.setCreatedTime(channelOrder.getCreatedTime());
|
|
|
+ channelOrderExcel.setItemStatus(channelOrder.getStatus().getValue() > 1 ? "已发货" : "未发货");
|
|
|
+ channelOrderExcel.setOrderId(channelOrder.getOrderId());
|
|
|
+ channelOrderExcel.setStatus(channelOrder.getStatus().getDesc());
|
|
|
+ channelOrderExcel.setChannelName(channelOrder.getChannelName());
|
|
|
+ channelOrderExcel.setParentName(channelOrder.getParentName());
|
|
|
+ channelOrderExcel.setReceiver(channelOrder.getReceiver());
|
|
|
+ channelOrderExcel.setTel(channelOrder.getTel());
|
|
|
+ String address = channelOrder.getProvince() + channelOrder.getCity()
|
|
|
+ + channelOrder.getArea() + channelOrder.getAddress();
|
|
|
+ channelOrderExcel.setAddress(address);
|
|
|
+ excelList.add(channelOrderExcel);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ExcelUtil<ChannelOrderExcel> util = new ExcelUtil<ChannelOrderExcel>(ChannelOrderExcel.class);
|
|
|
+ return util.exportExcel(excelList, "经销商订单导出", false);
|
|
|
+ }
|
|
|
}
|