|
@@ -7,6 +7,7 @@ import com.qmth.distributed.print.business.entity.ExamTask;
|
|
|
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.enums.ExamStatusEnum;
|
|
|
import com.qmth.distributed.print.business.service.*;
|
|
|
import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
@@ -15,8 +16,8 @@ import com.qmth.teachcloud.common.enums.*;
|
|
|
import com.qmth.teachcloud.common.util.RedisUtil;
|
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
-import org.activiti.bpmn.model.*;
|
|
|
import org.activiti.bpmn.model.Process;
|
|
|
+import org.activiti.bpmn.model.*;
|
|
|
import org.activiti.engine.HistoryService;
|
|
|
import org.activiti.engine.RepositoryService;
|
|
|
import org.activiti.engine.RuntimeService;
|
|
@@ -175,6 +176,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void flowEnd(String flowId) {
|
|
|
+ Task task = taskService.createTaskQuery().processInstanceId(flowId).singleResult();
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
runtimeService.deleteProcessInstance(flowId, FlowGdykdxApproveSetupEnum.END.getTitle());
|
|
|
//流程审批
|
|
@@ -186,6 +188,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
} else {
|
|
|
tfFlowApprove.setStatus(FlowStatusEnum.END);
|
|
|
tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
|
|
|
+ tfFlowApprove.updateInfo(sysUser.getId());
|
|
|
}
|
|
|
tfFlowApproveService.saveOrUpdate(tfFlowApprove);
|
|
|
|
|
@@ -194,7 +197,54 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(flowId));
|
|
|
ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
|
|
|
TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId(), FlowGdykdxApproveSetupEnum.END.getTitle());
|
|
|
+ tfFlowLog.setApproveOperation(FlowApproveOperationEnum.END);
|
|
|
+ tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
|
|
|
tfFlowLogService.save(tfFlowLog);
|
|
|
+
|
|
|
+ if (Objects.nonNull(task)) {
|
|
|
+ String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(flowId).singleResult().getProcessDefinitionId();
|
|
|
+ ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
|
|
|
+ //获取当前流程节点
|
|
|
+ String currActivityId = task.getTaskDefinitionKey();
|
|
|
+ BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
|
|
|
+ FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
|
|
|
+ if (currFlow instanceof UserTask) {
|
|
|
+ UserTask userTask = (UserTask) currFlow;
|
|
|
+ //广东医科大学流程
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ //流程审批记录
|
|
|
+ QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
|
|
|
+ tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(flowId))
|
|
|
+ .eq(TFFlowApproveLog::getTaskId, examTask.getId());
|
|
|
+ TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
|
|
|
+ if (Objects.isNull(tfFlowApproveLog)) {
|
|
|
+ tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
|
|
|
+ if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题
|
|
|
+ tfFlowApproveLog.setStartId(sysUser.getId());
|
|
|
+ tfFlowApproveLog.setRemark(FlowGdykdxApproveSetupEnum.SUBMIT.getTitle() + FlowApproveOperationEnum.END.getTitle());
|
|
|
+ } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任
|
|
|
+ tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
|
|
|
+ tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.END);
|
|
|
+ tfFlowApproveLog.setPrimaryApproveRemark(FlowApproveOperationEnum.END.getTitle());
|
|
|
+ } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长
|
|
|
+ tfFlowApproveLog.setSecondApproveId(sysUser.getId());
|
|
|
+ tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.END);
|
|
|
+ tfFlowApproveLog.setSecondApproveRemark(FlowApproveOperationEnum.END.getTitle());
|
|
|
+ }
|
|
|
+ tfFlowApproveLog.updateInfo(sysUser.getId());
|
|
|
+ tfFlowApproveLogService.saveOrUpdate(tfFlowApproveLog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //命题任务修改
|
|
|
+ examTask.setFlowId(null);
|
|
|
+ examTask.setStatus(ExamStatusEnum.DRAFT);
|
|
|
+ examTask.updateInfo(sysUser.getId());
|
|
|
+ examTaskService.updateById(examTask);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -243,7 +293,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
}
|
|
|
String processInstanceId = task.getProcessInstanceId();
|
|
|
QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
|
|
|
- examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(processInstanceId));
|
|
|
+ examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(task.getProcessInstanceId()));
|
|
|
ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
|
|
|
|
|
|
String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
|