Browse Source

修改枚举接收;新增原卷遮盖配置接口

yin 14 hours ago
parent
commit
0488ec6e83

+ 31 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/bean/PictureConfigVo.java

@@ -0,0 +1,31 @@
+package cn.com.qmth.stmms.biz.exam.bean;
+
+import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+public class PictureConfigVo {
+
+    @ApiModelProperty("图片配置")
+    private List<PictureConfigItem> pictureConfigItemList;
+
+    @ApiModelProperty("考生图片地址")
+    private List<String> studentUrl;
+
+    public List<PictureConfigItem> getPictureConfigItemList() {
+        return pictureConfigItemList;
+    }
+
+    public void setPictureConfigItemList(List<PictureConfigItem> pictureConfigItemList) {
+        this.pictureConfigItemList = pictureConfigItemList;
+    }
+
+    public List<String> getStudentUrl() {
+        return studentUrl;
+    }
+
+    public void setStudentUrl(List<String> studentUrl) {
+        this.studentUrl = studentUrl;
+    }
+}

+ 5 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamStudentDao.java

@@ -351,4 +351,9 @@ public interface ExamStudentDao extends JpaRepository<ExamStudent, Integer>, Jpa
 
     @Query(value = "select s.id from eb_exam_student s where s.exam_id=?1 and s.upload=true and s.absent=false and s.breach=false and s.answer_ai_check_info is null ", nativeQuery = true)
     public Integer answerAiCheckUnFinish(Integer examId);
+
+    @Query("select max(s.sheetCount) from ExamStudent s where s.examId=?1")
+    public Integer findMaxSheetCountByExamId(Integer examId);
+    @Query("select max(s.sheetCount) from ExamStudent s where s.examId=?1 and s.subjectCode=?2 ")
+    Integer findMaxSheetCountByExamIdAndSubjectCode(Integer examId, String subejctCode);
 }

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -251,4 +251,8 @@ public interface ExamStudentService {
     void answerAiCheckClear(Integer studentId);
 
     Boolean answerAiCheckFinish(Integer examId);
+
+    Integer findMaxSheetCountByExamId(Integer examId);
+
+    Integer findMaxSheetCountByExamIdAndSubjectCode(Integer examId, String subejctCode);
 }

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -1841,4 +1841,14 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         Integer sid = studentDao.answerAiCheckUnFinish(examId);
         return sid == null;
     }
+
+    @Override
+    public Integer findMaxSheetCountByExamId(Integer examId) {
+        return studentDao.findMaxSheetCountByExamId(examId);
+    }
+
+    @Override
+    public Integer findMaxSheetCountByExamIdAndSubjectCode(Integer examId, String subejctCode) {
+        return studentDao.findMaxSheetCountByExamIdAndSubjectCode(examId,subejctCode);
+    }
 }

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/Task.java

@@ -149,6 +149,8 @@ public class Task implements Serializable {
 
     private Boolean selectiveError;
 
+    private String answerAiCheckInfo;
+
     public Integer getLibraryId() {
         return libraryId;
     }
@@ -380,4 +382,12 @@ public class Task implements Serializable {
     public void setSelectiveError(Boolean selectiveError) {
         this.selectiveError = selectiveError;
     }
+
+    public String getAnswerAiCheckInfo() {
+        return answerAiCheckInfo;
+    }
+
+    public void setAnswerAiCheckInfo(String answerAiCheckInfo) {
+        this.answerAiCheckInfo = answerAiCheckInfo;
+    }
 }

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/TaskServiceImpl.java

@@ -118,6 +118,7 @@ public class TaskServiceImpl implements TaskService {
         }
         task.setArbitrateIndex(history.getQuestionIndex());
         task.setCollationLabelCode(student.getCollationLabelCode());
+        task.setAnswerAiCheckInfo(student.getAnswerAiCheckInfo());
         return task;
     }
 
@@ -180,6 +181,7 @@ public class TaskServiceImpl implements TaskService {
 //        task.setStudentName(student.getName());
 //        task.setExamNumber(library.getExamNumber());
         task.setCollationLabelCode(student.getCollationLabelCode());
+        task.setAnswerAiCheckInfo(student.getAnswerAiCheckInfo());
         task.setSubject(subject);
         if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
             task.setJsonUrl(fileService.getJsonUri(library.getExamId(), library.getSecretNumber()));
@@ -227,6 +229,7 @@ public class TaskServiceImpl implements TaskService {
 //        task.setStudentName(student.getName());
 //        task.setExamNumber(library.getExamNumber());
         task.setCollationLabelCode(student.getCollationLabelCode());
+        task.setAnswerAiCheckInfo(student.getAnswerAiCheckInfo());
         task.setSubject(subject);
         task.setQuestionList(buildTrialStep(group, library));
         if (StringUtils.isNotBlank(student.getObjectiveScoreList())) {
@@ -417,6 +420,7 @@ public class TaskServiceImpl implements TaskService {
 //        task.setStudentName(student.getName());
 //        task.setExamNumber(student.getExamNumber());
         task.setCollationLabelCode(student.getCollationLabelCode());
+        task.setAnswerAiCheckInfo(student.getAnswerAiCheckInfo());
         task.setSubject(subject);
         if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
             task.setJsonUrl(fileService.getJsonUri(student.getExamId(), student.getSecretNumber()));

+ 37 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/ExamController.java

@@ -3,7 +3,7 @@ package cn.com.qmth.stmms.api.controller.admin;
 import java.math.BigDecimal;
 import java.util.*;
 
-import cn.com.qmth.stmms.biz.exam.service.CheckStudentService;
+import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -12,14 +12,18 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import com.qmth.boot.core.collection.PageResult;
+import com.qmth.boot.core.exception.StatusException;
 
 import cn.com.qmth.stmms.api.controller.BaseApiController;
 import cn.com.qmth.stmms.biz.exam.bean.*;
 import cn.com.qmth.stmms.biz.exam.model.Exam;
+import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
+import cn.com.qmth.stmms.biz.exam.service.CheckStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
+import cn.com.qmth.stmms.biz.file.service.FileService;
 import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.biz.school.model.School;
 import cn.com.qmth.stmms.biz.school.service.SchoolService;
@@ -58,9 +62,13 @@ public class ExamController extends BaseApiController {
 
     @Autowired
     private ExamService examService;
+
     @Autowired
     private CheckStudentService checkStudentService;
 
+    @Autowired
+    private FileService fileService;
+
     @ApiOperation(value = "保存考试ai检测预估时间")
     @ResponseBody
     @RequestMapping(value = "answer-ai-check/finish-time", method = RequestMethod.POST)
@@ -330,4 +338,32 @@ public class ExamController extends BaseApiController {
         return overview;
     }
 
+    @ApiOperation(value = "获取考试原图遮盖配置")
+    @RequestMapping(value = "/sheetConfig", method = RequestMethod.POST)
+    @ResponseBody
+    public PictureConfigVo version(@RequestParam Integer examId) {
+        PictureConfigVo vo = new PictureConfigVo();
+        Exam exam = examService.findById(examId);
+        if (exam == null) {
+            throw new StatusException("考试不存在");
+        }
+        List<PictureConfigItem> list = PictureConfigItem.parse(exam.getSheetConfig());
+        vo.setPictureConfigItemList(list);
+        Integer sheetCount = studentService.findMaxSheetCountByExamId(examId);
+        ExamStudentSearchQuery query = new ExamStudentSearchQuery();
+        query.setExamId(examId);
+        query.setUpload(true);
+        query.setSheetCount(sheetCount/2);
+        List<ExamStudent> examStudents = examStudentService.findByQuery(query).getResult();
+        if (examStudents.size() > 0) {
+            ExamStudent student = examStudents.get(0);
+            List<String> sheetUris= fileService.getSheetUris(student.getExamId(), student.getExamNumber(), 1, sheetCount);
+            vo.setStudentUrl(sheetUris);
+            return vo;
+        }else{
+            throw new StatusException("没有已上传的考生");
+        }
+    }
+
+
 }

+ 30 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/MarkGroupController.java

@@ -7,6 +7,9 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 
 import cn.com.qmth.stmms.biz.exam.bean.MarkerGroupVo;
+import cn.com.qmth.stmms.biz.exam.bean.PictureConfigVo;
+import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
+import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.biz.user.model.User;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
@@ -623,4 +626,31 @@ public class MarkGroupController extends BaseApiController {
         }
         return array;
     }
+
+    @ApiOperation(value = "获取考试原图遮盖配置")
+    @RequestMapping(value = "/sheetConfig", method = RequestMethod.POST)
+    @ResponseBody
+    public PictureConfigVo version(@RequestParam Integer examId,@RequestParam String subejctCode,@RequestParam Integer groupNumber) {
+        PictureConfigVo vo = new PictureConfigVo();
+        MarkGroup group = groupService.findOne(examId,subejctCode,groupNumber);
+        if (group == null) {
+            throw new StatusException("分组不存在");
+        }
+        List<PictureConfigItem> list = PictureConfigItem.parse(group.getPicList());
+        vo.setPictureConfigItemList(list);
+        Integer sheetCount = studentService.findMaxSheetCountByExamIdAndSubjectCode(examId,subejctCode);
+        ExamStudentSearchQuery query = new ExamStudentSearchQuery();
+        query.setExamId(examId);
+        query.setUpload(true);
+        query.setSheetCount(sheetCount/2);
+        List<ExamStudent> examStudents = studentService.findByQuery(query).getResult();
+        if (examStudents.size() > 0) {
+            ExamStudent student = examStudents.get(0);
+            List<String> sheetUris= fileService.getSheetUris(student.getExamId(), student.getExamNumber(), 1, sheetCount);
+            vo.setStudentUrl(sheetUris);
+            return vo;
+        }else{
+            throw new StatusException("没有已上传的考生");
+        }
+    }
 }

+ 11 - 17
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/UserController.java

@@ -197,21 +197,15 @@ public class UserController extends BaseApiController {
     @Logging(menu = "新增用户", type = LogType.ADD)
     @ResponseBody
     public ResultMessage save(User user, @RequestParam(required = false) String subjectCodeString,
-            @RequestParam(required = false) String examIdString, @RequestParam(required = false) UserSource querySource,
+            @RequestParam(required = false) String examIdString, @RequestParam(required = false) String colleges,
             @RequestParam(required = false) MultipartFile studentFile) {
         User current = getApiUser().getUser();
         int examId = getSessionExamId();
-        User previous = null;
-        if (user.getId() != null) {
-            previous = userService.findById(user.getId());
-        }
-        AddStudentInfo suc = null;
         String message = validate(user, subjectCodeString, examIdString);
         if (message != null) {
             throw new StatusException(message);
         }
-        String password = StringEscapeUtils.unescapeHtml(user.getPassword());
-        user.setPassword(EncryptUtils.md5(password));
+        user.setPassword(EncryptUtils.md5(user.getPassword()));
         user.setSchoolId(current.getSchoolId());
         user.setSource(UserSource.INTERNAL);
         user.setCreatedTime(new Date());
@@ -225,11 +219,11 @@ public class UserController extends BaseApiController {
             subjectUserService.updateByUserId(user.getId(), getSubjectSet(subjectCodeString));
         }
         if (user.getRole() == Role.COLLEGE_ADMIN) {
-            subjectUserService.updateByUserId(user.getId(), getSubjectCodeSetByCollege(examId, user.getDescription()));
+            subjectUserService.updateByUserId(user.getId(), getSubjectCodeSetByCollege(examId, colleges));
             userService.save(user);
         }
         if (user.getRole() == Role.SCHOOL_VIEWER && !studentFile.isEmpty()) {
-            suc = addStudent(studentFile, user.getSchoolId(), user.getId());
+            addStudent(studentFile, user.getSchoolId(), user.getId());
         }
         return resultOk();
     }
@@ -297,17 +291,15 @@ public class UserController extends BaseApiController {
     @ResponseBody
     @Logging(menu = "修改用户", type = LogType.UPDATE)
     public ResultMessage update(User user, @RequestParam(required = false) String subjectCodeString,
-            @RequestParam(required = false) String examIdString,
+            @RequestParam(required = false) String examIdString, @RequestParam(required = false) String colleges,
             @RequestParam(required = false) MultipartFile studentFile) {
         User current = getApiUser().getUser();
         int examId = getSessionExamId();
         User previous = userService.findById(user.getId());
-        AddStudentInfo suc = null;
         previous.setLoginName(user.getLoginName());
         previous.setName(user.getName());
         if (StringUtils.isNotBlank(user.getPassword())) {
-            String password = StringEscapeUtils.unescapeHtml(user.getPassword());
-            previous.setPassword(EncryptUtils.md5(password));
+            previous.setPassword(EncryptUtils.md5(user.getPassword()));
             previous.setRandomPassword(null);
         }
         previous.setEmpno(user.getEmpno());
@@ -328,7 +320,7 @@ public class UserController extends BaseApiController {
         }
         if (user.getRole() == Role.COLLEGE_ADMIN) {
             previous.refreshAccessToken();
-            subjectUserService.updateByUserId(user.getId(), getSubjectCodeSetByCollege(examId, user.getDescription()));
+            subjectUserService.updateByUserId(user.getId(), getSubjectCodeSetByCollege(examId, colleges));
         }
         if (user.getRole() == Role.MARKER) {
             markerService.updateEnableByUserId(previous.getId(), previous.isEnable());
@@ -336,7 +328,7 @@ public class UserController extends BaseApiController {
         previous.setUpdatedTime(new Date());
         userService.save(previous);
         if (previous.getRole() == Role.SCHOOL_VIEWER && !studentFile.isEmpty()) {
-            suc = addStudent(studentFile, previous.getSchoolId(), previous.getId());
+           addStudent(studentFile, previous.getSchoolId(), previous.getId());
         }
         return resultOk();
     }
@@ -351,7 +343,9 @@ public class UserController extends BaseApiController {
             message = "名称不能为空";
         } else if (StringUtils.isBlank(user.getPassword())) {
             message = "密码不能为空";
-        } else if (user.getRole() == Role.SUBJECT_HEADER && StringUtils.isBlank(subjectCodeString)) {
+        }  else if (user.getRole() ==null){
+            message = "角色不能为空";
+        }  else if (user.getRole() == Role.SUBJECT_HEADER && StringUtils.isBlank(subjectCodeString)) {
             message = "科组长必须绑定科目代码";
         } else if (user.getRole() == Role.INSPECTOR && StringUtils.isBlank(subjectCodeString)) {
             message = "复核员必须绑定科目代码";

+ 38 - 19
stmms-web/src/main/java/cn/com/qmth/stmms/common/controller/BaseController.java

@@ -99,7 +99,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(LibraryStatus.findByValue(Integer.valueOf(text)));
+                    setValue(LibraryStatus.valueOf(text));
+//                    setValue(LibraryStatus.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -111,7 +112,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(Role.findByValue(Integer.valueOf(text)));
+                    setValue(Role.valueOf(text));
+//                    setValue(Role.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -123,7 +125,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(UserSource.findByValue(Integer.valueOf(text)));
+                    setValue(UserSource.valueOf(text));
+//                    setValue(UserSource.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -135,7 +138,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(MarkStatus.findByName(text));
+                    setValue(MarkStatus.valueOf(text));
+//                    setValue(MarkStatus.findByName(text));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -147,7 +151,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(MarkMode.findByName(text));
+                    setValue(MarkMode.valueOf(text));
+//                    setValue(MarkMode.findByName(text));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -160,7 +165,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(HistoryStatus.findByValue(Integer.valueOf(text)));
+                    setValue(HistoryStatus.valueOf(text));
+//                    setValue(HistoryStatus.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -173,7 +179,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(CheckType.findByValue(Integer.valueOf(text)));
+                    setValue(CheckType.valueOf(text));
+//                    setValue(CheckType.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -185,7 +192,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(ObjectivePolicy.findByValue(Integer.valueOf(text)));
+                    setValue(ObjectivePolicy.valueOf(text));
+//                    setValue(ObjectivePolicy.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -197,7 +205,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(ExamStatus.findByValue(Integer.valueOf(text)));
+                    setValue(ExamStatus.valueOf(text));
+//                    setValue(ExamStatus.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -209,7 +218,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(ExamType.findByValue(Integer.valueOf(text)));
+                    setValue(ExamType.valueOf(text));
+//                    setValue(ExamType.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -221,7 +231,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(LogType.findByValue(Integer.valueOf(text)));
+                    setValue(LogType.valueOf(text));
+//                    setValue(LogType.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -233,7 +244,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(FileType.findByText(text));
+                    setValue(FileType.valueOf(text));
+//                    setValue(FileType.findByText(text));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -245,7 +257,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(FormatType.findByText(text));
+                    setValue(FormatType.valueOf(text));
+//                    setValue(FormatType.findByText(text));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -257,7 +270,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(ExamSource.findByValue(Integer.valueOf(text)));
+                    setValue(ExamSource.valueOf(text));
+//                    setValue(ExamSource.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -269,7 +283,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(SubjectiveStatus.findByText(text));
+                    setValue(SubjectiveStatus.valueOf(text));
+//                    setValue(SubjectiveStatus.findByText(text));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -281,7 +296,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(SelectiveStatus.findByValue(Integer.valueOf(text)));
+                    setValue(SelectiveStatus.valueOf(text));
+//                    setValue(SelectiveStatus.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -293,7 +309,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(SystemAuthType.findByValue(Integer.valueOf(text)));
+                    setValue(SystemAuthType.valueOf(text));
+//                    setValue(SystemAuthType.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -305,7 +322,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(QuestionType.findByValue(Integer.valueOf(text)));
+                    setValue(QuestionType.valueOf(text));
+//                    setValue(QuestionType.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }
@@ -317,7 +335,8 @@ public class BaseController {
             @Override
             public void setAsText(String text) {
                 try {
-                    setValue(TrackCountPolicy.findByValue(Integer.valueOf(text)));
+                    setValue(TrackCountPolicy.valueOf(text));
+//                    setValue(TrackCountPolicy.findByValue(Integer.valueOf(text)));
                 } catch (Exception e) {
                     setValue(null);
                 }