浏览代码

3.3.1 update

xiaofei 1 年之前
父节点
当前提交
ff9a2399d4
共有 15 个文件被更改,包括 61 次插入15 次删除
  1. 10 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ExamTaskStudentObjectParam.java
  2. 6 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java
  3. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  4. 4 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java
  5. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java
  6. 2 2
      distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml
  7. 1 0
      distributed-print/install/mysql/init/teachcloud_db.sql
  8. 3 0
      distributed-print/install/mysql/upgrade/3.3.1.sql
  9. 4 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskApplyController.java
  10. 5 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicStudentMapper.java
  11. 3 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicStudentService.java
  12. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java
  13. 11 0
      teachcloud-common/src/main/resources/mapper/BasicStudentMapper.xml
  14. 1 0
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java
  15. 2 0
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ExamTaskStudentObjectParam.java

@@ -18,6 +18,9 @@ public class ExamTaskStudentObjectParam {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long teachClazzId;
 
+    @ApiModelProperty("是否禁用")
+    private boolean disabled;
+
     public Long getStudentId() {
         return studentId;
     }
@@ -34,4 +37,11 @@ public class ExamTaskStudentObjectParam {
         this.teachClazzId = teachClazzId;
     }
 
+    public boolean isDisabled() {
+        return disabled;
+    }
+
+    public void setDisabled(boolean disabled) {
+        this.disabled = disabled;
+    }
 }

+ 6 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -179,12 +179,14 @@ public interface ExamTaskService extends IService<ExamTask> {
      * 2.选择行政班当考试对象 - BASIC_CLAZZ_STUDENT -> 以学生的行政班当考试对象集合,且学生信息只包含行政班数据。
      * </P>
      *
-     * @param examId         考试id
-     * @param courseCode     基础课程编号
-     * @param requestUser    请求的用户
+     * @param examId      考试id
+     * @param courseCode  基础课程编号
+     * @param teacher
+     * @param className
+     * @param requestUser 请求的用户
      * @return 命题任务考试对象查询结果
      */
-    List<ExamTaskStudentObjectResult> findExamTaskStudentObject(Long examId, String courseCode, SysUser requestUser) throws Exception;
+    List<ExamTaskStudentObjectResult> findExamTaskStudentObject(Long examId, String courseCode, String teacher, String className, SysUser requestUser) throws Exception;
 
     /**
      * 命题任务考生导入

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1684,11 +1684,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<ExamTaskStudentObjectResult> findExamTaskStudentObject(Long examId, String courseCode, SysUser requestUser) {
+    public List<ExamTaskStudentObjectResult> findExamTaskStudentObject(Long examId, String courseCode, String teacher, String className, SysUser requestUser) {
         Long schoolId = requestUser.getSchoolId();
         List<ExamTaskStudentObjectResult> result = new ArrayList<>();
         // 基础班级对象
-        List<BasicExamStudentResult> basicStudentResultList = basicStudentService.basicStudentList(schoolId, examId, null);
+        List<BasicExamStudentResult> basicStudentResultList = basicStudentService.basicStudentList(schoolId, examId, courseCode, teacher, className, null);
         if (!CollectionUtils.isEmpty(basicStudentResultList)) {
             LinkedMultiValueMap<Long, StudentInfo> studentInfoLinkedMultiValueMap = new LinkedMultiValueMap<>();
             Map<Long, ExamTaskStudentObjectResult> examTaskStudentObjectResultMap = new LinkedHashMap<>();
@@ -1788,7 +1788,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         }, 2);
         // 校验已经有的考生所在部门的信息是否正确
         // 导入的excel创建或查询的学生集合
-        List<BasicExamStudentResult> studentDatasource = basicStudentService.basicStudentList(requestUser.getSchoolId(), null, null);
+        List<BasicExamStudentResult> studentDatasource = basicStudentService.basicStudentList(requestUser.getSchoolId(), null, null, null, null, null);
 
         List<ExamStudentImportDto> existStudentList = examStudentImportDtoList
                 .stream()
@@ -1853,7 +1853,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
         List<String> studentCodeDatasource = examStudentImportDtoList.stream().map(ExamStudentImportDto::getStudentCode).distinct().collect(Collectors.toList());
         // 导入的excel创建或查询的学生集合
-        List<BasicExamStudentResult> basicStudentResultDatasource = basicStudentService.basicStudentList(requestUser.getSchoolId(), null, studentCodeDatasource);
+        List<BasicExamStudentResult> basicStudentResultDatasource = basicStudentService.basicStudentList(requestUser.getSchoolId(), null, null, null, null, studentCodeDatasource);
 
         // 考试对象键(考点、考场)
         List<Map<String, String>> examObjectKeyList = examStudentImportDtoList.stream().flatMap(e -> {

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -1347,6 +1347,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
         List<ExamStudent> examStudentList = new ArrayList<>();
         for (ExamTaskStudentObjectParam student : examTaskStudentObjectParamList) {
+            // 禁用考生
+            if(student.isDisabled()){
+                continue;
+            }
             Long studentId = student.getStudentId();
             BasicExamStudent basicExamStudent = basicExamStudentService.getById(studentId);
             if (basicExamStudent == null) {

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

@@ -166,6 +166,9 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
             throw ExceptionResultEnum.ERROR.exception("任务同步成功");
         }
         switch (tbSyncTask.getType()) {
+            case INIT_MARK_DATA:
+//                this.syncMarkData(this.getById(tbSyncTask.getObjectId()));
+                break;
             case GRADE_BATCH_PUSH:
                 asyncTeachCloudReportService.syncGradeBatch(gradeBatchService.getById(tbSyncTask.getObjectId()));
                 break;

+ 2 - 2
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -675,7 +675,7 @@
             edc.course_code courseCode,
             edc.course_name courseName,
             edc.paper_number paperNumber,
-            edc.course_paper_id coursePaperId,
+            et.id coursePaperId,
             edc.paper_type paperType,
             et.user_id createId,
             ed.exam_start_time examStartTime,
@@ -701,7 +701,7 @@
                               ed.exam_id = mp.exam_id
                             AND edc.paper_number = mp.paper_number
                             AND mp.status = #{markStatus})
-        GROUP BY ed.school_id , be.semester_id, ed.exam_id , edc.course_code , edc.course_name , edc.paper_number , edc.course_paper_id , edc.paper_type , et.user_id, ed.exam_start_time, ed.exam_end_time
+        GROUP BY ed.school_id , be.semester_id, ed.exam_id , edc.course_code , edc.course_name , edc.paper_number , et.id , edc.paper_type , et.user_id, ed.exam_start_time, ed.exam_end_time
     </select>
     <select id="countMakeupUsedByExamIdAndPaperNumber" resultType="java.lang.Integer">
         SELECT

+ 1 - 0
distributed-print/install/mysql/init/teachcloud_db.sql

@@ -3288,6 +3288,7 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 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', 0, 0, 0);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1132, '客观题模板导出', '/api/admin/mark/question/objective/export', 'URL', 897, 15, 'AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1133, '客观题标答导入', '/api/admin/mark/question/objective/import', 'URL', 897, 16, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1134, '编辑试卷结构', 'EditPaperStruct', 'LINK', '897', '17', 'AUTH', NULL, '1', '1', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (2000, '目标达成度', 'TargetDegreeManage', 'MENU', NULL, 13, NULL, NULL, 1, 0, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (2001, '成绩管理', 'TargetScoreManage', 'MENU', 2000, 1, NULL, '2003,2004,2005', 1, 0, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (2002, '报告管理', 'TargetReportManage', 'MENU', 2000, 2, NULL, '2021,2022,2023', 1, 0, 1);

+ 3 - 0
distributed-print/install/mysql/upgrade/3.3.1.sql

@@ -720,3 +720,6 @@ ALTER TABLE t_c_final_score ADD CONSTRAINT t_c_final_score_unique UNIQUE KEY (ex
 ALTER TABLE t_c_paper_struct DROP KEY t_c_paper_struct_unique;
 ALTER TABLE t_c_paper_struct ADD CONSTRAINT t_c_paper_struct_unique UNIQUE KEY (exam_id,course_code,paper_number,create_id);
 ALTER TABLE t_r_basic_info ADD CONSTRAINT t_r_basic_info_unique UNIQUE KEY (exam_id,course_code,paper_number,create_id);
+
+-- 2024/04/08
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1134', '编辑试卷结构', 'EditPaperStruct', 'LINK', '897', '17', 'AUTH', '1', '1', '1');

+ 4 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskApplyController.java

@@ -248,9 +248,11 @@ public class ExamTaskApplyController {
     @Transactional(rollbackFor = Exception.class)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
     public Result findExamTaskStudentObject(@RequestParam(required = false) String examId,
-                                            @RequestParam(required = false) String courseCode) throws Exception {
+                                            @RequestParam(required = false) String courseCode,
+                                            @RequestParam(required = false) String teacher,
+                                            @RequestParam(required = false) String className) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.findExamTaskStudentObject(SystemConstant.convertIdToLong(examId), courseCode, requestUser));
+        return ResultUtil.ok(examTaskService.findExamTaskStudentObject(SystemConstant.convertIdToLong(examId), courseCode, teacher, className, requestUser));
     }
 
     @ApiOperation(value = "入库申请-导入考生对象")

+ 5 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicStudentMapper.java

@@ -54,11 +54,16 @@ public interface BasicStudentMapper extends BaseMapper<BasicStudent> {
      * 根据第三方字典id查找学生集合
      *
      * @param schoolId        学校id
+     * @param teacher
+     * @param className
      * @param studentCodeList 学号集合
      * @return 学生查询结果
      */
     List<BasicExamStudentResult> findBasicStudentList(@Param("schoolId") Long schoolId,
                                                       @Param("examId") Long examId,
+                                                      @Param("courseCode") String courseCode,
+                                                      @Param("teacher") String teacher,
+                                                      @Param("className") String className,
                                                       @Param("studentCodeList") List<String> studentCodeList);
 
     List<BasicStudentExportDto> listExportData(@Param("queryParams") String queryParams,

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicStudentService.java

@@ -57,10 +57,12 @@ public interface BasicStudentService extends IService<BasicStudent> {
      *
      * @param schoolId        学校id
      * @param examId
+     * @param teacher
+     * @param className
      * @param studentCodeList 学号集合
      * @return 学生查询结果
      */
-    List<BasicExamStudentResult> basicStudentList(Long schoolId, Long examId, List<String> studentCodeList);
+    List<BasicExamStudentResult> basicStudentList(Long schoolId, Long examId, String courseCode, String teacher, String className, List<String> studentCodeList);
 
     /**
      * 新增/编辑 学生基础信息

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

@@ -94,8 +94,8 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
     }
 
     @Override
-    public List<BasicExamStudentResult> basicStudentList(Long schoolId, Long examId, List<String> studentCodeList) {
-        return this.baseMapper.findBasicStudentList(schoolId, examId, studentCodeList);
+    public List<BasicExamStudentResult> basicStudentList(Long schoolId, Long examId, String courseCode, String teacher, String className, List<String> studentCodeList) {
+        return this.baseMapper.findBasicStudentList(schoolId, examId, courseCode, teacher, className, studentCodeList);
     }
 
     @Override

+ 11 - 0
teachcloud-common/src/main/resources/mapper/BasicStudentMapper.xml

@@ -122,6 +122,8 @@
             basic_exam_student stu
                 LEFT JOIN
             basic_teach_clazz clz ON stu.clazz_id = clz.id
+                LEFT JOIN
+            sys_user su ON stu.teacher_id = su.id
         <where>
             <if test="schoolId != null">
                 and stu.school_id = #{schoolId}
@@ -129,6 +131,15 @@
             <if test="examId != null">
                 and stu.exam_id = #{examId}
             </if>
+            <if test="courseCode != null and courseCode != ''">
+                and stu.course_code = #{courseCode}
+            </if>
+            <if test="teacher != null and teacher != ''">
+                and (su.login_name like concat('%', #{teacher}, '%') or su.real_name like concat('%', #{teacher}, '%'))
+            </if>
+            <if test="className != null and className != ''">
+                and clz.clazz_name like concat('%', #{className}, '%'))
+            </if>
             <if test="studentCodeList != null and studentCodeList != '' and studentCodeList.size > 0">
                 AND stu.student_code IN
                 <foreach collection="studentCodeList" item="item" index="index" open="(" separator="," close=")">

+ 1 - 0
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -160,6 +160,7 @@ public class JobServiceImpl implements JobService {
                     tbSyncTask.setResult(TaskResultEnum.SUCCESS);
                 } catch (Exception e) {
                     tbSyncTask.setResult(TaskResultEnum.ERROR);
+                    tbSyncTask.setSummary(e.getMessage());
                     log.info("结束同步失败:" + DateDisposeUtils.dateTimeNow(DateDisposeUtils.YYYY_MM_DD_HH_MM_SS));
                 } finally {
                     tbSyncTask.setStatus(TaskStatusEnum.FINISH);

+ 2 - 0
teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.util.ExamTaskUtil;
@@ -147,6 +148,7 @@ public class PrintFinishServiceImpl implements PrintFinishService {
             }
         } catch (Exception e) {
             log.info("考生同步阅卷失败", e.getMessage());
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
         }
     }