From bf5c4ee596773ad69b135949a7f40257251d7613 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: Tue, 22 Nov 2022 15:16:43 +0800
Subject: [PATCH] 易制毒台账表头提交,具体数据无法查出
---
src/main/java/com/nanometer/smartlab/service/AccountInAndOutServiceImpl.java | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/nanometer/smartlab/service/AccountInAndOutService.java | 10 ++
src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java | 10 ++
3 files changed, 230 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
index d7d1c54..231bd26 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -22,6 +22,7 @@
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import org.primefaces.model.StreamedContent;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
@@ -176,6 +177,8 @@
private boolean isExpired;
private Hashtable printTable;
+ @Autowired
+ private AccountInAndOutService accountInAndOutService;
public Hashtable getPrintTable() {
return printTable;
@@ -2113,8 +2116,11 @@
public void onExportOutAndIn(){
-
-
+ FacesContext currentInstance = FacesContext.getCurrentInstance();
+ currentInstance.responseComplete();
+ ExternalContext etx = currentInstance.getExternalContext();
+ HttpServletResponse resp = (HttpServletResponse) etx.getResponse();
+ accountInAndOutService.exportExcel(resp);
}
public HSSFWorkbook exportExcelNew(List<String> headerList, List<OpeWarehouseReserve> dataList) {
diff --git a/src/main/java/com/nanometer/smartlab/service/AccountInAndOutService.java b/src/main/java/com/nanometer/smartlab/service/AccountInAndOutService.java
new file mode 100644
index 0000000..8299356
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/service/AccountInAndOutService.java
@@ -0,0 +1,10 @@
+package com.nanometer.smartlab.service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.UnsupportedEncodingException;
+
+public interface AccountInAndOutService {
+
+
+ void exportExcel(HttpServletResponse resp) ;
+}
diff --git a/src/main/java/com/nanometer/smartlab/service/AccountInAndOutServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/AccountInAndOutServiceImpl.java
new file mode 100644
index 0000000..1794fd6
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/service/AccountInAndOutServiceImpl.java
@@ -0,0 +1,212 @@
+package com.nanometer.smartlab.service;
+
+import com.nanometer.smartlab.exception.BusinessException;
+import com.nanometer.smartlab.exception.ExceptionEnumCode;
+import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.ss.util.RegionUtil;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+
+
+@Service("accountInAndOutService")
+public class AccountInAndOutServiceImpl implements AccountInAndOutService {
+
+
+
+ @Override
+ public void exportExcel(HttpServletResponse resp) {
+
+ try {
+ // 创建文档对象
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 创建sheet对象
+ HSSFSheet sheet = wb.createSheet("出入库 台账");
+
+ sheet.setDefaultRowHeight((short) (20 * 20));
+
+ //设置字体
+ HSSFFont headFont = wb.createFont();
+ headFont.setFontName("宋体");
+ headFont.setFontHeightInPoints((short) 11);
+ headFont.setBold(true);
+ HSSFFont bodyFont = wb.createFont();
+ bodyFont.setFontName("宋体");
+ bodyFont.setFontHeightInPoints((short) 10);
+
+
+ // 边框颜色和样式
+ HSSFCellStyle defaultBorderStyle = wb.createCellStyle();
+ defaultBorderStyle.setBorderBottom(BorderStyle.THIN);
+ defaultBorderStyle.setBottomBorderColor(IndexedColors.BLACK.index);
+ defaultBorderStyle.setBorderTop(BorderStyle.THIN);
+ defaultBorderStyle.setTopBorderColor(IndexedColors.BLACK.index);
+ defaultBorderStyle.setBorderLeft(BorderStyle.THIN);
+ defaultBorderStyle.setLeftBorderColor(IndexedColors.BLACK.index);
+ defaultBorderStyle.setBorderRight(BorderStyle.THIN);
+ defaultBorderStyle.setRightBorderColor(IndexedColors.BLACK.index);
+
+ // 默认字体和剧中
+ HSSFCellStyle defaultStyle = wb.createCellStyle();
+ defaultStyle.setFont(bodyFont);
+ defaultStyle.setWrapText(true);
+ defaultStyle.setAlignment(HorizontalAlignment.CENTER);
+ defaultStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ // 默认标题头部样式
+ HSSFCellStyle defaultHeadStyle = wb.createCellStyle();
+ defaultHeadStyle.setFont(headFont);
+ defaultHeadStyle.setWrapText(true);
+ defaultHeadStyle.setAlignment(HorizontalAlignment.CENTER);
+ defaultHeadStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ // 固定列数和设置宽度
+ int[] width = {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10};
+ for (int columnIndex = 0; columnIndex < width.length; columnIndex++) {
+ sheet.setColumnWidth(columnIndex, width[columnIndex] * 256);
+ sheet.setDefaultColumnStyle(columnIndex, defaultBorderStyle);
+ }
+
+
+ // exc
+ // 0.数据准备
+
+
+ // 1.创建表头
+ this.createTableHead(sheet, defaultHeadStyle, defaultStyle, "", 0);
+ // 2.创建数据行
+ // 过滤出数据
+// this.createTableBody(sheet, defaultHeadStyle, defaultStyle, 3);
+
+ // 返回文件
+ String filename = "2022年易制毒出入库台账.xlsx";
+ resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
+ resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
+ OutputStream outputStream = resp.getOutputStream();
+ wb.write(outputStream);
+ outputStream.flush();
+ outputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new BusinessException(ExceptionEnumCode.PARAM_ERR, "系统导出失败,请联系管理员");
+ }
+
+ }
+
+
+
+
+ private void setBorder(CellRangeAddress region, HSSFSheet sheet){
+ RegionUtil.setBorderBottom(BorderStyle.THIN, region, sheet);
+ RegionUtil.setBorderTop(BorderStyle.THIN, region, sheet);
+ RegionUtil.setBorderLeft(BorderStyle.THIN, region, sheet);
+ RegionUtil.setBorderRight(BorderStyle.THIN, region, sheet);
+ }
+
+
+ private void createTableHead(HSSFSheet sheet, HSSFCellStyle defaultHeadStyle, HSSFCellStyle defaultStyle, String title, int i) {
+
+ // 一月易制毒化学品出入库台账
+ HSSFRow row0 = sheet.createRow(i);
+ HSSFCell cell00 = row0.createCell(i);
+ // 设置默认行高 不然 row 可以自定义
+
+ cell00.setCellStyle(defaultHeadStyle);
+ cell00.setCellValue("一月易制毒化学品出入库台账");
+ CellRangeAddress cra = new CellRangeAddress(i, i, 0, 9);
+ setBorder(cra, sheet);
+ sheet.addMergedRegion(cra);
+ // 品名:乙醚(单位:L)
+ HSSFCell cell01 = row0.createCell(10);
+ cell01.setCellStyle(defaultStyle);
+ cell01.setCellValue("品名:乙醚(单位:L)");
+ CellRangeAddress cra0 = new CellRangeAddress(i, i, 10, 13);
+ setBorder(cra0, sheet);
+ sheet.addMergedRegion(cra0);
+ // 换行
+ HSSFRow row1 = sheet.createRow(i + 1);
+// row1.setHeight((short) (20 * 20));
+ // 日期
+ HSSFCell cell10 = row1.createCell(0);
+ cell10.setCellStyle(defaultStyle);
+ cell10.setCellValue("日期");
+ CellRangeAddress cra10 = new CellRangeAddress(i + 1, i + 2, 0, 0);
+ setBorder(cra10, sheet);
+ sheet.addMergedRegion(cra10);
+ // 入库
+ HSSFCell cell11 = row1.createCell(1);
+ cell11.setCellStyle(defaultStyle);
+ cell11.setCellValue("入库");
+ CellRangeAddress address = new CellRangeAddress(i + 1, i + 1, 1, 5);
+ setBorder(address, sheet);
+ sheet.addMergedRegion(address);
+
+ // 出库
+ HSSFCell cell12 = row1.createCell(6);
+ cell12.setCellStyle(defaultStyle);
+ cell12.setCellValue("出库");
+ CellRangeAddress cra12 = new CellRangeAddress(i + 1, i + 1, 6, 11);
+ setBorder(cra12, sheet);
+ sheet.addMergedRegion(cra12);
+
+
+ // 库存数量
+ HSSFCell cell13 = row1.createCell(12);
+ cell13.setCellStyle(defaultStyle);
+ cell13.setCellValue("库存数量");
+ CellRangeAddress cra13 = new CellRangeAddress(i + 1, i + 2, 12, 13);
+ setBorder(cra13, sheet);
+ sheet.addMergedRegion(cra13);
+
+
+ HSSFRow row2 = sheet.createRow(i + 2);
+ // 入库数量
+ HSSFCell cell21 = row2.createCell(1);
+ cell21.setCellStyle(defaultStyle);
+ cell21.setCellValue("入库数量");
+
+ // 入库单号
+ HSSFCell cell22 = row2.createCell(2);
+ cell22.setCellStyle(defaultStyle);
+ cell22.setCellValue("入库单号");
+ CellRangeAddress cra22 = new CellRangeAddress(i + 2, i + 2, 2, 4);
+ setBorder(cra22, sheet);
+ sheet.addMergedRegion(cra22);
+
+
+ // 保管员
+ HSSFCell cell23 = row2.createCell(5);
+ cell23.setCellStyle(defaultStyle);
+ cell23.setCellValue("保管员");
+
+ // 出库数量
+ HSSFCell cell24 = row2.createCell(6);
+ cell24.setCellStyle(defaultStyle);
+ cell24.setCellValue("出库数量");
+
+
+ // 领料单号
+ HSSFCell cell25 = row2.createCell(7);
+ cell25.setCellStyle(defaultStyle);
+ cell25.setCellValue("领料单号");
+ CellRangeAddress cra25 = new CellRangeAddress(i + 2, i + 2, 7, 9);
+ setBorder(cra25, sheet);
+ sheet.addMergedRegion(cra25);
+
+ // 经手人
+ HSSFCell cell26 = row2.createCell(10);
+ cell26.setCellStyle(defaultStyle);
+ cell26.setCellValue("经手人");
+ CellRangeAddress cra26 = new CellRangeAddress(i + 2, i + 2, 10, 11);
+ setBorder(cra26, sheet);
+ sheet.addMergedRegion(cra26);
+ }
+
+}
--
Gitblit v1.9.2