xiaofei 11 ماه پیش
والد
کامیت
7a083ed482

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TBTaskPdfMapper.java

@@ -19,5 +19,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface TBTaskPdfMapper extends BaseMapper<TBTaskPdf> {
 
-    IPage<TaskPdfResult> pageData(@Param("page") Page<TaskPdfResult> page, @Param("examId") Long examId, @Param("printPlanId") String printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("status") TaskStatusEnum status, @Param("result") TaskResultEnum result, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime);
+    IPage<TaskPdfResult> pageData(@Param("page") Page<TaskPdfResult> page, @Param("examId") Long examId, @Param("printPlanId") String printPlanId, @Param("courseId") Long courseId, @Param("paperNumber") String paperNumber, @Param("status") TaskStatusEnum status, @Param("result") TaskResultEnum result, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBTaskPdfService.java

@@ -33,7 +33,7 @@ public interface TBTaskPdfService extends IService<TBTaskPdf> {
 
     int countRunningByExamDetailIds(List<Long> examDetailIds);
 
-    IPage<TaskPdfResult> pageData(Page<TaskPdfResult> page, Long examId, String printPlanId, String courseCode, String paperNumber, TaskStatusEnum status, TaskResultEnum result, String examPlace, String examRoom, Long examStartTime, Long examEndTime);
+    IPage<TaskPdfResult> pageData(Page<TaskPdfResult> page, Long examId, String printPlanId, Long courseId, String paperNumber, TaskStatusEnum status, TaskResultEnum result, String examPlace, String examRoom, Long examStartTime, Long examEndTime);
 
     List<TBTaskPdf> listWaitingTask();
 

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

@@ -1634,9 +1634,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 list2 = ExamDetailCourses.stream().map(ExamDetailCourse::getPaperNumber).distinct().collect(Collectors.toList());
             }
             list.addAll(list2);
-            return list.stream().distinct().collect(Collectors.toList());
+            return list.stream().filter(m->!m.endsWith("作废")).distinct().collect(Collectors.toList());
         } else {
-            return examDetailCourseService.listPaperNumberByPrintPlanId(param, printPlanIdList, orgIds);
+            List<String> paperNumberList = examDetailCourseService.listPaperNumberByPrintPlanId(param, printPlanIdList, orgIds);
+            return paperNumberList.stream().filter(m->!m.endsWith("作废")).distinct().collect(Collectors.toList());
         }
     }
 

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

@@ -105,11 +105,11 @@ public class TBTaskPdfServiceImpl extends ServiceImpl<TBTaskPdfMapper, TBTaskPdf
     }
 
     @Override
-    public IPage<TaskPdfResult> pageData(Page<TaskPdfResult> page, Long examId, String printPlanId, String courseCode, String paperNumber, TaskStatusEnum status, TaskResultEnum result, String examPlace, String examRoom, Long examStartTime, Long examEndTime) {
+    public IPage<TaskPdfResult> pageData(Page<TaskPdfResult> page, Long examId, String printPlanId, Long courseId, String paperNumber, TaskStatusEnum status, TaskResultEnum result, String examPlace, String examRoom, Long examStartTime, Long examEndTime) {
         if (examId == null) {
             throw ExceptionResultEnum.ERROR.exception("请选择考试");
         }
-        return this.baseMapper.pageData(page, examId, printPlanId, courseCode, paperNumber, status, result, examPlace, examRoom, examStartTime, examEndTime);
+        return this.baseMapper.pageData(page, examId, printPlanId, courseId, paperNumber, status, result, examPlace, examRoom, examStartTime, examEndTime);
     }
 
     @Override

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

@@ -267,7 +267,7 @@
                 and c.real_name like concat('%',#{userName},'%')
             </if>
         </where>
-        order by a.create_time desc
+        order by a.id desc
     </select>
     <select id="listTaskReviewUnaudited" resultType="com.qmth.distributed.print.business.bean.dto.ExamTaskDto">
         select

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

@@ -49,8 +49,8 @@
             <if test="printPlanId != null">
                 and tp.print_plan_id = #{printPlanId}
             </if>
-            <if test="courseCode != null">
-                and exists (select 1 from exam_detail_course edc where ed.id = edc.exam_detail_id and edc.course_code = #{courseCode})
+            <if test="courseId != null">
+                and exists (select 1 from exam_detail_course edc where ed.id = edc.exam_detail_id and edc.course_id = #{courseId})
             </if>
             <if test="paperNumber != null">
                 and exists (select 1 from exam_detail_course edc where ed.id = edc.exam_detail_id and edc.paper_number = #{paperNumber})

+ 2 - 2
distributed-print/install/mysql/init/teachcloud_db.sql

@@ -427,7 +427,7 @@ CREATE TABLE IF NOT EXISTS `basic_school` (
   `update_id` bigint DEFAULT NULL COMMENT '更新人',
   `update_time` bigint DEFAULT NULL COMMENT '更新时间',
   `logo` mediumtext COMMENT '学校logo',
-  `init_password` varchar(100) DEFAULT NULL COMMENT '该学校用户的初始密码,默认为12345678',
+  `init_password` varchar(100) DEFAULT NULL COMMENT '该学校用户的初始密码,默认为Qmth87863577',
   `default_school` tinyint(1) DEFAULT '0',
   `has_paper_number` tinyint(1) DEFAULT '0' COMMENT '该学校是否有固定试卷编号',
   `background_image` varchar(500) DEFAULT NULL COMMENT '学校首页背景图',
@@ -2528,7 +2528,7 @@ CREATE TABLE IF NOT EXISTS `sys_config` (
 -- ----------------------------
 -- Records of sys_config
 -- ----------------------------
-INSERT INTO `sys_config` (`id`, `school_id`, `org_id`, `config_key`, `config_name`, `config_value`, `remark`, `enable`, `sort`, `create_id`, `create_time`, `update_id`, `update_time`) VALUES (1, NULL, NULL, 'sys.user.initPassword', '初始密码', '123456', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` (`id`, `school_id`, `org_id`, `config_key`, `config_name`, `config_value`, `remark`, `enable`, `sort`, `create_id`, `create_time`, `update_id`, `update_time`) VALUES (1, NULL, NULL, 'sys.user.initPassword', '初始密码', 'Qmth87863577', NULL, 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` (`id`, `school_id`, `org_id`, `config_key`, `config_name`, `config_value`, `remark`, `enable`, `sort`, `create_id`, `create_time`, `update_id`, `update_time`) VALUES (2, NULL, NULL, 'sys.warning.days', '预警天数', '3', NULL, 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` (`id`, `school_id`, `org_id`, `config_key`, `config_name`, `config_value`, `remark`, `enable`, `sort`, `create_id`, `create_time`, `update_id`, `update_time`) VALUES (3, NULL, NULL, 'sys.code.enable', '是否启用短信验证码', 'true', 'true-启用,false-禁用', 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` (`id`, `school_id`, `org_id`, `config_key`, `config_name`, `config_value`, `remark`, `enable`, `sort`, `create_id`, `create_time`, `update_id`, `update_time`) VALUES (4, NULL, NULL, 'sys.message.enable', '是否启用短信消息提示', 'true', 'true-启用,false-禁用', 1, 1, 1, NULL, NULL, NULL);

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

@@ -55,7 +55,7 @@ public class TBTaskPdfController {
     public Result taskQuery(@ApiParam(value = "学期ID", required = true) @RequestParam(value = "semesterId", required = false) Long semesterId,
                             @ApiParam(value = "考试ID", required = true) @RequestParam(value = "examId", required = false) Long examId,
                             @ApiParam(value = "印刷计划ID") @RequestParam(required = false) String printPlanId,
-                            @ApiParam(value = "课程代码") @RequestParam(value = "courseCode", required = false) String courseCode,
+                            @ApiParam(value = "课程代码") @RequestParam(value = "courseId", required = false) Long courseId,
                             @ApiParam(value = "试着编号") @RequestParam(value = "paperNumber", required = false) String paperNumber,
                             @ApiParam(value = "任务状态") @RequestParam(value = "status", required = false) TaskStatusEnum status,
                             @ApiParam(value = "任务数据结果") @RequestParam(value = "result", required = false) TaskResultEnum result,
@@ -71,7 +71,7 @@ public class TBTaskPdfController {
         if (examId == null) {
             throw ExceptionResultEnum.EXAM_ID_IS_NULL.exception();
         }
-        IPage<TaskPdfResult> taskListResultIPage = tbTaskPdfService.pageData(new Page<>(pageNumber, pageSize), examId, printPlanId, courseCode, paperNumber, status, result, examPlace, examRoom, examStartTime, examEndTime);
+        IPage<TaskPdfResult> taskListResultIPage = tbTaskPdfService.pageData(new Page<>(pageNumber, pageSize), examId, printPlanId, courseId, paperNumber, status, result, examPlace, examRoom, examStartTime, examEndTime);
         return ResultUtil.ok(taskListResultIPage);
     }
 

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

@@ -53,7 +53,7 @@ public class SystemConstant {
     public static final String GDPU_TODOTASK_URL = "/api/open/mq/gdpu/todotask";
     public static final String GDPU_DONETASK_URL = "/api/open/mq/gdpu/donetask";
 
-    public static final String INIT_PASSWORD = "12345678";
+    public static final String INIT_PASSWORD = "Qmth87863577";
     public static final String OLD_INIT_PASSWORD = "123456";
 
     /**

+ 1 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicCourseMapper.java

@@ -75,13 +75,9 @@ public interface BasicCourseMapper extends BaseMapper<BasicCourse> {
      */
     List<String> findTeachCourseCourseName(@Param("schoolId") Long schoolId, @Param("courseCodeSet") Set<String> courseCodeSet);
 
-    int countTeachCourseByCourseId(Long courseId);
-
     int countBasicExamStudentByCourseId(Long courseId);
 
     int countExamTaskByCourseId(Long courseId);
 
-    int countExamCardByCourseId(Long courseId);
-
-    int countMarkPaperByCourseId(Long courseId);
+    void deleteTeachCourseByCourseIds(@Param("idList") List<Long> idList);
 }

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

@@ -156,7 +156,6 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean removeBasicCourseBatch(List<Long> idList) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (CollectionUtils.isEmpty(idList)) {
             throw ExceptionResultEnum.ERROR.exception("请选择删除的课程");
         }
@@ -166,11 +165,6 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             if (basicCourse == null) {
                 continue;
             }
-            // 教师课程数据
-            int countTeachCourseByCourseId = this.baseMapper.countTeachCourseByCourseId(courseId);
-            if (countTeachCourseByCourseId > 0) {
-                throw ExceptionResultEnum.ERROR.exception("课程代码[" + basicCourse.getCode() + "],课程名称[" + basicCourse.getName() + "]已有老师绑定,不能删除");
-            }
             // 考生管理
             int countBasicExamStudentByCourseId = this.baseMapper.countBasicExamStudentByCourseId(courseId);
             if (countBasicExamStudentByCourseId > 0) {
@@ -181,18 +175,9 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             if (countExamTaskByCourseId > 0) {
                 throw ExceptionResultEnum.ERROR.exception("课程代码[" + basicCourse.getCode() + "],课程名称[" + basicCourse.getName() + "]下已有命题数据,不能删除");
             }
-            // 题卡管理
-            int countExamCardByCourseId = this.baseMapper.countExamCardByCourseId(courseId);
-            if (countExamCardByCourseId > 0) {
-                throw ExceptionResultEnum.ERROR.exception("课程代码[" + basicCourse.getCode() + "],课程名称[" + basicCourse.getName() + "]下已有题卡数据,不能删除");
-            }
-            // 扫描阅卷课程
-            int countMarkPaperByCourseId = this.baseMapper.countMarkPaperByCourseId(courseId);
-            if (countMarkPaperByCourseId > 0) {
-                throw ExceptionResultEnum.ERROR.exception("课程代码[" + basicCourse.getCode() + "],课程名称[" + basicCourse.getName() + "]下已有扫描课程数据,不能删除");
-            }
         }
-
+        // 删除课程管理中老师课程
+        this.baseMapper.deleteTeachCourseByCourseIds(idList);
         return this.removeByIds(idList);
     }
 
@@ -297,46 +282,52 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             } else {
                 throw ExceptionResultEnum.ERROR.exception("只能导入后缀为.xls或.xlsx文件");
             }
-
             List<BasicCourseImportDto> courseImportDtoList = excelReader.getObjectList(BasicCourseImportDto.class);
             if (CollectionUtils.isEmpty(courseImportDtoList)) {
                 throw ExceptionResultEnum.ERROR.exception("未读取到有效数据");
             }
-
+            List<BasicCourse> basicCourseList = new ArrayList<>();
+            List<SysOrg> sysOrgList = sysOrgService.getSecondOrg(sysUser.getSchoolId(), null);
+            if (CollectionUtils.isEmpty(sysOrgList)) {
+                throw ExceptionResultEnum.ERROR.exception("学校没有学院机构");
+            }
+            Map<String, Long> teachingRoomNameIdMap = sysOrgList.stream().collect(Collectors.toMap(SysOrg::getName, SysOrg::getId));
             for (BasicCourseImportDto basicCourseImportDto : courseImportDtoList) {
                 String courseName = basicCourseImportDto.getCourseName();
                 String courseCode = basicCourseImportDto.getCourseCode();
                 String teachingRoomName = basicCourseImportDto.getTeachingRoomName();
                 // 所有字段为空,跳过
-                if(StringUtils.isAllBlank(courseCode, courseName, teachingRoomName)){
+                if (StringUtils.isAllBlank(courseCode, courseName, teachingRoomName)) {
                     continue;
                 }
-                if (StringUtils.isBlank(courseName) || StringUtils.isBlank(courseCode) || StringUtils.isBlank(teachingRoomName)) {
-                    throw ExceptionResultEnum.ERROR.exception("课程名称、课程代码、开课学院不能为空");
+                if (StringUtils.isAnyBlank(courseCode, courseName, teachingRoomName)) {
+                    throw ExceptionResultEnum.ERROR.exception("课程代码、课程名称、开课学院不能为空");
                 }
                 // 去空格
                 courseName = StringUtils.deleteWhitespace(courseName);
                 courseCode = StringUtils.deleteWhitespace(courseCode);
                 teachingRoomName = StringUtils.deleteWhitespace(teachingRoomName);
                 // 校验开课学院
-                List<SysOrg> sysOrgList = sysOrgService.getSecondOrg(sysUser.getSchoolId(), teachingRoomName);
-                if (CollectionUtils.isEmpty(sysOrgList)) {
+                if (!teachingRoomNameIdMap.containsKey(teachingRoomName)) {
                     throw ExceptionResultEnum.ERROR.exception("开课学院[" + teachingRoomName + "]在学院层级不存在");
                 }
-                SysOrg sysOrg = sysOrgList.get(0);
+
+                Long teachingRoomId = teachingRoomNameIdMap.get(teachingRoomName);
+
                 // 校验课程代码和开课学院
-                BasicCourse basicCourse = this.getByTeachRoomIdAndCode(sysOrg.getId(), courseCode);
+                BasicCourse basicCourse = this.getByTeachRoomIdAndCode(teachingRoomId, courseCode);
                 if (basicCourse != null) {
                     basicCourse.setName(courseName);
                     basicCourse.setUpdateId(sysUser.getId());
                     basicCourse.setUpdateTime(System.currentTimeMillis());
                     basicCourse.setEnable(true);
                 } else {
-                    basicCourse = new BasicCourse(sysUser.getSchoolId(), sysOrg.getId(), courseCode, courseName);
+                    basicCourse = new BasicCourse(sysUser.getSchoolId(), teachingRoomId, courseCode, courseName);
                     basicCourse.insertInfo(sysUser.getId());
                 }
-                this.saveOrUpdate(basicCourse);
+                basicCourseList.add(basicCourse);
             }
+            this.saveOrUpdateBatch(basicCourseList);
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception("导入失败:" + e.getMessage());
         }

+ 6 - 9
teachcloud-common/src/main/resources/mapper/BasicCourseMapper.xml

@@ -26,6 +26,12 @@
                update_time
         from basic_course
     </sql>
+    <delete id="deleteTeachCourseByCourseIds">
+        delete from teach_course where course_id in 
+            <foreach collection="idList" item="id" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+    </delete>
     <select id="listCoursesByUserId" resultMap="BaseResultMap">
         SELECT a.id,
                a.code,
@@ -199,19 +205,10 @@
             </if>
         </where>
     </select>
-    <select id="countTeachCourseByCourseId" resultType="java.lang.Integer">
-        select count(1) from teach_course where course_id = #{courseId}
-    </select>
     <select id="countBasicExamStudentByCourseId" resultType="java.lang.Integer">
         select count(1) from basic_exam_student where course_id = #{courseId}
     </select>
     <select id="countExamTaskByCourseId" resultType="java.lang.Integer">
         select count(1) from exam_task where course_id = #{courseId}
     </select>
-    <select id="countExamCardByCourseId" resultType="java.lang.Integer">
-        select count(1) from exam_card where course_id = #{courseId}
-    </select>
-    <select id="countMarkPaperByCourseId" resultType="java.lang.Integer">
-        select count(1) from mark_paper where course_id = #{courseId}
-    </select>
 </mapper>

+ 1 - 1
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -112,7 +112,7 @@
         mark_paper mp
         LEFT JOIN basic_course bc ON mp.course_id = bc.id
         LEFT JOIN sys_org so ON bc.teaching_room_id = so.id
-        LEFT JOIN (SELECT exam_id, paper_number, count(1) student_count FROM  (select exam_id, paper_number,basic_student_id from mark_student where exam_id = #{examId}
+         JOIN (SELECT exam_id, paper_number, count(1) student_count FROM  (select exam_id, paper_number,basic_student_id from mark_student where exam_id = #{examId}
         <if test="paperNumber != null and paperNumber != ''">
             AND paper_number = #{paperNumber}
         </if>