Browse Source

3.4.0 update

xiaofei 11 months ago
parent
commit
f9368da587

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

@@ -1291,8 +1291,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     examDetailCourse.setId(SystemConstant.getDbUuid());
                     examDetailCourse.setSchoolId(schoolId);
                     examDetailCourse.setExamDetailId(examDetail.getId());
-                    examDetailCourse.setCourseCode(examTask.getCourseCode());
-                    examDetailCourse.setCourseName(examTask.getCourseName());
+                    examDetailCourse.setCourseId(examTask.getCourseId());
                     examDetailCourse.setPaperNumber(paperNumber);
                     examDetailCourse.setClazzName(examDetailParams.getClassName());
                     examDetailCourse.setTotalSubjects(examDetailParams.getTotalSubjects());

+ 5 - 0
distributed-print/install/mysql/upgrade/3.4.0.sql

@@ -316,3 +316,8 @@ VALUES(2107, '扫描任务统计导出', '/api/admin/statistics/scan/count/expor
 
 UPDATE `sys_privilege` SET `related` = '71,167,286,287,424,477,417,420,421,441,442,640,641,636' WHERE (`id` = '283');
 ALTER TABLE `exam_task_temp` ADD COLUMN `course_id` BIGINT(20) NULL COMMENT '课程ID' AFTER `batch_no`;
+
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('1181', '客观题统分', 'ObjectiveCalculate', 'BUTTON', '1182', '9', 'AUTH', '969', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1182', '客观题统分', '/api/admin/mark/student/objective/calculate_batch', 'URL', '946', '13', 'AUTH', '1', '1', '1');
+
+ALTER TABLE `basic_school` ADD COLUMN `exam_task_instr` VARCHAR(500) NULL COMMENT '广药命题界面提示信息' AFTER `background_image`;

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

@@ -453,6 +453,8 @@ public class SysController {
             // 若为在线激活,则允许手机号登录
             map.put("phoneLogin", authInfoService.allowPhoneLogin(basicSchool.getId()));
             map.put("schoolCode", code);
+            // 广药命题界面提示信息
+            map.put("examTaskInstr", basicSchool.getExamTaskInstr());
         } else {
             SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.ADMIN_LOGO_URL);
             map.put(SystemConstant.LOGO, Objects.nonNull(sysConfig) ? sysConfig.getConfigValue() : null);

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkStudentController.java

@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
+import java.util.List;
 
 /**
  * <p>
@@ -68,6 +69,13 @@ public class MarkStudentController {
         return ResultUtil.ok(markStudentService.calcObjectiveScore(examId, paperNumber));
     }
 
+    @ApiOperation(value = "客观题统分-批量")
+    @RequestMapping(value = "/objective/calculate_batch", method = RequestMethod.POST)
+    @OperationLogDetail(operationType = OperationTypeEnum.SAVE, detail = "客观题统分-批量操作")
+    public Result calcObjectiveScoreBatch(@ApiParam(value = "id集合", required = true) @RequestParam List<Long> ids) {
+        return ResultUtil.ok(markStudentService.calcBatchObjectiveScore(ids));
+    }
+
     @ApiOperation(value = "成绩导出")
     @RequestMapping(value = "score/export", method = RequestMethod.POST)
     public void scoreExport(@ApiParam(value = "考试ID", required = true) @RequestParam Long examId, @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,

+ 3 - 2
teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicSchoolController.java

@@ -55,10 +55,11 @@ public class BasicSchoolController {
                          @RequestParam(value = "logo", required = false) MultipartFile logo,
                          @RequestParam(value = "logoMd5", required = false) String logoMd5,
                          @RequestParam(value = "backgroundImage", required = false) MultipartFile backgroundImage,
-                         @RequestParam(value = "backgroundImageMd5", required = false) String backgroundImageMd5) {
+                         @RequestParam(value = "backgroundImageMd5", required = false) String backgroundImageMd5,
+                         @RequestParam(value = "examTaskInstr", required = false) String examTaskInstr) {
         return ResultUtil.ok(
                 basicSchoolService.updateSchool(id, code, name, initPassword, defaultSchool, hasPaperNumber, logo,
-                        logoMd5, backgroundImage, backgroundImageMd5));
+                        logoMd5, backgroundImage, backgroundImageMd5, examTaskInstr));
     }
 }
 

+ 12 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicSchool.java

@@ -62,6 +62,10 @@ public class BasicSchool extends BaseEntity implements Serializable {
     @TableField(value = "background_image")
     private String backgroundImage;
 
+    @ApiModelProperty(value = "命题任务提示")
+    @TableField(value = "exam_task_instr")
+    private String examTaskInstr;
+
     public BasicSchool() {
 
     }
@@ -204,4 +208,12 @@ public class BasicSchool extends BaseEntity implements Serializable {
     public void setBackgroundImage(String backgroundImage) {
         this.backgroundImage = backgroundImage;
     }
+
+    public String getExamTaskInstr() {
+        return examTaskInstr;
+    }
+
+    public void setExamTaskInstr(String examTaskInstr) {
+        this.examTaskInstr = examTaskInstr;
+    }
 }

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

@@ -18,7 +18,7 @@ public interface BasicSchoolService extends IService<BasicSchool> {
 
     List<BasicSchool> listSchool(String code);
 
-    boolean updateSchool(Long id, String code, String name, String initPassword, Boolean defaultSchool, Boolean hasPaperNumber, MultipartFile logo, String logoMd5, MultipartFile backgroundImage, String backgroundImageMd5);
+    boolean updateSchool(Long id, String code, String name, String initPassword, Boolean defaultSchool, Boolean hasPaperNumber, MultipartFile logo, String logoMd5, MultipartFile backgroundImage, String backgroundImageMd5, String examTaskInstr);
 
     List<BasicSchool> listByDefaultSchool(boolean defaultSchool);
 

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

@@ -71,7 +71,7 @@ public class BasicSchoolServiceImpl extends ServiceImpl<BasicSchoolMapper, Basic
     }
 
     @Override
-    public boolean updateSchool(Long id, String code, String name, String initPassword, Boolean defaultSchool, Boolean hasPaperNumber, MultipartFile logo, String logoMd5, MultipartFile backgroundImage, String backgroundImageMd5) {
+    public boolean updateSchool(Long id, String code, String name, String initPassword, Boolean defaultSchool, Boolean hasPaperNumber, MultipartFile logo, String logoMd5, MultipartFile backgroundImage, String backgroundImageMd5, String examTaskInstr) {
         BasicSchool basicSchool = this.getById(id);
         basicSchool.setCode(code);
         basicSchool.setName(name);
@@ -127,6 +127,7 @@ public class BasicSchoolServiceImpl extends ServiceImpl<BasicSchoolMapper, Basic
         }
         basicSchool.setDefaultSchool(defaultSchool);
         basicSchool.setHasPaperNumber(hasPaperNumber);
+        basicSchool.setExamTaskInstr(examTaskInstr);
 
         // 清除学校缓存
         commonCacheService.removeSchoolCache(basicSchool.getCode());

+ 10 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/score/CheckScoreListDto.java

@@ -5,6 +5,8 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 
 public class CheckScoreListDto {
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long markPaperId;
     @JsonSerialize(using = ToStringSerializer.class)
     private Long examId;
     private String courseCode;
@@ -13,6 +15,14 @@ public class CheckScoreListDto {
     private Integer studentCount;
     private Integer uploadCount;
 
+    public Long getMarkPaperId() {
+        return markPaperId;
+    }
+
+    public void setMarkPaperId(Long markPaperId) {
+        this.markPaperId = markPaperId;
+    }
+
     public Long getExamId() {
         return examId;
     }

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -226,4 +226,6 @@ public interface MarkStudentService extends IService<MarkStudent> {
     MarkStudent findByBasicStudentId(Long basicStudentId);
 
     void updateBasicExamStudentStatus(Long markStudentId);
+
+    boolean calcBatchObjectiveScore(List<Long> ids);
 }

+ 15 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -1918,4 +1918,19 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             this.baseMapper.updateBasicExamStudentStatus(status.name(), markStudent.getBasicStudentId());
         }
     }
+
+    @Override
+    public boolean calcBatchObjectiveScore(List<Long> ids) {
+        for (Long id : ids) {
+            MarkPaper markPaper = markPaperService.getById(id);
+            if (markPaper != null) {
+                if (lockService.trylock(LockType.SCORE_CALCULATE, markPaper.getId())) {
+                    markSyncService.calcObjectiveScore(markPaper);
+                } else {
+                    throw ExceptionResultEnum.ERROR.exception("客观题正在统分,请稍后再试");
+                }
+            }
+        }
+        return true;
+    }
 }

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

@@ -91,6 +91,7 @@
     </select>
     <select id="listStudentScoreList" resultType="com.qmth.teachcloud.mark.dto.mark.score.CheckScoreListDto">
         SELECT
+        mp.id markPaperId,
         mp.exam_id examId,
         bc.code courseCode,
         bc.name courseName,

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

@@ -820,7 +820,11 @@
                ms.exam_id,
                ms.exam_place,
                ms.exam_room,
-               ms.scan_status
+               ms.scan_status,
+               ms.is_absent absent,
+               ms.is_upload upload,
+               ms.is_manual_absent manualAbsent,
+               ms.omr_absent
                from mark_student ms
             LEFT JOIN
             basic_exam_student bes on ms.basic_student_id = bes.id