|
@@ -1,29 +1,5 @@
|
|
|
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;
|
|
@@ -38,10 +14,33 @@ import cn.com.qmth.scancentral.service.OmrTaskService;
|
|
|
import cn.com.qmth.scancentral.service.StudentPaperService;
|
|
|
import cn.com.qmth.scancentral.service.SubjectService;
|
|
|
import cn.com.qmth.scancentral.util.BatchSetDataUtil;
|
|
|
+import cn.com.qmth.scancentral.util.PageUtil;
|
|
|
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 {
|
|
@@ -124,63 +123,25 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
|
|
|
if (query.getExamId() == null) {
|
|
|
throw new ParameterException("examId不能为空");
|
|
|
}
|
|
|
- if (StringUtils.isBlank(query.getSubjectCode())) {
|
|
|
- throw new ParameterException("subjectCode不能为空");
|
|
|
- }
|
|
|
|
|
|
- SubjectEntity subject = subjectService.findByExamIdAndCode(query.getExamId(), query.getSubjectCode());
|
|
|
- if (subject == null) {
|
|
|
- throw new ParameterException("科目不存在");
|
|
|
- }
|
|
|
+ IPage<OmrGroupVo> page = baseMapper.queryPage(new Page<>(query.getPageNumber(), query.getPageSize()), query);
|
|
|
+ for (OmrGroupVo omrGroup : page.getRecords()) {
|
|
|
+ omrGroup.setBuilding(
|
|
|
+ !concurrentService.getSemaphore(LockType.OMR_GROUP_BUILD + "-" + omrGroup.getId()).isAvailable());
|
|
|
+ omrGroup.setDeleting(
|
|
|
+ !concurrentService.getSemaphore(LockType.OMR_GROUP_DELETE + "-" + omrGroup.getId()).isAvailable());
|
|
|
+ omrGroup.setReseting(
|
|
|
+ !concurrentService.getSemaphore(LockType.OMR_GROUP_RESET + "-" + omrGroup.getId()).isAvailable());
|
|
|
|
|
|
- LambdaQueryWrapper<OmrGroupEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(OmrGroupEntity::getExamId, query.getExamId());
|
|
|
- wrapper.eq(OmrGroupEntity::getSubjectCode, query.getSubjectCode());
|
|
|
- IPage<OmrGroupEntity> page = this.page(new Page<>(query.getPageNumber(), query.getPageSize()), wrapper);
|
|
|
-
|
|
|
- List<OmrGroupVo> omrGroups = new ArrayList<>();
|
|
|
- for (OmrGroupEntity omrGroup : page.getRecords()) {
|
|
|
- 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());
|
|
|
-
|
|
|
- // groupVo.setBuilding(
|
|
|
- // !concurrentService.getSemaphore(LockType.OMR_GROUP_BUILD + "-" + omrGroup.getId()).isAvailable());
|
|
|
- // groupVo.setDeleting(
|
|
|
- // !concurrentService.getSemaphore(LockType.OMR_GROUP_DELETE + "-" + omrGroup.getId()).isAvailable());
|
|
|
- // groupVo.setReseting(
|
|
|
- // !concurrentService.getSemaphore(LockType.OMR_GROUP_RESET + "-" + omrGroup.getId()).isAvailable());
|
|
|
-
|
|
|
- groupVo.setTotalCount(omrGroup.getTotalCount());
|
|
|
- groupVo.setFinishCount(
|
|
|
+ omrGroup.setFinishCount(
|
|
|
taskService.getCountByGroupAndStatus(omrGroup.getId(), TaskStatus.PROCESSED));
|
|
|
- groupVo.setUnarbitrateCount(
|
|
|
+ omrGroup.setUnarbitrateCount(
|
|
|
taskService.getCountByGroupAndStatus(omrGroup.getId(), TaskStatus.WAIT_ARBITRATE));
|
|
|
- groupVo.setArbitratedCount(
|
|
|
+ omrGroup.setArbitratedCount(
|
|
|
taskService.getCountByGroupAndStatus(omrGroup.getId(), TaskStatus.ARBITRATED));
|
|
|
- groupVo.setUpdateTime(omrGroup.getUpdateTime());
|
|
|
- omrGroups.add(groupVo);
|
|
|
}
|
|
|
|
|
|
- PageResult<OmrGroupVo> result = new PageResult<>();
|
|
|
- result.setResult(omrGroups);
|
|
|
- result.setPageNumber(page.getCurrent());
|
|
|
- result.setPageSize(page.getSize());
|
|
|
- result.setTotalCount(page.getTotal());
|
|
|
- result.setPageCount(page.getPages());
|
|
|
- return result;
|
|
|
+ return PageUtil.of(page);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
@@ -376,7 +337,7 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
|
|
|
}
|
|
|
|
|
|
LambdaQueryWrapper<OmrGroupEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(OmrGroupEntity::getExamId,examId);
|
|
|
+ wrapper.eq(OmrGroupEntity::getExamId, examId);
|
|
|
wrapper.eq(OmrGroupEntity::getSubjectCode, subjectCode);
|
|
|
List<OmrGroupEntity> list = this.list(wrapper);
|
|
|
List<OmrGroupVo> omrGroups = new ArrayList<>();
|
|
@@ -401,4 +362,5 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
|
|
|
}
|
|
|
return omrGroups;
|
|
|
}
|
|
|
+
|
|
|
}
|