| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import org.apache.poi.xssf.usermodel.XSSFRow; |
| | | import org.apache.poi.xssf.usermodel.XSSFSheet; |
| | | import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import zy.cloud.wms.manager.entity.Item; |
| | | import zy.cloud.wms.manager.mapper.ItemReportMapper; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import zy.cloud.wms.manager.service.ItemService; |
| | | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.*; |
| | | import java.net.URLEncoder; |
| | | import java.util.Date; |
| | | |
| | | @Service("itemReportService") |
| | |
| | | report.setCreateBy(userId); |
| | | insert(report); |
| | | } |
| | | |
| | | @Override |
| | | public HttpServletResponse makeReport(Item item, ItemReport itemReport, HttpServletResponse response) { |
| | | |
| | | FileInputStream in = null; |
| | | ServletOutputStream out = null; |
| | | try { |
| | | /** |
| | | * 一些初始化 |
| | | */ |
| | | in = new FileInputStream("src/main/resources/excel/analysis_report.xlsx"); |
| | | |
| | | XSSFWorkbook wb = new XSSFWorkbook(in); |
| | | XSSFSheet mainSheet = wb.getSheet("报告"); |
| | | /** |
| | | * 开始设置第10和11合并行的所有列, 角标从0开始,rownum9实际上等于10 |
| | | */ |
| | | XSSFRow row10 = mainSheet.getRow(9); |
| | | row10.getCell(1).setCellValue(item.getUuid()); |
| | | row10.getCell(3).setCellValue(item.getEndTime0$()); |
| | | row10.getCell(5).setCellValue(item.getRealEndTime0$()); |
| | | |
| | | XSSFRow row1 = mainSheet.getRow(0); |
| | | row1.getCell(0).setCellValue(item.getName()+"订单总结分析报告"); |
| | | |
| | | /** |
| | | * 开始设置第12行 |
| | | */ |
| | | XSSFRow row12 = mainSheet.getRow(11); |
| | | row12.getCell(1).setCellValue(item.getUuid()); |
| | | row12.getCell(3).setCellValue(item.getPlandeAmt()); |
| | | row12.getCell(5).setCellValue(item.getRealdeAmt()); |
| | | |
| | | /** |
| | | *开始设置第14行 |
| | | */ |
| | | XSSFRow row14 = mainSheet.getRow(13); |
| | | row14.getCell(1).setCellValue(item.getName()); |
| | | row14.getCell(3).setCellValue(item.getPlaninAmt()); |
| | | row14.getCell(5).setCellValue(item.getRealinAmt()); |
| | | |
| | | /** |
| | | * 第16行 |
| | | */ |
| | | XSSFRow row16 = mainSheet.getRow(15); |
| | | row16.getCell(1).setCellValue(item.getType$()); |
| | | |
| | | /** |
| | | * 第18行 |
| | | */ |
| | | XSSFRow row17 = mainSheet.getRow(17); |
| | | row17.getCell(1).setCellValue(item.getSalesman()); |
| | | row17.getCell(2).setCellValue(itemReport.getIssue()); |
| | | |
| | | |
| | | /** |
| | | * 第20行 |
| | | */ |
| | | XSSFRow row19 = mainSheet.getRow(19); |
| | | row19.getCell(1).setCellValue(item.getLeader()); |
| | | |
| | | /** |
| | | * 第22行 |
| | | */ |
| | | XSSFRow row22 = mainSheet.getRow(21); |
| | | row22.getCell(1).setCellValue(item.getOriginArea()); |
| | | |
| | | /** |
| | | * 第29行 |
| | | */ |
| | | XSSFRow row29 = mainSheet.getRow(28); |
| | | row29.getCell(1).setCellValue(itemReport.getDeliverIssue$()); |
| | | row29.getCell(2).setCellValue(itemReport.getDeliverReason()); |
| | | |
| | | /** |
| | | * 第31行 |
| | | */ |
| | | XSSFRow row31 = mainSheet.getRow(30); |
| | | row31.getCell(1).setCellValue(itemReport.getQualityIssue$()); |
| | | row31.getCell(2).setCellValue(itemReport.getQualityReason()); |
| | | |
| | | /** |
| | | * 33行 |
| | | */ |
| | | |
| | | XSSFRow row33 = mainSheet.getRow(32); |
| | | row33.getCell(1).setCellValue(itemReport.getDesignIssue$()); |
| | | row33.getCell(2).setCellValue(itemReport.getDesignReason()); |
| | | /** |
| | | * 35行 |
| | | */ |
| | | |
| | | XSSFRow row35 = mainSheet.getRow(34); |
| | | row35.getCell(1).setCellValue(itemReport.getInstallIssue$()); |
| | | row35.getCell(2).setCellValue(itemReport.getInstallReason()); |
| | | /** |
| | | * 第45行 |
| | | */ |
| | | XSSFRow row45 = mainSheet.getRow(44); |
| | | row45.getCell(1).setCellValue(itemReport.getConclusion()); |
| | | |
| | | |
| | | // wb.write(out); |
| | | |
| | | out = response.getOutputStream(); |
| | | |
| | | response.setContentType("application/octet-stream; charset=utf-8"); |
| | | |
| | | response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(item.getName()+"报告.xlsx")); |
| | | |
| | | ServletOutputStream outputStream = response.getOutputStream(); |
| | | wb.write(outputStream); |
| | | |
| | | |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | try { |
| | | in.close(); |
| | | out.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | return response; |
| | | } |
| | | |
| | | } |