|
@@ -543,7 +543,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
List<String> idList1 = idList.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
|
|
|
List<String> idList2 = new ArrayList<>();
|
|
|
int deletedStatus = 0;
|
|
|
-
|
|
|
//当前公有引用
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
|
List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
@@ -555,7 +554,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
idList2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
//私有引用
|
|
|
else if (pawDTO.getReferenceType().equals("private")) {
|
|
|
List<WbsTreePrivate> wbsTreePrivates2 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
@@ -568,15 +566,11 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
});
|
|
|
deletedStatus = 1;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
List<String> diffRent = WbsTreeContractServiceImpl.getDiffrent(idList1, idList2);
|
|
|
-
|
|
|
//元素表同步
|
|
|
if (diffRent.size() == 0) {
|
|
|
List<String> tableId1 = new ArrayList<>();
|
|
|
List<String> tableId2 = new ArrayList<>();
|
|
|
-
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
|
//公有同步新增元素表
|
|
|
//获取公有wbs树新增的元素表
|
|
@@ -643,9 +637,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTreePrivates1.stream().forEach(wbsTreePrivate2 -> {
|
|
|
tableId2.add(String.valueOf(wbsTreePrivate2.getId()));
|
|
|
});
|
|
|
-
|
|
|
List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
|
|
|
-
|
|
|
if (diffRent1.size() == 0) {
|
|
|
throw new ServiceException("未检测到引用的私有wbs树下有新增的元素表");
|
|
|
} else {
|
|
@@ -671,10 +663,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
//TODO删除
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//新增
|
|
|
else {
|
|
|
if (idList1.size() > idList2.size()) {
|
|
@@ -684,8 +674,18 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
//公有
|
|
|
//查询所有公共节点+表单
|
|
|
List<WbsTree> trees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, pawDTO.getWbsId()));
|
|
|
+ //根据id获取指定WbsTree节点数据
|
|
|
+ List<WbsTree> listTree = new ArrayList<>();
|
|
|
+ trees.stream().map(tree -> {
|
|
|
+ diffRent.stream().forEach(id -> {
|
|
|
+ if (id.equals(String.valueOf(tree.getId()))) {
|
|
|
+ listTree.add(tree);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return null;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
//初始化
|
|
|
- trees.stream().forEach(tree -> {
|
|
|
+ listTree.stream().forEach(tree -> {
|
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
|
|
|
insertData.add(wbsTreePrivate2);
|
|
|
});
|
|
@@ -696,8 +696,17 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId())
|
|
|
);
|
|
|
+ List<WbsTreePrivate> listTree = new ArrayList<>();
|
|
|
+ wbsTreePrivatesList.stream().map(tree -> {
|
|
|
+ diffRent.stream().forEach(id -> {
|
|
|
+ if (id.equals(String.valueOf(tree.getId()))) {
|
|
|
+ listTree.add(tree);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return null;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
//初始化
|
|
|
- wbsTreePrivatesList.stream().forEach(wbsTreePrivate -> {
|
|
|
+ listTree.stream().forEach(wbsTreePrivate -> {
|
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
|
|
|
insertData2.add(wbsTreePrivate2);
|
|
|
});
|
|
@@ -710,7 +719,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//删除节点 表单
|
|
|
else {
|
|
|
ArrayList<Long> ids1 = new ArrayList<>();
|
|
@@ -883,7 +891,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
if (StringUtils.isEmpty(filedName) || StringUtils.isEmpty(filedType) || StringUtils.isEmpty(filedLength)) {
|
|
|
return R.fail("操作失败,请完整填写元素参数");
|
|
|
}
|
|
|
-
|
|
|
String deptName = formElementDTO.getDeptName();
|
|
|
if (deptName.length() > 100 || deptName.length() < 1) {
|
|
|
throw new ServiceException("表名长度错误,输入范围1-100个字符长度");
|
|
@@ -893,10 +900,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
Long id = SnowFlakeUtil.getId();
|
|
|
String newTableName = "m_wbs_form_" + DateUtil.time() + "_" + id.toString();
|
|
|
formElementDTO.setInitTableName(newTableName);
|
|
|
-
|
|
|
//创建元素表
|
|
|
boolean b1 = submit2(formElementDTO);
|
|
|
-
|
|
|
List<WbsFormElement> elementList = formElementDTO.getElementList();
|
|
|
int i = 1;
|
|
|
for (WbsFormElement wbsFormElement : elementList) {
|
|
@@ -915,7 +920,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
//新增元素
|
|
|
boolean b2 = wbsFormElementService.saveBatch(elementList);
|
|
|
-
|
|
|
//找到当前元素表中所有元素
|
|
|
List<WbsFormElement> list = wbsFormElementService.selectElementListByFid(String.valueOf(formElementDTO.getId()));
|
|
|
//初始化实体表
|
|
@@ -928,7 +932,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
|
|
|
public static String getFirstSpell(String chinese) {
|
|
|
- StringBuffer pybf = new StringBuffer();
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
char[] arr = chinese.toCharArray();
|
|
|
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
|
|
|
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
|
|
@@ -938,16 +942,16 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
try {
|
|
|
String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
|
|
|
if (temp != null) {
|
|
|
- pybf.append(temp[0].charAt(0));
|
|
|
+ stringBuilder.append(temp[0].charAt(0));
|
|
|
}
|
|
|
} catch (BadHanyuPinyinOutputFormatCombination e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
} else {
|
|
|
- pybf.append(arr[i]);
|
|
|
+ stringBuilder.append(arr[i]);
|
|
|
}
|
|
|
}
|
|
|
- return pybf.toString().replaceAll("\\W", "").trim();
|
|
|
+ return stringBuilder.toString().replaceAll("\\W", "").trim();
|
|
|
}
|
|
|
|
|
|
public static String getPinyin(String text, String separator) {
|