| 
					
				 | 
			
			
				@@ -1,7 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.kmall.admin.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.google.gson.Gson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dto.OrderExpressDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.dto.SystemFormatDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.entity.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,8 +8,6 @@ import com.kmall.admin.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.utils.CalculateTax; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.utils.ParamUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.admin.utils.ShiroUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.kmall.admin.utils.data.response.ResponseMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.kmall.admin.utils.oms.OmsSign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.common.constant.Dict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.common.constant.JxlsXmlTemplateName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.common.utils.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,10 +26,10 @@ import com.kmall.manager.manager.wechat.WechatGlobalUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.manager.manager.wechat.WechatUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.kmall.manager.manager.wechat.wxglobal.dto.WechatGlobalRefundApiResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import net.sf.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import okhttp3.Request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.logging.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.logging.LogFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.poi.ss.usermodel.Workbook; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.shiro.authz.annotation.RequiresPermissions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -44,7 +40,6 @@ import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.text.Bidi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1499,7 +1494,10 @@ public class OrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // =================================================System Format导出结束===================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ee.addSheetByMap("Daily sales report", list, header); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<List<Map<String, Object>>> lists = splitList(list, page(list.size())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (int i = 0; i < lists.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ee.addSheetByMap("Daily sales report " + (i + 1), lists.get(i), header); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ee.export(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1550,5 +1548,39 @@ public class OrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return headerMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 根据页数分割集合,分割后的集合一般都会少于3000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 如果大于3000了可能会导出失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param list  需要分割的list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param n     页数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return      分割后的list集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static <T> List<List<T>> splitList(List<T> list, int n){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<List<T>> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int remainder =list.size() % n;      // 先计算出余数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int number = list.size() / n;       // 然后是商 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int offset = 0;                     // 偏移量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (int i = 0; i < n; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<T> value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (remainder > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                value = list.subList(i * number + offset, (i + 1) * number + offset + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                remainder--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                offset++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                value = list.subList(i * number + offset, (i + 1) * number + offset); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result.add(value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 根据集合大小判断有多少页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param size  集合大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return      多少页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int page(int size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return size % 3000 == 0 ? size / 3000 : (size / 3000) + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |