package com.fzzy.common; import com.fzzy.common.manager.ExportManager; import com.fzzy.igds.ReportInDetailPR; import com.fzzy.igds.ReportOutDetailPR; import com.fzzy.igds.SuperInventoryReportPR; import com.fzzy.igds.data.ExportWordParam; import com.fzzy.igds.data.InoutParam; import com.fzzy.igds.data.SuperInventoryReportData; import com.fzzy.igds.data.SuperInventoryReportParam; import com.fzzy.igds.domain.InoutRecord; import com.fzzy.igds.service.SysDeptService; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * @Description 数据导出入口 * @Author CZT * @Date 2025/12/29 10:32 */ @Slf4j @Controller @RequestMapping("export") public class ExportController { @Resource private ExportManager exportManager; @Resource private SysDeptService sysDeptService; @Resource private ReportInDetailPR reportInDetailPR; @Resource private ReportOutDetailPR reportOutDetailPR; @Resource private SuperInventoryReportPR superInventoryReportPR; /** * 导出word并下载 * * @param response * @param bizId * @param entityName */ @RequestMapping("/download-word") public void downloadWord(HttpServletResponse response, @RequestParam(value = "bizId", required = true) String bizId, @RequestParam(value = "entityName", required = true) String entityName) { ExportWordParam param = new ExportWordParam(); param.setBizId(bizId); param.setEntityName(entityName); exportManager.renderWordDownload(param, response); } /** * PDF在线预览 * * @param response * @param bizId * @param entityName */ @RequestMapping("/preview-pdf") public void previewPdf(HttpServletResponse response, @RequestParam(value = "bizId", required = true) String bizId, @RequestParam(value = "entityName", required = true) String entityName) { //TODO 待实现 ExportWordParam param = new ExportWordParam(); param.setBizId(bizId); param.setEntityName(entityName); } /** * 出入库报表导出 * @return */ @RequestMapping("/inout-excel") @ResponseBody public AjaxResult inOutExcel(InoutParam param) { //设置标题 String sheetName = "报表数据"; //查询数据 List list = new ArrayList<>(); if (StringUtils.isNotEmpty(param.getType()) && "IN".equals(param.getType())) { sheetName = "入库报表数据"; list = reportInDetailPR.listRecord(param); } if (StringUtils.isNotEmpty(param.getType()) && "OUT".equals(param.getType())) { sheetName = "出库报表数据"; list = reportOutDetailPR.listRecord(param); } //获取分库编码对应的分库名称 String deptName = ""; SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null)); if (null != subDept) { deptName = subDept.getDeptName(); } //导出 ExcelUtil util = new ExcelUtil(InoutRecord.class); return util.exportExcel(list, sheetName, deptName); } /** * 库存报表导出 * @return */ @RequestMapping("/storage-excel") @ResponseBody public AjaxResult storageExcel(SuperInventoryReportParam param) { //设置标题 String sheetName = "库存报表数据"; //查询数据 List list = superInventoryReportPR.getReportData(param); //获取分库编码对应的分库名称 String deptName = ""; SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null)); if (null != subDept) { deptName = subDept.getDeptName(); } //导出 ExcelUtil util = new ExcelUtil(SuperInventoryReportData.class); return util.exportExcel(list, sheetName, deptName); } }