| 
					
				 | 
			
			
				@@ -1,13 +1,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package org.jeecg.modules.documents.shippingDetails.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.io.File; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.lang.reflect.Field; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.DateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.io.UnsupportedEncodingException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.net.URLDecoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.ServletOutputStream; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -15,12 +13,17 @@ import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.afterturn.easypoi.excel.entity.TemplateExportParams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.excel.EasyExcel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.excel.ExcelWriter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.excel.write.metadata.WriteSheet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.excel.write.metadata.fill.FillConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.gson.Gson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.gson.GsonBuilder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //import org.apache.shiro.SecurityUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.poi.hssf.util.HSSFColor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.poi.ss.usermodel.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.poi.xssf.usermodel.XSSFWorkbook; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.shiro.SecurityUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.jeecg.common.api.vo.Result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.jeecg.common.exception.JeecgBootException; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1536,7 +1539,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 result.setMessage("没有获取到数据,导出失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 org.jeecgframework.poi.excel.entity.TemplateExportParams params = new org.jeecgframework.poi.excel.entity.TemplateExportParams("D:\\单证模板\\出运明细列表.xlsx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //org.jeecgframework.poi.excel.entity.TemplateExportParams params = new org.jeecgframework.poi.excel.entity.TemplateExportParams("D:\\单证模板\\出运明细列表.xlsx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 //集合转map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 for (SyShippingDetailsVo li : pageList.getRecords()) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1556,30 +1559,47 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 	li.setPreDeliveryDate1(sf.format(li.getPreDeliveryDate())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 orderQuantity = orderQuantity.add(li.getOrderQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 orderQuantity = orderQuantity.add(new BigDecimal(li.getShipmentQuantity())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 BigDecimal p = new BigDecimal(li.getSalesUnitPrice()).multiply(li.getOrderQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 li.setPrice(p.setScale(4,BigDecimal.ROUND_DOWN)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 li.setPrice(p.setScale(4,BigDecimal.ROUND_DOWN).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 price = price.add(p); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 Field[] fieldsList = li.getClass().getDeclaredFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 Map<String, Object> mapList = new HashMap<String, Object>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 for (Field field : fieldsList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					 field.setAccessible(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					 mapList.put(field.getName(), field.get(li)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 listMap.add(mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 Field[] fieldsList = li.getClass().getDeclaredFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 Map<String, Object> mapList = new HashMap<String, Object>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 for (Field field : fieldsList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					 field.setAccessible(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					 mapList.put(field.getName(), field.get(li)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 listMap.add(mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 map.put("orderQuantity",orderQuantity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 map.put("price",price.setScale(4,BigDecimal.ROUND_DOWN)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 map.put("item", listMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// map.put("item", listMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 //sheet.createFreezePane(0, 1, 0, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 Workbook workbook = ExcelExportUtil.exportExcel(params, map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 req.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 req.setCharacterEncoding("utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //获取模板输入流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 InputStream inStream = new FileInputStream("D:\\单证模板\\出运明细列表.xlsx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //通过poi创建表对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 XSSFWorkbook workbook = new XSSFWorkbook(inStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //遍历复制sheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //写到流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 workbook.write(bos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 ServletOutputStream outputStream = req.getOutputStream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 ByteArrayInputStream is = new ByteArrayInputStream(bos.toByteArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(is).build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //填充配置, 这里的意义是给模板中的集合数据添加新行, 保证导出不会错乱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 WriteSheet writeSheet1 = EasyExcel.writerSheet("出运明细列表").build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 excelWriter.fill(map, fillConfig, writeSheet1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 excelWriter.fill(pageList.getRecords(), fillConfig, writeSheet1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 workbook.write(outputStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 //关流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 excelWriter.finish(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 inStream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 }catch (Exception ex){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 ex.printStackTrace(); 
			 |