|
@@ -709,23 +709,17 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
public Map<String, Object> saveExamTaskDetail(ExamTaskDetail examTaskDetail) {
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
Optional.ofNullable(examTaskDetail.getExamTaskId()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("命题任务ID不能为空"));
|
|
|
- if (StringUtils.isBlank(examTaskDetail.getOperateType())) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("命题任务提交类型不能为空");
|
|
|
- }
|
|
|
-
|
|
|
// 更新examTask状态status
|
|
|
ExamTask examTask = this.getById(examTaskDetail.getExamTaskId());
|
|
|
// 提交时,校验
|
|
|
- if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
|
|
|
- BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamId(examTask.getExamId());
|
|
|
- if (basicPrintConfig == null) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("印品配置未设置");
|
|
|
- }
|
|
|
- validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent());
|
|
|
+ BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamId(examTask.getExamId());
|
|
|
+ if (basicPrintConfig == null) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("印品配置未设置");
|
|
|
}
|
|
|
+ validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent(), examTask.getOpenAb());
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType()) && examTask.getReview()) {
|
|
|
+// if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType()) && examTask.getReview()) {
|
|
|
// 审核一级
|
|
|
Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).singleResult();
|
|
|
if (Objects.nonNull(task)) {
|
|
@@ -736,11 +730,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
map = activitiService.taskApprove(map);
|
|
|
map.put(SystemConstant.SEND_FLOW_MQ, true);
|
|
|
}
|
|
|
- }
|
|
|
+// }
|
|
|
|
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
|
updateWrapper.lambda()
|
|
|
- .set(ExamTask::getStatus, examTaskDetail.getOperateType())
|
|
|
+// .set(ExamTask::getStatus, examTaskDetail.getOperateType())
|
|
|
.set(ExamTask::getUpdateId, sysUser.getId())
|
|
|
.set(ExamTask::getUpdateTime, System.currentTimeMillis())
|
|
|
.set(ExamTask::getReviewStatus, null)
|
|
@@ -1132,49 +1126,51 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
this.save(examTask);
|
|
|
|
|
|
// 新建试卷
|
|
|
- ExamTaskDetail examTaskDetail = examTaskSubmitContent.getExamTaskDetail();
|
|
|
- validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent());
|
|
|
- // 已曝光试卷和未曝光试卷赋值(新增时,已曝光试卷为null,未曝光试卷为paper_type)
|
|
|
- examTaskDetail.setId(SystemConstant.getDbUuid());
|
|
|
- examTaskDetail.setUnexposedPaperType(examTaskDetail.getPaperType());
|
|
|
- examTaskDetail.setExamTaskId(examTask.getId());
|
|
|
- examTaskDetail.insertInfo(sysUser.getId());
|
|
|
- List<PaperInfoVo> filePathVoList = examTaskDetail.getPaperInfoVoList(null);
|
|
|
- for (PaperInfoVo paperInfoVo : filePathVoList) {
|
|
|
- BasicAttachment basicAttachment = basicAttachmentService.getById(paperInfoVo.getAttachmentId());
|
|
|
- FilePathVo filePathVo = JSON.parseObject(basicAttachment.getPath(), FilePathVo.class);
|
|
|
- InputStream inputStream = fileUploadService.downloadFile(filePathVo.getPath(), filePathVo.getUploadType(), filePathVo.getType());
|
|
|
- List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertPdfToJpg(Long.valueOf(paperInfoVo.getAttachmentId()), inputStream, sysUser.getId());
|
|
|
- if (convertJpgStorageList.size() > 0) {
|
|
|
- paperInfoVo.setJpgAttachmentId(JSON.toJSONString(convertJpgStorageList));
|
|
|
- } else {
|
|
|
- paperInfoVo.setJpgAttachmentId(null);
|
|
|
+ List<ExamTaskDetail> examTaskDetailList = examTaskSubmitContent.getExamTaskDetailList();
|
|
|
+ for (ExamTaskDetail examTaskDetail : examTaskDetailList) {
|
|
|
+ validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent(), examTask.getOpenAb());
|
|
|
+ // 已曝光试卷和未曝光试卷赋值(新增时,已曝光试卷为null,未曝光试卷为paper_type)
|
|
|
+ examTaskDetail.setId(SystemConstant.getDbUuid());
|
|
|
+ examTaskDetail.setUnexposedPaperType(examTaskDetail.getPaperType());
|
|
|
+ examTaskDetail.setExamTaskId(examTask.getId());
|
|
|
+ examTaskDetail.insertInfo(sysUser.getId());
|
|
|
+ List<PaperInfoVo> filePathVoList = examTaskDetail.getPaperInfoVoList(null);
|
|
|
+ for (PaperInfoVo paperInfoVo : filePathVoList) {
|
|
|
+ BasicAttachment basicAttachment = basicAttachmentService.getById(paperInfoVo.getAttachmentId());
|
|
|
+ FilePathVo filePathVo = JSON.parseObject(basicAttachment.getPath(), FilePathVo.class);
|
|
|
+ InputStream inputStream = fileUploadService.downloadFile(filePathVo.getPath(), filePathVo.getUploadType(), filePathVo.getType());
|
|
|
+ List<ConvertJpgStorage> convertJpgStorageList = htmlToJpgUtil.convertPdfToJpg(Long.valueOf(paperInfoVo.getAttachmentId()), inputStream, sysUser.getId());
|
|
|
+ if (convertJpgStorageList.size() > 0) {
|
|
|
+ paperInfoVo.setJpgAttachmentId(JSON.toJSONString(convertJpgStorageList));
|
|
|
+ } else {
|
|
|
+ paperInfoVo.setJpgAttachmentId(null);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- examTaskDetail.setPaperAttachmentIds(JSON.toJSONString(filePathVoList));
|
|
|
- examTaskDetailService.save(examTaskDetail);
|
|
|
+ examTaskDetail.setPaperAttachmentIds(JSON.toJSONString(filePathVoList));
|
|
|
+ examTaskDetailService.save(examTaskDetail);
|
|
|
|
|
|
- String paperAttachmentIds = examTaskDetail.getPaperAttachmentIds();
|
|
|
- List<PaperInfoVo> paperInfoVoList = ExamTaskUtil.parsePaperAttachmentPath(paperAttachmentIds);
|
|
|
- // 将题卡更新为已绑定
|
|
|
- examCardService.updateUsedById(paperInfoVoList.stream().filter(m -> StringUtils.isNotBlank(m.getCardId())).map(m -> Long.parseLong(m.getCardId())).collect(Collectors.toList()));
|
|
|
- // 更新题库试卷表
|
|
|
- for (PaperInfoVo paperInfoVo : paperInfoVoList) {
|
|
|
- if (StringUtils.isNotBlank(paperInfoVo.getUuid())) {
|
|
|
- UpdateWrapper<ExamTaskPaperData> updateWrapper = new UpdateWrapper<>();
|
|
|
- updateWrapper.lambda().set(ExamTaskPaperData::getPaperNumber, examTask.getPaperNumber())
|
|
|
- .eq(ExamTaskPaperData::getExamId, examTask.getExamId())
|
|
|
- .eq(ExamTaskPaperData::getPaperNumber, paperInfoVo.getUuid())
|
|
|
- .eq(ExamTaskPaperData::getPaperId, paperInfoVo.getPaperId())
|
|
|
- .eq(ExamTaskPaperData::getUuid, paperInfoVo.getUuid());
|
|
|
- examTaskPaperDataService.update(updateWrapper);
|
|
|
-
|
|
|
- // 删除临时数据
|
|
|
- QueryWrapper<ExamTaskPaperData> deleteWrapper = new QueryWrapper<>();
|
|
|
- deleteWrapper.lambda().eq(ExamTaskPaperData::getExamId, examTask.getExamId())
|
|
|
- .eq(ExamTaskPaperData::getPaperNumber, paperInfoVo.getUuid())
|
|
|
- .ne(ExamTaskPaperData::getPaperId, paperInfoVo.getPaperId());
|
|
|
- examTaskPaperDataService.remove(deleteWrapper);
|
|
|
+ String paperAttachmentIds = examTaskDetail.getPaperAttachmentIds();
|
|
|
+ List<PaperInfoVo> paperInfoVoList = ExamTaskUtil.parsePaperAttachmentPath(paperAttachmentIds);
|
|
|
+ // 将题卡更新为已绑定
|
|
|
+ examCardService.updateUsedById(paperInfoVoList.stream().filter(m -> StringUtils.isNotBlank(m.getCardId())).map(m -> Long.parseLong(m.getCardId())).collect(Collectors.toList()));
|
|
|
+ // 更新题库试卷表
|
|
|
+ for (PaperInfoVo paperInfoVo : paperInfoVoList) {
|
|
|
+ if (StringUtils.isNotBlank(paperInfoVo.getUuid())) {
|
|
|
+ UpdateWrapper<ExamTaskPaperData> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().set(ExamTaskPaperData::getPaperNumber, examTask.getPaperNumber())
|
|
|
+ .eq(ExamTaskPaperData::getExamId, examTask.getExamId())
|
|
|
+ .eq(ExamTaskPaperData::getPaperNumber, paperInfoVo.getUuid())
|
|
|
+ .eq(ExamTaskPaperData::getPaperId, paperInfoVo.getPaperId())
|
|
|
+ .eq(ExamTaskPaperData::getUuid, paperInfoVo.getUuid());
|
|
|
+ examTaskPaperDataService.update(updateWrapper);
|
|
|
+
|
|
|
+ // 删除临时数据
|
|
|
+ QueryWrapper<ExamTaskPaperData> deleteWrapper = new QueryWrapper<>();
|
|
|
+ deleteWrapper.lambda().eq(ExamTaskPaperData::getExamId, examTask.getExamId())
|
|
|
+ .eq(ExamTaskPaperData::getPaperNumber, paperInfoVo.getUuid())
|
|
|
+ .ne(ExamTaskPaperData::getPaperId, paperInfoVo.getPaperId());
|
|
|
+ examTaskPaperDataService.remove(deleteWrapper);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1194,14 +1190,14 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
// examPrintPlan.setExamStartTime(examDetailParams.getExamStartTime());
|
|
|
// examPrintPlan.setExamEndTime(examDetailParams.getExamEndTime());
|
|
|
}
|
|
|
- List<String> stringList = JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class);
|
|
|
- if (!stringList.contains("PAPER")) {
|
|
|
- long count = paperInfoVoList.stream().filter(m -> Objects.isNull(m.getAttachmentId())).count();
|
|
|
- if (count == 0) {
|
|
|
- stringList.add("PAPER");
|
|
|
- }
|
|
|
- }
|
|
|
- examPrintPlan.setPrintContent(String.join(",", stringList));
|
|
|
+// List<String> stringList = JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class);
|
|
|
+// if (!stringList.contains("PAPER")) {
|
|
|
+// long count = paperInfoVoList.stream().filter(m -> Objects.isNull(m.getAttachmentId())).count();
|
|
|
+// if (count == 0) {
|
|
|
+// stringList.add("PAPER");
|
|
|
+// }
|
|
|
+// }
|
|
|
+ examPrintPlan.setPrintContent(basicPrintConfig.getPrintContent());
|
|
|
examPrintPlan.setBackupMethod(BackupMethodEnum.valueOf(basicPrintConfig.getBackupMethod()));
|
|
|
examPrintPlan.setBackupCount(basicPrintConfig.getBackupCount());
|
|
|
examPrintPlan.setDrawRule(basicPrintConfig.getDrawRule());
|
|
@@ -1221,7 +1217,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> task.getId());
|
|
|
map.computeIfAbsent(SystemConstant.APPROVE_OPERATION, v -> FlowApprovePassEnum.PASS);
|
|
|
- map.computeIfAbsent(SystemConstant.PAPAER_ATTACHMENT_IDS, v -> examTaskDetail.getPaperAttachmentIds());
|
|
|
+ map.computeIfAbsent(SystemConstant.PAPAER_ATTACHMENT_IDS, v -> examTaskDetailList.stream().map(ExamTaskDetail::getPaperAttachmentIds).collect(Collectors.toList()));
|
|
|
map.computeIfAbsent(SystemConstant.APPROVE_USER_IDS, v -> examTaskSubmitPram.getApproveUserIds());
|
|
|
activitiService.taskApprove(map);
|
|
|
mapVar.putAll(map);
|
|
@@ -2224,8 +2220,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
* 简单校验提交参数
|
|
|
*
|
|
|
* @param examTaskDetail
|
|
|
+ * @param openAb
|
|
|
*/
|
|
|
- void validSubmitParam(ExamTaskDetail examTaskDetail, String printContent) {
|
|
|
+ void validSubmitParam(ExamTaskDetail examTaskDetail, String printContent, Boolean openAb) {
|
|
|
List<PaperInfoVo> paperInfoVoList = ExamTaskUtil.parsePaperAttachmentPath(examTaskDetail.getPaperAttachmentIds());
|
|
|
if (StringUtils.isBlank(examTaskDetail.getPaperType()) || CollectionUtils.isEmpty(paperInfoVoList)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("请添加卷型并上传试卷或题卡");
|
|
@@ -2245,10 +2242,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
}
|
|
|
|
|
|
String[] paperTypes = examTaskDetail.getPaperType().split(",");
|
|
|
-// int drawCount = examTaskDetail.getOpenAb() ? 2 : 1;
|
|
|
-// if (paperTypes.length - drawCount < 0) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("单次抽卷数量不能大于卷型数量");
|
|
|
-// }
|
|
|
+ int paperCount = openAb != null && openAb ? 2 : 1;
|
|
|
+ if (paperCount - paperTypes.length != 0) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(openAb ? "备用卷内必须有AB两个卷型" : "备用卷内只能有A卷");
|
|
|
+ }
|
|
|
|
|
|
// 是否强制包含试卷
|
|
|
// 未上传试卷的类型个数
|