Преглед изворни кода

修改扫描端识别对照

yin пре 9 месеци
родитељ
комит
2d9a61b109

+ 37 - 23
src/main/java/cn/com/qmth/scancentral/controller/scan/OmrTaskController.java → src/main/java/cn/com/qmth/scancentral/controller/scan/OmrController.java

@@ -1,68 +1,82 @@
 package cn.com.qmth.scancentral.controller.scan;
 
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.constant.ApiConstant;
+
 import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.controller.BaseController;
+import cn.com.qmth.scancentral.service.OmrGroupService;
 import cn.com.qmth.scancentral.service.OmrTaskService;
+import cn.com.qmth.scancentral.vo.OmrGroupVo;
 import cn.com.qmth.scancentral.vo.task.TaskResultVo;
 import cn.com.qmth.scancentral.vo.task.TaskSaveVo;
 import cn.com.qmth.scancentral.vo.task.TaskStatusVo;
 import cn.com.qmth.scancentral.vo.task.TaskVo;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.constant.ApiConstant;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
 
 @RestController
 @Api(tags = "识别对照任务接口")
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/scan/task/omr")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/scan/omr")
 @Aac(strict = false, auth = true)
-public class OmrTaskController extends BaseController {
+public class OmrController extends BaseController {
 
-    protected static final Logger log = LoggerFactory.getLogger(OmrTaskController.class);
+    protected static final Logger log = LoggerFactory.getLogger(OmrController.class);
 
     @Autowired
     private OmrTaskService omrTaskService;
+    @Autowired
+    private OmrGroupService groupService;
+
+    @ApiOperation(value = "识别对照分组获取")
+    @RequestMapping(value = "/group/list", method = RequestMethod.POST)
+    public List<OmrGroupVo> groupList(@RequestParam Long examId, @RequestParam String subjectCode) {
+        return groupService.listByExamIdAndSubjectCode(examId,subjectCode);
+    }
 
     @ApiOperation(value = "识别对照任务获取")
-    @RequestMapping(value = "/get", method = RequestMethod.POST)
-    public TaskVo get(@RequestParam Long examId) {
+    @RequestMapping(value = "/task/get", method = RequestMethod.POST)
+    public TaskVo get(@RequestParam Long groupId) {
         User user = getAccessUser();
-        return omrTaskService.getTask(examId, user.getAccount());
+        return omrTaskService.getTask(groupId, user.getAccount());
     }
 
     @ApiOperation(value = "识别对照任务提交")
-    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @RequestMapping(value = "/task/save", method = RequestMethod.POST)
     public TaskSaveVo save(@Validated @RequestBody TaskResultVo result) {
         User user = getAccessUser();
         return omrTaskService.submitTask(result, user);
     }
 
     @ApiOperation(value = "识别对照任务状态")
-    @RequestMapping(value = "/status", method = RequestMethod.POST)
-    public TaskStatusVo status(@RequestParam Long examId) {
+    @RequestMapping(value = "/task/status", method = RequestMethod.POST)
+    public TaskStatusVo status(@RequestParam Long groupId) {
         User user = getAccessUser();
-        return omrTaskService.getStatus(examId, false, user.getAccount());
+        return omrTaskService.getStatus(groupId, false, user.getAccount());
     }
 
     @ApiOperation(value = "识别对照任务状态")
-    @RequestMapping(value = "/release", method = RequestMethod.POST)
-    public Object release(@RequestParam Long examId) {
+    @RequestMapping(value = "/task/release", method = RequestMethod.POST)
+    public Object release(@RequestParam Long groupId) {
         User user = getAccessUser();
-        omrTaskService.releaseByUser(examId, user.getAccount());
+        omrTaskService.releaseByUser(groupId, user.getAccount());
         return success(true);
     }
 
     @ApiOperation(value = "识别对照任务历史")
-    @RequestMapping(value = "/history", method = RequestMethod.POST)
-    public TaskVo history(@RequestParam Long examId, @RequestParam(required = false) Long id,
+    @RequestMapping(value = "/task/history", method = RequestMethod.POST)
+    public TaskVo history(@RequestParam Long groupId, @RequestParam(required = false) Long id,
                           @RequestParam(required = false) Boolean next) {
         User user = getAccessUser();
-        return omrTaskService.history(examId, id, user.getAccount(), next);
+        return omrTaskService.history(groupId, id, user.getAccount(), next);
     }
 
 }

+ 10 - 0
src/main/java/cn/com/qmth/scancentral/controller/scan/ScanExamController.java

@@ -12,7 +12,9 @@ import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 
 import cn.com.qmth.scancentral.controller.BaseController;
+import cn.com.qmth.scancentral.entity.SubjectEntity;
 import cn.com.qmth.scancentral.service.ExamService;
+import cn.com.qmth.scancentral.service.SubjectService;
 import cn.com.qmth.scancentral.vo.scanexaminfo.ScanExamInfoVo;
 import cn.com.qmth.scancentral.vo.scanexamlist.ScanExamListVo;
 import io.swagger.annotations.Api;
@@ -26,6 +28,8 @@ public class ScanExamController extends BaseController {
 
     @Autowired
     private ExamService examService;
+    @Autowired
+    private SubjectService subjectService;
 
     @ApiOperation(value = "考试详情")
     @RequestMapping(value = "/info", method = RequestMethod.POST)
@@ -39,4 +43,10 @@ public class ScanExamController extends BaseController {
         return examService.getScanExamList();
     }
 
+    @ApiOperation(value = "科目列表")
+    @RequestMapping(value = "/subject/list", method = RequestMethod.POST)
+    public List<SubjectEntity> subjectList(@RequestParam Long examId) {
+        return subjectService.listByExamId(examId);
+    }
+
 }

+ 6 - 4
src/main/java/cn/com/qmth/scancentral/service/OmrGroupService.java

@@ -1,13 +1,14 @@
 package cn.com.qmth.scancentral.service;
 
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.boot.core.collection.PageResult;
+
 import cn.com.qmth.scancentral.entity.OmrGroupEntity;
 import cn.com.qmth.scancentral.vo.OmrGroupUpdateVo;
 import cn.com.qmth.scancentral.vo.OmrGroupVo;
 import cn.com.qmth.scancentral.vo.omr.OmrGroupQuery;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.boot.core.collection.PageResult;
-
-import java.util.List;
 
 public interface OmrGroupService extends IService<OmrGroupEntity> {
 
@@ -31,4 +32,5 @@ public interface OmrGroupService extends IService<OmrGroupEntity> {
 
     void updateTotalCount(Long examId, String subjectCode);
 
+    List<OmrGroupVo> listByExamIdAndSubjectCode(Long examId, String subjectCode);
 }

+ 64 - 22
src/main/java/cn/com/qmth/scancentral/service/impl/OmrGroupServiceImpl.java

@@ -1,5 +1,29 @@
 package cn.com.qmth.scancentral.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.core.collection.PageResult;
+import com.qmth.boot.core.concurrent.service.ConcurrentService;
+import com.qmth.boot.core.exception.ParameterException;
+import com.qmth.boot.core.exception.ReentrantException;
+import com.qmth.boot.core.exception.StatusException;
+
 import cn.com.qmth.scancentral.dao.OmrGroupDao;
 import cn.com.qmth.scancentral.entity.OmrGroupEntity;
 import cn.com.qmth.scancentral.entity.OmrTaskEntity;
@@ -18,28 +42,6 @@ import cn.com.qmth.scancentral.vo.OmrConditionVo;
 import cn.com.qmth.scancentral.vo.OmrGroupUpdateVo;
 import cn.com.qmth.scancentral.vo.OmrGroupVo;
 import cn.com.qmth.scancentral.vo.omr.OmrGroupQuery;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.boot.core.collection.PageResult;
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
-import com.qmth.boot.core.exception.ParameterException;
-import com.qmth.boot.core.exception.ReentrantException;
-import com.qmth.boot.core.exception.StatusException;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
 
 @Service
 public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity> implements OmrGroupService {
@@ -359,4 +361,44 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
         this.save(group);
     }
 
+    @Override
+    public List<OmrGroupVo> listByExamIdAndSubjectCode(Long examId, String subjectCode) {
+        if (examId == null) {
+            throw new ParameterException("examId不能为空");
+        }
+        if (StringUtils.isBlank(subjectCode)) {
+            throw new ParameterException("subjectCode不能为空");
+        }
+
+        SubjectEntity subject = subjectService.findByExamIdAndCode(examId, subjectCode);
+        if (subject == null) {
+            throw new ParameterException("科目不存在");
+        }
+
+        LambdaQueryWrapper<OmrGroupEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(OmrGroupEntity::getExamId,examId);
+        wrapper.eq(OmrGroupEntity::getSubjectCode, subjectCode);
+        List<OmrGroupEntity> list = this.list(wrapper);
+        List<OmrGroupVo> omrGroups = new ArrayList<>();
+        for (OmrGroupEntity omrGroup : list) {
+            OmrGroupVo groupVo = new OmrGroupVo();
+            groupVo.setId(omrGroup.getId());
+            groupVo.setSubjectCode(omrGroup.getSubjectCode());
+            groupVo.setSubjectName(subject.getName());
+
+            List<OmrConditionVo> conditions = new ArrayList<>();
+            if (CollectionUtils.isNotEmpty(omrGroup.getConditions())) {
+                for (OmrCondition c : omrGroup.getConditions()) {
+                    conditions.add(new OmrConditionVo(c));
+                }
+            }
+            groupVo.setConditions(conditions);
+
+            groupVo.setStage(omrGroup.getStage());
+            groupVo.setFixed(omrGroup.getFixed());
+
+            omrGroups.add(groupVo);
+        }
+        return omrGroups;
+    }
 }