|
@@ -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();
|