xiatian 9 hónapja
szülő
commit
f993a26a44

+ 2 - 1
src/main/java/cn/com/qmth/scancentral/controller/admin/CheckController.java

@@ -56,6 +56,7 @@ import cn.com.qmth.scancentral.vo.AbsentManualImportVo;
 import cn.com.qmth.scancentral.vo.AbsentQueryVo;
 import cn.com.qmth.scancentral.vo.ExamStatusSaveVo;
 import cn.com.qmth.scancentral.vo.UpdateTimeVo;
+import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryParam;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
 import cn.com.qmth.scancentral.vo.student.StudentExamRoomVo;
 import cn.com.qmth.scancentral.vo.student.StudentVo;
@@ -201,7 +202,7 @@ public class CheckController extends BaseController {
 
     @ApiOperation(value = "缺考校验列表")
     @RequestMapping(value = "exam-status/list", method = RequestMethod.POST)
-    public PageResult<AnswerQueryVo> examStatusList(@Validated AnswerQueryDomain query) {
+    public PageResult<AnswerQueryVo> examStatusList(@Validated AnswerQueryParam query) {
         query.setWithOmrDetail(true);
         return studentService.query(query);
     }

+ 2 - 1
src/main/java/cn/com/qmth/scancentral/controller/admin/ScanAnswerController.java

@@ -54,6 +54,7 @@ import cn.com.qmth.scancentral.vo.PaperMigrateVo;
 import cn.com.qmth.scancentral.vo.ScanAnswerInfoVo;
 import cn.com.qmth.scancentral.vo.UpdateTimeVo;
 import cn.com.qmth.scancentral.vo.UriVo;
+import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryParam;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
 import cn.com.qmth.scancentral.vo.batchdetail.BatchDetailVo;
 import cn.com.qmth.scancentral.vo.mismatchquery.MismatchQueryVo;
@@ -137,7 +138,7 @@ public class ScanAnswerController extends BaseController {
 
     @ApiOperation(value = "查询答题卡扫描详情")
     @RequestMapping(value = "query", method = RequestMethod.POST)
-    public PageResult<AnswerQueryVo> query(@Validated AnswerQueryDomain query) {
+    public PageResult<AnswerQueryVo> query(@Validated AnswerQueryParam query) {
         query.setWithOmrDetail(true);
         return studentService.query(query);
     }

+ 13 - 2
src/main/java/cn/com/qmth/scancentral/dao/StudentDao.java

@@ -12,7 +12,18 @@ import cn.com.qmth.scancentral.bean.AbsentQueryDomain;
 import cn.com.qmth.scancentral.bean.AnswerQueryDomain;
 import cn.com.qmth.scancentral.bean.AssignedQueryDomain;
 import cn.com.qmth.scancentral.entity.StudentEntity;
-import cn.com.qmth.scancentral.vo.*;
+import cn.com.qmth.scancentral.vo.AbsentInfoVo;
+import cn.com.qmth.scancentral.vo.AbsentQueryVo;
+import cn.com.qmth.scancentral.vo.AnswerExportVo;
+import cn.com.qmth.scancentral.vo.CampusVo;
+import cn.com.qmth.scancentral.vo.ExamSiteVo;
+import cn.com.qmth.scancentral.vo.ExportCetMarkingQueryVo;
+import cn.com.qmth.scancentral.vo.ExportCetVo;
+import cn.com.qmth.scancentral.vo.ImportStudentQueryVo;
+import cn.com.qmth.scancentral.vo.ImportStudentVo;
+import cn.com.qmth.scancentral.vo.ScanAnswerInfoVo;
+import cn.com.qmth.scancentral.vo.StudentUploadVo;
+import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryParam;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
 import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExamRoomExport;
 import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExport;
@@ -47,7 +58,7 @@ public interface StudentDao extends BaseMapper<StudentEntity> {
     List<AbsentQueryVo> absentExportList(Page<AbsentQueryVo> page, @Param("groupNameCol") String groupNameCol,
             @Param("query") AbsentQueryDomain query);
 
-    IPage<AnswerQueryVo> queryPage(Page<AnswerQueryVo> page, @Param("query") AnswerQueryDomain query);
+    IPage<AnswerQueryVo> queryPage(Page<AnswerQueryVo> page, @Param("query") AnswerQueryParam query);
 
     List<String> querySummary(@Param("query") AnswerQueryDomain query);
 

+ 42 - 5
src/main/java/cn/com/qmth/scancentral/service/StudentService.java

@@ -10,14 +10,46 @@ import org.springframework.web.multipart.MultipartFile;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.boot.core.collection.PageResult;
 
-import cn.com.qmth.scancentral.bean.*;
+import cn.com.qmth.scancentral.bean.AbsentQueryDomain;
+import cn.com.qmth.scancentral.bean.AnswerDeleteDomain;
+import cn.com.qmth.scancentral.bean.AnswerQueryDomain;
+import cn.com.qmth.scancentral.bean.AssignedQueryDomain;
+import cn.com.qmth.scancentral.bean.ImportCetAbsentDomain;
+import cn.com.qmth.scancentral.bean.ImportStudentDomain;
+import cn.com.qmth.scancentral.bean.PageDeleteDomain;
+import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.bean.omredit.OmrEditDomain;
 import cn.com.qmth.scancentral.bean.omredit.OmrFieldEditDomain;
 import cn.com.qmth.scancentral.bean.refix.AnswerRefixDomain;
 import cn.com.qmth.scancentral.entity.StudentEntity;
 import cn.com.qmth.scancentral.entity.StudentPaperEntity;
-import cn.com.qmth.scancentral.enums.*;
-import cn.com.qmth.scancentral.vo.*;
+import cn.com.qmth.scancentral.enums.ExamStatus;
+import cn.com.qmth.scancentral.enums.ExamStatusCheckMode;
+import cn.com.qmth.scancentral.enums.GroupType;
+import cn.com.qmth.scancentral.enums.ImageCheckStatus;
+import cn.com.qmth.scancentral.enums.OP;
+import cn.com.qmth.scancentral.enums.ScanStatus;
+import cn.com.qmth.scancentral.enums.UploadStatus;
+import cn.com.qmth.scancentral.vo.AbsentInfoVo;
+import cn.com.qmth.scancentral.vo.AbsentManualImportVo;
+import cn.com.qmth.scancentral.vo.AbsentQueryVo;
+import cn.com.qmth.scancentral.vo.AnswerDeleteVo;
+import cn.com.qmth.scancentral.vo.AnswerExportK12Vo;
+import cn.com.qmth.scancentral.vo.AnswerExportVo;
+import cn.com.qmth.scancentral.vo.AnswerRefixVo;
+import cn.com.qmth.scancentral.vo.CampusVo;
+import cn.com.qmth.scancentral.vo.ExamSiteVo;
+import cn.com.qmth.scancentral.vo.ExportCetMarkingQueryVo;
+import cn.com.qmth.scancentral.vo.ExportCetVo;
+import cn.com.qmth.scancentral.vo.ImportBreachResult;
+import cn.com.qmth.scancentral.vo.ImportResult;
+import cn.com.qmth.scancentral.vo.ImportStudentQueryVo;
+import cn.com.qmth.scancentral.vo.ImportStudentVo;
+import cn.com.qmth.scancentral.vo.PaperDeleteVo;
+import cn.com.qmth.scancentral.vo.ScanAnswerInfoVo;
+import cn.com.qmth.scancentral.vo.StudentUploadVo;
+import cn.com.qmth.scancentral.vo.UpdateTimeVo;
+import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryParam;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
 import cn.com.qmth.scancentral.vo.assginedcheck.AssginedTaskResult;
 import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExamRoomExport;
@@ -25,7 +57,12 @@ import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExport;
 import cn.com.qmth.scancentral.vo.assginedcheck.AssignedTaskSaveVo;
 import cn.com.qmth.scancentral.vo.examroom.ExamRoomScannedQuery;
 import cn.com.qmth.scancentral.vo.examroom.ExamRoomScannedVo;
-import cn.com.qmth.scancentral.vo.student.*;
+import cn.com.qmth.scancentral.vo.student.StudentAnswerVo;
+import cn.com.qmth.scancentral.vo.student.StudentExamRoomVo;
+import cn.com.qmth.scancentral.vo.student.StudentPageQuery;
+import cn.com.qmth.scancentral.vo.student.StudentPageVo;
+import cn.com.qmth.scancentral.vo.student.StudentQuery;
+import cn.com.qmth.scancentral.vo.student.StudentVo;
 import cn.com.qmth.scancentral.vo.studentimport.StudentCountVo;
 import cn.com.qmth.scancentral.vo.subject.SubjectScanProgressVo;
 import cn.com.qmth.scancentral.vo.task.TaskStatusVo;
@@ -78,7 +115,7 @@ public interface StudentService extends IService<StudentEntity> {
 
     ScanAnswerInfoVo scanAnswerInfo(Long examId);
 
-    PageResult<AnswerQueryVo> query(AnswerQueryDomain query);
+    PageResult<AnswerQueryVo> query(AnswerQueryParam query);
 
     List<String> summary(AnswerQueryDomain query);
 

+ 2 - 1
src/main/java/cn/com/qmth/scancentral/service/impl/StudentServiceImpl.java

@@ -133,6 +133,7 @@ import cn.com.qmth.scancentral.vo.StudentUploadVo;
 import cn.com.qmth.scancentral.vo.UpdateTimeVo;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerPageVo;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerPaperVo;
+import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryParam;
 import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
 import cn.com.qmth.scancentral.vo.answerquery.StudentPaperVo;
 import cn.com.qmth.scancentral.vo.assginedcheck.AssginedTaskResult;
@@ -657,7 +658,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
     }
 
     @Override
-    public PageResult<AnswerQueryVo> query(AnswerQueryDomain query) {
+    public PageResult<AnswerQueryVo> query(AnswerQueryParam query) {
         // 查询考生分页信息
         IPage<AnswerQueryVo> iPage = baseMapper.queryPage(new Page<>(query.getPageNumber(), query.getPageSize()),
                 query);

+ 254 - 0
src/main/java/cn/com/qmth/scancentral/vo/answerquery/AnswerQueryParam.java

@@ -0,0 +1,254 @@
+package cn.com.qmth.scancentral.vo.answerquery;
+
+import cn.com.qmth.scancentral.enums.ExamStatus;
+import cn.com.qmth.scancentral.enums.PaperTypeStatus;
+import cn.com.qmth.scancentral.enums.ScanStatus;
+import cn.com.qmth.scancentral.util.PagerQuery;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class AnswerQueryParam extends PagerQuery {
+
+    @NotNull(message = "考试ID不能为空")
+    private Long examId;
+
+    private List<ScanStatus> status;
+
+    private List<ExamStatus> examStatus;
+
+    private String examNumber;
+
+    private String name;
+
+    private String packageCode;
+
+    private String campusCode;
+
+    private String campusName;
+
+    private String subjectCode;
+
+    private String examSite;
+
+    private String examRoom;
+
+    private String province;
+
+    private PaperTypeStatus paperTypeStatus;
+
+    private String device;
+
+    private Boolean absentSuspect;
+
+    private Boolean omrAbsent;
+
+    private Boolean assigned;
+
+    private Boolean incomplete;
+
+    private Boolean questionFilled;
+
+    private Boolean withOmrDetail;
+
+    private Boolean subjectiveFilled;
+
+    private Boolean hasFilled;
+
+    private Boolean assignedSuspect;
+
+    private Integer assignedCheckCount;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public List<ScanStatus> getStatus() {
+        return status;
+    }
+
+    public void setStatus(List<ScanStatus> status) {
+        this.status = status;
+    }
+
+    public String getExamNumber() {
+        return examNumber;
+    }
+
+    public void setExamNumber(String examNumber) {
+        this.examNumber = examNumber;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPackageCode() {
+        return packageCode;
+    }
+
+    public void setPackageCode(String packageCode) {
+        this.packageCode = packageCode;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getExamSite() {
+        return examSite;
+    }
+
+    public void setExamSite(String examSite) {
+        this.examSite = examSite;
+    }
+
+    public String getExamRoom() {
+        return examRoom;
+    }
+
+    public void setExamRoom(String examRoom) {
+        this.examRoom = examRoom;
+    }
+
+    public Boolean getAbsentSuspect() {
+        return absentSuspect;
+    }
+
+    public void setAbsentSuspect(Boolean absentSuspect) {
+        this.absentSuspect = absentSuspect;
+    }
+
+    public Boolean getOmrAbsent() {
+        return omrAbsent;
+    }
+
+    public void setOmrAbsent(Boolean omrAbsent) {
+        this.omrAbsent = omrAbsent;
+    }
+
+    public Boolean getAssigned() {
+        return assigned;
+    }
+
+    public void setAssigned(Boolean assigned) {
+        this.assigned = assigned;
+    }
+
+    public Boolean getIncomplete() {
+        return incomplete;
+    }
+
+    public void setIncomplete(Boolean incomplete) {
+        this.incomplete = incomplete;
+    }
+
+    public Boolean getQuestionFilled() {
+        return questionFilled;
+    }
+
+    public void setQuestionFilled(Boolean questionFilled) {
+        this.questionFilled = questionFilled;
+    }
+
+    public Boolean getWithOmrDetail() {
+        return withOmrDetail;
+    }
+
+    public void setWithOmrDetail(Boolean withOmrDetail) {
+        this.withOmrDetail = withOmrDetail;
+    }
+
+    public List<ExamStatus> getExamStatus() {
+        return examStatus;
+    }
+
+    public void setExamStatus(List<ExamStatus> examStatus) {
+        this.examStatus = examStatus;
+    }
+
+    public String getCampusCode() {
+        return campusCode;
+    }
+
+    public void setCampusCode(String campusCode) {
+        this.campusCode = campusCode;
+    }
+
+    public PaperTypeStatus getPaperTypeStatus() {
+        return paperTypeStatus;
+    }
+
+    public void setPaperTypeStatus(PaperTypeStatus paperTypeStatus) {
+        this.paperTypeStatus = paperTypeStatus;
+    }
+
+    public String getDevice() {
+        return device;
+    }
+
+    public void setDevice(String device) {
+        this.device = device;
+    }
+
+    public String getCampusName() {
+        return campusName;
+    }
+
+    public void setCampusName(String campusName) {
+        this.campusName = campusName;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public Boolean getSubjectiveFilled() {
+        return subjectiveFilled;
+    }
+
+    public void setSubjectiveFilled(Boolean subjectiveFilled) {
+        this.subjectiveFilled = subjectiveFilled;
+    }
+
+    public Boolean getAssignedSuspect() {
+        return assignedSuspect;
+    }
+
+    public void setAssignedSuspect(Boolean assignedSuspect) {
+        this.assignedSuspect = assignedSuspect;
+    }
+
+    public Integer getAssignedCheckCount() {
+        return assignedCheckCount;
+    }
+
+    public void setAssignedCheckCount(Integer assignedCheckCount) {
+        this.assignedCheckCount = assignedCheckCount;
+    }
+
+    public Boolean getHasFilled() {
+        return hasFilled;
+    }
+
+    public void setHasFilled(Boolean hasFilled) {
+        this.hasFilled = hasFilled;
+    }
+
+}

+ 90 - 1
src/main/resources/mapper/StudentMapper.xml

@@ -93,7 +93,96 @@
         left join sc_answer_card c on t.exam_id=c.exam_id and
         t.card_number=c.number
         left join sc_subject s on s.code=t.subject_code and s.exam_id=t.exam_id
-        <include refid="queryWhereAndOrder"/>
+        where t.exam_id=#{query.examId}
+        <if test="query.status != null and query.status.size>0">
+            AND t.status in
+            <foreach collection="query.status" index="index" item="st"
+                     open="(" separator="," close=")">
+                #{st}
+            </foreach>
+        </if>
+        <if test="query.examStatus != null and query.examStatus.size>0">
+            AND t.exam_status in
+            <foreach collection="query.examStatus" index="index" item="st"
+                     open="(" separator="," close=")">
+                #{st}
+            </foreach>
+        </if>
+        
+        <if test="query.examNumber != null and query.examNumber !=''">
+            and t.exam_number=#{query.examNumber}
+        </if>
+        <if test="query.name != null and query.name !=''">
+            and t.name=#{query.name}
+        </if>
+        <if test="query.packageCode != null and query.packageCode !=''">
+            and t.package_code=#{query.packageCode}
+        </if>
+        <if test="query.campusName != null and query.campusName !=''">
+            and t.campus_name=#{query.campusName}
+        </if>
+        <if test="query.campusCode != null and query.campusCode !=''">
+            and t.campus_code=#{query.campusCode}
+        </if>
+
+        <if test="query.subjectCode != null and query.subjectCode !=''">
+            and t.subject_code=#{query.subjectCode}
+        </if>
+        <if test="query.examSite != null and query.examSite!=''">
+            and t.exam_site=#{query.examSite}
+        </if>
+        <if test="query.examRoom != null and query.examRoom !=''">
+            and t.exam_room=#{query.examRoom}
+        </if>
+        <if test="query.province != null and query.province !=''">
+            and t.province=#{query.province}
+        </if>
+        <if test="query.absentSuspect != null">
+            and t.absent_suspect=#{query.absentSuspect}
+        </if>
+        <if test="query.omrAbsent != null">
+            and t.omr_absent=#{query.omrAbsent}
+        </if>
+        <if test="query.assigned != null">
+            and t.assigned=#{query.assigned}
+        </if>
+        <if test="query.incomplete != null">
+            and t.incomplete=#{query.incomplete}
+        </if>
+        <if test="query.questionFilled != null">
+            and t.question_filled=#{query.questionFilled}
+        </if>
+        <if test="query.subjectiveFilled != null">
+            and t.subjective_filled=#{query.subjectiveFilled}
+        </if>
+        <if test="query.device != null and query.device !=''">
+            and t.device=#{query.device}
+        </if>
+        <if test="query.assignedCheckCount != null and query.assignedCheckCount !=''">
+            and t.assigned_check_count=#{query.assignedCheckCount}
+        </if>
+        <if test="query.assignedSuspect != null">
+            and t.assigned_suspect=#{query.assignedSuspect}
+        </if>
+        <if test="query.paperTypeStatus != null">
+            <if test="query.paperTypeStatus ==@cn.com.qmth.scancentral.enums.PaperTypeStatus@OK">
+                and t.paper_type!='#' and t.paper_type!='?'
+            </if>
+            <if test="query.paperTypeStatus ==@cn.com.qmth.scancentral.enums.PaperTypeStatus@BLANK">
+                and t.paper_type='#'
+            </if>
+            <if test="query.paperTypeStatus ==@cn.com.qmth.scancentral.enums.PaperTypeStatus@ERROR">
+                and t.paper_type='?'
+            </if>
+        </if>
+         <if test="query.hasFilled != null">
+            <if test="query.hasFilled">
+            	and (t.question_filled=1 or  t.subjective_filled=1)
+            </if>
+            <if test="!query.hasFilled">
+            	and t.question_filled=0  and t.subjective_filled=0
+            </if>
+        </if>
         order by t.id
     </select>
     <select id="querySummary" resultType="string">