Sfoglia il codice sorgente

导出模式修改

Liugl 3 anni fa
parent
commit
c9d14d4d15

+ 41 - 13
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -121,23 +121,51 @@ public class TicketBoxMgrController extends BaseApiController {
 		if (null == ids || null == ids.getIds() || ids.getIds().size() == 0) {
 			return AjaxResult.error("请选择需要导出的盲票组");
 		}
+		List<TicketExcel> excelList = new ArrayList<TicketExcel>();
+		// 首先查询要导出的数据总数
 		LambdaQueryWrapper<Ticket> queryWrapper = new LambdaQueryWrapper<Ticket>();
 		queryWrapper.in(Ticket::getBoxId, ids.getIds());
-		List<Ticket> list = ticketService.list(queryWrapper);
-		if (null == list || list.size() == 0) {
+		int totalSize = ticketService.count(queryWrapper);
+		if (totalSize == 0) {
 			return AjaxResult.error("选择的盲票组中没有可导出的数据");
 		}
-		List<TicketExcel> excelList = new ArrayList<TicketExcel>();
-		for (Ticket ticket : list) {
-			if (null != ticket && StringUtils.isNotBlank(ticket.getSerialNo())
-					&& StringUtils.isNotBlank(ticket.getDrawNum())
-					&& StringUtils.isNotBlank(ticket.getCipherLuckyNum())) {
-				TicketExcel ticketExcel = new TicketExcel();
-				ticketExcel.setSerialNo(ticket.getSerialNo());
-				ticketExcel.setUrl(exportUrl + ticket.getSerialNo());
-				ticketExcel.setDrawNum(ticket.getDrawNum());
-				ticketExcel.setCipherLuckyNum(ticket.getCipherLuckyNum());
-				excelList.add(ticketExcel);
+		if(totalSize > 1000) {
+			int totalPage = totalSize%1000 == 0?totalSize/1000:totalSize/1000+1;
+			for (int i = 0; i < totalPage; i++) {
+				LambdaQueryWrapper<Ticket> pageQueryWrapper = new LambdaQueryWrapper<Ticket>();
+				pageQueryWrapper.in(Ticket::getBoxId, ids.getIds());
+				queryWrapper.last("limit "+(i+1)+", 1000");
+				List<Ticket> list = ticketService.list(queryWrapper);
+				if(null != list && list.size() > 0 ) {
+					for (Ticket ticket : list) {
+						if (null != ticket && StringUtils.isNotBlank(ticket.getSerialNo())
+								&& StringUtils.isNotBlank(ticket.getDrawNum())
+								&& StringUtils.isNotBlank(ticket.getCipherLuckyNum())) {
+							TicketExcel ticketExcel = new TicketExcel();
+							ticketExcel.setSerialNo(ticket.getSerialNo());
+							ticketExcel.setUrl(exportUrl + ticket.getSerialNo());
+							ticketExcel.setDrawNum(ticket.getDrawNum());
+							ticketExcel.setCipherLuckyNum(ticket.getCipherLuckyNum());
+							excelList.add(ticketExcel);
+						}
+					}
+				}
+			}
+		}else {
+			List<Ticket> list = ticketService.list(queryWrapper);
+			if(null != list && list.size() > 0 ) {
+				for (Ticket ticket : list) {
+					if (null != ticket && StringUtils.isNotBlank(ticket.getSerialNo())
+							&& StringUtils.isNotBlank(ticket.getDrawNum())
+							&& StringUtils.isNotBlank(ticket.getCipherLuckyNum())) {
+						TicketExcel ticketExcel = new TicketExcel();
+						ticketExcel.setSerialNo(ticket.getSerialNo());
+						ticketExcel.setUrl(exportUrl + ticket.getSerialNo());
+						ticketExcel.setDrawNum(ticket.getDrawNum());
+						ticketExcel.setCipherLuckyNum(ticket.getCipherLuckyNum());
+						excelList.add(ticketExcel);
+					}
+				}
 			}
 		}
 		ExcelUtil<TicketExcel> util = new ExcelUtil<TicketExcel>(TicketExcel.class);