|
@@ -3,11 +3,9 @@ package com.qmth.distributed.print.business.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.qmth.distributed.print.business.entity.ExamTask;
|
|
import com.qmth.distributed.print.business.entity.ExamTask;
|
|
import com.qmth.distributed.print.business.entity.TFFlowApprove;
|
|
import com.qmth.distributed.print.business.entity.TFFlowApprove;
|
|
|
|
+import com.qmth.distributed.print.business.entity.TFFlowApproveLog;
|
|
import com.qmth.distributed.print.business.entity.TFFlowLog;
|
|
import com.qmth.distributed.print.business.entity.TFFlowLog;
|
|
-import com.qmth.distributed.print.business.service.ActivitiService;
|
|
|
|
-import com.qmth.distributed.print.business.service.ExamTaskService;
|
|
|
|
-import com.qmth.distributed.print.business.service.TFFlowApproveService;
|
|
|
|
-import com.qmth.distributed.print.business.service.TFFlowLogService;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
@@ -71,6 +69,9 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
@Resource
|
|
@Resource
|
|
ExamTaskService examTaskService;
|
|
ExamTaskService examTaskService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ TFFlowApproveLogService tfFlowApproveLogService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 注册流程
|
|
* 注册流程
|
|
*
|
|
*
|
|
@@ -221,12 +222,22 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
|
|
|
String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
|
|
String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
|
|
ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
|
|
ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
|
|
|
|
+ //获取当前流程节点
|
|
String currActivityId = task.getTaskDefinitionKey();
|
|
String currActivityId = task.getTaskDefinitionKey();
|
|
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
|
|
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
|
|
FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
|
|
FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
|
|
|
|
+
|
|
|
|
+ //流程审批
|
|
QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
|
|
tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, processInstanceId);
|
|
tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, processInstanceId);
|
|
TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
|
|
TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
|
|
|
|
+
|
|
|
|
+ //流程审批记录
|
|
|
|
+ QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, processInstanceId)
|
|
|
|
+ .eq(TFFlowApproveLog::getTaskId, examTask.getId());
|
|
|
|
+ TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
|
|
|
|
+
|
|
TFFlowLog tfFlowLog = null;
|
|
TFFlowLog tfFlowLog = null;
|
|
if (currFlow instanceof UserTask) {
|
|
if (currFlow instanceof UserTask) {
|
|
UserTask userTask = (UserTask) currFlow;
|
|
UserTask userTask = (UserTask) currFlow;
|
|
@@ -240,6 +251,9 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
if (Objects.isNull(taskUser)) {
|
|
if (Objects.isNull(taskUser)) {
|
|
throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
|
|
throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
|
|
}
|
|
}
|
|
|
|
+ if (Objects.isNull(tfFlowApproveLog)) {
|
|
|
|
+ tfFlowApproveLog = new TFFlowApproveLog(Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId());
|
|
|
|
+ }
|
|
tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
|
|
tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.SUBMIT);
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.SUBMIT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
@@ -255,12 +269,16 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
|
|
FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
|
|
String approve = approvePass == FlowApprovePassEnum.PASS ? "1" : "0";
|
|
String approve = approvePass == FlowApprovePassEnum.PASS ? "1" : "0";
|
|
tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
|
|
tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
|
|
|
|
+ tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
|
|
|
|
+ tfFlowApproveLog.setPrimaryApproveRemark(remark);
|
|
if (Objects.equals(approve, "0")) {//驳回命题
|
|
if (Objects.equals(approve, "0")) {//驳回命题
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
|
|
+ tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
|
|
} else if (Objects.equals(approve, "1")) {//提交
|
|
} else if (Objects.equals(approve, "1")) {//提交
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
|
|
+ tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
|
|
} else {
|
|
} else {
|
|
@@ -277,6 +295,8 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
}
|
|
}
|
|
FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
|
|
FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
|
|
String approve = null;
|
|
String approve = null;
|
|
|
|
+ tfFlowApproveLog.setSecondApproveId(sysUser.getId());
|
|
|
|
+ tfFlowApproveLog.setSecondApproveRemark(remark);
|
|
if (approvePass == FlowApprovePassEnum.PASS) {
|
|
if (approvePass == FlowApprovePassEnum.PASS) {
|
|
approve = "2";
|
|
approve = "2";
|
|
} else {
|
|
} else {
|
|
@@ -292,14 +312,17 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
|
|
tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
|
|
if (Objects.equals(approve, "0")) {//驳回命题
|
|
if (Objects.equals(approve, "0")) {//驳回命题
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
|
|
+ tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
|
|
} else if (Objects.equals(approve, "1")) {//驳回主任
|
|
} else if (Objects.equals(approve, "1")) {//驳回主任
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
|
|
+ tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.REJECT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
|
|
} else if (Objects.equals(approve, "2")) {//提交
|
|
} else if (Objects.equals(approve, "2")) {//提交
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
|
|
+ tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.FINISH);
|
|
tfFlowApprove.setStatus(FlowStatusEnum.FINISH);
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
|
|
} else {
|
|
} else {
|
|
@@ -309,6 +332,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
map.computeIfAbsent(SystemConstant.APPROVE, v -> finalApprove);
|
|
map.computeIfAbsent(SystemConstant.APPROVE, v -> finalApprove);
|
|
}
|
|
}
|
|
tfFlowApprove.updateInfo(sysUser.getId());
|
|
tfFlowApprove.updateInfo(sysUser.getId());
|
|
|
|
+ tfFlowApproveLog.updateInfo(sysUser.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
tfFlowApprove.setApproveId(sysUser.getId());
|
|
tfFlowApprove.setApproveId(sysUser.getId());
|
|
@@ -318,5 +342,8 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
if (Objects.nonNull(tfFlowLog)) {
|
|
if (Objects.nonNull(tfFlowLog)) {
|
|
tfFlowLogService.save(tfFlowLog);
|
|
tfFlowLogService.save(tfFlowLog);
|
|
}
|
|
}
|
|
|
|
+ if (Objects.nonNull(tfFlowApproveLog)) {
|
|
|
|
+ tfFlowApproveLogService.saveOrUpdate(tfFlowApproveLog);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|