|
@@ -12,6 +12,7 @@ import com.qmth.distributed.print.business.bean.dto.ClazzContentDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
|
|
|
import com.qmth.distributed.print.business.bean.result.TCStatisticResult;
|
|
|
+import com.qmth.distributed.print.business.entity.ExamStudent;
|
|
|
import com.qmth.distributed.print.business.entity.TCStatistics;
|
|
|
import com.qmth.distributed.print.business.entity.TCStatisticsTemp;
|
|
|
import com.qmth.distributed.print.business.entity.TeachStudent;
|
|
@@ -69,6 +70,9 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
|
|
|
@Resource
|
|
|
ExamDetailService examDetailService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ ExamStudentService examStudentService;
|
|
|
+
|
|
|
|
|
|
@Deprecated
|
|
|
@Override
|
|
@@ -90,8 +94,6 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
|
|
|
List<ClazzContentDto> clazzContentDtoList = new ArrayList<>();
|
|
|
String courseCode = tcStatisticsTemp.getCourseCode();
|
|
|
String clazzIds = tcStatisticsTemp.getClazzIds();
|
|
|
- // 总印份数(只是学生数不包含备份)
|
|
|
- int printSum;
|
|
|
StatisticsStatusEnum status = StatisticsStatusEnum.FINISH;
|
|
|
// 导入的班级
|
|
|
Set<Long> clazzIdSet = Arrays.stream(clazzIds.split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
|
|
@@ -100,29 +102,47 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
|
|
|
for (Long clazzId : clazzIdSet) {
|
|
|
// 匹配到班级的所有命题计划
|
|
|
List<ExamTaskPlanStatisticDto> matchClazzList = examTaskPlanStatisticDtoList.stream().filter(e -> {
|
|
|
+ if (!SystemConstant.strNotNull(e.getClazzIds())){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
Set<Long> ebcClazzIdSet = Arrays.stream(e.getClazzIds().split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
|
|
|
return ebcClazzIdSet.contains(clazzId);
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
- // 匹配到以印刷的
|
|
|
- List<ExamTaskPlanStatisticDto> printClazzList = matchClazzList.stream().filter(e -> ExamDetailStatusEnum.FINISH.equals(e.getExamDetailStatus())).collect(Collectors.toList());
|
|
|
-
|
|
|
ClazzContentDto clazzContent = new ClazzContentDto();
|
|
|
clazzContent.setClazzId(clazzId);
|
|
|
clazzContent.setClazzName(examDetailService.findClazzNamesByClazzIds(String.valueOf(clazzId), ","));
|
|
|
+ if (matchClazzList.size() == 1){
|
|
|
+ // 课程-班级只提交一次(且已有印刷计划)的数据记录印刷计划试卷编号等信息
|
|
|
+ ExamTaskPlanStatisticDto matchClazz = matchClazzList.get(0);
|
|
|
+ clazzContent.setExamPrintPlanId(matchClazz.getExamPrintPlanId());
|
|
|
+ clazzContent.setExamPrintPlanName(matchClazz.getExamPrintPlanName());
|
|
|
+ clazzContent.setPaperNumber(matchClazz.getPaperNumber());
|
|
|
+ clazzContent.setStudentCount(examStudentService.count(new QueryWrapper<ExamStudent>()
|
|
|
+ .lambda()
|
|
|
+ .eq(ExamStudent::getClazzId,clazzId)
|
|
|
+ .eq(ExamStudent::getExamDetailCourseId,matchClazz.getExamDetailCourseId())));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 匹配到以印刷的
|
|
|
+ List<ExamTaskPlanStatisticDto> printClazzList = matchClazzList.stream().filter(e -> ExamDetailStatusEnum.FINISH.equals(e.getExamDetailStatus())).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
if (printClazzList.size() > 1) {
|
|
|
// 同一个班级课程已完成印刷的命题任务多次提交
|
|
|
status = StatisticsStatusEnum.UN_FINISH;
|
|
|
clazzContent.setStatus(ClazzContentEnum.EXCEPTION);
|
|
|
} else if (printClazzList.size() == 1) {
|
|
|
+ // 该班级对应的命题任务完成印刷
|
|
|
ExamTaskPlanStatisticDto printMatchClazz = printClazzList.get(0);
|
|
|
- // 查询考场表状态为已印刷的被匹配数据
|
|
|
clazzContent.setExamPrintPlanId(printMatchClazz.getExamPrintPlanId());
|
|
|
clazzContent.setExamPrintPlanName(printMatchClazz.getExamPrintPlanName());
|
|
|
clazzContent.setPaperNumber(printMatchClazz.getPaperNumber());
|
|
|
- clazzContent.setStudentCount(printMatchClazz.getStudentCount());
|
|
|
- // 改版机对应的命题任务完成印刷
|
|
|
clazzContent.setStatus(ClazzContentEnum.FINISH);
|
|
|
+ clazzContent.setStudentCount(examStudentService.count(new QueryWrapper<ExamStudent>()
|
|
|
+ .lambda()
|
|
|
+ .eq(ExamStudent::getClazzId,clazzId)
|
|
|
+ .eq(ExamStudent::getExamDetailCourseId,printMatchClazz.getExamDetailCourseId())));
|
|
|
} else {
|
|
|
// 该班级对应的命题任务还未完成印刷
|
|
|
status = StatisticsStatusEnum.UN_FINISH;
|
|
@@ -130,9 +150,6 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
|
|
|
}
|
|
|
clazzContentDtoList.add(clazzContent);
|
|
|
}
|
|
|
- Integer teachClazzStudentCount = teachStudentService.count(new QueryWrapper<TeachStudent>().lambda().in(TeachStudent::getTeachClazzId,clazzIdSet));
|
|
|
- Integer basicClazzStudentCount = basicStudentService.count(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getClazzId,clazzIdSet));
|
|
|
- printSum = teachClazzStudentCount + basicClazzStudentCount;
|
|
|
|
|
|
TCStatistics tcStatistics = new TCStatistics();
|
|
|
tcStatistics.setExamId(examId);
|
|
@@ -147,7 +164,6 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
|
|
|
tcStatistics.setClazzIds(clazzIds);
|
|
|
tcStatistics.setClazzName(examDetailService.findClazzNamesByClazzIds(clazzIds,","));
|
|
|
tcStatistics.setClazzContent(JSON.toJSONString(clazzContentDtoList));
|
|
|
- tcStatistics.setPrintSum(printSum);
|
|
|
tcStatistics.setStatus(status);
|
|
|
tcStatistics.insertInfo(requestUserId);
|
|
|
if (StatisticsStatusEnum.FINISH.equals(status)){
|
|
@@ -217,7 +233,7 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
|
|
|
|
|
|
@Override
|
|
|
public IPage<TCStatisticResult> findExamTaskPrintStatistic(Long semesterId, Long examId, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId, Long userId, Integer pageNumber, Integer pageSize) {
|
|
|
- return tcStatisticsMapper.findExamTaskPrintStatistic(new Page<>(pageNumber,pageSize), examId, collegeId, teachingRoomId, status, courseName, teacherName, userId);
|
|
|
+ return tcStatisticsMapper.findExamTaskPrintStatistic(new Page<>(pageNumber,pageSize),semesterId, examId, collegeId, teachingRoomId, status, courseName, teacherName, userId);
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|