|
@@ -12,6 +12,7 @@ import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.node.ForestNodeMerger;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.StringPool;
|
|
|
+import org.springblade.core.tool.utils.StringUtil;
|
|
|
import org.springblade.manager.dto.WbsTreePrivateDTO2;
|
|
|
import org.springblade.manager.dto.WbsTreePrivateDTO3;
|
|
|
import org.springblade.manager.entity.*;
|
|
@@ -24,10 +25,7 @@ import org.springblade.manager.vo.WbsTreePrivateVO;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Comparator;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
@@ -36,6 +34,7 @@ import java.util.stream.Stream;
|
|
|
public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMapper, WbsTreePrivate> implements IWbsTreePrivateService {
|
|
|
|
|
|
private final WbsTreeContractMapper wbsTreeContractMapper;
|
|
|
+ private final WbsTreeMapper wbsTreeMapper;
|
|
|
private final ContractInfoMapper contractInfoMapper;
|
|
|
private final WbsInfoMapper wbsInfoMapper;
|
|
|
private final WbsParamServiceImpl wbsParamServiceImpl;
|
|
@@ -433,9 +432,9 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
List<Long> contractIds = contractInfos.stream().map(ContractInfo::getId).collect(Collectors.toList());
|
|
|
for (Long cId : contractIds) {
|
|
|
LambdaUpdateWrapper<WbsTreeContract> updateWrapper1 = new LambdaUpdateWrapper<>();
|
|
|
- updateWrapper1.eq(WbsTreeContract::getId,wbsTreePrivate.getId());
|
|
|
- updateWrapper1.eq(WbsTreeContract::getContractId,cId);
|
|
|
- updateWrapper1.set(WbsTreeContract::getImportMatchingInfo,fullNames);
|
|
|
+ updateWrapper1.eq(WbsTreeContract::getId, wbsTreePrivate.getId());
|
|
|
+ updateWrapper1.eq(WbsTreeContract::getContractId, cId);
|
|
|
+ updateWrapper1.set(WbsTreeContract::getImportMatchingInfo, fullNames);
|
|
|
wbsTreeContractMapper.update(null, updateWrapper1);
|
|
|
}
|
|
|
return true;
|
|
@@ -443,4 +442,97 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean syncNodeParam(String projectId) {
|
|
|
+ if (StringUtils.isNotEmpty(projectId)) {
|
|
|
+ //获取项目节点树
|
|
|
+ List<WbsTreePrivate> wbsTreePrivateAllNow = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getProjectId, projectId)
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getType, 1)
|
|
|
+ );
|
|
|
+ String wbsId = "";
|
|
|
+ for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
|
+ wbsId = wbsTreePrivate.getWbsId();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(wbsId)) {
|
|
|
+
|
|
|
+ List<WbsParam> paramListData = new ArrayList<>();
|
|
|
+
|
|
|
+ //获取公有树
|
|
|
+ List<WbsTree> treePublicNodeAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
+ .eq(WbsTree::getWbsId, wbsId)
|
|
|
+ .eq(WbsTree::getStatus, 1)
|
|
|
+ .eq(WbsTree::getType, 1)
|
|
|
+ );
|
|
|
+ if (treePublicNodeAll.size() > 0) {
|
|
|
+ //公有引用
|
|
|
+ for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
|
+ for (WbsTree wbsTree : treePublicNodeAll) {
|
|
|
+ if (wbsTree.getId().equals(wbsTreePrivate.getId())) {
|
|
|
+ //获取公有节点参数
|
|
|
+ List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(wbsTree.getId());
|
|
|
+ for (WbsParam wbsParam : paramList) {
|
|
|
+ wbsParam.setWbsId(wbsTreePrivate.getPKeyId());
|
|
|
+ wbsParam.setId(SnowFlakeUtil.getId());
|
|
|
+ }
|
|
|
+ paramListData.addAll(paramList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ //私有引用 - 获取私有树
|
|
|
+ WbsTreePrivate treePrivateRootNode = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getPKeyId, wbsId)
|
|
|
+ .eq(WbsTreePrivate::getParentId, 0L)
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getType, 1)
|
|
|
+ );
|
|
|
+
|
|
|
+ List<WbsTreePrivate> treePrivateNodeAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getWbsId, treePrivateRootNode.getWbsId())
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getType, 1)
|
|
|
+ );
|
|
|
+
|
|
|
+ for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
|
+ for (WbsTreePrivate wbsTreePrivateYS : treePrivateNodeAll) {
|
|
|
+ if (wbsTreePrivateYS.getId().equals(wbsTreePrivate.getId())) {
|
|
|
+ //获取公有节点参数
|
|
|
+ List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(wbsTreePrivateYS.getPKeyId());
|
|
|
+ for (WbsParam wbsParam : paramList) {
|
|
|
+ wbsParam.setWbsId(wbsTreePrivate.getPKeyId());
|
|
|
+ wbsParam.setId(SnowFlakeUtil.getId());
|
|
|
+ }
|
|
|
+ paramListData.addAll(paramList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除已存在的参数,只新增未存在的节点参数
|
|
|
+ if (paramListData.size() > 0) {
|
|
|
+ for (int i = 0; i < paramListData.size(); i++) {
|
|
|
+ List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(paramListData.get(i).getWbsId());
|
|
|
+ if (paramList.size() > 0) {
|
|
|
+ for (WbsParam wbsParam : paramList) {
|
|
|
+ if (paramListData.get(i).getK().equals(wbsParam.getK())
|
|
|
+ && paramListData.get(i).getV().equals(wbsParam.getV())
|
|
|
+ && paramListData.get(i).getName().equals(wbsParam.getName())) {
|
|
|
+
|
|
|
+ paramListData.remove(paramListData.get(i));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wbsParamServiceImpl.saveBatch(paramListData, 1000);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
}
|