Browse Source

评卷点

xiatian 9 months ago
parent
commit
bb0cd28b37

+ 16 - 0
src/main/java/cn/com/qmth/scancentral/controller/admin/MarkSiteController.java

@@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.qmth.boot.api.annotation.Aac;
@@ -12,6 +13,8 @@ import com.qmth.boot.core.collection.PageResult;
 
 import cn.com.qmth.scancentral.controller.BaseController;
 import cn.com.qmth.scancentral.service.MarkSiteService;
+import cn.com.qmth.scancentral.vo.ResultVo;
+import cn.com.qmth.scancentral.vo.marksite.MarkSiteDomain;
 import cn.com.qmth.scancentral.vo.marksite.MarkSitePageQuery;
 import cn.com.qmth.scancentral.vo.marksite.MarkSitePageVo;
 import io.swagger.annotations.Api;
@@ -32,4 +35,17 @@ public class MarkSiteController extends BaseController {
         return markSiteService.findMarkSitePage(query);
     }
 
+    @ApiOperation(value = "新增、修改评卷点")
+    @PostMapping(value = "save")
+    public ResultVo save(MarkSiteDomain domain) {
+        markSiteService.saveMarkSite(domain, getAccessUser());
+        return new ResultVo(System.currentTimeMillis());
+    }
+
+    @ApiOperation(value = "删除评卷点设置")
+    @PostMapping(value = "delete")
+    public ResultVo delete(@RequestParam Long id) {
+        markSiteService.delete(id);
+        return new ResultVo(System.currentTimeMillis());
+    }
 }

+ 6 - 0
src/main/java/cn/com/qmth/scancentral/service/MarkSiteService.java

@@ -3,7 +3,9 @@ package cn.com.qmth.scancentral.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.boot.core.collection.PageResult;
 
+import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.entity.MarkSiteEntity;
+import cn.com.qmth.scancentral.vo.marksite.MarkSiteDomain;
 import cn.com.qmth.scancentral.vo.marksite.MarkSitePageQuery;
 import cn.com.qmth.scancentral.vo.marksite.MarkSitePageVo;
 
@@ -11,4 +13,8 @@ public interface MarkSiteService extends IService<MarkSiteEntity> {
 
     PageResult<MarkSitePageVo> findMarkSitePage(MarkSitePageQuery query);
 
+    void saveMarkSite(MarkSiteDomain domain, User user);
+
+    void delete(Long id);
+
 }

+ 61 - 3
src/main/java/cn/com/qmth/scancentral/service/impl/MarkSiteServiceImpl.java

@@ -1,21 +1,25 @@
 package cn.com.qmth.scancentral.service.impl;
 
-import org.apache.commons.collections4.CollectionUtils;
 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.conditions.update.LambdaUpdateWrapper;
 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.exception.ParameterException;
 
+import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.dao.MarkSiteDao;
 import cn.com.qmth.scancentral.entity.MarkSiteEntity;
-import cn.com.qmth.scancentral.enums.ScanStatus;
 import cn.com.qmth.scancentral.service.MarkSiteService;
 import cn.com.qmth.scancentral.util.PageUtil;
+import cn.com.qmth.scancentral.vo.marksite.MarkSiteDomain;
 import cn.com.qmth.scancentral.vo.marksite.MarkSitePageQuery;
 import cn.com.qmth.scancentral.vo.marksite.MarkSitePageVo;
-import cn.com.qmth.scancentral.vo.student.StudentPageVo;
 
 @Service
 public class MarkSiteServiceImpl extends ServiceImpl<MarkSiteDao, MarkSiteEntity> implements MarkSiteService {
@@ -27,4 +31,58 @@ public class MarkSiteServiceImpl extends ServiceImpl<MarkSiteDao, MarkSiteEntity
         return PageUtil.of(iPage);
     }
 
+    private MarkSiteEntity findByExamSubjectPaperType(Long examId, String subjectCode, String paperType) {
+        QueryWrapper<MarkSiteEntity> wrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<MarkSiteEntity> lw = wrapper.lambda();
+        lw.eq(MarkSiteEntity::getExamId, examId);
+        lw.eq(MarkSiteEntity::getSubjectCode, subjectCode);
+        lw.eq(MarkSiteEntity::getPaperType, paperType);
+        return this.getOne(wrapper);
+    }
+
+    @Transactional
+    @Override
+    public void saveMarkSite(MarkSiteDomain domain, User user) {
+        MarkSiteEntity old = findByExamSubjectPaperType(domain.getExamId(), domain.getSubjectCode(),
+                domain.getPaperType());
+        if ((domain.getId() == null && old != null)
+                || (domain.getId() != null && !domain.getId().equals(old.getId()))) {
+            throw new ParameterException("评卷点信息已存在");
+        }
+        if (domain.getId() != null) {
+            // 修改
+            MarkSiteEntity e = this.getById(domain.getId());
+            if (e == null) {
+                throw new ParameterException("评卷点不存在");
+            }
+
+            LambdaUpdateWrapper<MarkSiteEntity> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.set(MarkSiteEntity::getUpdateTime, System.currentTimeMillis());
+            updateWrapper.set(MarkSiteEntity::getUpdaterId, user.getId());
+            updateWrapper.set(MarkSiteEntity::getSubjectCode, domain.getSubjectCode());
+            updateWrapper.set(MarkSiteEntity::getPaperType, domain.getPaperType());
+            updateWrapper.set(MarkSiteEntity::getOddNumber, domain.getOddNumber());
+            updateWrapper.set(MarkSiteEntity::getEvenNumber, domain.getEvenNumber());
+            updateWrapper.eq(MarkSiteEntity::getId, domain.getId());
+            this.update(updateWrapper);
+
+        } else {
+
+            // 新增
+            MarkSiteEntity e = new MarkSiteEntity();
+            e.setExamId(domain.getExamId());
+            e.setSubjectCode(domain.getSubjectCode());
+            e.setPaperType(domain.getPaperType());
+            e.setOddNumber(domain.getOddNumber());
+            e.setEvenNumber(domain.getEvenNumber());
+            this.save(e);
+        }
+    }
+
+    @Transactional
+    @Override
+    public void delete(Long id) {
+        this.delete(id);
+    }
+
 }

+ 75 - 0
src/main/java/cn/com/qmth/scancentral/vo/marksite/MarkSiteDomain.java

@@ -0,0 +1,75 @@
+package cn.com.qmth.scancentral.vo.marksite;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+public class MarkSiteDomain {
+
+    private Long id;
+
+    @NotNull(message = "考试ID不能为空")
+    private Long examId;
+
+    @NotBlank(message = "科目代码不能为空")
+    private String subjectCode;
+
+    @NotBlank(message = "条码值不能为空")
+    private String paperType;
+
+    // 奇数考场评卷点代码
+    @NotBlank(message = "奇数考场评卷点代码不能为空")
+    private String oddNumber;
+
+    // 偶数考场评卷点代码
+    @NotBlank(message = "偶数考场评卷点代码不能为空")
+    private String evenNumber;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public String getOddNumber() {
+        return oddNumber;
+    }
+
+    public void setOddNumber(String oddNumber) {
+        this.oddNumber = oddNumber;
+    }
+
+    public String getEvenNumber() {
+        return evenNumber;
+    }
+
+    public void setEvenNumber(String evenNumber) {
+        this.evenNumber = evenNumber;
+    }
+
+}