Selaa lähdekoodia

3.0.0-bug修改

xiaof 3 vuotta sitten
vanhempi
commit
953536a027

+ 11 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicPrintConfigServiceImpl.java

@@ -19,7 +19,6 @@ import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.BasicPrintConfig;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.ExamModelEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.SysOrgService;
@@ -127,7 +126,7 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
             List<BasicPrintConfig> basicPrintConfigs = this.list(queryWrapper);
             // 一个学院只能对应一个印品配置方案
             Long[] orgIds = basicPrintConfig.getOrgIds();
-            if(basicPrintConfigs!= null && basicPrintConfigs.size()>0) {
+            if (basicPrintConfigs != null && basicPrintConfigs.size() > 0) {
                 List<Long> printConfigIds = basicPrintConfigs.stream().map(BasicPrintConfig::getId).collect(Collectors.toList());
                 QueryWrapper<BasicTemplateOrg> basicTemplateOrgQueryWrapper = new QueryWrapper<>();
                 basicTemplateOrgQueryWrapper.lambda().in(BasicTemplateOrg::getRuleId, printConfigIds)
@@ -201,21 +200,18 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
         SysOrg sysOrg = sysOrgService.getById(orgId);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         List<BasicPrintConfig> basicPrintConfigs = this.baseMapper.listBySchoolIdAndExamIdAndOrgId(schoolId, examId, orgId, TemplateTypeEnum.PRINT_CONFIG.name());
-        if(!ExamModelEnum.MODEL3.equals(basicExam.getExamModel())) {
-            if (basicPrintConfigs == null || basicPrintConfigs.size() == 0) {
-                throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "],教研室[" + sysOrg.getName() + "]未设置印品");
-            }
-            if (basicPrintConfigs.size() != 1) {
-                throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "],教研室[" + sysOrg.getName() + "]查询出多个印品配置");
-            }
+        if (basicPrintConfigs == null || basicPrintConfigs.size() == 0) {
+            throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "],教研室[" + sysOrg.getName() + "]未设置印品");
+        }
+        if (basicPrintConfigs.size() != 1) {
+            throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "],教研室[" + sysOrg.getName() + "]查询出多个印品配置");
+        }
 
-            BasicPrintConfig printConfig = basicPrintConfigs.get(0);
-            if (!printConfig.getEnable()) {
-                throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "],教研室[" + sysOrg.getName() + "]印品配置已禁用,请先开启");
-            }
-            return printConfig;
+        BasicPrintConfig printConfig = basicPrintConfigs.get(0);
+        if (!printConfig.getEnable()) {
+            throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "],教研室[" + sysOrg.getName() + "]印品配置已禁用,请先开启");
         }
-        return null;
+        return printConfig;
     }
 
     @Override

+ 16 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -825,7 +825,6 @@ public class CreatePdfUtil {
      *
      * @param studentContent     题卡html内容
      * @param examStudent        考生对象
-     * @param tempPaperType
      * @param examDetail         考场对象
      * @param examDetailCourse   考场课程对象
      * @param userId             当前用户ID
@@ -854,19 +853,10 @@ public class CreatePdfUtil {
         studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", examStudent != null && examStudent.getPaperType() != null ? examStudent.getPaperType() : StringUtils.isNotBlank(paperType) ? paperType : "");
 
         // 根据题卡规则必选字段,替换相应值,没有则“”
-        List<StudentExtendDto> studentExtendDtos = createExtendObject(examStudent, basicCardRule);
+        List<StudentExtendDto> studentExtendDtos = createExtendObject(examDetail, examStudent, basicCardRule);
         for (StudentExtendDto extendDto : studentExtendDtos) {
             studentHtml = studentHtml.replaceAll("\\$\\{" + extendDto.getFieldName() + "\\}", String.valueOf(extendDto.getValue()));
         }
-
-        // 时间需要特殊处理
-        Map<String, Object> map = ConvertUtil.analyzeDateAndTime(examDetail.getExamStartTime(), examDetail.getExamEndTime());
-        String examDate = Objects.nonNull(map.get("date")) ? (String) map.get("date") : "";
-        String examTime = Objects.nonNull(map.get("time")) ? (String) map.get("time") : "";
-        studentHtml = studentHtml.replaceAll("\\$\\{examDate\\}", examDate);
-        studentHtml = studentHtml.replaceAll("\\$\\{examTime\\}", examTime);
-
-
         // 以下值通过createExtendObject动态设置了,暂时屏蔽(2022-03-11 by xf)
             /*
             studentHtml = studentHtml.replaceAll("\\$\\{ticketNumber\\}", examStudent.getTicketNumber());
@@ -890,10 +880,11 @@ public class CreatePdfUtil {
     /**
      * 题卡规则字段
      *
+     * @param examDetail
      * @param examStudent   考生对象
      * @param basicCardRule 题卡规则对象
      */
-    private List<StudentExtendDto> createExtendObject(ExamStudent examStudent, BasicCardRule basicCardRule) {
+    private List<StudentExtendDto> createExtendObject(ExamDetail examDetail, ExamStudent examStudent, BasicCardRule basicCardRule) {
         ExamStudentPdfInfoDto examStudentPdfInfoDto = examStudent == null ? null : examStudentService.getByStudentId(examStudent.getId());
         List<JSONObject> requiredFieldsJson = JSONArray.parseArray(basicCardRule.getRequiredFields(), JSONObject.class);
         List<StudentExtendDto> studentExtendDtos = new ArrayList<>();
@@ -913,15 +904,25 @@ public class CreatePdfUtil {
             if (examStudentPdfInfoDto != null && StringUtils.isNotBlank(examStudentPdfInfoDto.getExtendFields())) {
                 studentExtendMap = JSONArray.parseArray(examStudentPdfInfoDto.getExtendFields(), JSONObject.class).stream().collect(Collectors.toMap(k -> String.valueOf(k.get("code")), v -> v.get("value")));
             }
+
+
+            Map<String, Object> map = ConvertUtil.analyzeDateAndTime(examDetail.getExamStartTime(), examDetail.getExamEndTime());
+
             for (JSONObject jsonObject : extendFieldsJson) {
                 boolean enable = Boolean.parseBoolean(jsonObject.get("enable").toString());
-//                if (!enable) {
-//                    continue;
-//                }
                 StudentExtendDto studentExtendDto = new StudentExtendDto();
                 String code = String.valueOf(jsonObject.get("code"));
+
+
                 studentExtendDto.setFieldName(code);
                 Object value = examStudentPdfInfoDto == null ? null : ReflectUtil.getFieldValue(examStudentPdfInfoDto, code);
+                // 时间需要特殊处理
+                if("examDate".equals(code)){
+                    value = Objects.nonNull(map.get("date")) ? (String) map.get("date") : "";
+                }
+                if("examTime".equals(code)){
+                    value = Objects.nonNull(map.get("time")) ? (String) map.get("time") : "";
+                }
                 if (value == null) {
                     value = studentExtendMap == null ? null : studentExtendMap.get(code);
                 }