diff --git a/ht/src/main/java/com/ccsens/ht/api/PatientReportExportController.java b/ht/src/main/java/com/ccsens/ht/api/PatientReportExportController.java index 325425e1..bed46816 100644 --- a/ht/src/main/java/com/ccsens/ht/api/PatientReportExportController.java +++ b/ht/src/main/java/com/ccsens/ht/api/PatientReportExportController.java @@ -126,7 +126,7 @@ public class PatientReportExportController { @ApiImplicitParam(name = "json", value = "指定题目", required = true) }) @RequestMapping(value="/exportAnalyseAll", method = RequestMethod.GET) - public void exportAnalyseAll(@RequestParam(value = "ids")@ApiParam @Valid PatientReportDto.Answer answer, HttpServletResponse response) throws IOException { + public void exportAnalyseAll(@ApiParam @Valid PatientReportDto.Answer answer, HttpServletResponse response) throws IOException { //查询报告单信息 log.info("导出有指定题目分数的报告单分析:{}", answer); Workbook workbook = patientReportService.exportAnalyseAll(answer); diff --git a/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java b/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java index 58edd35d..b3d037fd 100644 --- a/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java +++ b/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java @@ -240,8 +240,8 @@ public class PatientReportDto { @ApiModelProperty("题目类型 MMSE") private String questionCode; - @NotBlank(message = "请指定第几题") + @NotNull(message = "请指定第几题") @ApiModelProperty("排序") - private int sort; + private Integer sort; } } diff --git a/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java b/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java index b36853ad..76e5ce03 100644 --- a/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java +++ b/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java @@ -870,15 +870,15 @@ public class PatientReportService implements IPatientReportService { row.get(38).setValue(parameters.getTotalDuration() + "ms"); row.get(39).setValue(parameters.getPaintTime() + "ms"); row.get(40).setValue(parameters.getReflectOnTime() + "ms"); - row.get(44).setValue(String.valueOf(parameters.getLineParameterList().size())); + row.get(44).setValue(parameters.getLineParameterList() == null ? "" : String.valueOf(parameters.getLineParameterList().size())); row.get(45).setValue(String.valueOf(parameters.getAveTimes())); row.get(46).setValue(pxToMm(parameters.getAveLength(), height) + "mm"); row.get(47).setValue(pxToMm(parameters.getLongLine(), height) + "mm"); row.get(50).setValue(pxToMm(parameters.getAveSpeed() * 1000, height) + "mm/s"); row.get(51).setValue(pxToMm(parameters.getLongSpeed() * 1000, height) + "mm/s"); - row.get(52).setValue(pxToSquare(parameters.getMinCircleAcreage().doubleValue(), height) + "mm²"); - row.get(53).setValue(pxToMm(parameters.getShowCentreCoordinate().getX(), height) + "mm"); - row.get(54).setValue(pxToMm(parameters.getShowCentreCoordinate().getY(), height) + "mm"); + row.get(52).setValue(parameters.getMinCircleAcreage() == null ? "" : pxToSquare(parameters.getMinCircleAcreage().doubleValue(), height) + "mm²"); + row.get(53).setValue(parameters.getShowCentreCoordinate() == null ? "" : pxToMm(parameters.getShowCentreCoordinate().getX(), height) + "mm"); + row.get(54).setValue(parameters.getShowCentreCoordinate() == null ? "" : pxToMm(parameters.getShowCentreCoordinate().getY(), height) + "mm"); } Long simpleId = getQuestionId("EasyOne", 4); @@ -1196,7 +1196,37 @@ public class PatientReportService implements IPatientReportService { log.info("导出全部分析:{}", answer); List reportIds = htPatientScoreDao.queryIdsByAnswer(answer); log.info("报告单数量:{}", reportIds.size()); - return exportAnalyse(reportIds); + int total = 124; + List> rows = new ArrayList<>(); + // 标题 表头 + initAnalyseTitle(rows, total); + int size = reportIds.size(); + for (int i = 0; i < size ; i+=200) { + List analyses = htPatientReportDao.queryReportAnalyseScore(reportIds.subList(i, i+200 >= size ? size : i+200 )); + log.info("处理长度:{}", i); + // 处理MMSE的时间定向力和地点定向力 + dealMMSEScored(analyses); + if (CollectionUtil.isEmpty(analyses)) { + Workbook workbook = new XSSFWorkbook(); + PoiUtil.exportWB("报告单详情", rows, workbook); + return workbook; + } + + // 填充数据 + for (int j = 0; j < analyses.size(); j++) { + + List row = new ArrayList<>(); + row.add(new PoiUtil.PoiUtilCell(String.valueOf(j+1),1,1)); + for (int m = 1; m < total; m++) { + row.add(new PoiUtil.PoiUtilCell("",1,1)); + } + fillAnalyse(row, analyses.get(j)); + rows.add(row); + } + } + Workbook workbook = new XSSFWorkbook(); + PoiUtil.exportWB("报告单详情", rows, workbook); + return workbook; } private void initQuestionBody(int questionSpan, PatientReportVo.QuestionAndAnswer question, PdfUtil.Row row, boolean isLast, int optionSize) { diff --git a/ht/src/main/resources/mapper_dao/HtPatientScoreDao.xml b/ht/src/main/resources/mapper_dao/HtPatientScoreDao.xml index 61bc89e9..690be9e8 100644 --- a/ht/src/main/resources/mapper_dao/HtPatientScoreDao.xml +++ b/ht/src/main/resources/mapper_dao/HtPatientScoreDao.xml @@ -33,7 +33,7 @@