添加了可以导出代谢物和不导出代谢物列表的功能

master
杨海航 2 weeks ago
parent 019cebd977
commit 148e7d57f9
  1. 7
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java
  2. 2
      src/main/java/digital/laboratory/platform/entrustment/service/EntrustMaterialCheckoutResultService.java
  3. 19
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java

@ -118,12 +118,13 @@ public class EntrustMaterialCheckoutResultController {
} }
@GetMapping("/generateQuarterlyReportExcel") @PostMapping("/generateQuarterlyReportExcel")
@ApiOperation("生成季度报告")
public R generateQuarterlyReportExcel(@RequestBody GenerateQuarterlyReportDTO dto, HttpServletResponse response) throws IOException { public R generateQuarterlyReportExcel(@RequestBody GenerateQuarterlyReportDTO dto, HttpServletResponse response) throws IOException {
if (dto == null || dto.getQuarterlyList() == null || dto.getQuarterlyList().size() == 0 || dto.getYear() == 0) { if (dto == null || dto.getQuarterlyList() == null || dto.getQuarterlyList().size() == 0 || dto.getYear() == 0) {
return R.failed("请输入正确的参数"); return R.failed("请输入正确的参数");
} }
entrustMaterialCheckoutResultService.generateQuarterlyReportExcel(dto, response); String filePath = entrustMaterialCheckoutResultService.generateQuarterlyReportExcel(dto, response);
return R.ok("导出成功!"); return R.ok(filePath, "导出成功!");
} }
} }

@ -86,5 +86,5 @@ public interface EntrustMaterialCheckoutResultService extends IService<EntrustMa
R pushSuspectDetectionResultTask(DLPUser dlpUser); R pushSuspectDetectionResultTask(DLPUser dlpUser);
void generateQuarterlyReportExcel(GenerateQuarterlyReportDTO dto, HttpServletResponse response) throws IOException; String generateQuarterlyReportExcel(GenerateQuarterlyReportDTO dto, HttpServletResponse response) throws IOException;
} }

@ -43,6 +43,9 @@ import springfox.documentation.spring.web.json.Json;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
@ -1616,7 +1619,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
@Override @Override
public void generateQuarterlyReportExcel(GenerateQuarterlyReportDTO dto, HttpServletResponse response) throws IOException { public String generateQuarterlyReportExcel(GenerateQuarterlyReportDTO dto, HttpServletResponse response) throws IOException {
HashMap<Integer, Map<String, List<Integer>>> map = this.generateQuarterlyReportData(dto.getYear(), dto.getQuarterlyList()); HashMap<Integer, Map<String, List<Integer>>> map = this.generateQuarterlyReportData(dto.getYear(), dto.getQuarterlyList());
XSSFWorkbook workbook = new XSSFWorkbook(); XSSFWorkbook workbook = new XSSFWorkbook();
Set<Integer> quarterlySet = map.keySet(); Set<Integer> quarterlySet = map.keySet();
@ -1629,8 +1632,20 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
for (Integer quarterly : quarterlySet) { for (Integer quarterly : quarterlySet) {
this.generateQuarterlyReportSheet(workbook, dto.getYear(), quarterly, map.get(quarterly)); this.generateQuarterlyReportSheet(workbook, dto.getYear(), quarterly, map.get(quarterly));
} }
workbook.write(response.getOutputStream());
ByteArrayOutputStream os = new ByteArrayOutputStream();
workbook.write(os);
ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
String fileName = "";
if (dto.getQuarterlyList().size() == 1) {
fileName = dto.getYear() + "年第" + dto.getQuarterlyList().get(0) + "季度统计.xlsx";
} else {
fileName = dto.getYear() + "年第" + dto.getQuarterlyList().get(0) + "至" + dto.getQuarterlyList().get(dto.getQuarterlyList().size() - 1) + "季度统计.xlsx";
}
boolean ret = ossFile.fileSave("quarterlyReport/" + fileName, is);
if (ret) {
return "quarterlyReport/" + fileName;
} else return null;
} }

Loading…
Cancel
Save