yin 9 months ago
parent
commit
afa859140b

+ 1 - 1
pom.xml

@@ -25,7 +25,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <qmth-boot-version>1.0.5</qmth-boot-version>
+        <qmth-boot-version>1.0.4</qmth-boot-version>
     </properties>
 
     <repositories>

+ 7 - 35
src/main/java/cn/com/qmth/scancentral/controller/admin/CardController.java

@@ -26,11 +26,9 @@ import com.qmth.boot.core.exception.ReentrantException;
 import cn.com.qmth.scancentral.controller.BaseController;
 import cn.com.qmth.scancentral.entity.AnswerCardEntity;
 import cn.com.qmth.scancentral.enums.LockType;
-import cn.com.qmth.scancentral.enums.SystemMode;
 import cn.com.qmth.scancentral.service.AdapteFileService;
 import cn.com.qmth.scancentral.service.AnswerCardService;
 import cn.com.qmth.scancentral.service.ExamService;
-import cn.com.qmth.scancentral.task.thread.CardSyncThread;
 import cn.com.qmth.scancentral.vo.UriVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -73,44 +71,18 @@ public class CardController extends BaseController {
         return result;
     }
 
-    @ApiOperation(value = "同步卡格式信息")
-    @RequestMapping(value = "/sync", method = RequestMethod.POST)
-    public JSONObject sync(@RequestParam Long examId) {
-        if (!SystemMode.MARKINGCLOUD.equals(SystemMode.current())) {
-            throw new ReentrantException("非云阅卷模式下不支持同步卡格式");
-        }
-        if (!concurrentService.isLocked(LockType.CARD_SYNC + "-" + examId)) {
-            taskExecutor.submit(new CardSyncThread(getAccessUser(), examId, answerCardService, concurrentService));
-            JSONObject status = new JSONObject();
-            status.accumulate("synching", true);
-            status.accumulate("startTime", System.currentTimeMillis());
-            return status;
-        } else {
-            throw new ReentrantException("正在同步卡格式,请稍后再试");
-        }
-    }
-
-    @ApiOperation(value = "卡格式同步状态息")
-    @RequestMapping(value = "/sync/status", method = RequestMethod.POST)
-    public JSONObject syncStatus(@RequestParam Long examId) {
-        JSONObject status = new JSONObject();
-        status.accumulate("synching", concurrentService.isLocked(LockType.CARD_SYNC + "-" + examId));
-        status.accumulate("updateTime", examService.getById(examId).getCardSyncTime());
-        return status;
-    }
-
     @ApiOperation(value = "创建/修改题卡卡格式")
     @RequestMapping(value = "/answer/save", method = RequestMethod.POST)
     public JSONObject answerSave(@RequestParam Long examId, @RequestParam(required = false) Integer number,
             @RequestParam(required = false) String subjectCode, @RequestParam(required = false) String parameter,
             @RequestParam(required = false) String remark, @RequestParam Integer paperCount,
-            @RequestParam Boolean singlePage, @RequestParam String md5,@RequestParam(required = false) Integer dpi, @RequestParam MultipartFile file) {
+            @RequestParam Boolean singlePage, @RequestParam String md5, @RequestParam(required = false) Integer dpi,
+            @RequestParam MultipartFile file) {
         if (concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).tryLock()) {
             try {
                 JSONObject result = new JSONObject();
-                AnswerCardEntity card = answerCardService
-                        .save(getAccessUser(), examId, number, subjectCode, parameter, remark, paperCount, singlePage,
-                                md5,dpi, file);
+                AnswerCardEntity card = answerCardService.save(getAccessUser(), examId, number, subjectCode, parameter,
+                        remark, paperCount, singlePage, md5, dpi, file);
                 result.accumulate("number", card.getNumber());
                 result.accumulate("updateTime", System.currentTimeMillis());
                 return result;
@@ -143,9 +115,9 @@ public class CardController extends BaseController {
     @ApiOperation(value = "答题卡适配卡格式上传")
     @RequestMapping(value = "/answer/adapte/upload", method = RequestMethod.POST)
     public UriVo adapteUpload(HttpServletRequest request, @RequestParam Long examId, @RequestParam Integer cardNumber,
-            @RequestParam MultipartFile file, @RequestParam String md5,@RequestParam Integer dpi) {
-        return adapteFileService
-                .save(RequestUtil.getIpAddress(request), getAccessUser().getRole(), examId, cardNumber, md5,dpi, file);
+            @RequestParam MultipartFile file, @RequestParam String md5, @RequestParam Integer dpi) {
+        return adapteFileService.save(RequestUtil.getIpAddress(request), getAccessUser().getRole(), examId, cardNumber,
+                md5, dpi, file);
     }
 
     @ApiOperation(value = "创建/修改签到表卡格式")

+ 22 - 76
src/main/java/cn/com/qmth/scancentral/controller/admin/ExamController.java

@@ -1,39 +1,41 @@
 package cn.com.qmth.scancentral.controller.admin;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.task.AsyncTaskExecutor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.boot.core.collection.PageResult;
+import com.qmth.boot.core.concurrent.service.ConcurrentService;
+
 import cn.com.qmth.scancentral.bean.ExamConfigDomain;
 import cn.com.qmth.scancentral.bean.SubjectConfigDomain;
 import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.controller.BaseController;
 import cn.com.qmth.scancentral.entity.ExamEntity;
-import cn.com.qmth.scancentral.enums.LockType;
 import cn.com.qmth.scancentral.exception.ParameterExceptions;
 import cn.com.qmth.scancentral.service.ExamService;
 import cn.com.qmth.scancentral.service.StudentService;
 import cn.com.qmth.scancentral.service.SubjectService;
-import cn.com.qmth.scancentral.task.thread.ExamDataSyncThread;
-import cn.com.qmth.scancentral.vo.*;
+import cn.com.qmth.scancentral.vo.ExamConfigVo;
+import cn.com.qmth.scancentral.vo.ExamUploadVo;
+import cn.com.qmth.scancentral.vo.ExamVo;
+import cn.com.qmth.scancentral.vo.SubjectConfigVo;
 import cn.com.qmth.scancentral.vo.examinfo.ExamInfoVo;
 import cn.com.qmth.scancentral.vo.examinfo.ExamQuery;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.boot.core.collection.PageResult;
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
-import com.qmth.boot.core.exception.ReentrantException;
-import com.qmth.boot.mybatis.query.BaseQuery;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import net.sf.json.JSONObject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.task.AsyncTaskExecutor;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
 
 @RestController
 @Api(tags = "考试接口")
@@ -91,21 +93,6 @@ public class ExamController extends BaseController {
         return result;
     }
 
-    @ApiOperation(value = "未启用考试")
-    @RequestMapping(value = "/remote/list", method = RequestMethod.POST)
-    public PageResult<ExamRemoteVo> remote(BaseQuery<?> query) {
-        User user = getAccessUser();
-        return examService.listRemote(query, user);
-    }
-
-    @ApiOperation(value = "启用新考试")
-    @RequestMapping(value = "/init", method = RequestMethod.POST)
-    public ExamInitVo init(@Validated(ExamConfigDomain.ExamConfigInit.class) ExamConfigDomain domain) {
-        User user = getAccessUser();
-        ExamInitVo vo = examService.init(user, domain);
-        return vo;
-    }
-
     @ApiOperation(value = "修改考试参数")
     @RequestMapping(value = "/config", method = RequestMethod.POST)
     public ExamConfigVo config(@Validated ExamConfigDomain domain) {
@@ -133,47 +120,6 @@ public class ExamController extends BaseController {
         return vo;
     }
 
-    @ApiOperation(value = "同步考务数据")
-    @RequestMapping(value = "/data/sync", method = RequestMethod.POST)
-    public JSONObject sync(@RequestParam Long examId) {
-        User user = getAccessUser();
-        ExamEntity exam = examService.getById(examId);
-        if (exam == null) {
-            throw ParameterExceptions.EXAM_NOT_FOUND;
-        }
-        if (!exam.getSchoolId().equals(user.getSchoolId())) {
-            throw ParameterExceptions.EXAM_NOT_FOUND;
-        }
-        if (!concurrentService.isLocked(LockType.EXAM_SYNC + "-" + examId)) {
-            taskExecutor.submit(new ExamDataSyncThread(getAccessUser(), examId, examService, concurrentService));
-        } else {
-            throw new ReentrantException("正在同步,请稍后再试");
-        }
-        JSONObject result = new JSONObject();
-        result.put("synching", concurrentService.isLocked(LockType.EXAM_SYNC + "-" + examId));
-        result.put("progress", examService.syncProgress(user, examId));
-        result.put("updateTime", examService.getById(examId).getDataSyncTime());
-        return result;
-    }
-
-    @ApiOperation(value = "考务数据同步状态")
-    @RequestMapping(value = "/data/sync/status", method = RequestMethod.POST)
-    public Map<String, Object> syncStatus(@RequestParam Long examId) {
-        User user = getAccessUser();
-        ExamEntity exam = examService.getById(examId);
-        if (exam == null) {
-            throw ParameterExceptions.EXAM_NOT_FOUND;
-        }
-        if (!exam.getSchoolId().equals(user.getSchoolId())) {
-            throw ParameterExceptions.EXAM_NOT_FOUND;
-        }
-        Map<String, Object> result = new HashMap<String, Object>();
-        result.put("synching", concurrentService.isLocked(LockType.EXAM_SYNC + "-" + examId));
-        result.put("progress", examService.syncProgress(user, examId));
-        result.put("updateTime", examService.getById(examId).getDataSyncTime());
-        return result;
-    }
-
     @ApiOperation(value = "修改考试科目参数")
     @RequestMapping(value = "/subject/config", method = RequestMethod.POST)
     public SubjectConfigVo subjectConfig(@Validated SubjectConfigDomain domain) {

+ 0 - 51
src/main/java/cn/com/qmth/scancentral/task/thread/CardSyncThread.java

@@ -1,51 +0,0 @@
-package cn.com.qmth.scancentral.task.thread;
-
-import cn.com.qmth.scancentral.bean.User;
-import cn.com.qmth.scancentral.enums.LockType;
-import cn.com.qmth.scancentral.service.AnswerCardService;
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
-import com.qmth.boot.core.exception.StatusException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class CardSyncThread implements Runnable {
-
-    protected static Logger log = LoggerFactory.getLogger(CardSyncThread.class);
-
-    private User user;
-
-    private Long examId;
-
-    private AnswerCardService answerCardService;
-
-    private ConcurrentService concurrentService;
-
-    public CardSyncThread(User user, Long examId, AnswerCardService answerCardService,
-            ConcurrentService concurrentService) {
-        this.examId = examId;
-        this.user = user;
-        this.answerCardService = answerCardService;
-        this.concurrentService = concurrentService;
-    }
-
-    @Override
-    public void run() {
-        if (examId == null) {
-            return;
-        }
-        if (user == null) {
-            return;
-        }
-        try {
-            if (concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).tryLock()) {
-                answerCardService.sync(user, examId);
-            }
-        } catch (Exception e) {
-            log.error("card sync error", e);
-            throw new StatusException("卡格式同步失败");
-        } finally {
-            concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).unlock();
-        }
-    }
-
-}

+ 0 - 50
src/main/java/cn/com/qmth/scancentral/task/thread/ExamDataSyncThread.java

@@ -1,50 +0,0 @@
-package cn.com.qmth.scancentral.task.thread;
-
-import cn.com.qmth.scancentral.bean.User;
-import cn.com.qmth.scancentral.enums.LockType;
-import cn.com.qmth.scancentral.service.ExamService;
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
-import com.qmth.boot.core.exception.StatusException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ExamDataSyncThread implements Runnable {
-
-    protected static Logger log = LoggerFactory.getLogger(ExamDataSyncThread.class);
-
-    private User user;
-
-    private Long examId;
-
-    private ExamService examService;
-
-    private ConcurrentService concurrentService;
-
-    public ExamDataSyncThread(User user, Long examId, ExamService examService, ConcurrentService concurrentService) {
-        this.examId = examId;
-        this.user = user;
-        this.examService = examService;
-        this.concurrentService = concurrentService;
-    }
-
-    @Override
-    public void run() {
-        if (examId == null) {
-            return;
-        }
-        if (user == null) {
-            return;
-        }
-        try {
-            if (concurrentService.getLock(LockType.EXAM_SYNC + "-" + examId).tryLock()) {
-                examService.sync(user, examId);
-            }
-        } catch (Exception e) {
-            log.error("exam student sync error", e);
-            throw new StatusException("考务数据同步失败");
-        } finally {
-            concurrentService.getLock(LockType.EXAM_SYNC + "-" + examId).unlock();
-        }
-    }
-
-}