瀏覽代碼

add:联调修改

caozixuan 1 年之前
父節點
當前提交
c3ede2b21a

+ 7 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/AssignClazzParam.java

@@ -7,6 +7,7 @@ import org.hibernate.validator.constraints.Range;
 
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import java.util.List;
 
 /**
@@ -33,8 +34,8 @@ public class AssignClazzParam {
     @ApiModelProperty("班级集合")
     @JsonSerialize(using = ToStringSerializer.class)
     @NotEmpty(message = "请选择班级")
-    @Range(min = 1L, message = "请选择班级")
-    private List<Long> basicTeachClazzIdList;
+    @Size(min = 1, message = "请选择班级")
+    private List<Long> clazzIdList;
 
     public Long getExamId() {
         return examId;
@@ -60,11 +61,11 @@ public class AssignClazzParam {
         this.teacherId = teacherId;
     }
 
-    public List<Long> getBasicTeachClazzIdList() {
-        return basicTeachClazzIdList;
+    public List<Long> getClazzIdList() {
+        return clazzIdList;
     }
 
-    public void setBasicTeachClazzIdList(List<Long> basicTeachClazzIdList) {
-        this.basicTeachClazzIdList = basicTeachClazzIdList;
+    public void setClazzIdList(List<Long> clazzIdList) {
+        this.clazzIdList = clazzIdList;
     }
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SsoServiceImpl.java

@@ -265,9 +265,9 @@ public class SsoServiceImpl implements SsoService {
 
         map.computeIfAbsent("loginName", v -> loginName);
         map.computeIfAbsent("realName", v -> realName);
-        map.computeIfAbsent("role", v -> role);
+        map.computeIfAbsent("roleCode", v -> role);
         map.computeIfAbsent("returnUrl", v -> returnUrl);
-        map.computeIfAbsent("course", v -> dictionaryResultList);
+        map.computeIfAbsent("courses", v -> dictionaryResultList);
         map.put("redirectUrl", stringJoiner.toString());
         return map;
     }

+ 21 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -160,6 +160,9 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
             tmp.setWeightSetting(false);
 
             for (String courseCode : courseCodeList) {
+                if (Objects.isNull(basicCourseService.findByCourseCode(courseCode,schoolId))){
+                    throw ExceptionResultEnum.ERROR.exception("课程不存在");
+                }
                 TeachCourse cell = new TeachCourse();
                 BeanUtils.copyProperties(tmp, cell);
                 cell.setCourseCode(courseCode);
@@ -516,8 +519,12 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
 
         Long leaderTeachCourseId = leaderTeachCourse.getId();
         // 所有教学班
-        List<TeachClazz> teachClazzList = teachClazzService.list(
-                new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getTeachCourseId, leaderTeachCourseId).like(TeachClazz::getClazzName, clazzName));
+        QueryWrapper<TeachClazz> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(TeachClazz::getTeachCourseId, leaderTeachCourseId);
+        if (SystemConstant.strNotNull(clazzName)){
+            queryWrapper.lambda().like(TeachClazz::getClazzName, clazzName);
+        }
+        List<TeachClazz> teachClazzList = teachClazzService.list(queryWrapper);
 
         // 该课程下所有教学班分配关系
         List<TeachClazz> distributedClazzDatasource = teachClazzService.list(
@@ -526,16 +533,18 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
         List<ClazzDistributedResult> resultList = new ArrayList<>();
         for (TeachClazz teachClazz : teachClazzList) {
             Long basicTeachClazzId = teachClazz.getBasicTeachClazzId();
+            List<DictionaryResult> teacherList = new ArrayList<>();
             List<TeachClazz> list = distributedClazzDatasource.stream().filter(e -> basicTeachClazzId.equals(e.getBasicTeachClazzId())).collect(Collectors.toList());
-            List<DictionaryResult> teacherList = sysUserService.listByIds(
-                    list.stream().map(TeachClazz::getUserId).collect(Collectors.toList())).stream().flatMap(e -> {
-                DictionaryResult dictionaryResult = new DictionaryResult();
-                dictionaryResult.setId(e.getId());
-                dictionaryResult.setName(e.getRealName());
-                dictionaryResult.setCode(e.getCode());
-                return Stream.of(dictionaryResult);
-            }).collect(Collectors.toList());
-
+            if (CollectionUtils.isNotEmpty(list)){
+                teacherList = sysUserService.listByIds(
+                        list.stream().map(TeachClazz::getUserId).collect(Collectors.toList())).stream().flatMap(e -> {
+                    DictionaryResult dictionaryResult = new DictionaryResult();
+                    dictionaryResult.setId(e.getId());
+                    dictionaryResult.setName(e.getRealName());
+                    dictionaryResult.setCode(e.getCode());
+                    return Stream.of(dictionaryResult);
+                }).collect(Collectors.toList());
+            }
             ClazzDistributedResult clazzDistributedResult = new ClazzDistributedResult();
             clazzDistributedResult.setClazzId(teachClazz.getBasicTeachClazzId());
             clazzDistributedResult.setClazzName(teachClazz.getClazzName());
@@ -551,7 +560,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
         Long examId = assignClazzParam.getExamId();
         String courseCode = assignClazzParam.getCourseCode();
         Long teacherId = assignClazzParam.getTeacherId();
-        List<Long> basicTeachClazzIdList = assignClazzParam.getBasicTeachClazzIdList();
+        List<Long> basicTeachClazzIdList = assignClazzParam.getClazzIdList();
 
         TeachCourse teachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, requestUser.getId());
         if (!teachCourse.getCreateId().equals(teachCourse.getUserId())) {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/SyncBasicExamStudentImportService.java

@@ -151,7 +151,7 @@ public class SyncBasicExamStudentImportService extends SyncImportTaskTemplate {
         describeFont.setFontName("宋体");
         describeFont.setColor(IndexedColors.RED.getIndex());
         describeStyle.setFont(describeFont);
-        String describe = SystemConstant.BASIC_EXAM_STUDENT;
+        String describe = SystemConstant.BASIC_EXAM_STUDENT_DESCRIBE;
         describe = describe.trim();
         XSSFRow rowDescribe = sheet.createRow(0);
         rowDescribe.setHeightInPoints(195); //行高设置成195px

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/SyncMarkStudentImportService.java

@@ -146,7 +146,7 @@ public class SyncMarkStudentImportService extends SyncImportTaskTemplate {
         describeFont.setFontName("宋体");
         describeFont.setColor(IndexedColors.RED.getIndex());
         describeStyle.setFont(describeFont);
-        String describe = SystemConstant.BASIC_EXAM_STUDENT;
+        String describe = SystemConstant.MARK_STUDENT_DESCRIBE;
         describe = describe.trim();
         XSSFRow rowDescribe = sheet.createRow(0);
         rowDescribe.setHeightInPoints(195); //行高设置成195px

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

@@ -2356,6 +2356,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         }
         // 新增mark_student信息
         Map<String, Map<String, Object>> examTimeMap = new HashMap<>();
+        Set<String> secretNumberSet = new HashSet<>();
         List<MarkStudent> markStudentList = markStudentImportDtoList.stream().flatMap(e -> {
             String examDate = e.getExamDate();
             String examTime = e.getExamTime();
@@ -2376,6 +2377,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             MarkStudent markStudent = new MarkStudent(null, examId, e.getCourseCode(), e.getCourseName(), e.getPaperNumber(),
                     null, paperType, e.getStudentCode(), e.getStudentName(), null, e.getExamPlace(), e.getExamRoom(), e.getCollege(),
                     e.getMajor(), e.getClazz(), examStartTime, examEndTime, requestUserId);
+            if (markStudent.getSecretNumber() == null) {
+                markStudent.randomSecretNumber();
+                while (secretNumberSet.contains(markStudent.getSecretNumber())
+                        || markStudentService.countByExamIdAndSecretNumber(markStudent.getExamId(), markStudent.getSecretNumber()) > 0) {
+                    markStudent.randomSecretNumber();
+                }
+            }
             return Stream.of(markStudent);
         }).collect(Collectors.toList());
 

+ 3 - 1
distributed-print-business/src/main/resources/db/log/脚本-caozx.sql

@@ -1,4 +1,3 @@
-
 ALTER TABLE `teach_clazz`
 ADD COLUMN `belong_teach_course_id` BIGINT NULL COMMENT '分配班级时属于的教学课程id' AFTER `clazz_name`;
 
@@ -13,3 +12,6 @@ UPDATE `sys_privilege` SET `related` = '77,842,843,844,845,846,847,848,849,850,8
 
 ALTER TABLE `mark_student` 
 CHANGE COLUMN `package_code` `package_code` VARCHAR(64) NULL COMMENT '试卷袋编号' ;
+
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1130', '阅卷数据批量导入(同步)', '/api/admin/mark/setting/mark_student_import', 'URL', '917', '23', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('1131', '阅卷数据导入', 'MarkStudentImport', 'BUTTON', '917', '8', 'AUTH', '1130', '1', '0', '1');

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

@@ -41,7 +41,7 @@ public class TeachClazzController {
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findTeachClazzPage(@ApiParam(value = "考试id", required = true) @RequestParam String examId,
                                      @ApiParam(value = "课程编号", required = true) @RequestParam String courseCode,
-                                     @ApiParam(value = "班级名称(模糊查询)") @RequestParam String teachClazzName,
+                                     @ApiParam(value = "班级名称(模糊查询)") @RequestParam(required = false) String teachClazzName,
                                      @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                      @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         return ResultUtil.ok(teachClazzService.teachClazzPage(SystemConstant.convertIdToLong(examId),courseCode, teachClazzName, pageNumber, pageSize));

+ 10 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -443,7 +443,7 @@ public class SystemConstant {
             "11、请不要删除此行,也不要删除模板中的任何列。\n" +
             "12、使用前请先删除样例数据。\n";
 
-    public static final String BASIC_EXAM_STUDENT = "说明\n" +
+    public static final String BASIC_EXAM_STUDENT_DESCRIBE = "说明\n" +
             "1、学期、考试、课程、姓名、学号、教学班均必填;\n" +
             "2、试卷编号存在时,任课教师信息、考试时间、考点、考场均必填\n" +
             "3、【考试日期】必填,且格式为YYYY-MM-DD。例如2023-07-09;\n" +
@@ -451,6 +451,15 @@ public class SystemConstant {
             "5、请不要删除此行,也不要删除模板中的任何列。\n" +
             "6、使用前请先删除样例数据。\n";
 
+    public static final String MARK_STUDENT_DESCRIBE = "说明\n" +
+            "1、课程名称、课程编号、试卷编号、姓名、学号均必填;\n" +
+            "2、学号在课程下唯一;\n" +
+            "3、同一个课程、试卷下的班级信息要么全填要么全不填;\n" +
+            "4、【考试日期】必填,且格式为YYYY-MM-DD。例如2023-07-09;\n" +
+            "5、【考试时间】必填,且格式为HH:mm-HH:mm。例如18:30-20:30;\n" +
+            "6、请不要删除此行,也不要删除模板中的任何列。\n" +
+            "7、使用前请先删除样例数据。";
+
     /**
      * 线程池配置
      */

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/ImportTemplateEnum.java

@@ -18,6 +18,7 @@ public enum ImportTemplateEnum {
     TEMPLATE_EXAM_STATISTICS("examStatistics.xlsx", "命题计划导入模板.xlsx"),
     TEMPLATE_BASIC_EXAM_STUDENT("basicExamStudent.xlsx", "考生字典导入模板.xlsx"),
     TEMPLATE_COURSE_DIMENSION("courseDimension.xlsx", "课程知识点导入模板.xlsx"),
+    TEMPLATE_MARK_STUDENT("markStudent.xlsx","阅卷数据导入模板"),
 
     STATIC_COURSE_DEGREE_REPORT("course_degree_report.docx", "课程目标达成度");