package cn.com.goldenwater.dcproj.utils.export.template;
import cn.com.goldenwater.dcproj.dao.AttRsBaseCrrctDao;
import cn.com.goldenwater.dcproj.dto.BisInspRsvrRgstrPcDto;
import cn.com.goldenwater.dcproj.dto.BisInspRsvrRgstrPcDtoVo;
import cn.com.goldenwater.dcproj.model.*;
import cn.com.goldenwater.dcproj.param.*;
import cn.com.goldenwater.dcproj.service.*;
import cn.com.goldenwater.dcproj.utils.ZipUtil;
import cn.com.goldenwater.dcproj.utils.export.CreateExcelHelper;
import cn.com.goldenwater.dcproj.utils.export.ExcelFieldUtil;
import cn.com.goldenwater.dcproj.utils.export.TableEnum;
import cn.com.goldenwater.util.common.FileUtils;
import com.github.pagehelper.PageInfo;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
* 创建水库的表格通过模板
*
*
* @author liyz
* @date 2019/3/19 9:20
*/
@Component
public class CreateSkTablesByTemplate {
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Value("${export.basePath}")
public String exportBasePath;
@Autowired
private ExcelFieldUtil excelFieldUtil;
@Autowired
private CreateExcelHelper createExcelHelper;
@Value("${export.templatePath}")
private String templatePath;
/**
* 8.小水库督查情况Service
*/
@Autowired
private BisInspRsvrRgstrService bisInspRsvrRgstrService;
/* 5张表合成1张表 */
/**
* 5-1 基础信息
**/
@Autowired
private AttRsBaseCrrctDao attRsBaseCrrctDao;
@Autowired
private AttRsBaseService attRsBaseService;
/**
* 5-2 重点环节落实情况
**/
@Autowired
private BisInspBaseExtService bisInspBaseExtService;
/**
* 5-3 责任人落实情况
**/
@Autowired
private BisInspBasePresExtService bisInspBasePresExtService;
/**
* 5-4 水库工程实体和运行情况
**/
@Autowired
private BisInspSafeExtManageService bisInspSafeExtManageService;
/**
* 5-5 走访情况
**/
@Autowired
private BisInspBaseViewService bisInspBaseViewService;
@Autowired
private BisInspPreListService bisInspPreListService;
@Autowired
private BisInspRsvrProjectService bisInspRsvrProjectService;
@Autowired
private BisInspRsvrBenefitsService bisInspRsvrBenefitsService;
/**
* 8.创建小水库督查情况表
*/
@Deprecated
public void createBisInspRsvrRgstrPcDtoExcel(TypeExportParam typeExportParam, PrintWriter printWriter) {
// 一页查200条数据
typeExportParam.setPageNum(0);
typeExportParam.setPageSize(40000);
PageInfo data = bisInspRsvrRgstrService.findPcPage(typeExportParam);
// 如果没有数据,则直接返回
if (data.getList().size() == 0) {
printWriter.println("暂无数据可导出。
");
printWriter.flush();
return;
}
OutputStream os = null;
printWriter.println("准备导出,开始创建导出目录
");
printWriter.flush();
String fileName = TableEnum.T8.getName();
printWriter.println(sdf.format(new Date()) + " 开始创建 " + fileName + ".xls" + "
");
printWriter.flush();
//导出
try {
String filePath = UUID.randomUUID().toString();
String dir = exportBasePath + File.separator + filePath + File.separator;
String zipFile = exportBasePath + File.separator + filePath + ".zip";
FileUtils.mkFolder(dir);
// 加载模板
FileInputStream fis = new FileInputStream(templatePath + File.separator + "t8.xls");
HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis);
HSSFWorkbook workBook = new HSSFWorkbook();
workBook = fisWorkBook;
workBook.setSheetName(0, "小水库督查情况表");
HSSFSheet sheet = workBook.getSheetAt(0);
HSSFCellStyle style = workBook.createCellStyle(); // 样式对象
style.setAlignment(HorizontalAlignment.CENTER);
HSSFFont font = workBook.createFont();
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setAlignment(HorizontalAlignment.CENTER);
font.setFontName("宋体");
font.setFontHeightInPoints((short) 10);// 设置字体大小
style.setFont(font);
// 如果有数据,则导出到excel
File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls");
os = new FileOutputStream(outputFile);
// 导出到excel
// 处理一下,加入5张表的数据
List