瀏覽代碼

fix:jpg替换变量

caozixuan 3 年之前
父節點
當前提交
cb28697830

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

@@ -22,7 +22,6 @@ import com.qmth.distributed.print.business.util.HtmlToJpgUtil;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
-import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
@@ -33,7 +32,6 @@ import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -54,25 +52,25 @@ import java.util.stream.Collectors;
 @Service
 @Service
 public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> implements ExamCardService {
 public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> implements ExamCardService {
 
 
-    @Autowired
+    @Resource
     private BasicExamRuleService basicExamRuleService;
     private BasicExamRuleService basicExamRuleService;
 
 
-    @Autowired
+    @Resource
     private ExamCardDetailService examCardDetailService;
     private ExamCardDetailService examCardDetailService;
 
 
-    @Autowired
+    @Resource
     private ExamTaskDetailService examTaskDetailService;
     private ExamTaskDetailService examTaskDetailService;
 
 
-    @Autowired
+    @Resource
     private ExamTaskService examTaskService;
     private ExamTaskService examTaskService;
 
 
-    @Autowired
+    @Resource
     private BasicAttachmentService basicAttachmentService;
     private BasicAttachmentService basicAttachmentService;
 
 
     @Resource
     @Resource
     TeachcloudCommonService teachcloudCommonService;
     TeachcloudCommonService teachcloudCommonService;
 
 
-    @Autowired
+    @Resource
     BasicCourseService basicCourseService;
     BasicCourseService basicCourseService;
 
 
     @Resource
     @Resource
@@ -81,9 +79,16 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     @Resource
     @Resource
     HtmlToJpgUtil htmlToJpgUtil;
     HtmlToJpgUtil htmlToJpgUtil;
 
 
+    @Resource
+    BasicPrintConfigService basicPrintConfigService;
+
+    @Resource
+    BasicCardRuleService basicCardRuleService;
+
     @Transactional
     @Transactional
     @Override
     @Override
     public String saveExamCard(ExamCardParams examCardParams) throws Exception {
     public String saveExamCard(ExamCardParams examCardParams) throws Exception {
+        // ↓专卡
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser user = (SysUser) ServletUtil.getRequestUser();
         SysUser user = (SysUser) ServletUtil.getRequestUser();
 
 
@@ -118,8 +123,12 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
             examCardDetail = new ExamCardDetail();
             examCardDetail = new ExamCardDetail();
             examCardDetail.setCardId(examCard.getId());
             examCardDetail.setCardId(examCard.getId());
             examCardDetail.setContent(examCardParams.getContent());
             examCardDetail.setContent(examCardParams.getContent());
-            examCardDetail.setHtmlContent(examCardParams.getHtmlContent());
-            examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),examCardParams.getHtmlContent(),PageSizeEnum.A3)));
+            String htmlContent = examCardParams.getHtmlContent();
+            List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),htmlContent,PageSizeEnum.A3);
+            if (convertJpgStorageList.size() > 0){
+                examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(convertJpgStorageList));
+            }
+            examCardDetail.setHtmlContent(htmlContent);
             examCardDetail.setAttachmentId(examCardParams.getAttachmentId());
             examCardDetail.setAttachmentId(examCardParams.getAttachmentId());
             examCardDetail.insertInfo(user.getId());
             examCardDetail.insertInfo(user.getId());
             examCardDetailService.save(examCardDetail);
             examCardDetailService.save(examCardDetail);
@@ -144,16 +153,20 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
                 throw ExceptionResultEnum.ERROR.exception("题卡数据有误");
                 throw ExceptionResultEnum.ERROR.exception("题卡数据有误");
             }
             }
             examCardDetail.setContent(examCardParams.getContent());
             examCardDetail.setContent(examCardParams.getContent());
-            examCardDetail.setHtmlContent(examCardParams.getHtmlContent());
-            examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),examCardParams.getHtmlContent(),PageSizeEnum.A3)));
+            String htmlContent = examCardParams.getHtmlContent();
+            List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),htmlContent,PageSizeEnum.A3);
+            if (convertJpgStorageList.size() > 0){
+                examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(convertJpgStorageList));
+            }
+            examCardDetail.setHtmlContent(htmlContent);
             examCardDetail.setAttachmentId(examCardParams.getAttachmentId());
             examCardDetail.setAttachmentId(examCardParams.getAttachmentId());
             examCardDetail.updateInfo(user.getId());
             examCardDetail.updateInfo(user.getId());
             examCardDetailService.updateById(examCardDetail);
             examCardDetailService.updateById(examCardDetail);
-
         }
         }
 
 
         // 绑定命题任务
         // 绑定命题任务
         examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard);
         examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard);
+
         return String.valueOf(examCard.getId());
         return String.valueOf(examCard.getId());
     }
     }
 
 
@@ -245,7 +258,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
             List<ExamCard> customCards = this.baseMapper.listCustom(schoolId, sysUser.getOrgId(), courseCode, CardTypeEnum.CUSTOM.name());
             List<ExamCard> customCards = this.baseMapper.listCustom(schoolId, sysUser.getOrgId(), courseCode, CardTypeEnum.CUSTOM.name());
             if (!customCards.isEmpty()) {
             if (!customCards.isEmpty()) {
                 // 只查自己创建的专卡
                 // 只查自己创建的专卡
-                customCards = customCards.stream().filter(m-> Objects.equals(m.getCreateId(), sysUser.getId())).collect(Collectors.toList());
+                customCards = customCards.stream().filter(m -> Objects.equals(m.getCreateId(), sysUser.getId())).collect(Collectors.toList());
                 if (!customCards.isEmpty()) {
                 if (!customCards.isEmpty()) {
                     list.addAll(customCards);
                     list.addAll(customCards);
                 }
                 }
@@ -369,8 +382,10 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
             } else {
             } else {
                 throw ExceptionResultEnum.ERROR.exception("题卡创建方式异常");
                 throw ExceptionResultEnum.ERROR.exception("题卡创建方式异常");
             }
             }
-            List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),htmlContent, PageSizeEnum.A3);
-            examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(convertJpgStorageList));
+            List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),htmlContent,PageSizeEnum.A3);
+            if (convertJpgStorageList.size() > 0){
+                examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(convertJpgStorageList));
+            }
             examCardDetailService.save(examCardDetail);
             examCardDetailService.save(examCardDetail);
         }
         }
         // 修改
         // 修改
@@ -418,8 +433,10 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
             } else {
             } else {
                 throw ExceptionResultEnum.ERROR.exception("题卡创建方式异常");
                 throw ExceptionResultEnum.ERROR.exception("题卡创建方式异常");
             }
             }
-            List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),htmlContent, PageSizeEnum.A3);
-            examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(convertJpgStorageList));
+            List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertHtmlToJpgByCard(examCard.getTitle(),htmlContent,PageSizeEnum.A3);
+            if (convertJpgStorageList.size() > 0){
+                examCardDetail.setJpgAttachmentInfo(JSON.toJSONString(convertJpgStorageList));
+            }
             examCardDetailService.updateById(examCardDetail);
             examCardDetailService.updateById(examCardDetail);
 
 
             //删除权限
             //删除权限

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

@@ -6,6 +6,8 @@ import com.qmth.distributed.print.business.bean.marking.Marker;
 import com.qmth.distributed.print.business.entity.ExamPaperGroupMarker;
 import com.qmth.distributed.print.business.entity.ExamPaperGroupMarker;
 import com.qmth.distributed.print.business.mapper.ExamPaperGroupMarkerMapper;
 import com.qmth.distributed.print.business.mapper.ExamPaperGroupMarkerMapper;
 import com.qmth.distributed.print.business.service.ExamPaperGroupMarkerService;
 import com.qmth.distributed.print.business.service.ExamPaperGroupMarkerService;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -29,7 +31,11 @@ public class ExamPaperGroupMarkerServiceImpl extends ServiceImpl<ExamPaperGroupM
             ExamPaperGroupMarker marker = new ExamPaperGroupMarker();
             ExamPaperGroupMarker marker = new ExamPaperGroupMarker();
             marker.setGroupId(examPaperGroupId);
             marker.setGroupId(examPaperGroupId);
             marker.setMarkerId(e.getId());
             marker.setMarkerId(e.getId());
-            marker.setLoginName(e.getLoginName());
+            String loginName = e.getLoginName();
+            if (!SystemConstant.strNotNull(loginName)){
+                throw ExceptionResultEnum.ERROR.exception("缺少评卷员用户登录名信息");
+            }
+            marker.setLoginName(loginName);
             return Stream.of(marker);
             return Stream.of(marker);
         }).collect(Collectors.toSet());
         }).collect(Collectors.toSet());
         this.saveBatch(examPaperGroupMarkerSet);
         this.saveBatch(examPaperGroupMarkerSet);

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

@@ -1669,7 +1669,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             boolean cf = zipFile.createNewFile();
             boolean cf = zipFile.createNewFile();
         }
         }
 
 
-        // 文件路径
+        // 文件路径
         String zipLocalRootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
         String zipLocalRootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
 
 
         ExamTaskPaperDto examTaskPaperDto = downloadService.findDownloadContent(schoolId, semesterId, examId, orgId, courseName, idSet);
         ExamTaskPaperDto examTaskPaperDto = downloadService.findDownloadContent(schoolId, semesterId, examId, orgId, courseName, idSet);

+ 38 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java

@@ -1,9 +1,15 @@
 package com.qmth.distributed.print.business.util;
 package com.qmth.distributed.print.business.util;
 
 
 import com.qmth.distributed.print.business.bean.marking.ConvertJpgStorage;
 import com.qmth.distributed.print.business.bean.marking.ConvertJpgStorage;
+import com.qmth.distributed.print.business.entity.BasicCardRule;
+import com.qmth.distributed.print.business.entity.ExamCard;
+import com.qmth.distributed.print.business.entity.ExamCardDetail;
+import com.qmth.distributed.print.business.enums.MakeMethodEnum;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.teachcloud.common.util.ConvertUtil;
@@ -37,12 +43,16 @@ public class HtmlToJpgUtil {
     @Resource
     @Resource
     PrintCommonService printCommonService;
     PrintCommonService printCommonService;
 
 
+    @Resource
+    CreatePdfUtil createPdfUtil;
+
     private final static Logger log = LoggerFactory.getLogger(HtmlToJpgUtil.class);
     private final static Logger log = LoggerFactory.getLogger(HtmlToJpgUtil.class);
 
 
     /**
     /**
      * 转换html -> jpg : 生成本地临时文件
      * 转换html -> jpg : 生成本地临时文件
-     * @param cardTitle 题卡名称
-     * @param htmlContent html内容
+     *
+     * @param cardTitle    题卡名称
+     * @param htmlContent  html内容
      * @param pageSizeEnum 转化pdf的纸张类型
      * @param pageSizeEnum 转化pdf的纸张类型
      */
      */
     public List<BasicAttachment> convertHtmlToJpg(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
     public List<BasicAttachment> convertHtmlToJpg(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
@@ -70,7 +80,7 @@ public class HtmlToJpgUtil {
             }
             }
             HtmlToPdfUtil.convert(htmlPath, pdfPath, pageSizeEnum);
             HtmlToPdfUtil.convert(htmlPath, pdfPath, pageSizeEnum);
             // pdf文件转jpg
             // pdf文件转jpg
-            List<File> jpgFileList = ConvertUtil.pdfToImageFile(pdfPath,jpgPath);
+            List<File> jpgFileList = ConvertUtil.pdfToImageFile(pdfPath, jpgPath);
 
 
             for (File jpgFile : jpgFileList) {
             for (File jpgFile : jpgFileList) {
                 InputStream inputStream = new FileInputStream(jpgFile);
                 InputStream inputStream = new FileInputStream(jpgFile);
@@ -79,9 +89,9 @@ public class HtmlToJpgUtil {
                 BasicAttachment basicAttachment = printCommonService.saveAttachment(multipartFile, DigestUtils.md5Hex(multipartFile.getBytes()), UploadFileEnum.FILE);
                 BasicAttachment basicAttachment = printCommonService.saveAttachment(multipartFile, DigestUtils.md5Hex(multipartFile.getBytes()), UploadFileEnum.FILE);
                 basicAttachmentList.add(basicAttachment);
                 basicAttachmentList.add(basicAttachment);
             }
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             log.error(e.getMessage());
             log.error(e.getMessage());
-        }finally {
+        } finally {
             ConvertUtil.delFolder(rootPath);
             ConvertUtil.delFolder(rootPath);
         }
         }
         return basicAttachmentList;
         return basicAttachmentList;
@@ -89,19 +99,32 @@ public class HtmlToJpgUtil {
 
 
     /**
     /**
      * 转换html -> jpg : 生成本地临时文件
      * 转换html -> jpg : 生成本地临时文件
-     * @param cardTitle 题卡名称
-     * @param htmlContent html内容
+     *
+     * @param cardTitle    题卡名称
+     * @param htmlContent  题卡内容
      * @param pageSizeEnum 转化pdf的纸张类型
      * @param pageSizeEnum 转化pdf的纸张类型
      */
      */
     public List<ConvertJpgStorage> convertHtmlToJpgByCard(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
     public List<ConvertJpgStorage> convertHtmlToJpgByCard(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
-        return this.convertHtmlToJpg(cardTitle,htmlContent,pageSizeEnum).stream().flatMap(e -> {
-            ConvertJpgStorage tmp = new ConvertJpgStorage();
-            String name = e.getName();
-            String index = name.substring(name.lastIndexOf("-") + 1);
+        List<ConvertJpgStorage> convertJpgStorageList = new ArrayList<>();
+        try {
+            String regex = "\\$\\{\\w+}";
+            htmlContent = htmlContent.replaceAll("<img src=\"data:image/png;base64,\\$\\{examNumber\\}\">", "");
+            htmlContent = htmlContent.replaceAll(regex, "");
+            convertJpgStorageList = this.convertHtmlToJpg(cardTitle, htmlContent, pageSizeEnum).stream().flatMap(e -> {
+                ConvertJpgStorage tmp = new ConvertJpgStorage();
+                String name = e.getName();
+                String index = name.substring(name.lastIndexOf("-") + 1);
+                tmp.setAttachmentId(e.getId());
+                tmp.setIndex(Integer.valueOf(index));
+                return Stream.of(tmp);
+            }).collect(Collectors.toList());
 
 
-            tmp.setAttachmentId(e.getId());
-            tmp.setIndex(Integer.valueOf(index));
-            return Stream.of(tmp);
-        }).collect(Collectors.toList());
+            if (convertJpgStorageList.size() == 0) {
+                throw ExceptionResultEnum.ERROR.exception("生成jpg文件异常");
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return convertJpgStorageList;
     }
     }
 }
 }

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java

@@ -98,7 +98,7 @@ public class ExamCardController {
         return ResultUtil.ok(success);
         return ResultUtil.ok(success);
     }
     }
 
 
-    //====================================通卡接口(end)===================================
+    //====================================通卡接口(end)===================================
 
 
     /**
     /**
      * 新建
      * 新建