|
@@ -321,26 +321,23 @@ public class CreatePdfUtil {
|
|
|
}
|
|
|
|
|
|
// 标题信息
|
|
|
- List<JSONObject> objectTitleList = JSON.parseArray(object.getString("title"), JSONObject.class);
|
|
|
+ List<JSONObject> objectTitleList = JSON.parseArray(object.getString("title"), JSONObject.class).stream().filter(m -> m.getBoolean("enable")).collect(Collectors.toList());
|
|
|
List<Map<String, String>> titlePlate = new ArrayList<>();
|
|
|
for (JSONObject jsonObject : objectTitleList) {
|
|
|
Map<String, String> titleMap = new HashMap<>();
|
|
|
- if (jsonObject.getBoolean("enable")) {
|
|
|
- String code = jsonObject.getString("code");
|
|
|
- String name = jsonObject.getString("name");
|
|
|
- titleMap.put("code", code);
|
|
|
- titleMap.put("name", name);
|
|
|
- if ("semesterName".equals(code)) {
|
|
|
- BasicSemester basicSemester = basicSemesterService.selectByExamId(examId);
|
|
|
- titleMap.put("value", basicSemester == null ? null : basicSemester.getName() + " 课程考试");
|
|
|
- }
|
|
|
- titlePlate.add(titleMap);
|
|
|
-
|
|
|
+ String code = jsonObject.getString("code");
|
|
|
+ String name = jsonObject.getString("name");
|
|
|
+ titleMap.put("code", code);
|
|
|
+ titleMap.put("name", name);
|
|
|
+ if ("semesterName".equals(code)) {
|
|
|
+ BasicSemester basicSemester = basicSemesterService.selectByExamId(examId);
|
|
|
+ titleMap.put("value", basicSemester == null ? null : basicSemester.getName() + " 课程考试");
|
|
|
}
|
|
|
+ titlePlate.add(titleMap);
|
|
|
}
|
|
|
pdfPackageDto.setTitlePlate(titlePlate);
|
|
|
|
|
|
- List<JSONObject> objectList = JSON.parseArray(object.getString("basic"), JSONObject.class);
|
|
|
+ List<JSONObject> objectList = JSON.parseArray(object.getString("basic"), JSONObject.class).stream().filter(m -> m.getBoolean("enable")).collect(Collectors.toList());
|
|
|
|
|
|
boolean isCourseHasTwo = objectList.stream().filter(m -> "courseCode".equals(m.getString("code")) || "courseName".equals(m.getString("code"))).count() == 2;
|
|
|
boolean isDateHasTwo = objectList.stream().filter(m -> "examDate".equals(m.getString("code")) || "examTime".equals(m.getString("code"))).count() == 2;
|
|
@@ -349,154 +346,132 @@ public class CreatePdfUtil {
|
|
|
// 基础信息
|
|
|
List<Map<String, String>> basicPlate = new ArrayList<>();
|
|
|
for (JSONObject jsonObject : objectList) {
|
|
|
- if (jsonObject.getBoolean("enable")) {
|
|
|
- String code = jsonObject.getString("code");
|
|
|
- String name = jsonObject.getString("name");
|
|
|
- if ("examDate".equals(code) || "examTime".equals(code)) {
|
|
|
- String startDate = DateUtil.format(new Date(examDetail.getExamStartTime()), SystemConstant.DATE_PATTERN);
|
|
|
- String endDate = DateUtil.format(new Date(examDetail.getExamEndTime()), SystemConstant.DATE_PATTERN);
|
|
|
- String startTime = DateUtil.format(new Date(examDetail.getExamStartTime()), SystemConstant.TIME_PATTERN);
|
|
|
- String endTime = DateUtil.format(new Date(examDetail.getExamEndTime()), SystemConstant.TIME_PATTERN);
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- if (isDateHasTwo) {
|
|
|
- if (isDateFill) {
|
|
|
- continue;
|
|
|
+ String code = jsonObject.getString("code");
|
|
|
+ String name = jsonObject.getString("name");
|
|
|
+ if ("examDate".equals(code) || "examTime".equals(code)) {
|
|
|
+ String startDate = DateUtil.format(new Date(examDetail.getExamStartTime()), SystemConstant.DATE_PATTERN);
|
|
|
+ String endDate = DateUtil.format(new Date(examDetail.getExamEndTime()), SystemConstant.DATE_PATTERN);
|
|
|
+ String startTime = DateUtil.format(new Date(examDetail.getExamStartTime()), SystemConstant.TIME_PATTERN);
|
|
|
+ String endTime = DateUtil.format(new Date(examDetail.getExamEndTime()), SystemConstant.TIME_PATTERN);
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ if (isDateHasTwo) {
|
|
|
+ if (isDateFill) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String examTime;
|
|
|
+ if (startDate.equals(endDate)) {
|
|
|
+ examTime = startDate + " " + startTime + SystemConstant.HYPHEN + endTime;
|
|
|
+ } else {
|
|
|
+ examTime = startDate + " " + startTime + SystemConstant.HYPHEN + endDate + " " + endTime;
|
|
|
+ }
|
|
|
+ basicMap.put("code", "examTime");
|
|
|
+ basicMap.put("name", "考试时间");
|
|
|
+ basicMap.put("value", examTime);
|
|
|
+ isDateFill = true;
|
|
|
+ } else {
|
|
|
+ String examTime = "";
|
|
|
+ if ("examDate".equals(code)) {
|
|
|
+ if (startDate.equals(endDate)) {
|
|
|
+ examTime = startDate;
|
|
|
+ } else {
|
|
|
+ examTime = startDate + SystemConstant.HYPHEN + endDate;
|
|
|
}
|
|
|
- String examTime;
|
|
|
+ } else if ("examTime".equals(code)) {
|
|
|
if (startDate.equals(endDate)) {
|
|
|
examTime = startDate + " " + startTime + SystemConstant.HYPHEN + endTime;
|
|
|
} else {
|
|
|
examTime = startDate + " " + startTime + SystemConstant.HYPHEN + endDate + " " + endTime;
|
|
|
}
|
|
|
- basicMap.put("code", "examTime");
|
|
|
- basicMap.put("name", "考试时间");
|
|
|
- basicMap.put("value", examTime);
|
|
|
- isDateFill = true;
|
|
|
- } else {
|
|
|
- String examTime = "";
|
|
|
- if ("examDate".equals(code)) {
|
|
|
- if (startDate.equals(endDate)) {
|
|
|
- examTime = startDate;
|
|
|
- } else {
|
|
|
- examTime = startDate + SystemConstant.HYPHEN + endDate;
|
|
|
- }
|
|
|
- } else if ("examTime".equals(code)) {
|
|
|
- if (startDate.equals(endDate)) {
|
|
|
- examTime = startDate + " " + startTime + SystemConstant.HYPHEN + endTime;
|
|
|
- } else {
|
|
|
- examTime = startDate + " " + startTime + SystemConstant.HYPHEN + endDate + " " + endTime;
|
|
|
- }
|
|
|
- }
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", examTime);
|
|
|
}
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("courseCode".equals(code) || "courseName".equals(code)) {
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- if (isCourseHasTwo) {
|
|
|
- if (isCourseFill) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- List<String> courseNames = examDetailCourseList.stream().map(m -> String.format("%s(%s)", m.getCourseName(), m.getCourseCode())).collect(Collectors.toList());
|
|
|
- basicMap.put("code", "courseName");
|
|
|
- basicMap.put("name", "课程名称");
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, courseNames));
|
|
|
- isCourseFill = true;
|
|
|
- } else {
|
|
|
- List<String> courseNames = examDetailCourseList.stream().map(m -> "courseCode".equals(code) ? m.getCourseCode() : "courseName".equals(code) ? m.getCourseName() : "").collect(Collectors.toList());
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, courseNames));
|
|
|
- }
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("paperNumber".equals(code)) {
|
|
|
- List<String> paperNumbers = examDetailCourseList.stream().map(ExamDetailCourse::getPaperNumber).collect(Collectors.toList());
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, paperNumbers));
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("examPlace".equals(code) || "campusName".equals(code)) {
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", examDetail.getExamPlace());
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("examRoom".equals(code) || "examClassroomName".equals(code)) {
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", examDetail.getExamRoom());
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("collegeName".equals(code)) {
|
|
|
- Set<String> collegeNames = examStudentList.stream().map(ExamStudent::getCollegeName).collect(Collectors.toSet());
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
basicMap.put("code", code);
|
|
|
basicMap.put("name", name);
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, collegeNames));
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("majorName".equals(code)) {
|
|
|
- Set<String> stringSet = new HashSet<>();
|
|
|
- Set<String> majorNames = examStudentList.stream().filter(m -> StringUtils.isNotBlank(m.getMajorName())).map(ExamStudent::getMajorName).collect(Collectors.toSet());
|
|
|
- if (!majorNames.isEmpty()) {
|
|
|
- stringSet.addAll(majorNames);
|
|
|
- }
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, stringSet));
|
|
|
- basicPlate.add(basicMap);
|
|
|
- } else if ("clazzName".equals(code)) {
|
|
|
- Set<String> stringSet = new HashSet<>();
|
|
|
- Set<String> clazzNames = examStudentList.stream().filter(m -> m.getStudentClazzType().equals(StudentClazzEnum.BASIC_CLAZZ) && StringUtils.isNotBlank(m.getClazzName())).map(ExamStudent::getClazzName).collect(Collectors.toSet());
|
|
|
- if (!clazzNames.isEmpty()) {
|
|
|
- stringSet.addAll(clazzNames);
|
|
|
- }
|
|
|
- Set<String> teachClazzNames = examStudentList.stream().filter(m -> m.getStudentClazzType().equals(StudentClazzEnum.TEACH_CLAZZ) && StringUtils.isNotBlank(m.getTeachClazzName())).map(ExamStudent::getTeachClazzName).collect(Collectors.toSet());
|
|
|
- if (!teachClazzNames.isEmpty()) {
|
|
|
- stringSet.addAll(teachClazzNames);
|
|
|
- }
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
- basicMap.put("code", code);
|
|
|
- basicMap.put("name", name);
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, stringSet));
|
|
|
- basicPlate.add(basicMap);
|
|
|
+ basicMap.put("value", examTime);
|
|
|
}
|
|
|
-// else if ("examCount".equals(code)) {
|
|
|
-// Map<String, String> basicMap = new HashMap<>();
|
|
|
-// basicMap.put("code", code);
|
|
|
-// basicMap.put("name", name);
|
|
|
-// basicMap.put("value", String.valueOf(examStudentList.size()));
|
|
|
-// basicPlate.add(basicMap);
|
|
|
-// } else if ("actualExamCount".equals(code)) {
|
|
|
-// Map<String, String> basicMap = new HashMap<>();
|
|
|
-// basicMap.put("code", code);
|
|
|
-// basicMap.put("name", name);
|
|
|
-// basicMap.put("value", "");
|
|
|
-// basicPlate.add(basicMap);
|
|
|
-// } else if ("paperCount".equals(code)) {
|
|
|
-// Map<String, String> basicMap = new HashMap<>();
|
|
|
-// basicMap.put("code", code);
|
|
|
-// basicMap.put("name", name);
|
|
|
-// basicMap.put("value", examStudentList.size() + " + " + printCount);
|
|
|
-// basicPlate.add(basicMap);
|
|
|
-// }
|
|
|
- else {
|
|
|
- // 扩展字段走本校验,进行数据组装
|
|
|
- Set<String> extendFieldsSet = examStudentList.stream().map(ExamStudentCourseDto::getExtendFields).collect(Collectors.toSet());
|
|
|
- Set<String> finalSet = new HashSet<>();
|
|
|
- for (String extendField : extendFieldsSet) {
|
|
|
- List<JSONObject> jsonObjects = JSON.parseArray(extendField, JSONObject.class);
|
|
|
- Set<String> values = jsonObjects.stream().filter(m -> code.equals(m.getString("code"))).map(m -> m.getString("value")).collect(Collectors.toSet());
|
|
|
- finalSet.addAll(values);
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("courseCode".equals(code) || "courseName".equals(code)) {
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ if (isCourseHasTwo) {
|
|
|
+ if (isCourseFill) {
|
|
|
+ continue;
|
|
|
}
|
|
|
- Map<String, String> basicMap = new HashMap<>();
|
|
|
+ List<String> courseNames = examDetailCourseList.stream().map(m -> String.format("%s(%s)", m.getCourseName(), m.getCourseCode())).collect(Collectors.toList());
|
|
|
+ basicMap.put("code", "courseName");
|
|
|
+ basicMap.put("name", "课程名称");
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, courseNames));
|
|
|
+ isCourseFill = true;
|
|
|
+ } else {
|
|
|
+ List<String> courseNames = examDetailCourseList.stream().map(m -> "courseCode".equals(code) ? m.getCourseCode() : "courseName".equals(code) ? m.getCourseName() : "").collect(Collectors.toList());
|
|
|
basicMap.put("code", code);
|
|
|
basicMap.put("name", name);
|
|
|
- basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, finalSet));
|
|
|
- basicPlate.add(basicMap);
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, courseNames));
|
|
|
+ }
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("paperNumber".equals(code)) {
|
|
|
+ List<String> paperNumbers = examDetailCourseList.stream().map(ExamDetailCourse::getPaperNumber).collect(Collectors.toList());
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, paperNumbers));
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("examPlace".equals(code) || "campusName".equals(code)) {
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", examDetail.getExamPlace());
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("examRoom".equals(code) || "examClassroomName".equals(code)) {
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", examDetail.getExamRoom());
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("collegeName".equals(code)) {
|
|
|
+ Set<String> collegeNames = examStudentList.stream().map(ExamStudent::getCollegeName).collect(Collectors.toSet());
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, collegeNames));
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("majorName".equals(code)) {
|
|
|
+ Set<String> stringSet = new HashSet<>();
|
|
|
+ Set<String> majorNames = examStudentList.stream().filter(m -> StringUtils.isNotBlank(m.getMajorName())).map(ExamStudent::getMajorName).collect(Collectors.toSet());
|
|
|
+ if (!majorNames.isEmpty()) {
|
|
|
+ stringSet.addAll(majorNames);
|
|
|
+ }
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, stringSet));
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else if ("clazzName".equals(code)) {
|
|
|
+ Set<String> stringSet = new HashSet<>();
|
|
|
+ Set<String> clazzNames = examStudentList.stream().filter(m -> m.getStudentClazzType().equals(StudentClazzEnum.BASIC_CLAZZ) && StringUtils.isNotBlank(m.getClazzName())).map(ExamStudent::getClazzName).collect(Collectors.toSet());
|
|
|
+ if (!clazzNames.isEmpty()) {
|
|
|
+ stringSet.addAll(clazzNames);
|
|
|
}
|
|
|
+ Set<String> teachClazzNames = examStudentList.stream().filter(m -> m.getStudentClazzType().equals(StudentClazzEnum.TEACH_CLAZZ) && StringUtils.isNotBlank(m.getTeachClazzName())).map(ExamStudent::getTeachClazzName).collect(Collectors.toSet());
|
|
|
+ if (!teachClazzNames.isEmpty()) {
|
|
|
+ stringSet.addAll(teachClazzNames);
|
|
|
+ }
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, stringSet));
|
|
|
+ basicPlate.add(basicMap);
|
|
|
+ } else {
|
|
|
+ // 扩展字段走本校验,进行数据组装
|
|
|
+ Set<String> extendFieldsSet = examStudentList.stream().map(ExamStudentCourseDto::getExtendFields).collect(Collectors.toSet());
|
|
|
+ Set<String> finalSet = new HashSet<>();
|
|
|
+ for (String extendField : extendFieldsSet) {
|
|
|
+ List<JSONObject> jsonObjects = JSON.parseArray(extendField, JSONObject.class);
|
|
|
+ Set<String> values = jsonObjects.stream().filter(m -> code.equals(m.getString("code"))).map(m -> m.getString("value")).collect(Collectors.toSet());
|
|
|
+ finalSet.addAll(values);
|
|
|
+ }
|
|
|
+ Map<String, String> basicMap = new HashMap<>();
|
|
|
+ basicMap.put("code", code);
|
|
|
+ basicMap.put("name", name);
|
|
|
+ basicMap.put("value", String.join(SystemConstant.COMMA_OF_CHINESE, finalSet));
|
|
|
+ basicPlate.add(basicMap);
|
|
|
}
|
|
|
}
|
|
|
Map<String, String> basicMap1 = new HashMap<>();
|
|
@@ -734,9 +709,10 @@ public class CreatePdfUtil {
|
|
|
PdfSignDto pdfFillDto = new PdfSignDto();
|
|
|
pdfFillDto.setTitle(schoolName + "签到表");
|
|
|
pdfFillDto.setPackageNumber(examDetail.getPackageCode());
|
|
|
+ pdfFillDto.setTextDesc(basicTemplate.getTextDesc());
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(basicTemplate.getDisplayRange());
|
|
|
- List<JSONObject> objectList = JSON.parseArray(jsonObject.getString("basic"), JSONObject.class);
|
|
|
+ List<JSONObject> objectList = JSON.parseArray(jsonObject.getString("basic"), JSONObject.class).stream().filter(m -> m.getBoolean("enable")).collect(Collectors.toList());
|
|
|
|
|
|
boolean isCourseHasTwo = objectList.stream().filter(m -> "courseCode".equals(m.getString("code")) || "courseName".equals(m.getString("code"))).count() == 2;
|
|
|
boolean isDateHasTwo = objectList.stream().filter(m -> "examDate".equals(m.getString("code")) || "examTime".equals(m.getString("code"))).count() == 2;
|
|
@@ -748,9 +724,6 @@ public class CreatePdfUtil {
|
|
|
boolean isDateFill = false;
|
|
|
boolean isPlaceFill = false;
|
|
|
for (JSONObject object : objectList) {
|
|
|
- if (!object.getBoolean("enable")) {
|
|
|
- continue;
|
|
|
- }
|
|
|
String code = object.getString("code");
|
|
|
String name = object.getString("name");
|
|
|
if ("courseCode".equals(code) || "courseName".equals(code)) {
|
|
@@ -894,12 +867,10 @@ public class CreatePdfUtil {
|
|
|
pdfFillDto.setBasicPlate(basicPlate);
|
|
|
|
|
|
// 表头信息
|
|
|
- List<JSONObject> tableList = JSON.parseArray(jsonObject.getString("table"), JSONObject.class);
|
|
|
+ List<JSONObject> tableList = JSON.parseArray(jsonObject.getString("table"), JSONObject.class).stream().filter(m -> m.getBoolean("enable")).collect(Collectors.toList());
|
|
|
Map<String, String> studentHeadPlateMap = new LinkedHashMap<>();
|
|
|
for (JSONObject object : tableList) {
|
|
|
- if (object.getBoolean("enable")) {
|
|
|
- studentHeadPlateMap.put(object.getString("code"), object.getString("name"));
|
|
|
- }
|
|
|
+ studentHeadPlateMap.put(object.getString("code"), object.getString("name"));
|
|
|
}
|
|
|
studentHeadPlateMap.put("studentSign", "签名");
|
|
|
pdfFillDto.setStudentHeadPlate(studentHeadPlateMap);
|
|
@@ -930,7 +901,7 @@ public class CreatePdfUtil {
|
|
|
}
|
|
|
pdfFillDto.setStudentPlate(studentPlate);
|
|
|
|
|
|
- printCommonService.saveAttachmentSignPdf(pdfFillDto, examDetail, variablePdfList, printCount, fileTempList);
|
|
|
+ printCommonService.saveAttachmentSignPdf(pdfFillDto, examDetail, variablePdfList, printCount, fileTempList, basicTemplate.getDiallel());
|
|
|
}
|
|
|
|
|
|
/**
|