|
@@ -181,11 +181,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTree.setAncestors(ancestors);
|
|
|
wbsTree.setType(2);
|
|
|
wbsTree.setIsDeleted(BladeConstant.DB_NOT_DELETED);
|
|
|
- for (Map<String, String> map : maps) {
|
|
|
+ maps.stream().forEach(map->{
|
|
|
String deptName = map.get("表名");
|
|
|
- /*if (deptName.length() > 100 || deptName.length() < 1) {
|
|
|
- throw new ServiceException("表名长度错误,输入范围1-100个字符长度");
|
|
|
- }*/
|
|
|
wbsTree.setDeptName(deptName);
|
|
|
wbsTree.setTableType(getTableType(map.get("表类型")));
|
|
|
Long id = SnowFlakeUtil.getId();
|
|
@@ -204,19 +201,19 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTreeBatchImportDTO.setInitTableName(initTableName);
|
|
|
list.add(wbsTreeBatchImportDTO);
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
//新增元素
|
|
|
- list.forEach(i -> {
|
|
|
+ list.stream().forEach(i -> {
|
|
|
Long elementTableId = i.getId();
|
|
|
String tableName = i.getTableName();
|
|
|
String initTableName = i.getInitTableName();
|
|
|
- int keyNumb = 0;
|
|
|
- for (Map<String, String> map : result2) {
|
|
|
+ final int[] keyNumb = {0};
|
|
|
+ result2.stream().forEach(map->{
|
|
|
if (tableName.equals(map.get("表名"))) {
|
|
|
- keyNumb++;
|
|
|
+ keyNumb[0]++;
|
|
|
WbsFormElement wbsFormElement = new WbsFormElement();
|
|
|
wbsFormElement.setEName(map.get("字段名"));
|
|
|
- String key = "key_" + keyNumb;
|
|
|
+ String key = "key_" + keyNumb[0];
|
|
|
wbsFormElement.setEKey(key);
|
|
|
wbsFormElement.setFId(String.valueOf(elementTableId));
|
|
|
wbsFormElement.setELength(getElementLength(map.get("数据类型")));
|
|
@@ -231,7 +228,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
getInitTableFiledType(wbsFormElement.getEType()),
|
|
|
wbsFormElement.getELength());
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
});
|
|
|
return true;
|
|
|
} catch (
|
|
@@ -398,9 +395,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
//解析
|
|
|
WbsExcelUtil excelUtil = new WbsExcelUtil();
|
|
|
ArrayList<Map<String, String>> result = excelUtil.readExcelToObj(canonicalPath);
|
|
|
- return startAsyncImportExcel(result, wbsTreeFu, wbsTree1);
|
|
|
+ return importExcel(result, wbsTreeFu, wbsTree1);
|
|
|
} catch (Exception e) {
|
|
|
- throw new ServiceException("导入失败");
|
|
|
+ String message = e.getMessage();
|
|
|
+ throw new ServiceException("导入失败,message{}" + message);
|
|
|
} finally {
|
|
|
File file2 = new File(canonicalPath);
|
|
|
if (file2.isFile() && file2.exists()) {
|
|
@@ -410,12 +408,12 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private boolean startAsyncImportExcel(ArrayList<Map<String, String>> result, WbsTree wbsTreeFu, WbsTree wbsTree1) {
|
|
|
- for (Map<String, String> map : result) {
|
|
|
+ private boolean importExcel(ArrayList<Map<String, String>> result, WbsTree wbsTreeFu, WbsTree wbsTree1) {
|
|
|
+ result.stream().forEach(map -> {
|
|
|
map.forEach((nodeType, nodeName) -> {
|
|
|
WbsTree wbsTreeZi = new WbsTree();
|
|
|
if (StringUtils.isNotEmpty(nodeName)) {
|
|
|
- //初始化默认值
|
|
|
+ //初始化
|
|
|
wbsTreeZi.setTenantId(AuthUtil.getTenantId());
|
|
|
wbsTreeZi.setDeptName(nodeName);
|
|
|
wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
|
|
@@ -425,14 +423,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
|
|
|
//新增节点返回未创建成功查询出来的wbsTree对象、创建成功后的wbsTreeZi对象
|
|
|
WbsTree wbsTree = importTree(wbsTreeZi);
|
|
|
- //后置初始化默认值
|
|
|
+ //后置初始化
|
|
|
if (wbsTree == null) {
|
|
|
Long id = wbsTreeZi.getId();
|
|
|
- //设置ancestors祖级id集合
|
|
|
+ //初始化ancestors
|
|
|
StringBuilder stringBuffer = new StringBuilder();
|
|
|
StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
|
|
|
String ancestors = wbsTreeZi.getAncestors() + appendStr;
|
|
|
- //修改ancestors的值
|
|
|
+ //修改ancestors
|
|
|
updateData(ancestors, id);
|
|
|
wbsTreeFu.setParentId(id);
|
|
|
wbsTreeFu.setAncestors(ancestors);
|
|
@@ -442,14 +440,47 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- }
|
|
|
- //修改根节点ProjectNodeId
|
|
|
+ });
|
|
|
+
|
|
|
+ /*for (Map<String, String> map : result) {
|
|
|
+ map.forEach((nodeType, nodeName) -> {
|
|
|
+ WbsTree wbsTreeZi = new WbsTree();
|
|
|
+ if (StringUtils.isNotEmpty(nodeName)) {
|
|
|
+ //初始化
|
|
|
+ wbsTreeZi.setTenantId(AuthUtil.getTenantId());
|
|
|
+ wbsTreeZi.setDeptName(nodeName);
|
|
|
+ wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
|
|
|
+ wbsTreeZi.setWbsId(wbsTreeFu.getWbsId());
|
|
|
+ wbsTreeZi.setParentId(wbsTreeFu.getParentId());
|
|
|
+ wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
|
|
|
+ wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
|
|
|
+ //新增节点返回未创建成功查询出来的wbsTree对象、创建成功后的wbsTreeZi对象
|
|
|
+ WbsTree wbsTree = importTree(wbsTreeZi);
|
|
|
+ //后置初始化
|
|
|
+ if (wbsTree == null) {
|
|
|
+ Long id = wbsTreeZi.getId();
|
|
|
+ //初始化ancestors
|
|
|
+ StringBuilder stringBuffer = new StringBuilder();
|
|
|
+ StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
|
|
|
+ String ancestors = wbsTreeZi.getAncestors() + appendStr;
|
|
|
+ //修改ancestors
|
|
|
+ updateData(ancestors, id);
|
|
|
+ wbsTreeFu.setParentId(id);
|
|
|
+ wbsTreeFu.setAncestors(ancestors);
|
|
|
+ } else {
|
|
|
+ wbsTreeFu.setParentId(wbsTree.getId());
|
|
|
+ wbsTreeFu.setAncestors(wbsTree.getAncestors());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }*/
|
|
|
+
|
|
|
+ //修改ProjectNodeId
|
|
|
int i = baseMapper.updateById(wbsTree1);
|
|
|
return i > 0;
|
|
|
}
|
|
|
|
|
|
private WbsTree importTree(WbsTree wbsTreeZi) {
|
|
|
- //查重
|
|
|
QueryWrapper<WbsTree> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("wbs_id", wbsTreeZi.getWbsId());
|
|
|
queryWrapper.eq("dept_name", wbsTreeZi.getDeptName());
|
|
@@ -457,9 +488,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
queryWrapper.eq("project_node_id", wbsTreeZi.getProjectNodeId());
|
|
|
queryWrapper.ne("ancestors", wbsTreeZi.getAncestors());
|
|
|
WbsTree wbsTrees = baseMapper.selectOne(queryWrapper);
|
|
|
- //去重
|
|
|
if (wbsTrees == null) {
|
|
|
- //初始化默认值
|
|
|
+ //初始化
|
|
|
wbsTreeZi.setStatus(1);
|
|
|
wbsTreeZi.setType(1);
|
|
|
wbsTreeZi.setMajorDataType(0);
|
|
@@ -560,9 +590,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
.eq(WbsTreePrivate::getType, 1)
|
|
|
);
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
|
|
|
+ wbsTreePrivates.stream().forEach(wbsTreePrivate -> {
|
|
|
idList2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
- }
|
|
|
+
|
|
|
+ });
|
|
|
} else if (pawDTO.getReferenceType().equals("private")) {
|
|
|
//私有引用
|
|
|
List<WbsTreePrivate> wbsTreePrivates2 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
@@ -570,9 +601,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
.eq(WbsTreePrivate::getType, 1)
|
|
|
);
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates2) {
|
|
|
+ wbsTreePrivates2.stream().forEach(wbsTreePrivate -> {
|
|
|
idList2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
- }
|
|
|
+ });
|
|
|
deletedStatus = 1;
|
|
|
}
|
|
|
List<String> diffrent = WbsTreeContractServiceImpl.getDiffrent(idList1, idList2);
|
|
@@ -582,37 +613,38 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
//公有树是否新增元素表,同步到私有
|
|
|
List<WbsTree> allNodeList = findAllNodeList(wbsTreeIds);
|
|
|
List<WbsTree> wbsTreeListAll = new ArrayList<>();
|
|
|
- for (WbsTree wbsTree : allNodeList) {
|
|
|
+ allNodeList.stream().forEach(wbsTree -> {
|
|
|
List<WbsTree> wbsTreeList = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
.eq(WbsTree::getWbsId, pawDTO.getWbsId())
|
|
|
.eq(WbsTree::getType, 2)
|
|
|
.eq(WbsTree::getParentId, wbsTree.getId())
|
|
|
);
|
|
|
wbsTreeListAll.addAll(wbsTreeList);
|
|
|
- }
|
|
|
- for (WbsTree wbsTree : wbsTreeListAll) {
|
|
|
+ });
|
|
|
+ wbsTreeListAll.stream().forEach(wbsTree -> {
|
|
|
tableId1.add(String.valueOf(wbsTree.getId()));
|
|
|
- }
|
|
|
+ });
|
|
|
+
|
|
|
//获取项目私有树下所有的元素表
|
|
|
List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
|
);
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates1) {
|
|
|
+ wbsTreePrivates1.stream().forEach(wbsTreePrivate -> {
|
|
|
tableId2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
- }
|
|
|
+ });
|
|
|
List<String> diffrent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
|
|
|
if (diffrent1.size() == 0) {
|
|
|
throw new ServiceException("未进行任何操作");
|
|
|
} else {
|
|
|
if (tableId1.size() > tableId2.size()) {
|
|
|
//同步元素表
|
|
|
- for (String tableId : diffrent1) {
|
|
|
+ diffrent1.stream().forEach(tableId -> {
|
|
|
WbsTree wbsTree = wbsTreeMapper.selectById(tableId);
|
|
|
Long snowId1 = SnowFlakeUtil.getId();
|
|
|
wbsTreePrivateMapper.insertCombination1(snowId1, wbsTree, pawDTO.getWbsType(), pawDTO.getProjectId());
|
|
|
- }
|
|
|
+ });
|
|
|
return "1";
|
|
|
}
|
|
|
//同步删除 TODO
|
|
@@ -625,33 +657,33 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
|
//公有
|
|
|
List<List<WbsTree>> wbsTrees = new ArrayList<>();
|
|
|
- for (String id : diffrent) {
|
|
|
- //查询所有公共节点+表单
|
|
|
+ diffrent.stream().forEach(id -> {
|
|
|
+ //查询所有公共节点 表单
|
|
|
List<WbsTree> trees = baseMapper.selectNodeAndTable(Long.valueOf(id));
|
|
|
wbsTrees.add(trees);
|
|
|
- }
|
|
|
- for (List<WbsTree> trees : wbsTrees) {
|
|
|
- for (WbsTree tree : trees) {
|
|
|
+ });
|
|
|
+ wbsTrees.stream().forEach(trees -> {
|
|
|
+ trees.stream().forEach(tree -> {
|
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
|
|
|
insertData.add(wbsTreePrivate2);
|
|
|
- }
|
|
|
- }
|
|
|
+ });
|
|
|
+ });
|
|
|
projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId(), "public");
|
|
|
|
|
|
} else if (pawDTO.getReferenceType().equals("private")) {
|
|
|
//私有
|
|
|
List<List<WbsTreePrivate>> wbsTreesPrivate = new ArrayList<>();
|
|
|
- for (String id : diffrent) {
|
|
|
+ diffrent.stream().forEach(id -> {
|
|
|
//查询所有私有节点 表单
|
|
|
List<WbsTreePrivate> wbsTreePrivate = wbsTreePrivateMapper.selectNodeAndTable(id, pawDTO.getWbsId(), pawDTO.getReferencePrivateWbsProjectId());
|
|
|
wbsTreesPrivate.add(wbsTreePrivate);
|
|
|
- }
|
|
|
- for (List<WbsTreePrivate> wbsTreePrivates : wbsTreesPrivate) {
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
|
|
|
+ });
|
|
|
+ wbsTreesPrivate.stream().forEach(wbsTreePrivates -> {
|
|
|
+ wbsTreePrivates.stream().forEach(wbsTreePrivate -> {
|
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
|
|
|
insertData2.add(wbsTreePrivate2);
|
|
|
- }
|
|
|
- }
|
|
|
+ });
|
|
|
+ });
|
|
|
projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
|
|
|
}
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
@@ -663,13 +695,13 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
//删除节点 表单
|
|
|
ArrayList<Long> ids1 = new ArrayList<>();
|
|
|
ArrayList<Long> ids2 = new ArrayList<>();
|
|
|
- for (String id : diffrent) {
|
|
|
+ diffrent.stream().forEach(id -> {
|
|
|
ids1.add(Long.valueOf(id));
|
|
|
- }
|
|
|
+ });
|
|
|
if (deletedStatus == 1) {
|
|
|
- for (String id : diffrent) {
|
|
|
+ diffrent.stream().forEach(id -> {
|
|
|
ids2.add(Long.valueOf(id));
|
|
|
- }
|
|
|
+ });
|
|
|
}
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
|
baseMapper.deleteBatch(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
|