xiaofei преди 1 година
родител
ревизия
08eec985d8

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

@@ -589,7 +589,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     @Override
     public ExamCard createJpgImage(ExamCard examCard) {
         BasicCardRule basicCardRule = basicCardRuleService.getById(examCard.getCardRuleId());
-        String replaceBackupCardHtmlContent = createPdfNewUtil.replaceBackupCardHtmlParam(examCard.getHtmlContent(), null, basicCardRule, null);
+        String replaceBackupCardHtmlContent = createPdfNewUtil.replaceBackupCardHtmlParam(examCard, null, basicCardRule, null);
         File pdfFile = PdfUtil.htmlToPdf(replaceBackupCardHtmlContent);
         try {
             String fileName = PdfUtil.md5FileName("BLANK" + examCard.getId()) + SystemConstant.PDF_PREFIX;

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

@@ -341,7 +341,7 @@ public class PdfTaskLogicServiceImpl implements PdfTaskLogicService {
                     examCard = examCardMap.get(s);
                     for (int i = 1; i <= backupCount; i++) {
                         String backupPackageCode = examDetail.getPackageCode() + String.format(SystemConstant.DATE_TIME_FORMAT, i);
-                        String replaceBackupCardHtmlContent = createPdfNewUtil.replaceBackupCardHtmlParam(examCard.getHtmlContent(), s, basicCardRule, backupPackageCode);
+                        String replaceBackupCardHtmlContent = createPdfNewUtil.replaceBackupCardHtmlParam(examCard, s, basicCardRule, backupPackageCode);
                         File pdfFile = PdfUtil.htmlToPdf(replaceBackupCardHtmlContent);
                         PdfDto pdfDto = PdfUtil.addPdfPage(pdfFile);
                         FilePathVo filePathVo = fileUploadService.uploadFile(pdfFile, UploadFileEnum.PDF, pdfFile.getName());

+ 61 - 31
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/pdf/CreatePdfNewUtil.java

@@ -823,43 +823,49 @@ public class CreatePdfNewUtil {
      */
     public BasicAttachment examStudentHtml(String studentHtml, ExamStudent examStudent, String paperType, ExamDetail examDetail,
                                            Long userId, List<PdfDto> examStudentPdfList, List<File> fileTempList, BasicCardRule basicCardRule) throws IOException {
-        if (ExamNumberStyleEnum.PRINT.equals(basicCardRule.getExamNumberStyle())) {
-            // 生成学生考号条码并将图片转成base64
-            studentHtml = studentHtml.replaceAll("\\$\\{studentCodeBarcode\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
-            studentHtml = studentHtml.replaceAll("\\$\\{ticketNumberBarcode\\}", examStudent != null && examStudent.getTicketNumber() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getTicketNumber(), false) : "");
-            studentHtml = studentHtml.replaceAll("\\$\\{examNumber\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
-            studentHtml = studentHtml.replaceAll("\\$\\{examNumberStr\\}", examStudent != null && examStudent.getStudentCode() != null ? examStudent.getStudentCode() : "");
-            // 随机生成学生试卷条码并将图片转成base64
-            studentHtml = studentHtml.replaceAll("\\$\\{paperType\\}", examStudent != null && examStudent.getPaperType() != null ? GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(examStudent.getPaperType()), false) : StringUtils.isNotBlank(paperType) ? GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(paperType), false) : "");
-            // 替换考生卷型
-            studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", examStudent != null && examStudent.getPaperType() != null ? examStudent.getPaperType() : StringUtils.isNotBlank(paperType) ? paperType : "");
+        if (basicCardRule != null) {
+            if (ExamNumberStyleEnum.PRINT.equals(basicCardRule.getExamNumberStyle())) {
+                // 生成学生考号条码并将图片转成base64
+                studentHtml = studentHtml.replaceAll("\\$\\{studentCodeBarcode\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
+                studentHtml = studentHtml.replaceAll("\\$\\{ticketNumberBarcode\\}", examStudent != null && examStudent.getTicketNumber() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getTicketNumber(), false) : "");
+                studentHtml = studentHtml.replaceAll("\\$\\{examNumber\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
+                studentHtml = studentHtml.replaceAll("\\$\\{examNumberStr\\}", examStudent != null && examStudent.getStudentCode() != null ? examStudent.getStudentCode() : "");
+                // 随机生成学生试卷条码并将图片转成base64
+                studentHtml = studentHtml.replaceAll("\\$\\{paperType\\}", examStudent != null && examStudent.getPaperType() != null ? GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(examStudent.getPaperType()), false) : StringUtils.isNotBlank(paperType) ? GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(paperType), false) : "");
+                // 替换考生卷型
+                studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", examStudent != null && examStudent.getPaperType() != null ? examStudent.getPaperType() : StringUtils.isNotBlank(paperType) ? paperType : "");
 
-            if (examStudent != null) {
-                // 根据题卡规则必选字段,替换相应值,没有则“”
-                List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
-                if (studentExtendDtos != null) {
-                    for (StudentExtendDto extendDto : studentExtendDtos) {
-                        studentHtml = studentHtml.replaceAll("\\$\\{" + extendDto.getFieldName() + "\\}", String.valueOf(extendDto.getValue()));
-                    }
-                }
-            }
-        } else if (ExamNumberStyleEnum.FILL.equals(basicCardRule.getExamNumberStyle())) {
-            String fillFields = basicCardRule.getFillFields();
-            if (StringUtils.isNotBlank(fillFields)) {
                 if (examStudent != null) {
                     // 根据题卡规则必选字段,替换相应值,没有则“”
                     List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
-                    if (CollectionUtils.isNotEmpty(studentExtendDtos)) {
-                        for (String s : fillFields.split(",")) {
-                            Optional<StudentExtendDto> extendDto = studentExtendDtos.stream().filter(m -> m.getFieldName().equals(s)).findFirst();
-                            if (extendDto.isPresent()) {
-                                StudentExtendDto studentExtendDto = extendDto.get();
-                                studentHtml = studentHtml.replaceAll("\\$\\{" + studentExtendDto.getFieldName() + "\\}", String.valueOf(studentExtendDto.getValue()));
+                    if (studentExtendDtos != null) {
+                        for (StudentExtendDto extendDto : studentExtendDtos) {
+                            studentHtml = studentHtml.replaceAll("\\$\\{" + extendDto.getFieldName() + "\\}", String.valueOf(extendDto.getValue()));
+                        }
+                    }
+                }
+            } else if (ExamNumberStyleEnum.FILL.equals(basicCardRule.getExamNumberStyle())) {
+                String fillFields = basicCardRule.getFillFields();
+                if (StringUtils.isNotBlank(fillFields)) {
+                    if (examStudent != null) {
+                        // 根据题卡规则必选字段,替换相应值,没有则“”
+                        List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
+                        if (CollectionUtils.isNotEmpty(studentExtendDtos)) {
+                            for (String s : fillFields.split(",")) {
+                                Optional<StudentExtendDto> extendDto = studentExtendDtos.stream().filter(m -> m.getFieldName().equals(s)).findFirst();
+                                if (extendDto.isPresent()) {
+                                    StudentExtendDto studentExtendDto = extendDto.get();
+                                    studentHtml = studentHtml.replaceAll("\\$\\{" + studentExtendDto.getFieldName() + "\\}", String.valueOf(studentExtendDto.getValue()));
+                                }
                             }
                         }
                     }
                 }
             }
+        } else {
+            // 替换条码参数
+            studentHtml = studentHtml.replaceAll("<img src=\"data:image/png;base64,\\$\\{examNumber\\}\">", "");
+            studentHtml = studentHtml.replaceAll("\\$\\{examNumberStr\\}", "");
         }
 
         studentHtml = studentHtml.replaceAll("\\$\\{packageCodeDom\\}", "");
@@ -1019,12 +1025,13 @@ public class CreatePdfNewUtil {
     /**
      * 通用题卡html
      *
-     * @param htmlContent       html内容
+     * @param examCard          examCard
      * @param paperType         卷型
      * @param basicCardRule     题卡规则
      * @param backupPackageCode 备用题卡条码号
      */
-    public String replaceBackupCardHtmlParam(String htmlContent, String paperType, BasicCardRule basicCardRule, String backupPackageCode) {
+    public String replaceBackupCardHtmlParam(ExamCard examCard, String paperType, BasicCardRule basicCardRule, String backupPackageCode) {
+        String htmlContent = examCard.getHtmlContent();
         // 替换条码参数
         htmlContent = htmlContent.replaceAll("<img src=\"data:image/png;base64,\\$\\{examNumber\\}\">", "");
         htmlContent = htmlContent.replaceAll("\\$\\{examNumberStr\\}", "");
@@ -1061,7 +1068,30 @@ public class CreatePdfNewUtil {
         if (StringUtils.isNotBlank(backupPackageCode)) {
             //通用题卡生成卷袋贴条码
             String packageCodeImg = GoogleBarCodeUtil.createBarCode(backupPackageCode, false);
-            htmlContent = htmlContent.replaceAll("\\$\\{packageCodeDom\\}", "<img src='" + "data:image/png;base64," + packageCodeImg + "'><p>" + backupPackageCode + "</p>");
+            // 上传通卡
+            if (CardCreateMethodEnum.UPLOAD.equals(examCard.getCreateMethod())) {
+                if (htmlContent.contains("<div class=\"page-box page-box-0\">")) {
+                    String packageCodeDiv = "<div class=\"page-box page-box-0\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;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;\">" + backupPackageCode + "</p></div>";
+                    htmlContent = htmlContent.replaceAll("<div class=\"page-box page-box-0\">", packageCodeDiv);
+                } else if (htmlContent.contains("<div class=\"page-box page-box-A3 page-box-0\">")) {
+                    String packageCodeDiv = "<div class=\"page-box page-box-A3 page-box-0\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;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;\">" + backupPackageCode + "</p></div>";
+                    htmlContent = htmlContent.replaceAll("<div class=\"page-box page-box-A3 page-box-0\">", packageCodeDiv);
+                } else if (htmlContent.contains("<div class=\"page-box page-box-A3 page-box-0 page-box-less\">")) {
+                    String packageCodeDiv = "<div class=\"page-box page-box-A3 page-box-0 page-box-less\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;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;\">" + backupPackageCode + "</p></div>";
+                    htmlContent = htmlContent.replaceAll("<div class=\"page-box page-box-A3 page-box-0 page-box-less\">", packageCodeDiv);
+                } else if (htmlContent.contains("<div class=\"page-box page-box-A4 page-box-0\">")) {
+                    String packageCodeDiv = "<div class=\"page-box page-box-A4 page-box-0\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;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;\">" + backupPackageCode + "</p></div>";
+                    htmlContent = htmlContent.replaceAll("<div class=\"page-box page-box-A4 page-box-0\">", packageCodeDiv);
+                } else if (htmlContent.contains("<div class=\"page-box page-box-A4 page-box-0 page-box-less\">")) {
+                    String packageCodeDiv = "<div class=\"page-box page-box-A4 page-box-0 page-box-less\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;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;\">" + backupPackageCode + "</p></div>";
+                    htmlContent = htmlContent.replaceAll("<div class=\"page-box page-box-A4 page-box-0 page-box-less\">", packageCodeDiv);
+                } else if (htmlContent.contains("<div id=\"preview-page-box-0\" class=\"page-box page-box-A3 page-box-0 page-box-less\">")) {
+                    String packageCodeDiv = "<div id=\"preview-page-box-0\" class=\"page-box page-box-A3 page-box-0 page-box-less\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;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;\">" + backupPackageCode + "</p></div>";
+                    htmlContent = htmlContent.replaceAll("<div id=\"preview-page-box-0\" class=\"page-box page-box-A3 page-box-0 page-box-less\">", packageCodeDiv);
+                }
+            } else {
+                htmlContent = htmlContent.replaceAll("\\$\\{packageCodeDom\\}", "<img src='" + "data:image/png;base64," + packageCodeImg + "'><p>" + backupPackageCode + "</p>");
+            }
         } else {
             htmlContent = htmlContent.replaceAll("\\$\\{packageCodeDom\\}", "");
         }