|
@@ -273,8 +273,8 @@ public class CreatePdfUtil {
|
|
}
|
|
}
|
|
Map<String, Object> htmlMap = new HashMap<>();
|
|
Map<String, Object> htmlMap = new HashMap<>();
|
|
if (Objects.nonNull(examDetailCourseList) && examDetailCourseList.size() > 0) {
|
|
if (Objects.nonNull(examDetailCourseList) && examDetailCourseList.size() > 0) {
|
|
- List<String> paperNumbers = examDetailCourseList.stream().map(s -> s.getPaperNumber()).collect(Collectors.toList());
|
|
|
|
- List<String> courseNames = examDetailCourseList.stream().map(s -> s.getCourseName()).collect(Collectors.toList());
|
|
|
|
|
|
+ List<String> paperNumbers = examDetailCourseList.stream().map(ExamDetailCourse::getPaperNumber).collect(Collectors.toList());
|
|
|
|
+ List<String> courseNames = examDetailCourseList.stream().map(ExamDetailCourse::getCourseName).collect(Collectors.toList());
|
|
htmlMap.put("courseName", String.join(", ", courseNames));
|
|
htmlMap.put("courseName", String.join(", ", courseNames));
|
|
htmlMap.put("courseCode", String.join(", ", paperNumbers));
|
|
htmlMap.put("courseCode", String.join(", ", paperNumbers));
|
|
} else {
|
|
} else {
|
|
@@ -284,9 +284,9 @@ public class CreatePdfUtil {
|
|
htmlMap.put("schoolName", schoolName);
|
|
htmlMap.put("schoolName", schoolName);
|
|
htmlMap.put("examRoom", examDetail.getExamRoom());
|
|
htmlMap.put("examRoom", examDetail.getExamRoom());
|
|
|
|
|
|
- List<String> extendColumnList = examStudentList.stream().map(m -> m.getExtendFields()).distinct().collect(Collectors.toList());
|
|
|
|
|
|
+ List<String> extendColumnList = examStudentList.stream().map(ExamStudent::getExtendFields).distinct().collect(Collectors.toList());
|
|
Set<String> classTeacher = new HashSet();
|
|
Set<String> classTeacher = new HashSet();
|
|
- if (Objects.nonNull(extendColumnList) && extendColumnList.size() > 0) {
|
|
|
|
|
|
+ if (extendColumnList.size() > 0) {
|
|
for (String s : extendColumnList) {
|
|
for (String s : extendColumnList) {
|
|
List<Map> mapList = JSONObject.parseArray(s, Map.class);
|
|
List<Map> mapList = JSONObject.parseArray(s, Map.class);
|
|
for (Map map : mapList) {
|
|
for (Map map : mapList) {
|
|
@@ -331,24 +331,40 @@ public class CreatePdfUtil {
|
|
for (int j = 0; j < htmlTableCount; j++) {
|
|
for (int j = 0; j < htmlTableCount; j++) {
|
|
ExamStudentDto examStudentDto = gson.fromJson(gson.toJson(subStudents.get(j)), ExamStudentDto.class);
|
|
ExamStudentDto examStudentDto = gson.fromJson(gson.toJson(subStudents.get(j)), ExamStudentDto.class);
|
|
examStudentDto.setIndex(j + 1);
|
|
examStudentDto.setIndex(j + 1);
|
|
- examStudentDto.setName(examStudentDto.getStudentName());
|
|
|
|
- String extendField = getClassName(examStudentDto);
|
|
|
|
- examStudentDto.setExtendColumn(extendField);
|
|
|
|
- examStudentDto.setExtendFields(extendField);
|
|
|
|
|
|
+ String clazzName = getClassName(examStudentDto);
|
|
|
|
+ examStudentDto.setClazzName(clazzName);
|
|
examStudentList1.add(examStudentDto);
|
|
examStudentList1.add(examStudentDto);
|
|
}
|
|
}
|
|
for (int j = htmlTableCount; j < subStudents.size(); j++) {
|
|
for (int j = htmlTableCount; j < subStudents.size(); j++) {
|
|
ExamStudentDto examStudentDto = gson.fromJson(gson.toJson(subStudents.get(j)), ExamStudentDto.class);
|
|
ExamStudentDto examStudentDto = gson.fromJson(gson.toJson(subStudents.get(j)), ExamStudentDto.class);
|
|
examStudentDto.setIndex(j + 1);
|
|
examStudentDto.setIndex(j + 1);
|
|
- examStudentDto.setName(examStudentDto.getStudentName());
|
|
|
|
- String extendField = getClassName(examStudentDto);
|
|
|
|
- examStudentDto.setExtendColumn(extendField);
|
|
|
|
- examStudentDto.setExtendFields(extendField);
|
|
|
|
|
|
+ String clazzName = getClassName(examStudentDto);
|
|
|
|
+ examStudentDto.setClazzName(clazzName);
|
|
examStudentList2.add(examStudentDto);
|
|
examStudentList2.add(examStudentDto);
|
|
}
|
|
}
|
|
- if (examStudentList1.size() > examStudentList2.size()) {
|
|
|
|
- for (int j = subStudents.size() - htmlTableCount; j < examStudentList1.size(); j++) {
|
|
|
|
- examStudentList2.add(new ExamStudentDto());
|
|
|
|
|
|
+// if (examStudentList1.size() > examStudentList2.size()) {
|
|
|
|
+// for (int j = subStudents.size() - htmlTableCount; j < examStudentList1.size(); j++) {
|
|
|
|
+// examStudentList2.add(new ExamStudentDto());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+ if (examStudentList1.size() < 40) {
|
|
|
|
+ for (int j = 0; j < 40 - examStudentList1.size(); j++) {
|
|
|
|
+ ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
|
|
+ examStudentDto.setIndex(null);
|
|
|
|
+ examStudentDto.setSiteNumber("");
|
|
|
|
+ examStudentDto.setStudentName("");
|
|
|
|
+ examStudentDto.setClazzName("");
|
|
|
|
+ examStudentList1.add(examStudentDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (examStudentList2.size() < 40) {
|
|
|
|
+ for (int j = 0; j < 40 - examStudentList2.size(); j++) {
|
|
|
|
+ ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
|
|
+ examStudentDto.setIndex(null);
|
|
|
|
+ examStudentDto.setSiteNumber("");
|
|
|
|
+ examStudentDto.setStudentName("");
|
|
|
|
+ examStudentDto.setClazzName("");
|
|
|
|
+ examStudentList2.add(examStudentDto);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
subMap.put("studentList1", examStudentList1);
|
|
subMap.put("studentList1", examStudentList1);
|
|
@@ -379,23 +395,41 @@ public class CreatePdfUtil {
|
|
int htmlTableCount = mod == 0 ? studentCount / 2 : studentCount / 2 + 1;
|
|
int htmlTableCount = mod == 0 ? studentCount / 2 : studentCount / 2 + 1;
|
|
for (int j = 0; j < htmlTableCount; j++) {
|
|
for (int j = 0; j < htmlTableCount; j++) {
|
|
ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
- examStudentDto.setIndex(j + 1);
|
|
|
|
- examStudentDto.setName("");
|
|
|
|
- examStudentDto.setExtendColumn("");
|
|
|
|
- examStudentDto.setExtendFields("");
|
|
|
|
|
|
+ examStudentDto.setIndex(null);
|
|
|
|
+ examStudentDto.setStudentName("");
|
|
|
|
+ examStudentDto.setClazzName("");
|
|
examStudentList1.add(examStudentDto);
|
|
examStudentList1.add(examStudentDto);
|
|
}
|
|
}
|
|
for (int j = htmlTableCount; j < studentCount; j++) {
|
|
for (int j = htmlTableCount; j < studentCount; j++) {
|
|
ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
- examStudentDto.setIndex(j + 1);
|
|
|
|
- examStudentDto.setName("");
|
|
|
|
- examStudentDto.setExtendColumn("");
|
|
|
|
- examStudentDto.setExtendFields("");
|
|
|
|
|
|
+ examStudentDto.setIndex(null);
|
|
|
|
+ examStudentDto.setStudentName("");
|
|
|
|
+ examStudentDto.setClazzName("");
|
|
examStudentList2.add(examStudentDto);
|
|
examStudentList2.add(examStudentDto);
|
|
}
|
|
}
|
|
- if (examStudentList1.size() > examStudentList2.size()) {
|
|
|
|
- for (int j = studentCount - htmlTableCount; j < examStudentList1.size(); j++) {
|
|
|
|
- examStudentList2.add(new ExamStudentDto());
|
|
|
|
|
|
+// if (examStudentList1.size() > examStudentList2.size()) {
|
|
|
|
+// for (int j = studentCount - htmlTableCount; j < examStudentList1.size(); j++) {
|
|
|
|
+// examStudentList2.add(new ExamStudentDto());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+ if (examStudentList1.size() < 40) {
|
|
|
|
+ for (int j = 0; j < 40 - examStudentList1.size(); j++) {
|
|
|
|
+ ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
|
|
+ examStudentDto.setIndex(null);
|
|
|
|
+ examStudentDto.setSiteNumber("");
|
|
|
|
+ examStudentDto.setStudentName("");
|
|
|
|
+ examStudentDto.setClazzName("");
|
|
|
|
+ examStudentList1.add(examStudentDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (examStudentList2.size() < 40) {
|
|
|
|
+ for (int j = 0; j < 40 - examStudentList2.size(); j++) {
|
|
|
|
+ ExamStudentDto examStudentDto = new ExamStudentDto();
|
|
|
|
+ examStudentDto.setIndex(null);
|
|
|
|
+ examStudentDto.setSiteNumber("");
|
|
|
|
+ examStudentDto.setStudentName("");
|
|
|
|
+ examStudentDto.setClazzName("");
|
|
|
|
+ examStudentList2.add(examStudentDto);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
subMap.put("studentList1", examStudentList1);
|
|
subMap.put("studentList1", examStudentList1);
|
|
@@ -854,7 +888,7 @@ public class CreatePdfUtil {
|
|
|
|
|
|
// 根据题卡规则必选字段,替换相应值,没有则“”
|
|
// 根据题卡规则必选字段,替换相应值,没有则“”
|
|
List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
|
|
List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
|
|
- if(studentExtendDtos != null) {
|
|
|
|
|
|
+ if (studentExtendDtos != null) {
|
|
for (StudentExtendDto extendDto : studentExtendDtos) {
|
|
for (StudentExtendDto extendDto : studentExtendDtos) {
|
|
studentHtml = studentHtml.replaceAll("\\$\\{" + extendDto.getFieldName() + "\\}", String.valueOf(extendDto.getValue()));
|
|
studentHtml = studentHtml.replaceAll("\\$\\{" + extendDto.getFieldName() + "\\}", String.valueOf(extendDto.getValue()));
|
|
}
|
|
}
|
|
@@ -888,7 +922,7 @@ public class CreatePdfUtil {
|
|
*/
|
|
*/
|
|
private List<StudentExtendDto> createExtendObject(ExamDetail examDetail, ExamStudent examStudent, BasicCardRule basicCardRule) {
|
|
private List<StudentExtendDto> createExtendObject(ExamDetail examDetail, ExamStudent examStudent, BasicCardRule basicCardRule) {
|
|
ExamStudentPdfInfoDto examStudentPdfInfoDto = examStudent == null ? null : examStudentService.getByStudentId(examStudent.getId());
|
|
ExamStudentPdfInfoDto examStudentPdfInfoDto = examStudent == null ? null : examStudentService.getByStudentId(examStudent.getId());
|
|
- if(basicCardRule == null){
|
|
|
|
|
|
+ if (basicCardRule == null) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
List<JSONObject> requiredFieldsJson = JSONArray.parseArray(basicCardRule.getRequiredFields(), JSONObject.class);
|
|
List<JSONObject> requiredFieldsJson = JSONArray.parseArray(basicCardRule.getRequiredFields(), JSONObject.class);
|
|
@@ -922,10 +956,10 @@ public class CreatePdfUtil {
|
|
studentExtendDto.setFieldName(code);
|
|
studentExtendDto.setFieldName(code);
|
|
Object value = examStudentPdfInfoDto == null ? null : ReflectUtil.getFieldValue(examStudentPdfInfoDto, code);
|
|
Object value = examStudentPdfInfoDto == null ? null : ReflectUtil.getFieldValue(examStudentPdfInfoDto, code);
|
|
// 时间需要特殊处理
|
|
// 时间需要特殊处理
|
|
- if("examDate".equals(code)){
|
|
|
|
|
|
+ if ("examDate".equals(code)) {
|
|
value = Objects.nonNull(map.get("date")) ? (String) map.get("date") : "";
|
|
value = Objects.nonNull(map.get("date")) ? (String) map.get("date") : "";
|
|
}
|
|
}
|
|
- if("examTime".equals(code)){
|
|
|
|
|
|
+ if ("examTime".equals(code)) {
|
|
value = Objects.nonNull(map.get("time")) ? (String) map.get("time") : "";
|
|
value = Objects.nonNull(map.get("time")) ? (String) map.get("time") : "";
|
|
}
|
|
}
|
|
if (value == null) {
|
|
if (value == null) {
|
|
@@ -1005,7 +1039,10 @@ public class CreatePdfUtil {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private String getClassName(ExamStudentDto examStudentDto) {
|
|
private String getClassName(ExamStudentDto examStudentDto) {
|
|
- String clazzName = null;
|
|
|
|
|
|
+ String clazzName = examStudentDto.getClazzName();
|
|
|
|
+ if (StringUtils.isNotBlank(clazzName)) {
|
|
|
|
+ return clazzName;
|
|
|
|
+ }
|
|
if (StringUtils.isNotBlank(examStudentDto.getClazzId())) {
|
|
if (StringUtils.isNotBlank(examStudentDto.getClazzId())) {
|
|
BasicClazz basicClazz = basicClazzService.getById(examStudentDto.getClazzId());
|
|
BasicClazz basicClazz = basicClazzService.getById(examStudentDto.getClazzId());
|
|
clazzName = Objects.nonNull(basicClazz) ? basicClazz.getClazzName() : null;
|
|
clazzName = Objects.nonNull(basicClazz) ? basicClazz.getClazzName() : null;
|