|
@@ -1,44 +1,5 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
|
-import java.net.URLEncoder;
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.HashSet;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.Set;
|
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
-import java.util.stream.Stream;
|
|
|
|
-
|
|
|
|
-import javax.annotation.Resource;
|
|
|
|
-import javax.servlet.ServletOutputStream;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
-
|
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
-import org.apache.poi.ss.usermodel.FillPatternType;
|
|
|
|
-import org.apache.poi.ss.usermodel.Font;
|
|
|
|
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
|
|
-import org.apache.poi.ss.usermodel.IndexedColors;
|
|
|
|
-import org.apache.poi.ss.util.CellRangeAddress;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
-import org.slf4j.Logger;
|
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
|
-import org.springframework.dao.DataIntegrityViolationException;
|
|
|
|
-import org.springframework.jdbc.BadSqlGrammarException;
|
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
-
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -49,83 +10,53 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
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.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
-import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.dto.ExamDetailPdfDownloadDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.dto.ExaminationExportDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.dto.ExaminationImportDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.dto.PrintTaskDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.dto.PrintTaskTotalDto;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.initMarkData.ExamDetailCourseInitMarkDto;
|
|
import com.qmth.distributed.print.business.bean.dto.initMarkData.ExamDetailCourseInitMarkDto;
|
|
import com.qmth.distributed.print.business.bean.examRule.CodeNameEnableValue;
|
|
import com.qmth.distributed.print.business.bean.examRule.CodeNameEnableValue;
|
|
import com.qmth.distributed.print.business.bean.examRule.FieldsDto;
|
|
import com.qmth.distributed.print.business.bean.examRule.FieldsDto;
|
|
-import com.qmth.distributed.print.business.bean.params.SerialNumberParams;
|
|
|
|
import com.qmth.distributed.print.business.bean.result.ExaminationDetailResult;
|
|
import com.qmth.distributed.print.business.bean.result.ExaminationDetailResult;
|
|
import com.qmth.distributed.print.business.bean.result.ExaminationResult;
|
|
import com.qmth.distributed.print.business.bean.result.ExaminationResult;
|
|
import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
|
|
import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
|
|
-import com.qmth.distributed.print.business.entity.BasicCardRule;
|
|
|
|
-import com.qmth.distributed.print.business.entity.BasicExamRule;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ClientPrintData;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ClientStatus;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ExamDetail;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ExamDetailCourse;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ExamPrintPlan;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ExamStudent;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ExamTask;
|
|
|
|
-import com.qmth.distributed.print.business.entity.ExamTaskDetail;
|
|
|
|
-import com.qmth.distributed.print.business.entity.TeachClazz;
|
|
|
|
-import com.qmth.distributed.print.business.enums.CardTypeEnum;
|
|
|
|
-import com.qmth.distributed.print.business.enums.ExamDataSourceEnum;
|
|
|
|
-import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
|
|
|
|
-import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
|
|
|
|
-import com.qmth.distributed.print.business.enums.StudentClazzEnum;
|
|
|
|
-import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
|
|
|
|
|
|
+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.mapper.ExamDetailMapper;
|
|
-import com.qmth.distributed.print.business.service.BasicCardRuleService;
|
|
|
|
-import com.qmth.distributed.print.business.service.BasicExamRuleService;
|
|
|
|
-import com.qmth.distributed.print.business.service.BasicPrintConfigService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ClientPrintDataService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ClientStatusService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamDetailCoursePaperTypeService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamDetailCourseService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamDetailService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamPrintPlanService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamStudentService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamTaskDetailService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamTaskService;
|
|
|
|
-import com.qmth.distributed.print.business.service.PrintCommonService;
|
|
|
|
-import com.qmth.distributed.print.business.service.TeachClazzService;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
|
|
|
|
+import com.qmth.teachcloud.common.util.RedisCounterUtil;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.bean.dto.MqDto;
|
|
import com.qmth.teachcloud.common.bean.dto.MqDto;
|
|
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.BasicAttachment;
|
|
|
|
-import com.qmth.teachcloud.common.entity.BasicClazz;
|
|
|
|
-import com.qmth.teachcloud.common.entity.BasicPrintConfig;
|
|
|
|
-import com.qmth.teachcloud.common.entity.SysOrg;
|
|
|
|
-import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
|
-import com.qmth.teachcloud.common.entity.TBTask;
|
|
|
|
-import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.MqTagEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.OrgTypeEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.PdfTypeEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.TaskStatusEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.TaskTypeEnum;
|
|
|
|
-import com.qmth.teachcloud.common.service.BasicAttachmentService;
|
|
|
|
-import com.qmth.teachcloud.common.service.BasicClazzService;
|
|
|
|
-import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
|
|
|
|
-import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
|
|
-import com.qmth.teachcloud.common.service.SysOrgService;
|
|
|
|
-import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
|
-import com.qmth.teachcloud.common.service.TBTaskService;
|
|
|
|
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
|
|
|
|
-import com.qmth.teachcloud.common.util.ConvertUtil;
|
|
|
|
-import com.qmth.teachcloud.common.util.JdbcErrorUtil;
|
|
|
|
-import com.qmth.teachcloud.common.util.RedisUtil;
|
|
|
|
-import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
|
-import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
|
|
|
+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 org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.apache.poi.ss.usermodel.FillPatternType;
|
|
|
|
+import org.apache.poi.ss.usermodel.Font;
|
|
|
|
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
|
|
+import org.apache.poi.ss.usermodel.IndexedColors;
|
|
|
|
+import org.apache.poi.ss.util.CellRangeAddress;
|
|
|
|
+import org.apache.poi.xssf.usermodel.*;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
|
+import org.springframework.dao.DataIntegrityViolationException;
|
|
|
|
+import org.springframework.jdbc.BadSqlGrammarException;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.net.URLEncoder;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -173,7 +104,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
TBTaskService tbTaskService;
|
|
TBTaskService tbTaskService;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
- ConvertUtil convertUtil;
|
|
|
|
|
|
+ RedisCounterUtil redisCounterUtil;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private ClientPrintDataService clientPrintDataService;
|
|
private ClientPrintDataService clientPrintDataService;
|
|
@@ -253,7 +184,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
|
|
|
if (printTaskTotalDto != null) {
|
|
if (printTaskTotalDto != null) {
|
|
// 试卷总计
|
|
// 试卷总计
|
|
- int paperCount = 0;
|
|
|
|
Integer paperNumberCount = this.baseMapper.selectPaperCount(schoolId, semesterId, examId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printHouseId, dpr);
|
|
Integer paperNumberCount = this.baseMapper.selectPaperCount(schoolId, semesterId, examId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printHouseId, dpr);
|
|
printTaskTotalDto.setPaperCount(paperNumberCount);
|
|
printTaskTotalDto.setPaperCount(paperNumberCount);
|
|
}
|
|
}
|
|
@@ -666,7 +596,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
- public List<Long> disposeExamDataByExaminationExcel(ExamPrintPlan examPrintPlan, List<ExaminationImportDto> dataList, SerialNumberParams serialNumberParams, SysUser sysUser) {
|
|
|
|
|
|
+ public List<Long> disposeExamDataByExaminationExcel(ExamPrintPlan examPrintPlan, List<ExaminationImportDto> dataList, SysUser sysUser) {
|
|
try {
|
|
try {
|
|
List<Map<String, Object>> examDetailKeyList = dataList.stream().flatMap(e -> {
|
|
List<Map<String, Object>> examDetailKeyList = dataList.stream().flatMap(e -> {
|
|
Long schoolIdId = e.getSchoolId();
|
|
Long schoolIdId = e.getSchoolId();
|
|
@@ -705,7 +635,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
|
|
|
ExamDetail examDetail = new ExamDetail();
|
|
ExamDetail examDetail = new ExamDetail();
|
|
examDetail.setId(SystemConstant.getDbUuid());
|
|
examDetail.setId(SystemConstant.getDbUuid());
|
|
- examDetail.setPackageCode(convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit()));
|
|
|
|
|
|
+ examDetail.setPackageCode("1" + redisCounterUtil.getCounter(schoolId, 6, "packageCode"));
|
|
examDetail.setSchoolId(schoolId);
|
|
examDetail.setSchoolId(schoolId);
|
|
examDetail.setOrgId(sysUser.getOrgId());
|
|
examDetail.setOrgId(sysUser.getOrgId());
|
|
examDetail.setPrintPlanId(examPrintPlan.getId());
|
|
examDetail.setPrintPlanId(examPrintPlan.getId());
|
|
@@ -797,10 +727,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
*/
|
|
*/
|
|
private void disposeExamStudentData(Long examId, Long examDetailCourseId, List<ExaminationImportDto> examDetailCourseStudentList, SysUser sysUser) {
|
|
private void disposeExamStudentData(Long examId, Long examDetailCourseId, List<ExaminationImportDto> examDetailCourseStudentList, SysUser sysUser) {
|
|
BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamId(examId);
|
|
BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamId(examId);
|
|
- BasicCardRule basicCardRule = basicCardRuleService.getById(basicPrintConfig.getCardRuleId());
|
|
|
|
-
|
|
|
|
- // 查询学期下所有考务数据的准考证号集合
|
|
|
|
- List<String> examStudentTicketNumberList = examStudentService.listTicketNumberByExamId(examId);
|
|
|
|
|
|
|
|
List<ExamStudent> examStudentList = new ArrayList<>();
|
|
List<ExamStudent> examStudentList = new ArrayList<>();
|
|
Long schoolId = sysUser.getSchoolId();
|
|
Long schoolId = sysUser.getSchoolId();
|
|
@@ -808,13 +734,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
String paperNumber = examinationImportDto.getPaperNumber();
|
|
String paperNumber = examinationImportDto.getPaperNumber();
|
|
String studentName = examinationImportDto.getStudentName();
|
|
String studentName = examinationImportDto.getStudentName();
|
|
String studentCode = examinationImportDto.getStudentCode();
|
|
String studentCode = examinationImportDto.getStudentCode();
|
|
- String ticketNumber;
|
|
|
|
- //如果为空,系统自动生成准考证号
|
|
|
|
- if (StringUtils.isBlank(examinationImportDto.getTicketNumber()) || Objects.equals(examinationImportDto.getTicketNumber().trim(), "")) {
|
|
|
|
- ticketNumber = printCommonService.createTicketNumber(examStudentTicketNumberList, schoolId, basicCardRule == null ? null : basicCardRule.getExamNumberDigit());
|
|
|
|
- } else {
|
|
|
|
- ticketNumber = examinationImportDto.getTicketNumber().trim();
|
|
|
|
- }
|
|
|
|
String siteNumber = examinationImportDto.getSiteNumber();
|
|
String siteNumber = examinationImportDto.getSiteNumber();
|
|
String collegeName = examinationImportDto.getCollegeName();
|
|
String collegeName = examinationImportDto.getCollegeName();
|
|
String majorName = examinationImportDto.getMajorName();
|
|
String majorName = examinationImportDto.getMajorName();
|
|
@@ -832,7 +751,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
examStudent.setPaperNumber(paperNumber);
|
|
examStudent.setPaperNumber(paperNumber);
|
|
examStudent.setStudentCode(studentCode);
|
|
examStudent.setStudentCode(studentCode);
|
|
examStudent.setStudentName(studentName);
|
|
examStudent.setStudentName(studentName);
|
|
- examStudent.setTicketNumber(ticketNumber);
|
|
|
|
examStudent.setRequiredFields(JSON.toJSONString(examinationImportDto.getRequiredFieldList()));
|
|
examStudent.setRequiredFields(JSON.toJSONString(examinationImportDto.getRequiredFieldList()));
|
|
examStudent.setExtendFields(JSON.toJSONString(extendFieldsDtoList));
|
|
examStudent.setExtendFields(JSON.toJSONString(extendFieldsDtoList));
|
|
examStudent.setSiteNumber(siteNumber);
|
|
examStudent.setSiteNumber(siteNumber);
|
|
@@ -1349,12 +1267,12 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
return new ArrayList<>(clazzNameSet);
|
|
return new ArrayList<>(clazzNameSet);
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
- public List<ExamDetail> listByExamAndPackage(Long examId, String packageCode) {
|
|
|
|
- QueryWrapper<ExamDetail> wrapper = new QueryWrapper<>();
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<ExamDetail> listByExamAndPackage(Long examId, String packageCode) {
|
|
|
|
+ QueryWrapper<ExamDetail> wrapper = new QueryWrapper<>();
|
|
LambdaQueryWrapper<ExamDetail> lw = wrapper.lambda();
|
|
LambdaQueryWrapper<ExamDetail> lw = wrapper.lambda();
|
|
lw.eq(ExamDetail::getExamId, examId);
|
|
lw.eq(ExamDetail::getExamId, examId);
|
|
lw.eq(ExamDetail::getPackageCode, packageCode);
|
|
lw.eq(ExamDetail::getPackageCode, packageCode);
|
|
- return this.list(wrapper);
|
|
|
|
- }
|
|
|
|
|
|
+ return this.list(wrapper);
|
|
|
|
+ }
|
|
}
|
|
}
|