|
@@ -446,7 +446,76 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
|
|
|
mapVar.putAll(approverMap);
|
|
|
mapVar.remove(SystemConstant.SEND_FLOW_START_MQ);
|
|
|
mapVar.put(SystemConstant.SEND_FLOW_MQ, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mapVar.put(SystemConstant.SUCCESS, true);
|
|
|
+ return mapVar;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重启流程
|
|
|
+ * @param examTaskDetail
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> taskRestart(ExamTaskDetail examTaskDetail) {
|
|
|
+ SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
+ SysOrg sysOrg = commonCacheService.orgCache(requestUser.getOrgId());
|
|
|
+
|
|
|
+ Map<String, Object> mapVar = new HashMap<>();
|
|
|
+ ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
|
|
|
+ List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getExamId(), examTask.getCourseCode(), examTask.getPaperNumber());
|
|
|
+ if (!CollectionUtils.isEmpty(examDetails)) {
|
|
|
+ StringJoiner stringJoiner = new StringJoiner("_");
|
|
|
+ stringJoiner.add(String.valueOf(examDetails.get(0).getSchoolId()))
|
|
|
+ .add(String.valueOf(examDetails.get(0).getExamStartTime()))
|
|
|
+ .add(String.valueOf(examDetails.get(0).getExamEndTime()))
|
|
|
+ .add(examTask.getCourseCode())
|
|
|
+ .add(examTask.getPaperNumber());
|
|
|
+ String key = stringJoiner.toString();
|
|
|
+ CreatePdfCacheUtil.deletePaperType(key);
|
|
|
+
|
|
|
+ List<ExamDetail> examDetailList = examDetails.stream().filter(m -> m.getStatus().equals(ExamDetailStatusEnum.WAITING)).collect(Collectors.toList());
|
|
|
+ for (ExamDetail examDetail : examDetailList) {
|
|
|
+ examDetail.setStatus(ExamDetailStatusEnum.NEW);
|
|
|
+ examDetailService.updateById(examDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // 不需要审核,直接更新,否则加入待审核列表(状态为不需要审核的或者为管理员身份的都不重新走审核流程)
|
|
|
+ if ((Objects.nonNull(examTask.getReview()) && examTask.getReview()) || !sysUserService.isAdminDataAuth(requestUser.getId())) {
|
|
|
+ // 发起新流程
|
|
|
+ Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
|
|
|
+ examTask,
|
|
|
+ TFCustomTypeEnum.ELECTRON_FLOW,
|
|
|
+ examTask.getUserId(),
|
|
|
+ false);
|
|
|
+ map.computeIfAbsent(SystemConstant.OLD_FLOW_ID, v -> examTask.getFlowId());
|
|
|
+ map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.RESTART);
|
|
|
+ map = activitiService.customFlowStart(map);
|
|
|
+ Long flowId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID));
|
|
|
+ UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().set(ExamTask::getFlowId, flowId).eq(ExamTask::getId, examTaskDetail.getExamTaskId());
|
|
|
+ examTaskService.update(updateWrapper);
|
|
|
+ mapVar.putAll(map);
|
|
|
+ mapVar.put(SystemConstant.SEND_FLOW_START_MQ, true);
|
|
|
+
|
|
|
+ tfFlowJoinService.saveOrUpdate(map);
|
|
|
+ if (Objects.nonNull(flowId)) {
|
|
|
+ // 审核一级
|
|
|
+ Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(flowId)).singleResult();
|
|
|
+ if (Objects.nonNull(task)) {
|
|
|
+ Map<String, Object> approverMap = new HashMap<>();
|
|
|
+ approverMap.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> task.getId());
|
|
|
+ approverMap.computeIfAbsent(SystemConstant.PAPAER_ATTACHMENT_IDS, v -> examTaskDetail.getPaperAttachmentIds());
|
|
|
+ approverMap.computeIfAbsent(SystemConstant.APPROVE_OPERATION, v -> FlowApprovePassEnum.PASS);
|
|
|
+ String remark = Objects.nonNull(sysOrg) ? sysOrg.getName() : "无机构";
|
|
|
+ approverMap.computeIfAbsent(SystemConstant.APPROVE_REMARK, v -> requestUser.getRealName() + "(" + remark + ")" + FlowApprovePassEnum.RESTART.getTitle());
|
|
|
+ activitiService.taskApprove(approverMap);
|
|
|
+ mapVar.putAll(approverMap);
|
|
|
+ mapVar.remove(SystemConstant.SEND_FLOW_START_MQ);
|
|
|
+ mapVar.put(SystemConstant.SEND_FLOW_MQ, true);
|
|
|
}
|
|
|
}
|
|
|
}
|