From d2d7c2561ea9f8a7e909588a40920c7dc3064b3f Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期三, 10 一月 2024 17:13:55 +0800
Subject: [PATCH] commit

---
 product-server-data-center/src/main/java/com/product/data/center/service/SNAssociatedItemService.java |   55 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 38 insertions(+), 17 deletions(-)

diff --git a/product-server-data-center/src/main/java/com/product/data/center/service/SNAssociatedItemService.java b/product-server-data-center/src/main/java/com/product/data/center/service/SNAssociatedItemService.java
index 3ff044d..b97dfbe 100644
--- a/product-server-data-center/src/main/java/com/product/data/center/service/SNAssociatedItemService.java
+++ b/product-server-data-center/src/main/java/com/product/data/center/service/SNAssociatedItemService.java
@@ -10,6 +10,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import cn.hutool.core.date.DateTime;
+import com.product.core.entity.SQLEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -280,28 +281,43 @@
 	public void getReportExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
 		//鑾峰彇鏈哄彿鏌ヨ淇℃伅
 		FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-		DataTableEntity workCenterOperationInfomationSheet = this.dtSNItemInfo(fse);
-
+		Boolean isAll = fse.getBoolean("is_all");
+		if (isAll) {
+			fse.setValue(CmnConst.CPAGE, 1);
+			fse.setValue(CmnConst.PAGESIZE, 999);
+		}
 		//鍒濆EXCEL淇℃伅
 		response.setContentType("multipart/form-data");
 		response.setCharacterEncoding("utf-8");
 		//杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜
 		String fileName = URLEncoder.encode("SN鍏宠仈鐗╂枡" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".xlsx", "UTF-8");
 		response.setHeader("Content-disposition", "attachment;filename=" + fileName);
-
-		List<SNAssociatedItemEntity> traceSNItemEntityList = new ArrayList<>();
-		for (int i = 0; i < workCenterOperationInfomationSheet.getRows(); i++) {
-			FieldSetEntity fieldSetEntity = workCenterOperationInfomationSheet.getFieldSetEntity(i);
-			Map<Object, Object> values = fieldSetEntity.getValues();
-			JSONObject jsonObject = new JSONObject((Map) values);
-			SNAssociatedItemEntity manufacturingOrderEntity = jsonObject.toBean(SNAssociatedItemEntity.class);
-			traceSNItemEntityList.add(manufacturingOrderEntity);
-		}
 		ServletOutputStream outputStream = response.getOutputStream();
 		ExcelWriter excelWriter = EasyExcel.write(outputStream, SNAssociatedItemEntity.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+
+		DataTableEntity workCenterOperationInfomationSheet;
 		try {
-			WriteSheet writeSheet = EasyExcel.writerSheet(1, "data").build();
-			excelWriter.write(traceSNItemEntityList, writeSheet);
+			do {
+				workCenterOperationInfomationSheet = this.dtSNItemInfo(fse);
+				if (DataTableEntity.isEmpty(workCenterOperationInfomationSheet)) {
+					continue;
+				}
+				List<SNAssociatedItemEntity> traceSNItemEntityList = new ArrayList<>();
+				for (int i = 0; i < workCenterOperationInfomationSheet.getRows(); i++) {
+					FieldSetEntity fieldSetEntity = workCenterOperationInfomationSheet.getFieldSetEntity(i);
+					Map<Object, Object> values = fieldSetEntity.getValues();
+					JSONObject jsonObject = new JSONObject((Map) values);
+					SNAssociatedItemEntity manufacturingOrderEntity = jsonObject.toBean(SNAssociatedItemEntity.class);
+					traceSNItemEntityList.add(manufacturingOrderEntity);
+				}
+
+				WriteSheet writeSheet = EasyExcel.writerSheet(1, "data").build();
+				excelWriter.write(traceSNItemEntityList, writeSheet);
+
+
+				fse.setValue(CmnConst.CPAGE, fse.getInteger(CmnConst.CPAGE) + 1);
+			} while (
+					isAll && workCenterOperationInfomationSheet != null && workCenterOperationInfomationSheet.getSqle().isCountLoad());
 		} catch (Exception e) {
 			throw e;
 		} finally {
@@ -321,12 +337,15 @@
 		boolean isRecentData = fse.getBoolean(CmnConst.IS_RECENT_DATA) == true;//鏄惁杩戞湡鏁版嵁
 		Integer pageSize = fse.getInteger(CmnConst.PAGESIZE);    //椤垫暟澶у皬
 		Integer cpage = fse.getInteger(CmnConst.CPAGE);            //鐩爣椤�
-
+		SQLEntity sqle = new SQLEntity();
+		sqle.setCountLoad(false);
 		//鍒涘缓tracking琛⊿QL锛屽苟鑾峰彇杩囨护鐨勬暟鎹�
 		String parseTrackingSql = createTrackingSql(fse, isBakTable, isRecentData);
 		DataTableEntity dtTracking = baseDao.listTable(parseTrackingSql, new Object[]{}, pageSize, cpage);
 		if (!BaseUtil.dataTableIsEmpty(dtTracking)) {
-
+			if (dtTracking.getRows() == pageSize) {
+				sqle.setCountLoad(true);
+			}
 			//鑾峰彇鎬绘潯鏁�
 			String totalTrackingSql = "SELECT COUNT(*)count_total FROM (" + parseTrackingSql + ")t";
 //			FieldSetEntity fseTotalTracking = baseDao.getFieldSetBySQL(totalTrackingSql, new Object[]{}, false);
@@ -335,16 +354,18 @@
 			//Method1:浣跨敤OR鏌ヨ
 			Object[] serialNumbers = dtTracking.getUuids();
 			String keypSql = createKeypSql(serialNumbers, isBakTable, isRecentData);
-			System.out.println(keypSql);
 			DataTableEntity dtKeyp = baseDao.listTable(keypSql, new Object[]{});
 
 			if (!BaseUtil.dataTableIsEmpty(dtKeyp)) {
 				//灏唗racking琛ㄧ殑鏁版嵁杞负(key锛寁alue)褰㈠紡瀛樺偍
 				JSONObject json = convertDataTableToJson(dtTracking);
 				addKeypInfo(json, dtKeyp);
+				dtKeyp.setSqle(sqle);
 				return dtKeyp;
 			}
 		}
-		return null;
+		DataTableEntity dataTableEntity = new DataTableEntity();
+		dataTableEntity.setSqle(sqle);
+		return dataTableEntity;
 	}
 }

--
Gitblit v1.9.2