浏览代码

3.2.5 题卡规则编辑,未加上新增加的扩展字段bug修复

xiaofei 2 年之前
父节点
当前提交
557acdcebc

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CardRequiredFieldsEnum.java

@@ -12,7 +12,8 @@ import java.util.List;
  */
  */
 public enum CardRequiredFieldsEnum {
 public enum CardRequiredFieldsEnum {
 
 
-    TICKET_NUMBER("ticketNumber", "考号"),
+//    TICKET_NUMBER("ticketNumber", "考号"),
+//    STUDENT_CODE("studentCode", "学号"),
     SITE_NUMBER("siteNumber", "座位号"),
     SITE_NUMBER("siteNumber", "座位号"),
     STUDENT_NAME("studentName","姓名"),
     STUDENT_NAME("studentName","姓名"),
     COURSE_NAME("courseName","课程名称");
     COURSE_NAME("courseName","课程名称");
@@ -41,9 +42,9 @@ public enum CardRequiredFieldsEnum {
         List<EnumResult> list = new ArrayList<>();
         List<EnumResult> list = new ArrayList<>();
         for (CardRequiredFieldsEnum value : CardRequiredFieldsEnum.values()) {
         for (CardRequiredFieldsEnum value : CardRequiredFieldsEnum.values()) {
             // 校验是否在考务必选字段中
             // 校验是否在考务必选字段中
-            if(!RequiredFieldsEnum.contain(value.name())){
-                throw ExceptionResultEnum.ERROR.exception("");
-            }
+//            if(!RequiredFieldsEnum.contain(value.name())){
+//                throw ExceptionResultEnum.ERROR.exception("题卡必选字段在通用规则中不存在");
+//            }
 
 
             EnumResult result = new EnumResult();
             EnumResult result = new EnumResult();
             result.setName(value.name());
             result.setName(value.name());

+ 45 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCardRuleServiceImpl.java

@@ -1,5 +1,7 @@
 package com.qmth.distributed.print.business.service.impl;
 package com.qmth.distributed.print.business.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,28 +9,27 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.dto.CardRuleDto;
 import com.qmth.distributed.print.business.bean.dto.CardRuleDto;
 import com.qmth.distributed.print.business.entity.BasicCardRule;
 import com.qmth.distributed.print.business.entity.BasicCardRule;
+import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.entity.ExamCard;
 import com.qmth.distributed.print.business.entity.ExamCard;
 import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.ExamTask;
+import com.qmth.distributed.print.business.enums.CardRequiredFieldsEnum;
 import com.qmth.distributed.print.business.mapper.BasicCardRuleMapper;
 import com.qmth.distributed.print.business.mapper.BasicCardRuleMapper;
-import com.qmth.distributed.print.business.service.BasicCardRuleService;
-import com.qmth.distributed.print.business.service.BasicPrintConfigService;
-import com.qmth.distributed.print.business.service.ExamCardService;
-import com.qmth.distributed.print.business.service.ExamTaskService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicPrintConfig;
 import com.qmth.teachcloud.common.entity.BasicPrintConfig;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.EnumResult;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 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.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -56,12 +57,48 @@ public class BasicCardRuleServiceImpl extends ServiceImpl<BasicCardRuleMapper, B
     @Resource
     @Resource
     BasicRoleDataPermissionService basicRoleDataPermissionService;
     BasicRoleDataPermissionService basicRoleDataPermissionService;
 
 
+    @Resource
+    BasicExamRuleService basicExamRuleService;
+
     @Override
     @Override
     public IPage<CardRuleDto> list(Boolean enable, String name, Long createStartTime, Long createEndTime, Integer pageNumber, Integer pageSize) {
     public IPage<CardRuleDto> list(Boolean enable, String name, Long createStartTime, Long createEndTime, Integer pageNumber, Integer pageSize) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
-        return this.baseMapper.listPage(new Page<>(pageNumber, pageSize), schoolId, enable, SystemConstant.translateSpecificSign(name), createStartTime, createEndTime, dpr);
+        IPage<CardRuleDto> cardRuleDtoIPage = this.baseMapper.listPage(new Page<>(pageNumber, pageSize), schoolId, enable, SystemConstant.translateSpecificSign(name), createStartTime, createEndTime, dpr);
+
+        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId();
+        List<JSONObject> examRuleRequiredFieldList = JSONObject.parseArray(basicExamRule.getRequiredFields(), JSONObject.class);
+        List<JSONObject> examRuleExtendFieldList = JSONObject.parseArray(basicExamRule.getExtendFields(), JSONObject.class);
+
+        List<JSONObject> allExamRuleFieldList = new ArrayList<>();
+        allExamRuleFieldList.addAll(examRuleRequiredFieldList);
+        if(!CollectionUtils.isEmpty(examRuleExtendFieldList)){
+            allExamRuleFieldList.addAll(examRuleExtendFieldList);
+        }
+        List<EnumResult> enumResults = CardRequiredFieldsEnum.listTypes();
+        for (int i = 0; i < allExamRuleFieldList.size(); i++) {
+            JSONObject jsonObject = allExamRuleFieldList.get(i);
+            Optional<EnumResult> resultOptional = enumResults.stream().filter(t -> t.getCode().equals(jsonObject.getString("code"))).findFirst();
+            if(resultOptional.isPresent()){
+                allExamRuleFieldList.remove(i);
+            }
+        }
+
+        for (CardRuleDto record : cardRuleDtoIPage.getRecords()) {
+            List<JSONObject> cardRuleExtendFieldList = JSONObject.parseArray(record.getExtendFields(), JSONObject.class);
+            for (JSONObject jsonObject : allExamRuleFieldList) {
+                Optional<JSONObject> objectOptional = cardRuleExtendFieldList.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);
+                }
+            }
+
+            record.setExtendFields(JSONObject.toJSONString(allExamRuleFieldList));
+        }
+        return cardRuleDtoIPage;
     }
     }
 
 
     @Override
     @Override

+ 23 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java

@@ -186,8 +186,10 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
         List<JSONObject> displayRanges = JSONObject.parseArray(object.getString("basic"), JSONObject.class);
         List<JSONObject> displayRanges = JSONObject.parseArray(object.getString("basic"), JSONObject.class);
         // 签到表
         // 签到表
         if(basicTemplate.getClassify().equals(ClassifyEnum.SIGN)){
         if(basicTemplate.getClassify().equals(ClassifyEnum.SIGN)){
-            List<JSONObject> signScopeList = JSONObject.parseArray(basicExamRule.getSignScope(), JSONObject.class);
-            for (JSONObject jsonObject : signScopeList) {
+            // 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();
                 Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
                 if(objectOptional.isPresent()){
                 if(objectOptional.isPresent()){
                     jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
                     jsonObject.put("enable", objectOptional.get().getBoolean("enable"));
@@ -196,13 +198,28 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
                 }
                 }
             }
             }
 
 
-            object.put("basic", JSONObject.toJSONString(signScopeList));
+            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);
+                }
+            }
+
+            object.put("table", signTableList);
             basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
             basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
         }
         }
 
 
-        // 签到表
+        // 卷袋贴
         if(basicTemplate.getClassify().equals(ClassifyEnum.PACKAGE)){
         if(basicTemplate.getClassify().equals(ClassifyEnum.PACKAGE)){
-            List<JSONObject> packageScopeList = JSONObject.parseArray(basicExamRule.getPackageScope(), JSONObject.class);
+            JSONObject packageObject = JSONObject.parseObject(basicExamRule.getPackageScope());
+            List<JSONObject> packageScopeList = JSONObject.parseArray(packageObject.getString("basic"), JSONObject.class);
             for (JSONObject jsonObject : packageScopeList) {
             for (JSONObject jsonObject : packageScopeList) {
                 Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
                 Optional<JSONObject> objectOptional = displayRanges.stream().filter(m -> m.getString("code").equals(jsonObject.getString("code"))).findFirst();
                 if(objectOptional.isPresent()){
                 if(objectOptional.isPresent()){
@@ -212,7 +229,7 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
                 }
                 }
             }
             }
 
 
-            object.put("basic", JSONObject.toJSONString(packageScopeList));
+            object.put("basic", packageScopeList);
             basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
             basicTemplate.setDisplayRange(JSONObject.toJSONString(object));
         }
         }
         return basicTemplate;
         return basicTemplate;