|
@@ -1,37 +1,33 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
-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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
|
|
-import com.qmth.distributed.print.business.bean.dto.SyncExamTaskDto;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseFieldsDto;
|
|
|
|
+import com.qmth.distributed.print.business.bean.examRule.CodeName;
|
|
|
|
+import com.qmth.distributed.print.business.bean.examRule.CodeNameEnable;
|
|
|
|
+import com.qmth.distributed.print.business.bean.examRule.CodeNameEnableValue;
|
|
|
|
+import com.qmth.distributed.print.business.bean.params.SingleExamStudentAddParam;
|
|
import com.qmth.distributed.print.business.entity.ExamDetailCourse;
|
|
import com.qmth.distributed.print.business.entity.ExamDetailCourse;
|
|
-import com.qmth.distributed.print.business.enums.CardTypeEnum;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.entity.ExamStudent;
|
|
import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
|
|
import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
|
|
import com.qmth.distributed.print.business.enums.ExamStatusEnum;
|
|
import com.qmth.distributed.print.business.enums.ExamStatusEnum;
|
|
-import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
|
|
|
|
import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
|
|
import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
|
|
-import com.qmth.distributed.print.business.service.ExamCardService;
|
|
|
|
import com.qmth.distributed.print.business.service.ExamDetailCourseService;
|
|
import com.qmth.distributed.print.business.service.ExamDetailCourseService;
|
|
-import com.qmth.distributed.print.business.service.ExamTaskDetailService;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.service.ExamStudentService;
|
|
import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
|
|
import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.BasicCourse;
|
|
import com.qmth.teachcloud.common.entity.BasicCourse;
|
|
-import com.qmth.teachcloud.common.entity.SysOrg;
|
|
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
-import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
|
|
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
-import com.qmth.teachcloud.common.service.SysOrgService;
|
|
|
|
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
|
|
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.lang.reflect.Field;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -47,16 +43,7 @@ import java.util.stream.Collectors;
|
|
public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMapper, ExamDetailCourse> implements ExamDetailCourseService {
|
|
public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMapper, ExamDetailCourse> implements ExamDetailCourseService {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
- private ExamTaskDetailService examTaskDetailService;
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private ExamCardService examCardService;
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private SysOrgService sysOrgService;
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private TeachcloudCommonService teachcloudCommonService;
|
|
|
|
|
|
+ private ExamStudentService examStudentService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<Map<String, Object>> listClientByExamDetailIdAndStatus(Long examDetailId) {
|
|
public List<Map<String, Object>> listClientByExamDetailIdAndStatus(Long examDetailId) {
|
|
@@ -120,4 +107,85 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
|
|
.eq(ExamDetailCourse::getExamDetailId, examDetailId);
|
|
.eq(ExamDetailCourse::getExamDetailId, examDetailId);
|
|
return this.list(queryWrapper);
|
|
return this.list(queryWrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<ExamDetailCourseFieldsDto> listExamDetailPaperNumber(Long examDetailId) {
|
|
|
|
+ Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
|
+ QueryWrapper<ExamDetailCourse> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(ExamDetailCourse::getSchoolId, schoolId)
|
|
|
|
+ .eq(ExamDetailCourse::getExamDetailId, examDetailId)
|
|
|
|
+ .orderByAsc(ExamDetailCourse::getCourseCode);
|
|
|
|
+ List<ExamDetailCourse> examDetailCourseList = this.list(queryWrapper);
|
|
|
|
+ List<ExamDetailCourseFieldsDto> examDetailCourseFieldsDtoList = new ArrayList<>();
|
|
|
|
+ if (CollectionUtils.isNotEmpty(examDetailCourseList)) {
|
|
|
|
+ for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
|
|
|
|
+ ExamDetailCourseFieldsDto examDetailCourseFieldsDto = new ExamDetailCourseFieldsDto();
|
|
|
|
+ examDetailCourseFieldsDto.setExamDetailCourse(examDetailCourse);
|
|
|
|
+ // 查询一条考生数据,拿到使用的必填字段和扩展字段
|
|
|
|
+ ExamStudent examStudent = examStudentService.listByExamDetailCourseIdLimit1(schoolId, examDetailCourse.getId());
|
|
|
|
+ List<CodeName> requireds = new ArrayList<>();
|
|
|
|
+ List<CodeName> extendes = new ArrayList<>();
|
|
|
|
+ if (examStudent != null) {
|
|
|
|
+ List<CodeNameEnableValue> studentRequiredFieldList = JSON.parseArray(examStudent.getRequiredFields(), CodeNameEnableValue.class);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(studentRequiredFieldList)) {
|
|
|
|
+ requireds = studentRequiredFieldList.stream().map(m -> {
|
|
|
|
+ CodeName codeName = new CodeName();
|
|
|
|
+ codeName.setCode(m.getCode());
|
|
|
|
+ codeName.setName(m.getName());
|
|
|
|
+ return codeName;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+ List<CodeNameEnableValue> studentExtendFieldList = JSON.parseArray(examStudent.getExtendFields(), CodeNameEnableValue.class);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(studentExtendFieldList)) {
|
|
|
|
+ extendes = studentExtendFieldList.stream().map(m -> {
|
|
|
|
+ CodeName codeName = new CodeName();
|
|
|
|
+ codeName.setCode(m.getCode());
|
|
|
|
+ codeName.setName(m.getName());
|
|
|
|
+ return codeName;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ examDetailCourseFieldsDto.setRequiredFields(requireds);
|
|
|
|
+ examDetailCourseFieldsDto.setExtendFields(extendes);
|
|
|
|
+ examDetailCourseFieldsDtoList.add(examDetailCourseFieldsDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return examDetailCourseFieldsDtoList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean addExamStudent(SingleExamStudentAddParam singleExamStudentAddParam) {
|
|
|
|
+ Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
|
+ ExamStudent examStudent = new ExamStudent();
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ Field[] examinationImportDtoFields = examStudent.getClass().getDeclaredFields();
|
|
|
|
+ for (CodeNameEnableValue requiredField : singleExamStudentAddParam.getRequiredFields()) {
|
|
|
|
+ for (Field examinationImportDtoField : examinationImportDtoFields) {
|
|
|
|
+ if(!examinationImportDtoField.getName().equals(requiredField.getCode())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ examinationImportDtoField.setAccessible(true);
|
|
|
|
+ examinationImportDtoField.set(requiredField.getCode(), requiredField.getValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("必选字段赋值失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ examStudent.setId(SystemConstant.getDbUuid());
|
|
|
|
+ examStudent.setSchoolId(schoolId);
|
|
|
|
+ examStudent.setExamId(singleExamStudentAddParam.getExamId());
|
|
|
|
+ examStudent.setExamDetailCourseId(singleExamStudentAddParam.getExamDetailCourse().getId());
|
|
|
|
+ examStudent.setPaperNumber(singleExamStudentAddParam.getExamDetailCourse().getPaperNumber());
|
|
|
|
+ examStudent.setCoursePaperId(singleExamStudentAddParam.getExamDetailCourse().getCoursePaperId());
|
|
|
|
+ examStudent.setExtendFields(JSON.toJSONString(singleExamStudentAddParam.getExtendFields()));
|
|
|
|
+ examStudent.setCreateId(sysUser.getId());
|
|
|
|
+ examStudent.setCreateTime(System.currentTimeMillis());
|
|
|
|
+ examStudentService.save(examStudent);
|
|
|
|
+
|
|
|
|
+ // todo 往exam_student表插入扫描数据
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
}
|
|
}
|