| | |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.common.constant.ProcessConstants; |
| | | import com.ycl.common.constant.ProcessOverTimeConstants; |
| | | import com.ycl.common.core.domain.AjaxResult; |
| | | import com.ycl.common.core.domain.entity.SysDept; |
| | | import com.ycl.common.core.domain.entity.SysDictData; |
| | | import com.ycl.common.core.domain.entity.SysRole; |
| | |
| | | public Result startProcess(ProjectProcessForm form) { |
| | | Long unitId = null; |
| | | if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) { |
| | | //获得项目信息 |
| | | ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper) |
| | | .eq(ProjectInfo::getId, form.getProjectId()) |
| | | .one(); |
| | |
| | | } |
| | | unitId = project.getProjectOwnerUnit(); |
| | | } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) { |
| | | //获得工程信息 |
| | | ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper) |
| | | .eq(ProjectEngineering::getId, form.getProjectId()) |
| | | .one(); |
| | |
| | | if (Objects.isNull(dept)) { |
| | | throw new RuntimeException("业主单位不存在"); |
| | | } |
| | | //启动流程 |
| | | String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId()); |
| | | //插入项目流程信息表 |
| | | ProjectProcess entity = new ProjectProcess(); |
| | | entity.setProjectId(form.getProjectId()); |
| | | entity.setProcessDefId(form.getProcessDefId()); |
| | |
| | | |
| | | |
| | | ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefId) |
| | | .latestVersion().singleResult(); |
| | | .latestVersion().singleResult();// 查询最新版本的流程定义 流程定义对象 |
| | | if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) { |
| | | throw new RuntimeException("该流程已被挂起,请先激活流程"); |
| | | } |
| | |
| | | // 将该项目的申请人(业主方)作为流程中某些环节的处理人 |
| | | variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy); |
| | | variables.put("a", 1); |
| | | //将参数放入flowable流程引擎并启动流程 |
| | | ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables); |
| | | return processInstance.getId(); |
| | | } |
| | |
| | | if (Objects.isNull(task)) { |
| | | throw new RuntimeException("未在运行任务中找到该任务,无法执行转办操作"); |
| | | } |
| | | //通过IdentityLink(身份链接)获取任务的原处理人 / 组,分两种情况清理: |
| | | List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId()); |
| | | // 转办之前的处理人 |
| | | List<String> beforeHandlerIds = new ArrayList<>(2); |
| | |
| | | * @param result |
| | | */ |
| | | public void getTodoTaskList(String projectId, String processInsId, String taskName, int pageSize, int pageNum, Result result) { |
| | | |
| | | //TODO 看看如何获得人员信息的 |
| | | TaskQuery taskQuery = taskService.createTaskQuery() |
| | | .active() |
| | | .processInstanceId(processInsId) |
| | |
| | | * @param hisTaskList |
| | | * @return |
| | | */ |
| | | private List<HistoricTaskInstance> distinctHisTask(List<HistoricTaskInstance> hisTaskList) { |
| | | @Override |
| | | public List<HistoricTaskInstance> distinctHisTask(List<HistoricTaskInstance> hisTaskList) { |
| | | Map<String, HistoricTaskInstance> uniqueTasks = new HashMap<>(); |
| | | for (HistoricTaskInstance task : hisTaskList) { |
| | | String taskDefinitionKey = task.getTaskDefinitionKey(); |