소스 검색

3.2.5 bug修改

xiaofei 2 년 전
부모
커밋
17f806e1dc

+ 11 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamRuleServiceImpl.java

@@ -21,10 +21,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.DigestUtils;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -61,7 +58,16 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
             basicExamRule.setSignScope(emptyObject);
             basicExamRule.setPackageScope(emptyObject);
         } else {
-
+            List<EnumResult> requiredFields = JSON.parseArray(basicExamRule.getRequiredFields(), EnumResult.class);
+            for (EnumResult enumResult : enumResultList) {
+                Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getCode().equals(t.getCode())).findFirst();
+                if(resultOptional.isPresent()){
+                    enumResult.setEnable(resultOptional.get().getEnable());
+                } else {
+                    enumResult.setEnable(false);
+                }
+            }
+            basicExamRule.setRequiredFields(JSON.toJSONString(enumResultList));
         }
         return basicExamRule;
     }

+ 53 - 45
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java

@@ -77,8 +77,8 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
     public IPage<TemplateDto> list(Boolean enable, String type, String name, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
-        return this.baseMapper.listPage(new Page<>(pageNumber, pageSize), schoolId, enable, type, SystemConstant.translateSpecificSign(name), startTime, endTime,dpr);
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.listPage(new Page<>(pageNumber, pageSize), schoolId, enable, type, SystemConstant.translateSpecificSign(name), startTime, endTime, dpr);
     }
 
     @Transactional
@@ -179,58 +179,66 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
             basicTemplate.setUrl(url);
         }
 
-        // 新添加的字段,在已经印品中无法显示和选择
-        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId();
+        if (basicTemplate.getClassify().equals(ClassifyEnum.SIGN) || basicTemplate.getClassify().equals(ClassifyEnum.PACKAGE)) {
+            // 新添加的字段,在已经印品中无法显示和选择
+            BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId();
 
-        JSONObject object = JSONObject.parseObject(basicTemplate.getDisplayRange());
-        List<JSONObject> displayRanges = JSONObject.parseArray(object.getString("basic"), JSONObject.class);
-        // 签到表
-        if(basicTemplate.getClassify().equals(ClassifyEnum.SIGN)){
-            // basic部分
-            JSONObject signObject = JSONObject.parseObject(basicExamRule.getSignScope());
-            List<JSONObject> signBasicList = JSONObject.parseArray(signObject.getString("basic"), JSONObject.class);
-            for (JSONObject jsonObject : signBasicList) {
-                Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
-                if(objectOptional.isPresent()){
-                    jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
-                } else {
-                    jsonObject.put("enable", false);
+            JSONObject object = JSONObject.parseObject(basicTemplate.getDisplayRange());
+            List<JSONObject> displayRanges = JSONObject.parseArray(object.getString("basic"), JSONObject.class);
+            // 签到表
+            if (basicTemplate.getClassify().equals(ClassifyEnum.SIGN)) {
+                if (StringUtils.isBlank(basicExamRule.getSignScope())) {
+                    throw ExceptionResultEnum.ERROR.exception("签到表字段未配置");
+                }
+                // basic部分
+                JSONObject signObject = JSONObject.parseObject(basicExamRule.getSignScope());
+                List<JSONObject> signBasicList = JSONObject.parseArray(signObject.getString("basic"), JSONObject.class);
+                for (JSONObject jsonObject : signBasicList) {
+                    Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
+                    if (objectOptional.isPresent()) {
+                        jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
+                    } else {
+                        jsonObject.put("enable", false);
+                    }
                 }
-            }
 
-            object.put("basic", signBasicList);
+                object.put("basic", signBasicList);
 
-            // table部分
-            List<JSONObject> tableDisplayRanges = JSONObject.parseArray(object.getString("table"), JSONObject.class);
-            List<JSONObject> signTableList = JSONObject.parseArray(signObject.getString("table"), JSONObject.class);
-            for (JSONObject jsonObject : signTableList) {
-                Optional<JSONObject> objectOptional = tableDisplayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
-                if(objectOptional.isPresent()){
-                    jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
-                } else {
-                    jsonObject.put("enable", false);
+                // table部分
+                List<JSONObject> tableDisplayRanges = JSONObject.parseArray(object.getString("table"), JSONObject.class);
+                List<JSONObject> signTableList = JSONObject.parseArray(signObject.getString("table"), JSONObject.class);
+                for (JSONObject jsonObject : signTableList) {
+                    Optional<JSONObject> objectOptional = tableDisplayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
+                    if (objectOptional.isPresent()) {
+                        jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
+                    } else {
+                        jsonObject.put("enable", false);
+                    }
                 }
-            }
 
-            object.put("table", signTableList);
-            basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
-        }
+                object.put("table", signTableList);
+                basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
+            }
 
-        // 卷袋贴
-        if(basicTemplate.getClassify().equals(ClassifyEnum.PACKAGE)){
-            JSONObject packageObject = JSONObject.parseObject(basicExamRule.getPackageScope());
-            List<JSONObject> packageScopeList = JSONObject.parseArray(packageObject.getString("basic"), JSONObject.class);
-            for (JSONObject jsonObject : packageScopeList) {
-                Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
-                if(objectOptional.isPresent()){
-                    jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
-                } else {
-                    jsonObject.put("enable", false);
+            // 卷袋贴
+            if (basicTemplate.getClassify().equals(ClassifyEnum.PACKAGE)) {
+                if (StringUtils.isBlank(basicExamRule.getPackageScope())) {
+                    throw ExceptionResultEnum.ERROR.exception("卷袋贴字段未配置");
+                }
+                JSONObject packageObject = JSONObject.parseObject(basicExamRule.getPackageScope());
+                List<JSONObject> packageScopeList = JSONObject.parseArray(packageObject.getString("basic"), JSONObject.class);
+                for (JSONObject jsonObject : packageScopeList) {
+                    Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
+                    if (objectOptional.isPresent()) {
+                        jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
+                    } else {
+                        jsonObject.put("enable", false);
+                    }
                 }
-            }
 
-            object.put("basic", packageScopeList);
-            basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
+                object.put("basic", packageScopeList);
+                basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
+            }
         }
         return basicTemplate;
     }

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

@@ -230,9 +230,9 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         String extendFields = basicExamRule.getExtendFields();
         // 必选字段
         List<FieldsDto> requiredFieldsList = JSONObject.parseArray(requiredFields, FieldsDto.class);
-        if (requiredFieldsList.stream().anyMatch(e -> !e.getEnable())) {
-            throw ExceptionResultEnum.ERROR.exception("该学校考务字段设置存在必选字段禁用的情况");
-        }
+//        if (requiredFieldsList.stream().anyMatch(e -> !e.getEnable())) {
+//            throw ExceptionResultEnum.ERROR.exception("该学校考务字段设置存在必选字段禁用的情况");
+//        }
         for (FieldsDto fieldsDto : requiredFieldsList) {
             fieldsDto.setLevel("primary");
         }

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -1337,6 +1337,9 @@ public class CreatePdfUtil {
             }
         }
 
+        // 将其它未匹配到值的参数,填入空值
+        studentHtml = studentHtml.replaceAll("^\\$\\{[A-Za-z0-9]+\\}$", "");
+
         //学生题卡
         BasicAttachment examStudentAttachment = printCommonService.saveAttachmentHtml(examDetail.getSchoolId() + "|" + examDetailCourse.getCourseCode() + (examStudent != null && examStudent.getTicketNumber() != null ? "|" + examStudent.getTicketNumber() : ""), studentHtml, userId, examStudentPdfList, fileTempList);
         if (examStudent != null) {
@@ -1377,7 +1380,6 @@ public class CreatePdfUtil {
                 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) {
@@ -1385,7 +1387,6 @@ public class CreatePdfUtil {
                 StudentExtendDto studentExtendDto = new StudentExtendDto();
                 String code = String.valueOf(jsonObject.get("code"));
 
-
                 studentExtendDto.setFieldName(code);
                 Object value = examStudentPdfInfoDto == null ? null : ReflectUtil.getFieldValue(examStudentPdfInfoDto, code);
                 // 时间需要特殊处理

+ 5 - 1
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -25,7 +25,8 @@
         es.paper_type paperType,
         ep.status,
         ep.propositionTeacherId,
-        ep.transferId
+        ep.transferId,
+        ep.sync_end_time syncEndTime
         FROM
         (SELECT
         distinct eps.id,
@@ -40,6 +41,7 @@
         edc.course_code,
         edc.course_name,
         ets.third_relate_id,
+        ets.sync_end_time,
         tsse.exam_name third_relate_name,
         IFNULL(eps.status, 'INIT') status
         FROM
@@ -125,8 +127,10 @@
                 </foreach>
             </if>
         </if>
+        order by ep.sync_end_time desc
         ) temp
         left join exam_paper_structure eps on
         eps.id = temp.id
+        ORDER BY temp.syncEndTime desc
     </select>
 </mapper>

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -354,8 +354,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                         throw ExceptionResultEnum.ERROR.exception("姓名和工号长度不匹配");
                     }
                     for (int k = 0; k < nameList.length; k++) {
-                        String name = nameList[k];
-                        String code = codeList[k];
+                        String name = nameList[k].trim();
+                        String code = codeList[k].trim();
                         SysUser sysUserDb = sysUserService.getOne(new QueryWrapper<SysUser>().lambda()
                                 .eq(SysUser::getEnable, true)
                                 .eq(SysUser::getSchoolId, schoolId)