Explorar o código

Merge branch 'dev' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev

xiaof %!s(int64=4) %!d(string=hai) anos
pai
achega
093d620403

+ 24 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExaminationImportDto.java

@@ -16,6 +16,14 @@ public class ExaminationImportDto {
     @ExcelDBFieldDesc(name = "学号",length = 10)
     private String studentCode;
 
+    @ApiModelProperty(value = "考号")
+    @ExcelDBFieldDesc(name = "考号",length = 15)
+    private String ticketNumber;
+
+    @ApiModelProperty(value = "座位号")
+    @ExcelDBFieldDesc(name = "座位号",length = 15)
+    private String siteNumber;
+
     @ApiModelProperty(value = "姓名")
     @ExcelDBFieldDesc(name = "姓名",length = 15)
     private String studentName;
@@ -77,6 +85,22 @@ public class ExaminationImportDto {
         this.studentCode = studentCode;
     }
 
+    public String getTicketNumber() {
+        return ticketNumber;
+    }
+
+    public void setTicketNumber(String ticketNumber) {
+        this.ticketNumber = ticketNumber;
+    }
+
+    public String getSiteNumber() {
+        return siteNumber;
+    }
+
+    public void setSiteNumber(String siteNumber) {
+        this.siteNumber = siteNumber;
+    }
+
     public String getStudentName() {
         return studentName;
     }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamStudent.java

@@ -104,7 +104,7 @@ public class ExamStudent extends BaseEntity implements Serializable {
     }
 
     public String getSiteNumber() {
-        return Objects.isNull(siteNumber) ? "" : null;
+        return siteNumber;
     }
 
     public void setSiteNumber(String siteNumber) {

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicAttachmentServiceImpl.java

@@ -152,7 +152,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
                 localFileList.add(new PdfDto(pdfFile.getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
                 fileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
                 ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)));
-                localHtmlFile.delete();
+//                localHtmlFile.delete();
                 jsonObject.put(SystemConstant.PDF_PATH, pdfDirName);
             } else {//上传至服务器
                 File finalFile = new File(stringJoiner.toString());
@@ -307,7 +307,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             if (oss) {//上传至oss
                 pdfDto = PdfUtil.addPdfPage(pdfFile);
                 ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(pdfFileMd5)));
-                htmlFile.delete();
+//                htmlFile.delete();
             }
             JSONObject attachmentPath = JSONObject.parseObject(examDetail.getAttachmentPath());
             attachmentPath = Objects.isNull(attachmentPath) ? new JSONObject() : attachmentPath;

+ 4 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -503,6 +503,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             String paperNumber = examinationImportDto.getPaperNumber();
             String studentName = examinationImportDto.getStudentName();
             String studentCode = examinationImportDto.getStudentCode();
+            String ticketNumber = examinationImportDto.getTicketNumber();
+            String siteNumber = examinationImportDto.getSiteNumber();
 
             List<FieldsDto> fieldsDtoList = examinationImportDto.getSecondaryFieldList();
             List<ExtendFieldsDto> extendFieldsDtoList = this.getExtendFieldsByFields(fieldsDtoList);
@@ -532,9 +534,9 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             examStudent.setExamDetailCourseId(examDetailCourseId);
             examStudent.setStudentName(studentName);
             examStudent.setStudentCode(studentCode);
-            examStudent.setTicketNumber(studentCode);
+            examStudent.setTicketNumber(ticketNumber);
             examStudent.setExtendFields(JSON.toJSONString(extendFieldsDtoList));
-            examStudent.setSiteNumber("");
+            examStudent.setSiteNumber(siteNumber);
             examStudent.setCreateId(userId);
             examStudent.setUpdateId(userId);
             examStudentList.add(examStudent);

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

@@ -318,7 +318,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             }
             map.computeIfAbsent("size", v -> examDetailList.size());
             //最后一步删除附件
-            createPdfUtil.deleteAttachment(attachmentIds, ftlList);
+//            createPdfUtil.deleteAttachment(attachmentIds, ftlList);
         } catch (Exception e) {
             log.error("请求出错", e);
             basicAttachmentService.batchDeleteAttachment(basicAttachmentList);

+ 26 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -111,7 +111,9 @@ public class CreatePdfUtil {
         htmlMap.put("startTime", DateUtil.format(new Date(examDetail.getExamStartTime()), SystemConstant.DEFAULT_DATE_PATTERN));
         htmlMap.put("endTime", DateUtil.format(new Date(examDetail.getExamEndTime()), SystemConstant.DEFAULT_DATE_PATTERN));
         htmlMap.put("paperCode", examDetailCourse.getPaperNumber());
-        htmlMap.put("paperCodeImg", GoogleBarCodeUtil.createBarCode(examDetailCourse.getPaperNumber(), false));
+        if (Objects.nonNull(examDetailCourse.getPaperNumber())) {
+            htmlMap.put("paperCodeImg", GoogleBarCodeUtil.createBarCode(examDetailCourse.getPaperNumber(), false));
+        }
 
         List<String> extendColumnList = examStudentList.stream().map(m -> m.getExtendFields()).distinct().collect(Collectors.toList());
         Set<String> startCollege = new HashSet();
@@ -144,8 +146,12 @@ public class CreatePdfUtil {
         htmlMap.put("proctorCollege", String.join(",", proctorCollege));
         htmlMap.put("examManager", String.join(",", examManager));
 
-        String minSite = examStudentList.stream().min((a, b) -> a.getSiteNumber().compareTo(b.getSiteNumber())).get().getSiteNumber();
-        String maxSite = examStudentList.stream().max((a, b) -> a.getSiteNumber().compareTo(b.getSiteNumber())).get().getSiteNumber();
+        List<ExamStudent> tempList = examStudentList.stream().filter(s -> (Objects.nonNull(s.getSiteNumber()) && !Objects.equals("", s.getSiteNumber().trim()))).collect(Collectors.toList());
+        String minSite = "", maxSite = "";
+        if (Objects.nonNull(tempList) && tempList.size() > 0) {
+            minSite = tempList.stream().min((a, b) -> a.getSiteNumber().compareTo(b.getSiteNumber())).get().getSiteNumber();
+            maxSite = tempList.stream().max((a, b) -> a.getSiteNumber().compareTo(b.getSiteNumber())).get().getSiteNumber();
+        }
 
         htmlMap.put("minSite", minSite);
         htmlMap.put("maxSite", maxSite);
@@ -200,7 +206,9 @@ public class CreatePdfUtil {
         htmlMap.put("startTime", DateUtil.format(new Date(examDetail.getExamStartTime()), SystemConstant.DEFAULT_DATE_PATTERN));
         htmlMap.put("endTime", DateUtil.format(new Date(examDetail.getExamEndTime()), SystemConstant.DEFAULT_DATE_PATTERN));
         htmlMap.put("paperCode", examDetailCourse.getPaperNumber());
-        htmlMap.put("paperCodeImg", GoogleBarCodeUtil.createBarCode(examDetailCourse.getPaperNumber(), false));
+        if (Objects.nonNull(examDetailCourse.getPaperNumber())) {
+            htmlMap.put("paperCodeImg", GoogleBarCodeUtil.createBarCode(examDetailCourse.getPaperNumber(), false));
+        }
 
         int totalCount = examStudentList.size();
         if (totalCount > 0) {
@@ -483,7 +491,7 @@ public class CreatePdfUtil {
         examDetail.setStatus(PrintMethodEnum.AUTO == basicExamRule.getPrintMethod() ? ExamDetailStatusEnum.WAITING : ExamDetailStatusEnum.READY);
         detailService.saveOrUpdate(examDetail);
         ossUtil.ossUpload(dirName, localPdfFile, DigestUtils.md5Hex(new FileInputStream(localPdfFile)));
-        localPdfFile.delete();
+//        localPdfFile.delete();
 //        for (PdfDto pdfDto : mergePdfList) {
 //            new File(pdfDto.getPath()).delete();
 //        }
@@ -541,10 +549,14 @@ public class CreatePdfUtil {
             }
         }
         //生成学生考号条码并将图片转成base64
-        studentHtml = studentHtml.replaceAll("\\$\\{examNumber\\}", GoogleBarCodeUtil.createBarCode(t.getTicketNumber(), false));
+        if (Objects.nonNull(t.getTicketNumber())) {
+            studentHtml = studentHtml.replaceAll("\\$\\{examNumber\\}", GoogleBarCodeUtil.createBarCode(t.getTicketNumber(), false));
+        }
         studentHtml = studentHtml.replaceAll("\\$\\{examNumberStr\\}", t.getTicketNumber());
         //随机生成学生试卷条码并将图片转成base64
-        studentHtml = studentHtml.replaceAll("\\$\\{paperType\\}", GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(paperType), false));
+        if (Objects.nonNull(paperType)) {
+            studentHtml = studentHtml.replaceAll("\\$\\{paperType\\}", GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(paperType), false));
+        }
         studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", paperType);
         studentHtml = studentHtml.replaceAll("\\$\\{studentCode\\}", t.getStudentCode());
         studentHtml = studentHtml.replaceAll("\\$\\{studentName\\}", t.getStudentName());
@@ -574,10 +586,15 @@ public class CreatePdfUtil {
         String cardTemp = cardContent;
         cardTemp = cardTemp.replaceAll("\\$\\{paperTypeName\\}", examDetailCourse.getPaperType());
         //随机生成试卷条码并将图片转成base64
-        cardTemp = cardTemp.replaceAll("\\$\\{paperType\\}", GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(examDetailCourse.getPaperType()), false));
+        if (Objects.nonNull(examDetailCourse.getPaperType())) {
+            cardTemp = cardTemp.replaceAll("\\$\\{paperType\\}", GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(examDetailCourse.getPaperType()), false));
+        }
         //通用题卡生成卷袋贴条码
         String packageCode = examDetail.getPackageCode() + sequence;
-        String packageCodeImg = GoogleBarCodeUtil.createBarCode(packageCode, false);
+        String packageCodeImg = null;
+        if (Objects.nonNull(packageCode)) {
+            packageCodeImg = GoogleBarCodeUtil.createBarCode(packageCode, false);
+        }
         String packageCodeDiv = "<div class=\"page-box page-box-0\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 80px;right: 35px;transform: rotate(-90deg);transform-origin: center right;text-align: center;z-index: 99;\"><img src=\"data:image/png;base64," + packageCodeImg + "\" style=\"display: block; height: 28px; width: 100%\" /><p style=\"line-height: 1; font-size: 12px; margin: 0;\">" + packageCode + "</p></div>";
         cardTemp = cardTemp.replaceAll("<div class=\"page-box page-box-0\">", packageCodeDiv);
         BasicAttachment cardAttachment = basicAttachmentService.saveAttachmentHtml(examCard.getSchoolId() + "|" + examCard.getCourseCode(), cardTemp, userId, cardPdfList);

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java

@@ -124,7 +124,7 @@ public class FreemarkerUtil {
                 basicAttachment.setPath(jsonObject.toJSONString());
                 basicAttachmentService.saveAttachmentPdf(classifyEnum, examDetail, basicAttachment, (List<PdfDto>) dataMap.get("variablePdfList"), (Integer) dataMap.get("printCount"), (Integer) dataMap.get("sequence"));
             }
-            htmlFile.delete();
+//            htmlFile.delete();
         } catch (Exception e) {
             log.error("请求出错", e);
         } finally {