From f20fad8125774e487e133e909b323b43bd11db24 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 03 三月 2025 20:40:15 +0800 Subject: [PATCH] Merge branch 'master' into dev --- business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java | 2 business/src/main/resources/mapper/ProjectProcessMapper.xml | 10 ++++- business/src/main/java/com/ycl/controller/HiddenAdminController.java | 2 business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java | 17 ++++++++ business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 52 ++++++++++++++++++-------- business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 36 +++++++++-------- 6 files changed, 81 insertions(+), 38 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/HiddenAdminController.java b/business/src/main/java/com/ycl/controller/HiddenAdminController.java index eab2ef2..ffd4d08 100644 --- a/business/src/main/java/com/ycl/controller/HiddenAdminController.java +++ b/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); } diff --git a/business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java b/business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java index 1cf1825..49ded56 100644 --- a/business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java +++ b/business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java @@ -19,7 +19,7 @@ /** * 椤圭洰id */ - private Long projectId; + private String projectId; /** * 椤圭洰鍚嶇О diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java index 059d654..e5cf83d 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java +++ b/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) { diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java index 8c3ec5f..fd94884 100644 --- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java +++ b/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()) { diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java index 61a8123..d7c41ac 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/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()); - if (Objects.nonNull(project)) { - taskVO.setProjectId(project.getId()); - taskVO.setProjectName(project.getProjectName()); - } else { - continue; + 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)) { + 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); diff --git a/business/src/main/resources/mapper/ProjectProcessMapper.xml b/business/src/main/resources/mapper/ProjectProcessMapper.xml index e4f8bdc..5008916 100644 --- a/business/src/main/resources/mapper/ProjectProcessMapper.xml +++ b/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> -- Gitblit v1.8.0