Browse Source

导出做了某试题的全部分析

sd
zhizhi wu 4 years ago
parent
commit
8340bc8fed
  1. 2
      ht/src/main/java/com/ccsens/ht/api/PatientReportExportController.java
  2. 4
      ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java
  3. 40
      ht/src/main/java/com/ccsens/ht/service/PatientReportService.java
  4. 2
      ht/src/main/resources/mapper_dao/HtPatientScoreDao.xml
  5. 1
      util/src/main/java/com/ccsens/util/PdfUtil.java

2
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);

4
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;
}
}

40
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<Long> reportIds = htPatientScoreDao.queryIdsByAnswer(answer);
log.info("报告单数量:{}", reportIds.size());
return exportAnalyse(reportIds);
int total = 124;
List<List< PoiUtil.PoiUtilCell >> rows = new ArrayList<>();
// 标题 表头
initAnalyseTitle(rows, total);
int size = reportIds.size();
for (int i = 0; i < size ; i+=200) {
List<PatientReportVo.Analyse> 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<PoiUtil.PoiUtilCell> 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) {

2
ht/src/main/resources/mapper_dao/HtPatientScoreDao.xml

@ -33,7 +33,7 @@
</insert>
<select id="queryIdsByAnswer" resultType="java.lang.Long">
SELECT
s.id
distinct r.id
FROM
t_ht_patient_score s,
t_ht_patient_report r,

1
util/src/main/java/com/ccsens/util/PdfUtil.java

@ -127,6 +127,7 @@ public class PdfUtil {
PdfPTable table = new PdfPTable(size);
table.setSpacingBefore(0);
table.setWidthPercentage(100);
table.setSplitRows(false);
for (int j = 0; j < rows.size(); j++) {
Row row = rows.get(j);
table.setHorizontalAlignment(row.align);

Loading…
Cancel
Save