Browse Source

3.3.0 fix

xiaofei 1 năm trước cách đây
mục cha
commit
d7dfc96dad

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

@@ -232,3 +232,6 @@ UPDATE `sys_privilege` SET `parent_id` = '489', `sequence` = '2' WHERE (`id` = '
 ALTER TABLE `mark_student`
     ADD COLUMN `exam_start_time` BIGINT(20) NULL COMMENT '考试开始时间' AFTER `assign_confirmed`,
 ADD COLUMN `exam_end_time` BIGINT(20) NULL COMMENT '考试结束时间' AFTER `exam_start_time`;
+
+ALTER TABLE `mark_paper`
+    ADD COLUMN `force_mode` TINYINT(1) NULL DEFAULT 1 COMMENT '强制评卷模式(不限为false)' AFTER `mark_mode`;

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkArchiveController.java

@@ -67,6 +67,12 @@ public class MarkArchiveController {
         markStudentService.scoreExport(query, response);
     }
 
+    @ApiOperation(value = "成绩导出")
+    @RequestMapping(value = "/score/report/download", method = RequestMethod.POST)
+    public void socreReportDownload(@Validated ArchiveStudentQuery query, HttpServletResponse response) {
+        markStudentService.scoreExport(query, response);
+    }
+
     @ApiOperation(value = "成绩报告")
     @RequestMapping(value = "score/report", method = RequestMethod.POST)
     public Result scoreReport(@RequestParam Long examId, @RequestParam String paperNumber) {

+ 12 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkController.java

@@ -3,12 +3,15 @@ package com.qmth.distributed.print.api.mark;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.mark.MarkMode;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.entity.MarkUserGroup;
 import com.qmth.teachcloud.mark.params.MarkResult;
 import com.qmth.teachcloud.mark.service.MarkService;
+import com.qmth.teachcloud.mark.service.MarkUserGroupService;
 import com.qmth.teachcloud.mark.utils.TaskLock;
 import com.qmth.teachcloud.mark.utils.TaskLockUtil;
 import io.lettuce.core.GeoArgs.Sort;
@@ -18,6 +21,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.List;
@@ -38,6 +42,8 @@ public class MarkController {
 
     @Autowired
     private MarkService markService;
+    @Resource
+    private MarkUserGroupService markUserGroupService;
     @Autowired
     private SysUserService userService;
 
@@ -102,9 +108,14 @@ public class MarkController {
     }
 
     @RequestMapping(value = "/updateSetting", method = RequestMethod.POST)
-    public Result updateSetting(HttpServletRequest request, @RequestParam String uiSetting) {
+    public Result updateSetting(@RequestParam Long examId,
+                                @RequestParam String paperNumber,
+                                @RequestParam Integer groupNumber,
+                                @RequestParam String uiSetting,
+                                @RequestParam MarkMode mode) {
         SysUser user = (SysUser) ServletUtil.getRequestUser();
         userService.updateUiSetting(user.getId(), StringEscapeUtils.unescapeHtml(StringUtils.trimToNull(uiSetting)));
+        markUserGroupService.updateMode(examId, paperNumber, groupNumber, user.getId(), mode);
         return ResultUtil.ok(true);
     }
 

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/mark/MarkMode.java

@@ -5,7 +5,7 @@ package com.qmth.teachcloud.common.enums.mark;
  */
 public enum MarkMode {
 
-    COMMON("普通"), TRACK("轨迹");
+    UNLIMITED("不限"),COMMON("普通"), TRACK("轨迹");
 
     private String name;
 

+ 0 - 20
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/paperGroup/MarkModeEnum.java

@@ -1,20 +0,0 @@
-package com.qmth.teachcloud.common.enums.paperGroup;
-
-/**
- * @Description: 评卷模式枚举类
- * @Author: CaoZixuan
- * @Date: 2022-04-12
- */
-public enum MarkModeEnum {
-    COMMON("普通"),
-    TRACK("轨迹");
-    private final String desc;
-
-    MarkModeEnum(String desc) {
-        this.desc = desc;
-    }
-
-    public String getDesc() {
-        return desc;
-    }
-}

+ 7 - 7
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/mark/MarkSettingDto.java

@@ -10,7 +10,7 @@ import com.qmth.teachcloud.mark.enums.ExamType;
 public class MarkSettingDto {
 	private ExamType examType;
 	private MarkMode mode;
-//	private Boolean forceMode;
+	private Boolean forceMode;
 	private Boolean sheetView;
 	private String sheetConfig;
 	private Boolean enableAllZore;
@@ -47,12 +47,12 @@ public class MarkSettingDto {
 	public void setMode(MarkMode mode) {
 		this.mode = mode;
 	}
-//	public Boolean getForceMode() {
-//		return forceMode;
-//	}
-//	public void setForceMode(Boolean forceMode) {
-//		this.forceMode = forceMode;
-//	}
+	public Boolean getForceMode() {
+		return forceMode;
+	}
+	public void setForceMode(Boolean forceMode) {
+		this.forceMode = forceMode;
+	}
 	public Boolean getSheetView() {
 		return sheetView;
 	}

+ 12 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkPaper.java

@@ -95,6 +95,9 @@ public class MarkPaper implements Serializable {
     @ApiModelProperty(value = "评卷模式")
     private MarkMode markMode;
 
+    @ApiModelProperty(value = "强制评卷模式")
+    private Boolean forceMode;
+
     @ApiModelProperty(value = "评卷开始时间")
     private Long markStartTime;
 
@@ -144,6 +147,7 @@ public class MarkPaper implements Serializable {
         this.status = MarkPaperStatus.FORMAL;
         this.passScore = 60D;
         this.excellentScore = 80D;
+        this.forceMode = true;
     }
 
     public Long getId() {
@@ -322,6 +326,14 @@ public class MarkPaper implements Serializable {
         this.markMode = markMode;
     }
 
+    public Boolean getForceMode() {
+        return forceMode;
+    }
+
+    public void setForceMode(Boolean forceMode) {
+        this.forceMode = forceMode;
+    }
+
     public Long getMarkStartTime() {
         return markStartTime;
     }

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkUserGroupService.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.mark.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.teachcloud.common.enums.mark.MarkMode;
 import com.qmth.teachcloud.mark.dto.mark.entrance.MarkEntranceDto;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkQualityChartDto;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkQualityDto;
@@ -54,4 +55,6 @@ public interface MarkUserGroupService extends IService<MarkUserGroup> {
     List<MarkUserGroup> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId);
 
     void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber);
+
+    void updateMode(Long examId, String paperNumber, Integer groupNumber, Long userId, MarkMode mode);
 }

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

@@ -11,6 +11,7 @@ import com.qmth.teachcloud.common.bean.dto.mark.MarkSettingDto;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.mark.MarkMode;
 import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
@@ -93,6 +94,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
         }
         UpdateWrapper<MarkPaper> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkPaper::getMarkMode, markPaper.getMarkMode())
+                .set(MarkPaper::getForceMode, !MarkMode.UNLIMITED.equals(markPaper.getMarkMode()))
                 .set(MarkPaper::getMarkStartTime, markPaper.getMarkStartTime())
                 .set(MarkPaper::getMarkEndTime, markPaper.getMarkEndTime())
                 .set(MarkPaper::getSheetView, markPaper.getSheetView())

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -704,7 +704,8 @@ public class MarkServiceImpl implements MarkService {
 
         MarkSettingDto dto = new MarkSettingDto();
         dto.setExamType(ExamType.SCAN_IMAGE);
-        dto.setMode(markPaper.getMarkMode());
+        dto.setMode(markUserGroup.getMode() != null ? markUserGroup.getMode() : MarkMode.UNLIMITED.equals(markPaper.getMarkMode()) ? MarkMode.TRACK : markPaper.getMarkMode());
+        dto.setForceMode(markPaper.getForceMode());
         dto.setSheetView(markPaper.getSheetView());
         dto.setSheetConfig(markPaper.getSheetConfig());
         dto.setEnableAllZore(false);

+ 12 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.common.bean.dto.mark.MarkUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.mark.MarkMode;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.entrance.MarkEntranceDto;
@@ -302,4 +303,15 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
                 .eq(MarkUserGroup::getGroupNumber, groupNumber);
         this.remove(updateWrapper);
     }
+
+    @Override
+    public void updateMode(Long examId, String paperNumber, Integer groupNumber, Long userId, MarkMode mode) {
+        UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(MarkUserGroup::getMode, mode)
+                .eq(MarkUserGroup::getExamId, examId)
+                .eq(MarkUserGroup::getPaperNumber, paperNumber)
+                .eq(MarkUserGroup::getGroupNumber, groupNumber)
+                .eq(MarkUserGroup::getUserId, userId);
+        this.update(updateWrapper);
+    }
 }