Bläddra i källkod

3.0.0-bug修改

xiaof 3 år sedan
förälder
incheckning
9c9b603f4a

+ 0 - 20
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamStudentDto.java

@@ -15,10 +15,6 @@ public class ExamStudentDto extends ExamStudent {
     @ApiModelProperty(value = "序号")
     private Integer index; //序号
 
-    private String name;
-
-    private String extendColumn;
-
     public Integer getIndex() {
         return index;
     }
@@ -26,20 +22,4 @@ public class ExamStudentDto extends ExamStudent {
     public void setIndex(Integer index) {
         this.index = index;
     }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getExtendColumn() {
-        return extendColumn;
-    }
-
-    public void setExtendColumn(String extendColumn) {
-        this.extendColumn = extendColumn;
-    }
 }

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -24,6 +24,7 @@ import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.distributed.print.business.util.CreatePdfUtil;
 import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
 import com.qmth.teachcloud.common.annotation.ExcelDBFieldDesc;
+import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.dto.excel.*;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -114,9 +115,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     @Resource
     CreatePdfUtil createPdfUtil;
 
-    @Resource
-    BasicTemplateService basicTemplateService;
-
     @Resource
     RedisTemplate<String, Object> redisTemplate;
 
@@ -440,7 +438,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     @Transactional
     public void createA4File(ExamPrintPlan examPrintPlan, ExamDetail examDetail, BasicSchool basicSchool, Set<File> ftlList, List<ExamDetailCourse> examDetailCourseList, List<PdfDto>... list) throws Exception {
         // 印品
-        List<Long> examDetailCourseListIds = examDetailCourseList.stream().map(s -> s.getId()).collect(Collectors.toList());
+        List<Long> examDetailCourseListIds = examDetailCourseList.stream().map(BaseEntity::getId).collect(Collectors.toList());
 
         String ordinaryContent = examPrintPlan.getOrdinaryContent();
 
@@ -582,6 +580,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 if (basicAttachmentList != null) {
                     basicAttachmentList.add(attachment);
                 }
+
+                examDetailService.updateById(examDetail);
             }
             updateExamPrintPlan(basicExamRule, examPrintPlan);
             map.computeIfAbsent("size", v -> examDetailList.size());

+ 68 - 31
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -273,8 +273,8 @@ public class CreatePdfUtil {
         }
         Map<String, Object> htmlMap = new HashMap<>();
         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("courseCode", String.join(", ", paperNumbers));
         } else {
@@ -284,9 +284,9 @@ public class CreatePdfUtil {
         htmlMap.put("schoolName", schoolName);
         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();
-        if (Objects.nonNull(extendColumnList) && extendColumnList.size() > 0) {
+        if (extendColumnList.size() > 0) {
             for (String s : extendColumnList) {
                 List<Map> mapList = JSONObject.parseArray(s, Map.class);
                 for (Map map : mapList) {
@@ -331,24 +331,40 @@ public class CreatePdfUtil {
                 for (int j = 0; j < htmlTableCount; j++) {
                     ExamStudentDto examStudentDto = gson.fromJson(gson.toJson(subStudents.get(j)), ExamStudentDto.class);
                     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);
                 }
                 for (int j = htmlTableCount; j < subStudents.size(); j++) {
                     ExamStudentDto examStudentDto = gson.fromJson(gson.toJson(subStudents.get(j)), ExamStudentDto.class);
                     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);
                 }
-                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);
@@ -379,23 +395,41 @@ public class CreatePdfUtil {
                 int htmlTableCount = mod == 0 ? studentCount / 2 : studentCount / 2 + 1;
                 for (int j = 0; j < htmlTableCount; j++) {
                     ExamStudentDto examStudentDto = new ExamStudentDto();
-                    examStudentDto.setIndex(j + 1);
-                    examStudentDto.setName("");
-                    examStudentDto.setExtendColumn("");
-                    examStudentDto.setExtendFields("");
+                    examStudentDto.setIndex(null);
+                    examStudentDto.setStudentName("");
+                    examStudentDto.setClazzName("");
                     examStudentList1.add(examStudentDto);
                 }
                 for (int j = htmlTableCount; j < studentCount; j++) {
                     ExamStudentDto examStudentDto = new ExamStudentDto();
-                    examStudentDto.setIndex(j + 1);
-                    examStudentDto.setName("");
-                    examStudentDto.setExtendColumn("");
-                    examStudentDto.setExtendFields("");
+                    examStudentDto.setIndex(null);
+                    examStudentDto.setStudentName("");
+                    examStudentDto.setClazzName("");
                     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);
@@ -854,7 +888,7 @@ public class CreatePdfUtil {
 
         // 根据题卡规则必选字段,替换相应值,没有则“”
         List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
-        if(studentExtendDtos != null) {
+        if (studentExtendDtos != null) {
             for (StudentExtendDto extendDto : studentExtendDtos) {
                 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) {
         ExamStudentPdfInfoDto examStudentPdfInfoDto = examStudent == null ? null : examStudentService.getByStudentId(examStudent.getId());
-        if(basicCardRule == null){
+        if (basicCardRule == null) {
             return null;
         }
         List<JSONObject> requiredFieldsJson = JSONArray.parseArray(basicCardRule.getRequiredFields(), JSONObject.class);
@@ -922,10 +956,10 @@ public class CreatePdfUtil {
                 studentExtendDto.setFieldName(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") : "";
                 }
-                if("examTime".equals(code)){
+                if ("examTime".equals(code)) {
                     value = Objects.nonNull(map.get("time")) ? (String) map.get("time") : "";
                 }
                 if (value == null) {
@@ -1005,7 +1039,10 @@ public class CreatePdfUtil {
      * @return
      */
     private String getClassName(ExamStudentDto examStudentDto) {
-        String clazzName = null;
+        String clazzName = examStudentDto.getClazzName();
+        if (StringUtils.isNotBlank(clazzName)) {
+            return clazzName;
+        }
         if (StringUtils.isNotBlank(examStudentDto.getClazzId())) {
             BasicClazz basicClazz = basicClazzService.getById(examStudentDto.getClazzId());
             clazzName = Objects.nonNull(basicClazz) ? basicClazz.getClazzName() : null;

+ 2 - 1
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -74,7 +74,8 @@
             edc.course_name as courseName,
             edc.paper_pages_a3 as paperPageA3,
             edc.paper_number as paperNumber,
-            es.clazz_id clazzId
+            es.clazz_id clazzId,
+            es.clazz_name clazzName
         from
             exam_student es
         left join exam_detail_course edc on