xiaofei пре 11 месеци
родитељ
комит
ecb5adad1f
14 измењених фајлова са 81 додато и 67 уклоњено
  1. 15 15
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/BasicExamStudentDto.java
  2. 4 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java
  3. 10 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamServiceImpl.java
  4. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java
  5. 10 19
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  6. 3 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  7. 2 4
      distributed-print-business/src/main/resources/mapper/BasicExamStudentMapper.xml
  8. 1 2
      distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml
  9. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java
  10. 4 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  11. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  12. 15 5
      teachcloud-mark/src/main/resources/mapper/MarkArbitrateHistoryMapper.xml
  13. 1 1
      teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml
  14. 12 7
      teachcloud-mark/src/main/resources/mapper/MarkTaskMapper.xml

+ 15 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/BasicExamStudentDto.java

@@ -48,19 +48,19 @@ public class BasicExamStudentDto {
     @ExcelProperty(name = "学院", width = 10, index = 5)
     @ExcelNote(value = "学院")
     @ExcelColumn(name = "学院",index = 4)
-    private String college;
+    private String collegeName;
 
     @ApiModelProperty("专业")
     @ExcelProperty(name = "专业", width = 10, index = 6)
     @ExcelNote(value = "专业")
     @ExcelColumn(name = "专业",index = 5)
-    private String major;
+    private String majorName;
 
     @ApiModelProperty("教学班")
     @ExcelProperty(name = "教学班", width = 10, index = 7)
     @ExcelNote(value = "教学班")
     @ExcelColumn(name = "教学班",index = 6,nullable = true)
-    private String teachClazz;
+    private String teachClassName;
 
     @ApiModelProperty("试卷编号")
     @ExcelProperty(name = "试卷编号", width = 10, index = 8)
@@ -140,28 +140,28 @@ public class BasicExamStudentDto {
         this.studentCode = studentCode;
     }
 
-    public String getCollege() {
-        return college;
+    public String getCollegeName() {
+        return collegeName;
     }
 
-    public void setCollege(String college) {
-        this.college = college;
+    public void setCollegeName(String collegeName) {
+        this.collegeName = collegeName;
     }
 
-    public String getMajor() {
-        return major;
+    public String getMajorName() {
+        return majorName;
     }
 
-    public void setMajor(String major) {
-        this.major = major;
+    public void setMajorName(String majorName) {
+        this.majorName = majorName;
     }
 
-    public String getTeachClazz() {
-        return teachClazz;
+    public String getTeachClassName() {
+        return teachClassName;
     }
 
-    public void setTeachClazz(String teachClazz) {
-        this.teachClazz = teachClazz;
+    public void setTeachClassName(String teachClassName) {
+        this.teachClassName = teachClassName;
     }
 
     public String getPaperNumber() {

+ 4 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -99,19 +99,21 @@ public interface ExamDetailService extends IService<ExamDetail> {
      * 查询印刷计划下考点数据源
      *
      * @param param
+     * @param examId
      * @param printPlanIdList
      * @return 考点集合
      */
-    List<String> findExamPlaceDatasource(String param, List<Long> printPlanIdList);
+    List<String> findExamPlaceDatasource(String param, Long examId, List<Long> printPlanIdList);
 
     /**
      * 查询印刷计划下考场数据源
      *
      * @param param
+     * @param examId
      * @param printPlanId
      * @return 考场集合
      */
-    List<String> findExamRoomDatasource(String param, List<Long> printPlanId);
+    List<String> findExamRoomDatasource(String param, Long examId, List<Long> printPlanId);
 
     boolean taskSubmit(ExamDetail examDetail) throws IOException;
 

+ 10 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamServiceImpl.java

@@ -8,14 +8,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.mapper.BasicExamMapper;
-import com.qmth.distributed.print.business.service.BasicExamService;
-import com.qmth.distributed.print.business.service.BasicPrintConfigService;
-import com.qmth.distributed.print.business.service.ExamPrintPlanService;
-import com.qmth.distributed.print.business.service.ExamTaskService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.CodeUtils;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicExam;
+import com.qmth.teachcloud.common.entity.BasicExamStudent;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExamModelEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -45,6 +43,8 @@ public class BasicExamServiceImpl extends ServiceImpl<BasicExamMapper, BasicExam
 
     @Resource
     BasicPrintConfigService basicPrintConfigService;
+    @Resource
+    private BasicExamStudentService basicExamStudentService;
 
     @Resource
     CodeUtils codeUtils;
@@ -94,13 +94,17 @@ public class BasicExamServiceImpl extends ServiceImpl<BasicExamMapper, BasicExam
     public boolean deleteBasicExamById(Long id) {
         BasicExam basicExam = this.getById(id);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        int countBasicExamStudent = basicExamStudentService.count(new QueryWrapper<BasicExamStudent>().lambda().eq(BasicExamStudent::getExamId, id));
+        if (countBasicExamStudent > 0) {
+            throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "]已有考生数据,不允许删除");
+        }
         int countExamTask = examTaskService.count(new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, id));
         if (countExamTask > 0) {
-            throw ExceptionResultEnum.ERROR.exception("命题任务已使用考试[" + basicExam.getName() + "],不能删除");
+            throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "]已创建命题任务,不允许删除");
         }
         int countExamPrint = examPrintPlanService.count(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSchoolId, schoolId).eq(ExamPrintPlan::getExamId, id));
         if (countExamPrint > 0) {
-            throw ExceptionResultEnum.ERROR.exception("印刷计划已使用考试[" + basicExam.getName() + "],不能删除");
+            throw ExceptionResultEnum.ERROR.exception("考试[" + basicExam.getName() + "]已创建印刷计划,不允许删除");
         }
         // 删除设置印品
         basicPrintConfigService.removeByExamId(id);

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -289,7 +289,8 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
 
         // 校验试卷编号和卷型
         if (StringUtils.isNoneBlank(basicExamStudentParam.getPaperNumber(), basicExamStudentParam.getPaperType())) {
-            ExamTaskDetail examTaskDetail = examTaskDetailService.getByExamIdAndCourseIdAndPaperNumber(basicExamStudentParam.getExamId(), basicExamStudentParam.getCourseId(), basicExamStudentParam.getPaperNumber());
+            // 不传课程ID
+            ExamTaskDetail examTaskDetail = examTaskDetailService.getByExamIdAndCourseIdAndPaperNumber(basicExamStudentParam.getExamId(), null, basicExamStudentParam.getPaperNumber());
             if (examTaskDetail != null) {
                 if (!examTaskDetail.getPaperType().contains(basicExamStudentParam.getPaperType())) {
                     throw ExceptionResultEnum.ERROR.exception("试卷编号[" + basicExamStudentParam.getPaperNumber() + "]的命题任务卷型为[" + examTaskDetail.getPaperType() + "],只能从中取一个");

+ 10 - 19
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -24,7 +24,6 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.mapper.ExamDetailMapper;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -32,9 +31,7 @@ import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.*;
-import com.qmth.teachcloud.mark.entity.MarkPaperPackage;
 import com.qmth.teachcloud.mark.entity.MarkStudent;
-import com.qmth.teachcloud.mark.entity.ScanAnswerCard;
 import com.qmth.teachcloud.mark.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.FillPatternType;
@@ -428,19 +425,16 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<String> findExamPlaceDatasource(String param, List<Long> printPlanIdList) {
+    public List<String> findExamPlaceDatasource(String param, Long examId, List<Long> printPlanIdList) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        SysOrg sysOrg = sysOrgService.getById(sysUser.getOrgId());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamDetail::getSchoolId, schoolId);
-        if (sysOrg != null && !OrgTypeEnum.PRINTING_HOUSE.equals(sysOrg.getType())) {
-            queryWrapper.lambda().in(ExamDetail::getOrgId, orgIds);
-        }
         if (StringUtils.isNotBlank(param)) {
             queryWrapper.lambda().like(ExamDetail::getExamPlace, SystemConstant.translateSpecificSign(param));
         }
+        if (examId != null) {
+            queryWrapper.lambda().eq(ExamDetail::getExamId, examId);
+        }
         if (printPlanIdList.size() > 0) {
             queryWrapper.lambda().in(ExamDetail::getPrintPlanId, printPlanIdList);
         }
@@ -450,19 +444,16 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<String> findExamRoomDatasource(String param, List<Long> printPlanIdList) {
+    public List<String> findExamRoomDatasource(String param, Long examId, List<Long> printPlanIdList) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        SysOrg sysOrg = sysOrgService.getById(sysUser.getOrgId());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamDetail::getSchoolId, schoolId);
-        if (sysOrg != null && !OrgTypeEnum.PRINTING_HOUSE.equals(sysOrg.getType())) {
-            queryWrapper.lambda().in(ExamDetail::getOrgId, orgIds);
-        }
         if (StringUtils.isNotBlank(param)) {
             queryWrapper.lambda().like(ExamDetail::getExamRoom, SystemConstant.translateSpecificSign(param));
         }
+        if (examId != null) {
+            queryWrapper.lambda().eq(ExamDetail::getExamId, examId);
+        }
         if (printPlanIdList.size() > 0) {
             queryWrapper.lambda().in(ExamDetail::getPrintPlanId, printPlanIdList);
         }
@@ -551,7 +542,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             UpdateWrapper<ExamTask> examTaskUpdateWrapper = new UpdateWrapper<>();
             examTaskUpdateWrapper.lambda().set(ExamTask::getApproveFormAttachmentId, null)
                     .eq(ExamTask::getSchoolId, examDetailCours.getSchoolId())
-                    .eq(ExamTask::getCourseCode, examDetailCours.getCourseCode())
+                    .eq(ExamTask::getCourseId, examDetailCours.getCourseId())
                     .eq(ExamTask::getPaperNumber, examDetailCours.getPaperNumber());
             examTaskService.update(examTaskUpdateWrapper);
 
@@ -561,7 +552,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
                 UpdateWrapper<ClientStatus> clientStatusUpdateWrapper = new UpdateWrapper<>();
                 clientStatusUpdateWrapper.lambda().eq(ClientStatus::getSchoolId, detail.getSchoolId())
                         .eq(ClientStatus::getPrintPlanId, detail.getPrintPlanId())
-                        .eq(ClientStatus::getCourseCode, examDetailCours.getCourseCode())
+                        .eq(ClientStatus::getCourseId, examDetailCours.getCourseId())
                         .eq(ClientStatus::getPaperNumber, examDetailCours.getPaperNumber());
                 clientStatusService.remove(clientStatusUpdateWrapper);
             }

+ 3 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -58,6 +58,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import javax.websocket.RemoteEndpoint;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -1150,7 +1151,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examPrintPlan.setSchoolId(schoolId);
                 examPrintPlan.setExamId(examTask.getExamId());
                 examPrintPlan.setOrgId(sysUser.getOrgId());
-                examPrintPlan.setName(examTask.getCourseName() + examTask.getPaperNumber());
+                BasicCourse basicCourse = basicCourseService.getById(examTask.getCourseId());
+                examPrintPlan.setName(basicCourse != null ? basicCourse.getName() : "" + examTask.getPaperNumber());
                 if (!ExamCategoryEnum.REBUILD.equals(basicExam.getCategory())) {
 //                    ConvertUtil.analyzeAndCompareDateAndTime(examDetailParams.getExamStartTime(), examDetailParams.getExamEndTime());
 //                    examPrintPlan.setExamStartTime(examDetailParams.getExamStartTime());

+ 2 - 4
distributed-print-business/src/main/resources/mapper/BasicExamStudentMapper.xml

@@ -87,14 +87,14 @@
             resultType="com.qmth.distributed.print.business.bean.result.BasicExamStudentResult">
         SELECT
             bes.id,
-            bc.course_id courseId,
+            bes.course_id courseId,
             bc.name AS courseName,
             bc.code AS courseCode,
             bes.student_name AS studentName,
             bes.student_code AS studentCode,
             bes.college_name AS collegeName,
             bes.major_name AS majorName,
-            tbc.clazz_name AS teachClazz,
+            bes.teach_class_name AS teachClassName,
             bes.paper_number AS paperNumber,
             teacher.real_name AS teacherName,
             teacher.code AS teacherCode,
@@ -107,8 +107,6 @@
                 LEFT JOIN
             basic_course bc ON bes.course_id = bc.id
                 LEFT JOIN
-            basic_teach_clazz tbc ON bes.clazz_id = tbc.id
-                LEFT JOIN
             sys_user teacher ON bes.teacher_id = teacher.id
                 LEFT JOIN
             sys_user su ON bes.create_id = su.id

+ 1 - 2
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -352,9 +352,8 @@
                 join
             basic_exam_student bes ON stu.basic_student_id = bes.id
         <where>
-
             <if test="studentParams != null and studentParams != ''">
-                AND (stu.ticket_number LIKE CONCAT('%',#{studentParams},'%') OR stu.student_code LIKE CONCAT('%',#{studentParams},'%') OR stu.student_name LIKE CONCAT('%',#{studentParams},'%'))
+                AND (stu.student_code LIKE CONCAT('%',#{studentParams},'%') OR bes.student_name LIKE CONCAT('%',#{studentParams},'%'))
             </if>
         </where>
         order by stu.exam_detail_course_id desc, stu.id desc

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java

@@ -130,7 +130,7 @@ public class ExamCardController {
     @RequestMapping(value = "/get_one", method = RequestMethod.POST)
     public Result getOne(@RequestParam(value = "cardId", required = false) Long cardId) {
         ExamCard examCard = examCardService.getById(cardId);
-        if (examCard.getCourseId() != null) {
+        if (examCard != null && examCard.getCourseId() != null) {
             BasicCourse basicCourse = basicCourseService.getById(examCard.getCourseId());
             examCard.setCourseCode(basicCourse != null ? basicCourse.getCode() : null);
             examCard.setCourseName(basicCourse != null ? basicCourse.getName() : null);

+ 4 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -182,24 +182,26 @@ public class ExamDetailController {
     @RequestMapping(value = "/data_place_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findExamPlaceDatasource(@RequestParam(value = "param", required = false) String param,
+                                          @RequestParam(value = "examId", required = false) Long examId,
                                           @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
         if (Objects.isNull(printPlanId)) {
             printPlanId = new ArrayList<>();
         }
         List<Long> printPlanIdList = printPlanId.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
-        return ResultUtil.ok(examDetailService.findExamPlaceDatasource(param, printPlanIdList));
+        return ResultUtil.ok(examDetailService.findExamPlaceDatasource(param, examId, printPlanIdList));
     }
 
     @ApiOperation(value = "考务数据导入-考场模糊查询")
     @RequestMapping(value = "/data_room_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findExamRoomDatasource(@RequestParam(value = "param", required = false) String param,
+                                         @RequestParam(value = "examId", required = false) Long examId,
                                          @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
         if (Objects.isNull(printPlanId)) {
             printPlanId = new ArrayList<>();
         }
         List<Long> printPlanIdList = printPlanId.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
-        return ResultUtil.ok(examDetailService.findExamRoomDatasource(param, printPlanIdList));
+        return ResultUtil.ok(examDetailService.findExamRoomDatasource(param, examId, printPlanIdList));
     }
 
     @ApiOperation(value = "考务数据导入-模板下载")

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -116,7 +116,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-新建命题任务")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @OperationLogDetail(operationType = OperationTypeEnum.ADD, detail = "新建命题任务操作,命题任务ID:{{examTask.id}}、课程代码:{{examTask.courseCode}}")
+    @OperationLogDetail(operationType = OperationTypeEnum.ADD, detail = "新建命题任务操作,命题任务ID:{{examTask.id}}、课程ID:{{examTask.courseId}}")
     public Result save(@RequestBody ExamTask examTask) {
         examTaskService.saveExamTaskNew(examTask);
         if (Objects.nonNull(examTask.getFlowId())) {

+ 15 - 5
teachcloud-mark/src/main/resources/mapper/MarkArbitrateHistoryMapper.xml

@@ -102,11 +102,21 @@
               AND EXISTS( SELECT
               1
               FROM
-              (select id, exam_id, paper_number, class_name
-              from mark_student
-              where exam_id = #{examId}
-              and paper_number = #{paperNumber}
-              and class_name = #{className}) ms
+              (SELECT
+              ms.id, ms.exam_id, ms.paper_number, bes.teach_class_name
+              FROM
+              (SELECT
+              *
+              FROM
+              mark_student
+              WHERE
+              exam_id = #{examId} AND paper_number = #{paperNumber}) ms
+              JOIN (SELECT
+              *
+              FROM
+              basic_exam_student
+              WHERE
+              exam_id = #{examId} AND teach_class_name = #{className}) bes ON ms.basic_student_id = bes.id) ms
               WHERE
               mah.student_id = ms.id)
           </if>

+ 1 - 1
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -161,7 +161,7 @@
         AND t.status = 'FINISH'
         <if test="dpr != null">
             <if test="dpr.requestUserId != null">
-                AND s.teacher_id = #{dpr.requestUserId}
+                AND bes.teacher_id = #{dpr.requestUserId}
             </if>
             <if test="dpr.courseUserId != null">
                 AND EXISTS( SELECT 1 FROM (select course_id from teach_course where exam_id = #{req.examId} and user_id = #{dpr.courseUserId}) tc WHERE tc.course_id = t.course_id)

+ 12 - 7
teachcloud-mark/src/main/resources/mapper/MarkTaskMapper.xml

@@ -231,15 +231,20 @@
           </if>
           <if test="className != null and className != ''">
               AND EXISTS( SELECT
-                1
+              ms.id, ms.exam_id, ms.paper_number, bes.teach_class_name
               FROM
-              (select id, exam_id, paper_number, class_name
-              from mark_student
-              where exam_id = #{examId}
-              and paper_number = #{paperNumber}
-              and class_name = #{className}) ms
+              (SELECT
+              *
+              FROM
+              mark_student
+              WHERE
+              exam_id = #{examId} AND paper_number = #{paperNumber}) ms
+              JOIN (SELECT
+              *
+              FROM
+              basic_exam_student
               WHERE
-              mt.student_id = ms.id)
+              exam_id = #{examId} AND teach_class_name = #{className}) bes ON ms.basic_student_id = bes.id)
           </if>
     </select>
     <select id="countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndAndClassNameStatusIn" resultType="java.lang.Integer">