business/src/main/java/com/ycl/controller/HiddenAdminController.java
@@ -70,7 +70,7 @@ @GetMapping("/page") @ApiOperation(value = "分页", notes = "分页") @PreAuthorize("@ss.hasPermi('hiddenAdmin:page')") // @PreAuthorize("@ss.hasPermi('hiddenAdmin:page')") public Result page(HiddenAdminQuery query) { return hiddenAdminService.page(query); } business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java
@@ -19,7 +19,7 @@ /** * 项目id */ private Long projectId; private String projectId; /** * 项目名称 business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java
@@ -35,6 +35,21 @@ @ApiModelProperty("工程名称") private String projectName; @ApiModelProperty("流程实例id") private String processInsId; @ApiModelProperty("流程定义id") private String processDefId; @ApiModelProperty("发布id") private String deployId; @ApiModelProperty("流程名称") private String flowableProcessName; @ApiModelProperty("流程是否挂起/暂停") private boolean suspended; /** 项目推进类型 */ @ApiModelProperty("项目推进类型") private String projectType; @@ -77,7 +92,7 @@ private String unitName; /** 工程列表 */ @ApiModelProperty("工程列表") @ApiModelProperty("子工程列表") private List<ProjectEngineeringVO> children = new ArrayList<ProjectEngineeringVO>(); public static ProjectEngineeringVO getVoByEntity(@NonNull ProjectEngineering entity, ProjectEngineeringVO vo) { business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -155,28 +155,18 @@ return AjaxResult.error("项目流程未绑定"); } Map<String, Object> processVariables = new HashMap<>(); //查出字典中需要注入的字段信息 List<String> dictList = sysDictDService.selectDictDataByType("flow_variables").stream().map(SysDictData::getDictValue).collect(Collectors.toList()); Map<String, Object> newV = new HashMap<>(2); if (!org.springframework.util.CollectionUtils.isEmpty(variables)) { for (String key : variables.keySet()) { newV.put(task.getTaskDefinitionKey() + "&" + key, variables.get(key)); //字典里有就放入流程变量中 // 字典里有就不做处理 if (!CollectionUtils.isEmpty(dictList) && dictList.contains(key)) { if ("money".equals(key)) { // 万元转元 Object w = variables.get(key); BigDecimal y = new BigDecimal(w.toString()).multiply(new BigDecimal(10000)); processVariables.put(key, y); } else { processVariables.put(key,variables.get(key)); newV.put(key,variables.get(key)); } } } } //添加流程变量 if(!processVariables.isEmpty()) taskService.setVariables(taskId,processVariables); taskService.addComment(taskId, task.getProcessInstanceId(), FlowComment.SUBMIT.getType(), "完成提交"); if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.resolveTask(taskId, newV); @@ -1282,8 +1272,14 @@ if (node.getCurrent()) { return Boolean.TRUE; } HistoricTaskInstance beforeTask = historyService.createHistoricTaskInstanceQuery().processInstanceId(finalProcessInsId).finished().taskDefinitionKey(node.getBeforeNodeDefId()).singleResult(); return Objects.nonNull(beforeTask); List<HistoricTaskInstance> beforeTasks = historyService.createHistoricTaskInstanceQuery() .processInstanceId(finalProcessInsId) .finished() .taskDefinitionKey(node.getBeforeNodeDefId()) .orderByTaskCreateTime() .desc() .list(); return CollectionUtils.isNotEmpty(beforeTasks) && Objects.nonNull(beforeTasks.get(0)); }).collect(Collectors.toList()); List<DoFormDetailVO> vos = beforeNodes.stream().map(node -> { if (node.getCurrent()) { @@ -1354,8 +1350,14 @@ if (node.getCurrent()) { return Boolean.TRUE; } HistoricTaskInstance beforeTask = historyService.createHistoricTaskInstanceQuery().processInstanceId(task.getProcessInstanceId()).finished().taskDefinitionKey(node.getBeforeNodeDefId()).singleResult(); return Objects.nonNull(beforeTask); List<HistoricTaskInstance> beforeTaskList = historyService.createHistoricTaskInstanceQuery() .processInstanceId(task.getProcessInstanceId()) .finished() .taskDefinitionKey(node.getBeforeNodeDefId()) .orderByTaskCreateTime() .desc() .list(); return CollectionUtils.isNotEmpty(beforeTaskList) && Objects.nonNull(beforeTaskList.get(0)); }).collect(Collectors.toList()); List<DoFormDetailVO> vos = dataList.stream().map(node -> { if (node.getCurrent()) { business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -19,9 +19,7 @@ import com.ycl.domain.entity.*; import com.ycl.domain.form.*; import com.ycl.domain.json.*; import com.ycl.domain.vo.CustomerTaskVO; import com.ycl.domain.vo.IndexCustomerTaskVO; import com.ycl.domain.vo.ProjectProcessDetailVO; import com.ycl.domain.vo.*; import com.ycl.event.event.TaskLogEvent; import com.ycl.mapper.ProjectEngineeringMapper; import com.ycl.mapper.ProjectInfoMapper; @@ -29,7 +27,6 @@ import com.ycl.service.*; import com.ycl.common.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.domain.vo.ProjectProcessVO; import com.ycl.domain.query.ProjectProcessQuery; import com.ycl.service.common.TaskCommonService; import com.ycl.system.service.ISysDeptService; @@ -105,9 +102,20 @@ IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class); baseMapper.getPage(query, page); for (ProjectProcessVO vo : page.getRecords()) { vo.setChildren(TreeUtil.treeForProjectEng(baseMapper.getEngineeringList(vo.getId()))); List<ProjectEngineeringVO> childList = baseMapper.getEngineeringList(vo.getId()); childList.stream().forEach(child -> { if (StringUtils.isNotBlank(child.getProcessDefId())) { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(child.getProcessDefId()).singleResult(); if (Objects.nonNull(processDefinition)) { child.setSuspended(processDefinition.isSuspended()); child.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")"); child.setDeployId(processDefinition.getDeploymentId()); } } }); vo.setChildren(TreeUtil.treeForProjectEng(childList)); vo.setStatus(vo.getProjectStatus()); if (Objects.nonNull(vo.getProcessDefId())) { if (StringUtils.isNotBlank(vo.getProcessDefId())) { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult(); if (Objects.nonNull(processDefinition)) { vo.setSuspended(processDefinition.isSuspended()); @@ -148,7 +156,6 @@ Long unitId = null; if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) { ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper) .select(ProjectInfo::getProjectOwnerUnit) .eq(ProjectInfo::getId, form.getProjectId()) .one(); if (Objects.isNull(project)) { @@ -157,7 +164,6 @@ unitId = project.getProjectOwnerUnit(); } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) { ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper) .select(ProjectEngineering::getDepartment) .eq(ProjectEngineering::getId, form.getProjectId()) .one(); if (Objects.isNull(projectEngineering)) { @@ -188,7 +194,6 @@ Long unitId = null; if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) { ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper) .select(ProjectInfo::getProjectOwnerUnit) .eq(ProjectInfo::getId, form.getProjectId()) .one(); if (Objects.isNull(project)) { @@ -197,7 +202,6 @@ unitId = project.getProjectOwnerUnit(); } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) { ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper) .select(ProjectEngineering::getDepartment) .eq(ProjectEngineering::getId, form.getProjectId()) .one(); if (Objects.isNull(projectEngineering)) { @@ -243,6 +247,7 @@ variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); // 将该项目的申请人(业主方)作为流程中某些环节的处理人 variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy); variables.put("a", 1); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables); return processInstance.getId(); } @@ -394,13 +399,28 @@ taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey()); // 流程项目信息 ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId()); ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper) .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId()) .one(); String projectId = ""; String projectName = ""; if (Objects.nonNull(projectProcess)) { if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.PROJECT)) { ProjectInfo project = projectInfoMapper.selectById(projectProcess.getProjectId()); if (Objects.nonNull(project)) { taskVO.setProjectId(project.getId()); taskVO.setProjectName(project.getProjectName()); } else { continue; projectId = projectProcess.getProjectId(); projectName = project.getProjectName(); } } else if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.ENGINEERING)) { ProjectEngineering engineering = projectEngineeringMapper.selectById(projectProcess.getProjectId()); if (Objects.nonNull(engineering)) { projectId = projectProcess.getProjectId(); projectName = engineering.getProjectName(); } } } taskVO.setProjectId(projectId); taskVO.setProjectName(projectName); // 流程发起人信息 this.setPromoterInfo(taskVO); business/src/main/resources/mapper/ProjectProcessMapper.xml
@@ -77,6 +77,8 @@ <result column="parent_id" property="parent" /> <result column="project_owner_unit_name" property="projectOwnerUnitName" /> <result column="competent_department_name" property="competentDepartmentName" /> <result column="process_ins_id" property="processInsId" /> <result column="process_def_id" property="processDefId" /> </resultMap> <select id="getProjectEngineeringList" parameterType="string" resultMap="EngineeringMap"> @@ -111,9 +113,11 @@ SELECT TT.id, TT.project_info_id, TT.project_name, TT.project_type, TT.investment_amount, TT.status, TT.unit, TT.department, TT.parent_id, TT.year, TT.gmt_create, (SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.unit) AS project_owner_unit_name, (SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.department) AS competent_department_name (SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.department) AS competent_department_name, TPP.process_ins_id, TPP.process_def_id FROM temp_table TT LEFT JOIN t_project_process TPP ON TPP.project_id = TT.id AND TPP.deleted = 0 AND TPP.project_type = 'ENGINEERING' ORDER BY TT.gmt_create DESC </select> @@ -169,7 +173,9 @@ <select id="getNormalInsIds" resultType="string"> SELECT TPP.process_ins_id FROM t_project_info TPI INNER JOIN t_project_process TPP ON TPI.id = TPP.project_id AND TPI.deleted = 0 SELECT TPP.process_ins_id FROM t_project_info TPI INNER JOIN t_project_process TPP ON TPI.id = TPP.project_id AND TPI.deleted = 0 AND TPP.project_type = 'PROJECT' UNION ALL SELECT TPP.process_ins_id FROM t_project_engineering TPE INNER JOIN t_project_process TPP ON TPE.id = TPP.project_id AND TPE.deleted = 0 AND TPP.project_type = 'ENGINEERING' </select> </mapper>