|
@@ -192,26 +192,26 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
|
|
|
public List<WbsTreePrivateVO> addNodeTree(String pKeyId) {
|
|
|
WbsTreeContract parentNodeRoot = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pKeyId).eq(WbsTreeContract::getStatus, 1));
|
|
|
if (parentNodeRoot != null) {
|
|
|
- //oldId不等于空,说明是复制节点,通过oldId,去获取原始树节点
|
|
|
+ //oldId不等于空,说明是复制节点,通过oldId,获取原始节点
|
|
|
if (parentNodeRoot.getOldId() != null) {
|
|
|
parentNodeRoot = this.recursionFindResourceRootNode(parentNodeRoot);
|
|
|
}
|
|
|
- List<WbsTreeContract> allNodes = this.getChildNodes(parentNodeRoot);
|
|
|
+
|
|
|
+ //获取对应的项目树的节点
|
|
|
+ WbsTreePrivate wbsTreePrivateRoot = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getId, parentNodeRoot.getId())
|
|
|
+ .eq(WbsTreePrivate::getProjectId, parentNodeRoot.getProjectId()).eq(WbsTreePrivate::getWbsId, parentNodeRoot.getWbsId()).eq(WbsTreePrivate::getStatus, 1));
|
|
|
+
|
|
|
+ //获取项目树所有子节点
|
|
|
+ List<WbsTreePrivate> allNodes = this.getChildNodes(wbsTreePrivateRoot);
|
|
|
if (allNodes == null) {
|
|
|
//如果是最底层节点,那么直接返回null,最底层节点无法新增子节点
|
|
|
return null;
|
|
|
}
|
|
|
- allNodes.add(parentNodeRoot);
|
|
|
+ allNodes.add(wbsTreePrivateRoot);
|
|
|
|
|
|
- //获取所有合同段树原始节点对应的项目树节点
|
|
|
- List<Long> nodeIds = allNodes.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- //重新赋值
|
|
|
- List<WbsTreePrivate> projectTreeNodes = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().in(WbsTreePrivate::getId, nodeIds)
|
|
|
- .eq(WbsTreePrivate::getProjectId, parentNodeRoot.getProjectId()).eq(WbsTreePrivate::getWbsId, parentNodeRoot.getWbsId()).eq(WbsTreePrivate::getStatus, 1));
|
|
|
//构造树
|
|
|
- List<WbsTreePrivateVO> resultAllNodes = BeanUtil.copyProperties(projectTreeNodes, WbsTreePrivateVO.class);
|
|
|
- WbsTreePrivateVO parentNodeRootProject = BeanUtil.copyProperties(parentNodeRoot, WbsTreePrivateVO.class);
|
|
|
+ List<WbsTreePrivateVO> resultAllNodes = BeanUtil.copyProperties(allNodes, WbsTreePrivateVO.class);
|
|
|
+ WbsTreePrivateVO parentNodeRootProject = BeanUtil.copyProperties(wbsTreePrivateRoot, WbsTreePrivateVO.class);
|
|
|
return buildWbsTreeByStreamChildNodeTreeProject(resultAllNodes, parentNodeRootProject);
|
|
|
}
|
|
|
return null;
|
|
@@ -239,24 +239,23 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
|
|
|
return obj;
|
|
|
}
|
|
|
|
|
|
- private List<WbsTreeContract> getChildNodes(WbsTreeContract obj) {
|
|
|
- List<WbsTreeContract> wbsTreeContracts = Collections.singletonList(obj);
|
|
|
- List<WbsTreeContract> result = new ArrayList<>();
|
|
|
- this.recursionGetChildNodes(wbsTreeContracts, result, obj.getContractId());
|
|
|
+ private List<WbsTreePrivate> getChildNodes(WbsTreePrivate obj) {
|
|
|
+ List<WbsTreePrivate> wbsTreePrivates = Collections.singletonList(obj);
|
|
|
+ List<WbsTreePrivate> result = new ArrayList<>();
|
|
|
+ this.recursionGetChildNodes(wbsTreePrivates, result, obj.getProjectId(), obj.getWbsId());
|
|
|
if (result.size() > 0) {
|
|
|
return result;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- private void recursionGetChildNodes(List<WbsTreeContract> list, List<WbsTreeContract> result, String contractId) {
|
|
|
- List<Long> ids = list.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
|
|
|
+ private void recursionGetChildNodes(List<WbsTreePrivate> list, List<WbsTreePrivate> result, String projectId, String wbsId) {
|
|
|
+ List<Long> ids = list.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
|
|
|
if (ids.size() > 0) {
|
|
|
- //只查询原始节点
|
|
|
- List<WbsTreeContract> query = jdbcTemplate.query("select * from m_wbs_tree_contract where type = 1 and old_id is null and parent_id in(" + org.apache.commons.lang.StringUtils.join(ids, ",") + ") and status = 1 and is_deleted = 0 and contract_id = " + contractId, new BeanPropertyRowMapper<>(WbsTreeContract.class));
|
|
|
+ List<WbsTreePrivate> query = jdbcTemplate.query("select * from m_wbs_tree_private where type = 1 and parent_id in(" + org.apache.commons.lang.StringUtils.join(ids, ",") + ") and status = 1 and is_deleted = 0 and project_id = " + projectId + " and wbs_id = " + wbsId, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
|
|
|
if (query.size() > 0) {
|
|
|
result.addAll(query);
|
|
|
- recursionGetChildNodes(query, result, contractId);
|
|
|
+ recursionGetChildNodes(query, result, projectId, wbsId);
|
|
|
}
|
|
|
}
|
|
|
}
|