|
@@ -31,7 +31,6 @@ import org.activiti.engine.RepositoryService;
|
|
|
import org.activiti.engine.RuntimeService;
|
|
|
import org.activiti.engine.TaskService;
|
|
|
import org.activiti.engine.impl.RepositoryServiceImpl;
|
|
|
-import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
|
|
|
import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
|
|
|
import org.activiti.engine.repository.DeploymentBuilder;
|
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
@@ -181,9 +180,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
runtimeService.deleteProcessInstance(flowId, FlowApproveSetupEnum.END.getTitle());
|
|
|
//流程审批
|
|
|
- QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
|
|
|
- tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(flowId));
|
|
|
- TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
|
|
|
+ TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId);
|
|
|
if (Objects.isNull(tfFlowApprove)) {
|
|
|
ExamTask examTask = examTaskService.findByFlowId(flowId);
|
|
|
int count = sysUserService.countByTeachingRoomId(examTask.getTeachingRoomId());
|
|
@@ -212,10 +209,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
if (currFlow instanceof UserTask) {
|
|
|
UserTask userTask = (UserTask) currFlow;
|
|
|
//流程审批记录
|
|
|
- QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
|
|
|
- tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(flowId))
|
|
|
- .eq(TFFlowApproveLog::getTaskId, examTask.getId());
|
|
|
- TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
|
|
|
+ TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.findByFlowId(flowId);
|
|
|
if (Objects.isNull(tfFlowApproveLog)) {
|
|
|
tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), flowId, examTask.getId(), sysUser.getId(), sysUser.getId());
|
|
|
}
|
|
@@ -313,16 +307,12 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
|
|
|
|
|
|
//流程审批
|
|
|
- QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
|
|
|
- tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(processInstanceId));
|
|
|
- TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
|
|
|
+ TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(processInstanceId);
|
|
|
|
|
|
//流程审批记录
|
|
|
- QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
|
|
|
- tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(processInstanceId))
|
|
|
- .eq(TFFlowApproveLog::getTaskId, examTask.getId());
|
|
|
- TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
|
|
|
+ TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.findByFlowId(processInstanceId);
|
|
|
|
|
|
+ Map<String, Object> objectMap = new HashMap<>();
|
|
|
TFFlowLog tfFlowLog = null;
|
|
|
if (currFlow instanceof UserTask) {
|
|
|
UserTask userTask = (UserTask) currFlow;
|
|
@@ -370,8 +360,15 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
} else if (approve == FlowApproveVariableEnum.SECOND_APPROVE) {//提交
|
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
|
tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
|
- tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
|
- tfFlowApprove.setSetup(FlowApproveSetupEnum.THREE_APPROVE.getSetup());
|
|
|
+ List<FlowTaskResult> taskTaskAll = getTaskAll(processInstanceId);
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
|
+ tfFlowApprove.setSetup(FlowApproveSetupEnum.THREE_APPROVE.getSetup());
|
|
|
+ objectMap.computeIfAbsent(SystemConstant.APPROVE_PRESIDENT_SYSTEM, v -> true);
|
|
|
+ } else {
|
|
|
+ tfFlowApprove.setStatus(FlowStatusEnum.FINISH);
|
|
|
+ tfFlowApprove.setSetup(FlowApproveSetupEnum.FINISH.getSetup());
|
|
|
+ }
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("流程变量值错误");
|
|
|
}
|
|
@@ -380,13 +377,20 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
TFFlowApproveLog finalTfFlowApproveLog = tfFlowApproveLog;
|
|
|
map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> finalTfFlowApproveLog.getStartId());
|
|
|
} else if (setupEnum == FlowApproveSetupEnum.THREE_APPROVE) {//命题提交
|
|
|
- flowSubmitVaild(task, sysUser.getId());
|
|
|
+ boolean presidentApprove = Objects.nonNull(map.get(SystemConstant.APPROVE_PRESIDENT_SYSTEM)) ? (boolean) map.get(SystemConstant.APPROVE_PRESIDENT_SYSTEM) : false;
|
|
|
+ Long userId = null;
|
|
|
+ if (presidentApprove) {
|
|
|
+ userId = tfFlowApproveLog.getStartId();
|
|
|
+ } else {
|
|
|
+ userId = sysUser.getId();
|
|
|
+ }
|
|
|
+ flowSubmitVaild(task, userId);
|
|
|
tfFlowLog.setApproveSetup(FlowApproveSetupEnum.THREE_APPROVE.getSetup());
|
|
|
tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
|
|
|
tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
|
|
|
tfFlowApprove.setSetup(FlowApproveSetupEnum.THREE_APPROVE.getSetup());
|
|
|
- tfFlowApproveLog.setStartApproveId(sysUser.getId());
|
|
|
- tfFlowApproveLog.setSecondApproveRemark(remark);
|
|
|
+ tfFlowApproveLog.setStartApproveId(userId);
|
|
|
+ tfFlowApproveLog.setThreeApproveRemark(remark);
|
|
|
map.computeIfAbsent(SystemConstant.APPROVE_PRINT_USER_IDS, v -> map.get(SystemConstant.APPROVE_USER_IDS));
|
|
|
} else if (setupEnum == FlowApproveSetupEnum.FOUR_APPROVE) {//印刷员提交
|
|
|
flowApproveVaild(task, sysUser.getId(), map);
|
|
@@ -436,7 +440,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
}
|
|
|
examTask.updateInfo(sysUser.getId());
|
|
|
examTaskService.updateById(examTask);
|
|
|
- Map<String, Object> objectMap = new HashMap<>();
|
|
|
objectMap.putIfAbsent("tfFlowApprove", tfFlowApprove);
|
|
|
objectMap.putIfAbsent("examTask", examTask);
|
|
|
objectMap.putIfAbsent("sysUser", sysUser);
|