|
@@ -1,5 +1,7 @@
|
|
package org.springblade.manager.service.impl;
|
|
package org.springblade.manager.service.impl;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
@@ -14,6 +16,7 @@ import org.springblade.core.tool.utils.BeanUtil;
|
|
import org.springblade.core.tool.utils.Func;
|
|
import org.springblade.core.tool.utils.Func;
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
import org.springblade.manager.dto.WbsTreeContractDTO;
|
|
import org.springblade.manager.dto.WbsTreeContractDTO;
|
|
|
|
+import org.springblade.manager.dto.WbsTreeContractDTO2;
|
|
import org.springblade.manager.entity.*;
|
|
import org.springblade.manager.entity.*;
|
|
import org.springblade.manager.excel.WbsExcelBatchUtil;
|
|
import org.springblade.manager.excel.WbsExcelBatchUtil;
|
|
import org.springblade.manager.excel.WbsExcelUtil;
|
|
import org.springblade.manager.excel.WbsExcelUtil;
|
|
@@ -26,6 +29,7 @@ import org.springblade.manager.vo.WbsTreeContractTreeVO;
|
|
import org.springblade.manager.vo.WbsTreeContractTreeVO3;
|
|
import org.springblade.manager.vo.WbsTreeContractTreeVO3;
|
|
import org.springblade.manager.vo.WbsTreeContractVO;
|
|
import org.springblade.manager.vo.WbsTreeContractVO;
|
|
import org.springblade.manager.vo.WbsTreeContractVO4;
|
|
import org.springblade.manager.vo.WbsTreeContractVO4;
|
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
@@ -398,19 +402,63 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public boolean submitRelation(WbsTreeContractDTO2 wbsTreeContractDTO2) {
|
|
|
|
+ if (StringUtils.isEmpty(wbsTreeContractDTO2.getPKeyIdOld())) {
|
|
|
|
+ throw new ServiceException("请选择一个关联节点");
|
|
|
|
+ }
|
|
|
|
+ //获取当前节点
|
|
|
|
+ WbsTreeContract wbsTreeContract = baseMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda().eq(WbsTreeContract::getPKeyId, wbsTreeContractDTO2.getPKeyIdOld()));
|
|
|
|
+ Long idOld = wbsTreeContract.getId();
|
|
|
|
+ //该节点下所有子级节点、元素表
|
|
|
|
+ List<WbsTreeContract> wbsTreeContracts = baseMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
|
+ .eq(WbsTreeContract::getProjectId, wbsTreeContract.getProjectId())
|
|
|
|
+ .eq(WbsTreeContract::getContractId, wbsTreeContract.getContractId())
|
|
|
|
+ .eq(WbsTreeContract::getParentId, wbsTreeContract.getId())
|
|
|
|
+ .eq(WbsTreeContract::getStatus, 1)
|
|
|
|
+ .or()
|
|
|
|
+ .eq(WbsTreeContract::getAncestors, wbsTreeContract.getId())
|
|
|
|
+
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ for (WbsTreeContract treeContract : wbsTreeContracts) {
|
|
|
|
+ //设置主键
|
|
|
|
+ treeContract.setPKeyId(SnowFlakeUtil.getId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //修改根节点信息
|
|
|
|
+ Long idNew = SnowFlakeUtil.getId();
|
|
|
|
+ wbsTreeContract.setPKeyId(idNew);
|
|
|
|
+ wbsTreeContract.setId(idNew);
|
|
|
|
+ wbsTreeContract.setNodeName(wbsTreeContractDTO2.getWbsTreeContractVO().getFullName());
|
|
|
|
+ wbsTreeContract.setFullName(wbsTreeContractDTO2.getWbsTreeContractVO().getFullName());
|
|
|
|
+ wbsTreeContract.setImportMatchingInfo(wbsTreeContractDTO2.getWbsTreeContractVO().getImportMatchingInfo());
|
|
|
|
+ wbsTreeContract.setIsImportIdentificationNode(1);
|
|
|
|
+ wbsTreeContract.setPartitionCode(wbsTreeContractDTO2.getWbsTreeContractVO().getPartitionCode());
|
|
|
|
+ wbsTreeContract.setNodeType(wbsTreeContractDTO2.getWbsTreeContractVO().getNodeType());
|
|
|
|
+
|
|
|
|
+ wbsTreeContracts.add(wbsTreeContract);
|
|
|
|
+
|
|
|
|
+ String jsonListOld = JSONObject.toJSONString(wbsTreeContracts);
|
|
|
|
+
|
|
|
|
+ String jsonListNew = jsonListOld.replaceAll(String.valueOf(idOld), String.valueOf(idNew));
|
|
|
|
+
|
|
|
|
+ List<WbsTreeContract> wbsTreeContractsNew = JSONArray.parseArray(jsonListNew, WbsTreeContract.class);
|
|
|
|
+
|
|
|
|
+ this.saveBatch(wbsTreeContractsNew, 1000);
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
private WbsTreeContractVO4 updateContractNodeNames(ArrayList<Map<String, String>> resultNow, String contractId, Integer isSplicingNumber) {
|
|
private WbsTreeContractVO4 updateContractNodeNames(ArrayList<Map<String, String>> resultNow, String contractId, Integer isSplicingNumber) {
|
|
//获取当前合同段树
|
|
//获取当前合同段树
|
|
List<WbsTreeContractVO> wbsTreeContractVOS = contractInfoMapper.tree2(null, null, contractId, null, null);
|
|
List<WbsTreeContractVO> wbsTreeContractVOS = contractInfoMapper.tree2(null, null, contractId, null, null);
|
|
if (wbsTreeContractVOS.size() <= 0) {
|
|
if (wbsTreeContractVOS.size() <= 0) {
|
|
throw new ServiceException("请从项目级中分配合同段wbs划分模板");
|
|
throw new ServiceException("请从项目级中分配合同段wbs划分模板");
|
|
}
|
|
}
|
|
- List<Map<Integer, String>> resultList = new ArrayList<>();
|
|
|
|
-
|
|
|
|
- if (isSplicingNumber == 1) {
|
|
|
|
- //构建拼接划分编号
|
|
|
|
- }
|
|
|
|
|
|
|
|
- //构造map
|
|
|
|
|
|
+ //构造resultList
|
|
|
|
+ List<Map<Integer, String>> resultList = new ArrayList<>();
|
|
String str = "\\s*|\r|\n|\t";
|
|
String str = "\\s*|\r|\n|\t";
|
|
for (Map<String, String> map : resultNow) {
|
|
for (Map<String, String> map : resultNow) {
|
|
Map<Integer, String> maps = new HashMap<>();
|
|
Map<Integer, String> maps = new HashMap<>();
|
|
@@ -418,16 +466,74 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
String v1 = value1.replaceAll(str, "");
|
|
String v1 = value1.replaceAll(str, "");
|
|
map.forEach((k2, value2) -> {
|
|
map.forEach((k2, value2) -> {
|
|
String v2 = value2.replaceAll(str, "");
|
|
String v2 = value2.replaceAll(str, "");
|
|
|
|
+
|
|
if ("1".equals(k1) && "2".equals(k2)) {
|
|
if ("1".equals(k1) && "2".equals(k2)) {
|
|
maps.put(1, v1 + ":::" + v2);
|
|
maps.put(1, v1 + ":::" + v2);
|
|
} else if ("3".equals(k1) && "4".equals(k2)) {
|
|
} else if ("3".equals(k1) && "4".equals(k2)) {
|
|
- maps.put(2, v1 + ":::" + v2);
|
|
|
|
|
|
+ String s1 = "";
|
|
|
|
+ if (isSplicingNumber == 1) {
|
|
|
|
+ if (StringUtils.isNotEmpty(v2)) {
|
|
|
|
+ String s = maps.get(1);
|
|
|
|
+ if (StringUtils.isNotEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s1 = s.split(":::")[1] + "-";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ maps.put(2, v1 + ":::" + s1 + v2);
|
|
|
|
+
|
|
} else if ("5".equals(k1) && "6".equals(k2)) {
|
|
} else if ("5".equals(k1) && "6".equals(k2)) {
|
|
- maps.put(3, v1 + ":::" + v2);
|
|
|
|
|
|
+ String s2 = "";
|
|
|
|
+ if (isSplicingNumber == 1) {
|
|
|
|
+ if (StringUtils.isNotEmpty(v2)) {
|
|
|
|
+ String s = maps.get(2);
|
|
|
|
+ if (StringUtils.isEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s = maps.get(1);
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s2 = s.split(":::")[1] + "-";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ maps.put(3, v1 + ":::" + s2 + v2);
|
|
|
|
+
|
|
} else if ("7".equals(k1) && "8".equals(k2)) {
|
|
} else if ("7".equals(k1) && "8".equals(k2)) {
|
|
- maps.put(4, v1 + ":::" + v2);
|
|
|
|
|
|
+ String s3 = "";
|
|
|
|
+ if (isSplicingNumber == 1) {
|
|
|
|
+ if (StringUtils.isNotEmpty(v2)) {
|
|
|
|
+ String s = maps.get(3);
|
|
|
|
+ if (StringUtils.isEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s = maps.get(2);
|
|
|
|
+ if (StringUtils.isEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s = maps.get(1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s3 = s.split(":::")[1] + "-";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ maps.put(4, v1 + ":::" + s3 + v2);
|
|
|
|
+
|
|
} else if ("9".equals(k1) && "10".equals(k2)) {
|
|
} else if ("9".equals(k1) && "10".equals(k2)) {
|
|
- maps.put(5, v1 + ":::" + v2);
|
|
|
|
|
|
+ String s4 = "";
|
|
|
|
+ if (StringUtils.isNotEmpty(v2)) {
|
|
|
|
+ String s = maps.get(4);
|
|
|
|
+ if (isSplicingNumber == 1) {
|
|
|
|
+ if (StringUtils.isEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s = maps.get(3);
|
|
|
|
+ if (StringUtils.isEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s = maps.get(2);
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s = maps.get(1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotEmpty(s.replaceAll(":::", ""))) {
|
|
|
|
+ s4 = s.split(":::")[1] + "-";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ maps.put(5, v1 + ":::" + s4 + v2);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
@@ -437,7 +543,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
List<WbsTreeContractVO> successData = new ArrayList<>();
|
|
List<WbsTreeContractVO> successData = new ArrayList<>();
|
|
List<WbsTreeContractVO> failData = new ArrayList<>();
|
|
List<WbsTreeContractVO> failData = new ArrayList<>();
|
|
|
|
|
|
- //解析mapList
|
|
|
|
|
|
+ //解析resultList
|
|
for (Map<Integer, String> map : resultList) {
|
|
for (Map<Integer, String> map : resultList) {
|
|
for (Map.Entry<Integer, String> entry : map.entrySet()) {
|
|
for (Map.Entry<Integer, String> entry : map.entrySet()) {
|
|
Integer k = entry.getKey();
|
|
Integer k = entry.getKey();
|
|
@@ -449,7 +555,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
String nodeName = split[0];
|
|
String nodeName = split[0];
|
|
String partitionCode = split[1];
|
|
String partitionCode = split[1];
|
|
|
|
|
|
- //先判断是否循环到下一行,是否已经匹配成功名称类似节点
|
|
|
|
int count = 0;
|
|
int count = 0;
|
|
if (successData.size() > 0) {
|
|
if (successData.size() > 0) {
|
|
for (WbsTreeContractVO successDatum : successData) {
|
|
for (WbsTreeContractVO successDatum : successData) {
|
|
@@ -475,9 +580,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
if (count == 1) {
|
|
if (count == 1) {
|
|
- //如果添加了类似名称节点成功,那么结束当前循环,进入下一列,不执行修改、失败构造
|
|
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -485,13 +588,10 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
if (nodeOld.getNodeType().equals(k)) {
|
|
if (nodeOld.getNodeType().equals(k)) {
|
|
String nodeNameOld = nodeOld.getNodeName();
|
|
String nodeNameOld = nodeOld.getNodeName();
|
|
String importMatchingInfoOld = nodeOld.getImportMatchingInfo();
|
|
String importMatchingInfoOld = nodeOld.getImportMatchingInfo();
|
|
- List<WbsTreeContractVO> collect = successData.stream().filter(f ->
|
|
|
|
- f.getFullName().contains(nodeName)
|
|
|
|
- && f.getPartitionCode().equals(partitionCode)
|
|
|
|
- ).collect(Collectors.toList());
|
|
|
|
|
|
+ List<WbsTreeContractVO> collect = successData.stream().filter(f -> f.getFullName().contains(nodeName) && f.getPartitionCode().equals(partitionCode)).collect(Collectors.toList());
|
|
//匹配名称、别名
|
|
//匹配名称、别名
|
|
if (collect.size() == 0) {
|
|
if (collect.size() == 0) {
|
|
- if (nodeName.contains(nodeNameOld) || nodeName.contains(importMatchingInfoOld)) {
|
|
|
|
|
|
+ if (nodeName.contains(nodeNameOld) || (StringUtils.isNotEmpty(importMatchingInfoOld) && nodeName.contains(importMatchingInfoOld))) {
|
|
//匹配成功 修改名称、划分编号 不修改原始节点id,只修改别名id
|
|
//匹配成功 修改名称、划分编号 不修改原始节点id,只修改别名id
|
|
nodeOld.setFullName(nodeName);
|
|
nodeOld.setFullName(nodeName);
|
|
nodeOld.setPartitionCode(partitionCode);
|
|
nodeOld.setPartitionCode(partitionCode);
|
|
@@ -504,18 +604,12 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
if (count == 2) {
|
|
if (count == 2) {
|
|
- //不执行失败构造
|
|
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- List<WbsTreeContractVO> collect = successData.stream().filter(f ->
|
|
|
|
- f.getFullName().contains(nodeName)
|
|
|
|
- ).collect(Collectors.toList());
|
|
|
|
- List<WbsTreeContractVO> collect1 = failData.stream().filter(f ->
|
|
|
|
- f.getFullName().contains(nodeName)
|
|
|
|
- ).collect(Collectors.toList());
|
|
|
|
|
|
+ List<WbsTreeContractVO> collect = successData.stream().filter(f -> f.getFullName().contains(nodeName)).collect(Collectors.toList());
|
|
|
|
+ List<WbsTreeContractVO> collect1 = failData.stream().filter(f -> f.getFullName().contains(nodeName)).collect(Collectors.toList());
|
|
|
|
|
|
if (collect.size() == 0 && collect1.size() == 0) {
|
|
if (collect.size() == 0 && collect1.size() == 0) {
|
|
//未匹配成功 构建参数
|
|
//未匹配成功 构建参数
|
|
@@ -559,8 +653,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
- private List<WbsTreeContractVO> buildFailDataTree
|
|
|
|
- (List<Map<Integer, String>> resultList, List<WbsTreeContractVO> failData, List<WbsTreeContractVO> successData) {
|
|
|
|
|
|
+ private List<WbsTreeContractVO> buildFailDataTree(List<Map<Integer, String>> resultList, List<WbsTreeContractVO> failData, List<WbsTreeContractVO> successData) {
|
|
List<WbsTreeContractVO> resultData = new ArrayList<>();
|
|
List<WbsTreeContractVO> resultData = new ArrayList<>();
|
|
for (Map<Integer, String> map : resultList) {//行
|
|
for (Map<Integer, String> map : resultList) {//行
|
|
Long nodeParentIdLv1 = 0L;
|
|
Long nodeParentIdLv1 = 0L;
|
|
@@ -581,100 +674,196 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
}
|
|
}
|
|
String[] split = v.split(":::");
|
|
String[] split = v.split(":::");
|
|
String nodeName = split[0];
|
|
String nodeName = split[0];
|
|
-
|
|
|
|
- for (WbsTreeContractVO failDatum : failData) {
|
|
|
|
- if (k.equals(failDatum.getNodeType()) && nodeName.equals(failDatum.getFullName())) {
|
|
|
|
- failList.add(failDatum);
|
|
|
|
|
|
+ if (failData.size() > 0) {
|
|
|
|
+ for (WbsTreeContractVO failDatum : failData) {
|
|
|
|
+ if (k.equals(failDatum.getNodeType()) && nodeName.equals(failDatum.getFullName())) {
|
|
|
|
+ failList.add(failDatum);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (successData.size() > 0) {
|
|
|
|
+ for (WbsTreeContractVO successDatum : successData) {
|
|
|
|
+ if (k.equals(successDatum.getNodeType()) && nodeName.equals(successDatum.getFullName())) {
|
|
|
|
+ successList.add(successDatum);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- for (WbsTreeContractVO successDatum : successData) {
|
|
|
|
- if (k.equals(successDatum.getNodeType()) && nodeName.equals(successDatum.getFullName())) {
|
|
|
|
- successList.add(successDatum);
|
|
|
|
|
|
+ //如果没有匹配成功的节点,那么就用excel所有节点参数构建新的失败树的上级id
|
|
|
|
+ if (successList.size() == 0 && failList.size() > 0) {
|
|
|
|
+ for (WbsTreeContractVO wbsTreeContractVO : failList) {
|
|
|
|
+ if (wbsTreeContractVO.getNodeType() == 1) {
|
|
|
|
+ nodeParentIdLv1 = wbsTreeContractVO.getId();
|
|
|
|
+ } else
|
|
|
|
+ if (wbsTreeContractVO.getNodeType() == 2) {
|
|
|
|
+ nodeParentIdLv2 = wbsTreeContractVO.getId();
|
|
|
|
+ } else if (wbsTreeContractVO.getNodeType() == 3) {
|
|
|
|
+ nodeParentIdLv3 = wbsTreeContractVO.getId();
|
|
|
|
+ } else if (wbsTreeContractVO.getNodeType() == 4) {
|
|
|
|
+ nodeParentIdLv4 = wbsTreeContractVO.getId();
|
|
|
|
+ } else if (wbsTreeContractVO.getNodeType() == 5) {
|
|
|
|
+ nodeParentIdLv5 = wbsTreeContractVO.getId();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //初始化上级id
|
|
|
|
- for (WbsTreeContractVO successDatum : successList) {
|
|
|
|
- if (successDatum.getNodeType() == 1) {
|
|
|
|
- nodeParentIdLv1 = successDatum.getId();
|
|
|
|
- } else if (successDatum.getNodeType() == 2) {
|
|
|
|
- nodeParentIdLv2 = successDatum.getId();
|
|
|
|
- } else if (successDatum.getNodeType() == 3) {
|
|
|
|
- nodeParentIdLv3 = successDatum.getId();
|
|
|
|
- } else if (successDatum.getNodeType() == 4) {
|
|
|
|
- nodeParentIdLv4 = successDatum.getId();
|
|
|
|
- } else if (successDatum.getNodeType() == 5) {
|
|
|
|
- nodeParentIdLv5 = successDatum.getId();
|
|
|
|
|
|
+ //如果有匹配成功的节点,那么就是要该节点作为构建失败树的上级id
|
|
|
|
+ if (successList.size() > 0) {
|
|
|
|
+ for (WbsTreeContractVO successDatum : successList) {
|
|
|
|
+ if (successDatum.getNodeType() == 1) {
|
|
|
|
+ nodeParentIdLv1 = successDatum.getId();
|
|
|
|
+ } else
|
|
|
|
+ if (successDatum.getNodeType() == 2) {
|
|
|
|
+ nodeParentIdLv2 = successDatum.getId();
|
|
|
|
+ } else if (successDatum.getNodeType() == 3) {
|
|
|
|
+ nodeParentIdLv3 = successDatum.getId();
|
|
|
|
+ } else if (successDatum.getNodeType() == 4) {
|
|
|
|
+ nodeParentIdLv4 = successDatum.getId();
|
|
|
|
+ } else if (successDatum.getNodeType() == 5) {
|
|
|
|
+ nodeParentIdLv5 = successDatum.getId();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//构建未成功节点的父级id
|
|
//构建未成功节点的父级id
|
|
- for (WbsTreeContractVO failDatum : failList) {
|
|
|
|
- if (failDatum.getNodeType() == 1) {
|
|
|
|
- failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
-
|
|
|
|
- } else if (failDatum.getNodeType() == 2) {
|
|
|
|
- if (nodeParentIdLv2 == 0L) {
|
|
|
|
- failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
- } else {
|
|
|
|
- failDatum.setParentId(nodeParentIdLv2);
|
|
|
|
- nodeParentIdLv2 = failDatum.getId();
|
|
|
|
- }
|
|
|
|
|
|
+ if (successList.size() > 0 && failList.size() > 0) {
|
|
|
|
+ for (WbsTreeContractVO failDatum : failList) {
|
|
|
|
+ if (failDatum.getNodeType() == 1) {
|
|
|
|
+ failDatum.setParentId(0L);
|
|
|
|
|
|
- } else if (failDatum.getNodeType() == 3) {
|
|
|
|
- if (nodeParentIdLv3 == 0L) {
|
|
|
|
|
|
+ } else if (failDatum.getNodeType() == 2) {
|
|
if (nodeParentIdLv2 == 0L) {
|
|
if (nodeParentIdLv2 == 0L) {
|
|
- failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
|
|
+ failDatum.setParentId(0L);
|
|
} else {
|
|
} else {
|
|
failDatum.setParentId(nodeParentIdLv2);
|
|
failDatum.setParentId(nodeParentIdLv2);
|
|
- nodeParentIdLv3 = failDatum.getId();
|
|
|
|
|
|
+ nodeParentIdLv2 = failDatum.getId();
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- failDatum.setParentId(nodeParentIdLv3);
|
|
|
|
- nodeParentIdLv3 = failDatum.getId();
|
|
|
|
- }
|
|
|
|
|
|
|
|
- } else if (failDatum.getNodeType() == 4) {
|
|
|
|
- if (nodeParentIdLv4 == 0L) {
|
|
|
|
|
|
+ } else if (failDatum.getNodeType() == 3) {
|
|
if (nodeParentIdLv3 == 0L) {
|
|
if (nodeParentIdLv3 == 0L) {
|
|
if (nodeParentIdLv2 == 0L) {
|
|
if (nodeParentIdLv2 == 0L) {
|
|
- failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
|
|
+ failDatum.setParentId(0L);
|
|
} else {
|
|
} else {
|
|
failDatum.setParentId(nodeParentIdLv2);
|
|
failDatum.setParentId(nodeParentIdLv2);
|
|
- nodeParentIdLv4 = failDatum.getId();
|
|
|
|
|
|
+ nodeParentIdLv3 = failDatum.getId();
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
failDatum.setParentId(nodeParentIdLv3);
|
|
failDatum.setParentId(nodeParentIdLv3);
|
|
|
|
+ nodeParentIdLv3 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (failDatum.getNodeType() == 4) {
|
|
|
|
+ if (nodeParentIdLv4 == 0L) {
|
|
|
|
+ if (nodeParentIdLv3 == 0L) {
|
|
|
|
+ if (nodeParentIdLv2 == 0L) {
|
|
|
|
+ failDatum.setParentId(0L);
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv2);
|
|
|
|
+ nodeParentIdLv4 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv3);
|
|
|
|
+ nodeParentIdLv4 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv4);
|
|
nodeParentIdLv4 = failDatum.getId();
|
|
nodeParentIdLv4 = failDatum.getId();
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- failDatum.setParentId(nodeParentIdLv4);
|
|
|
|
- nodeParentIdLv4 = failDatum.getId();
|
|
|
|
|
|
+
|
|
|
|
+ } else if (failDatum.getNodeType() == 5) {
|
|
|
|
+ if (nodeParentIdLv5 == 0L) {
|
|
|
|
+ if (nodeParentIdLv4 == 0L) {
|
|
|
|
+ if (nodeParentIdLv3 == 0L) {
|
|
|
|
+ if (nodeParentIdLv2 == 0L) {
|
|
|
|
+ failDatum.setParentId(0L);
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv2);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv3);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv4);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv5);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //所有都是失败节点
|
|
|
|
+ if (successList.size() == 0 && failList.size() > 0) {
|
|
|
|
+ for (WbsTreeContractVO failDatum : failList) {
|
|
|
|
+ if (failDatum.getNodeType() == 1) {
|
|
|
|
+ failDatum.setParentId(0L);
|
|
|
|
|
|
- } else if (failDatum.getNodeType() == 5) {
|
|
|
|
- if (nodeParentIdLv5 == 0L) {
|
|
|
|
|
|
+ } else if (failDatum.getNodeType() == 2) {
|
|
|
|
+ if (nodeParentIdLv2 == 0L) {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
+ nodeParentIdLv2 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (failDatum.getNodeType() == 3) {
|
|
|
|
+ if (nodeParentIdLv3 == 0L) {
|
|
|
|
+ if (nodeParentIdLv2 == 0L) {
|
|
|
|
+ failDatum.setParentId(0L);
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv2);
|
|
|
|
+ nodeParentIdLv3 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv3);
|
|
|
|
+ nodeParentIdLv3 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (failDatum.getNodeType() == 4) {
|
|
if (nodeParentIdLv4 == 0L) {
|
|
if (nodeParentIdLv4 == 0L) {
|
|
if (nodeParentIdLv3 == 0L) {
|
|
if (nodeParentIdLv3 == 0L) {
|
|
if (nodeParentIdLv2 == 0L) {
|
|
if (nodeParentIdLv2 == 0L) {
|
|
- failDatum.setParentId(nodeParentIdLv1);
|
|
|
|
|
|
+ failDatum.setParentId(0L);
|
|
} else {
|
|
} else {
|
|
failDatum.setParentId(nodeParentIdLv2);
|
|
failDatum.setParentId(nodeParentIdLv2);
|
|
- nodeParentIdLv5 = failDatum.getId();
|
|
|
|
|
|
+ nodeParentIdLv4 = failDatum.getId();
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
failDatum.setParentId(nodeParentIdLv3);
|
|
failDatum.setParentId(nodeParentIdLv3);
|
|
- nodeParentIdLv5 = failDatum.getId();
|
|
|
|
|
|
+ nodeParentIdLv4 = failDatum.getId();
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
failDatum.setParentId(nodeParentIdLv4);
|
|
failDatum.setParentId(nodeParentIdLv4);
|
|
|
|
+ nodeParentIdLv4 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (failDatum.getNodeType() == 5) {
|
|
|
|
+ if (nodeParentIdLv5 == 0L) {
|
|
|
|
+ if (nodeParentIdLv4 == 0L) {
|
|
|
|
+ if (nodeParentIdLv3 == 0L) {
|
|
|
|
+ if (nodeParentIdLv2 == 0L) {
|
|
|
|
+ failDatum.setParentId(0L);
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv2);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv3);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv4);
|
|
|
|
+ nodeParentIdLv5 = failDatum.getId();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ failDatum.setParentId(nodeParentIdLv5);
|
|
nodeParentIdLv5 = failDatum.getId();
|
|
nodeParentIdLv5 = failDatum.getId();
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- failDatum.setParentId(nodeParentIdLv5);
|
|
|
|
- nodeParentIdLv5 = failDatum.getId();
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -684,7 +873,9 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
|
|
|
|
//添加构建成功节点
|
|
//添加构建成功节点
|
|
resultData.addAll(failList);
|
|
resultData.addAll(failList);
|
|
- resultData.addAll(successList);
|
|
|
|
|
|
+ if (failList.size() > 0) {
|
|
|
|
+ resultData.addAll(successList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
return resultData;
|
|
return resultData;
|