审批流程 代码优化
parent
ef77ff77ea
commit
54164e9a48
|
@ -58,9 +58,7 @@ public class ActListenerService {
|
|||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(procInsId).singleResult();
|
||||
logger.info("addCandidateUsers : {}, taskName:{}, hasProcIns:{}", candidateUsers, delegateTask.getName(), processInstance != null);
|
||||
|
||||
if (actUtil.isProjectProcessIns(processInstance)) {
|
||||
updateProjectApprover(candidateUsers, processInstance, procDefId, taskDefKey);
|
||||
}
|
||||
|
||||
delegateTask.addCandidateUsers(candidateUsers);
|
||||
}
|
||||
|
|
|
@ -104,10 +104,8 @@ public class ActProcInsService {
|
|||
taskService.setAssignee(taskId, adminId);
|
||||
taskService.complete(taskId);
|
||||
|
||||
if (actUtil.isProjectProcessIns(instance)) {
|
||||
projectTaskRecordService.saveTaskRecord(Integer.parseInt(instance.getBusinessKey()),
|
||||
task, ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus(), ActConstant.TASK_INDEX_FIRST_USER_TASK, comment);
|
||||
}
|
||||
|
||||
return instance.getId();
|
||||
}
|
||||
|
|
|
@ -73,17 +73,13 @@ public class ActTaskDefService {
|
|||
taskService.setAssignee(taskId, userId);
|
||||
if (ActConstant.TASK_TYPE_SINGE == actTaskDef.getTaskType()) {
|
||||
handleSinge(processInstance, taskId, type, actTaskDef);
|
||||
} else if (ActConstant.TASK_TYPE_MULTI == actTaskDef.getTaskType()) {
|
||||
//多实列 会签处理
|
||||
handleMulti(processInstance, taskId, type, actTaskDef);
|
||||
}
|
||||
|
||||
if (actUtil.isProjectProcessIns(processInstance)) {
|
||||
|
||||
//保存审批记录
|
||||
projectTaskRecordService.saveTaskRecord(Integer.parseInt(processInstance.getBusinessKey()),
|
||||
currentTask, type, actTaskDef.getTaskIndex(), message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -94,49 +90,12 @@ public class ActTaskDefService {
|
|||
* @param comment
|
||||
*/
|
||||
public void completeTaskByProcInsId(String procInsId, int type, String comment) {
|
||||
//int adminId = InterfaceUtil.getAdminId();
|
||||
List<Task> taskList = taskService.createTaskQuery().processInstanceId(procInsId).list();
|
||||
//List<String> assignUserList;
|
||||
for (Task task : taskList) {
|
||||
//assignUserList = actUtil.getAssignUserList(task.getId());
|
||||
//if (assignUserList.contains(String.valueOf(adminId))) {
|
||||
completeTask(task.getId(), procInsId, comment, type);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 会签处理
|
||||
*
|
||||
* @param taskId
|
||||
* @param processInstance
|
||||
* @param type
|
||||
* @param actTaskDef
|
||||
*/
|
||||
private void handleMulti(ProcessInstance processInstance, String taskId, int type, ActTaskDef actTaskDef) {
|
||||
if (ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == type) {
|
||||
//一个人驳回 整个任务节点驳回
|
||||
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
|
||||
for (int i = 0; i < taskList.size(); i++) {
|
||||
TaskEntity taskEntity = (TaskEntity) taskList.get(i);
|
||||
if (!taskId.equals(taskEntity.getId())) {
|
||||
/* taskEntity.setProcessInstanceId(null);
|
||||
taskEntity.setExecutionId(null);
|
||||
taskService.saveTask(taskEntity);*/
|
||||
|
||||
taskService.addComment(taskEntity.getId(), processInstance.getId(), "会签驳回,任务自动失效");
|
||||
taskService.complete(taskEntity.getId());
|
||||
//taskService.deleteTask(taskEntity.getId(), false); // 不删除历史记录
|
||||
}
|
||||
}
|
||||
|
||||
//驳回到配置的节点
|
||||
actUtil.jumpToTargetTask(taskId, actTaskDef.getRollbackTaskKey());
|
||||
return;
|
||||
}
|
||||
|
||||
taskService.complete(taskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 或签处理
|
||||
|
@ -152,22 +111,18 @@ public class ActTaskDefService {
|
|||
//审批通过
|
||||
taskService.complete(taskId);
|
||||
|
||||
if (actUtil.isProjectProcessIns(procDefKey)) {
|
||||
//最后一个任务完成后 更新项目状态为审批通过
|
||||
updateProjectPassed(processInstance, actTaskDef, procDefKey);
|
||||
}
|
||||
|
||||
} else if (ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == type) {
|
||||
//驳回
|
||||
String rollbackTaskKey = actTaskDef.getRollbackTaskKey();
|
||||
actUtil.jumpToTargetTask(taskId, rollbackTaskKey);
|
||||
|
||||
//驳回后 更新项目状态为审批不通过
|
||||
if (actUtil.isProjectProcessIns(procDefKey)) {
|
||||
int projectId = Integer.parseInt(processInstance.getBusinessKey());
|
||||
projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_UNPASS);
|
||||
logger.info("updateProjectUnPassed projectId:{}, proDefKey:{}", projectId, procDefKey);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -201,23 +201,6 @@ public class ActUtil {
|
|||
}
|
||||
|
||||
|
||||
public boolean isProjectProcessIns(ProcessInstance processInstance) {
|
||||
if (processInstance == null) {
|
||||
return false;
|
||||
}
|
||||
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult();
|
||||
String procDefKey = processDefinition.getKey();
|
||||
return isProjectProcessIns(procDefKey);
|
||||
}
|
||||
|
||||
public boolean isProjectProcessIns(String procDefKey) {
|
||||
return procDefKey.equals(ActConstant.PROCESS_DEFKEY_ESTIMATE)
|
||||
|| procDefKey.equals(ActConstant.PROCESS_DEFKEY_BUDGET)
|
||||
|| procDefKey.equals(ActConstant.PROCESS_DEFKEY_SETTLE)
|
||||
|| procDefKey.equals(ActConstant.PROCESS_DEFKEY_FINAL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成xml流
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue