|
@@ -399,17 +399,91 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
for (Long tableId : tableIds) {
|
|
for (Long tableId : tableIds) {
|
|
//获取当前wbs节点元素表信息
|
|
//获取当前wbs节点元素表信息
|
|
WbsTree wbsTree = wbsTreeMapper.selectOne(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getId, tableId));
|
|
WbsTree wbsTree = wbsTreeMapper.selectOne(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getId, tableId));
|
|
|
|
+ if (wbsTree != null) {
|
|
|
|
+ if (StringUtils.isNotEmpty(wbsTree.getInitTableName())) {
|
|
|
|
+ //查询实体表是否存在
|
|
|
|
+ Integer obj = baseMapper.showShowTabLike(wbsTree);
|
|
|
|
+ if (obj != 1) {
|
|
|
|
+ //不存在对应实体表的元素表不新增同步元素字段
|
|
|
|
+ continue;
|
|
|
|
+ //throw new ServiceException(StringUtil.format("未获取到 {} 对应实体表信息,同步失败",wbsTree.getDeptName()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取表单下的元素信息
|
|
|
|
+ List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda()
|
|
|
|
+ .eq(WbsFormElement::getFId, tableId));
|
|
|
|
+ Collections.reverse(wbsFormElements);
|
|
|
|
+ WbsFormElement firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
|
|
|
|
+
|
|
|
|
+ //去重,元素表中名称已存在的元素不添加
|
|
|
|
+ List<WbsFormElement> newList = formElementDTO.getElementList().stream().filter(a ->
|
|
|
|
+ !wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
|
|
|
|
+ ).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ //初始化eKey字段
|
|
|
|
+ int keyNumber = Integer.parseInt(firstWbsFormElement.getEKey().split("_")[1]);
|
|
|
|
+ int newKeyNumber = keyNumber + 1;
|
|
|
|
+ for (WbsFormElement wbsFormElementInfo : newList) {
|
|
|
|
+ String key = "key_" + (newKeyNumber);
|
|
|
|
+ //新增元素到当前表中
|
|
|
|
+ wbsFormElementInfo.setEKey(key);
|
|
|
|
+ wbsFormElementInfo.setId(SnowFlakeUtil.getId());
|
|
|
|
+ wbsFormElementInfo.setFId(String.valueOf(tableId));
|
|
|
|
+ wbsFormElementInfo.setStatus(1);
|
|
|
|
+ wbsFormElementInfo.setELength(Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType())));
|
|
|
|
+
|
|
|
|
+ baseMapper.insert(wbsFormElementInfo);
|
|
|
|
+
|
|
|
|
+ String eTypeFiled = getInitTableFiledType(wbsFormElementInfo.getEType());
|
|
|
|
+ int eLengthFiled = Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType()));
|
|
|
|
+
|
|
|
|
+ //判断是否存在该Key字段
|
|
|
|
+ int row1 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
|
|
|
|
+ if (row1 == 0) {
|
|
|
|
+ //追加字段到实体表中
|
|
|
|
+ wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, eTypeFiled, eLengthFiled);
|
|
|
|
+ //判断是否追加成功
|
|
|
|
+ int row2 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
|
|
|
|
+ if (row2 != 1) {
|
|
|
|
+ //追加失败,删除元素,跳过
|
|
|
|
+ baseMapper.deleteElementByfId2(wbsFormElementInfo.getId());
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ newKeyNumber++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public boolean saveRelation(FormElementDTO2 formElementDTO) {
|
|
|
|
+ //获取当前表信息
|
|
|
|
+ WbsTree wbsTree = wbsTreeMapper.selectOne(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getId, formElementDTO.getId()));
|
|
|
|
+ if (wbsTree != null) {
|
|
|
|
+ if (StringUtils.isNotEmpty(wbsTree.getInitTableName())) {
|
|
//查询实体表是否存在
|
|
//查询实体表是否存在
|
|
- Object obj = baseMapper.showShowTabLike(wbsTree);
|
|
|
|
- if (obj == null) {
|
|
|
|
- //不存在对应实体表的元素表不新增同步元素字段
|
|
|
|
- continue;
|
|
|
|
- //throw new ServiceException(StringUtil.format("未获取到 {} 对应实体表信息,同步失败",wbsTree.getDeptName()));
|
|
|
|
|
|
+ Integer obj = baseMapper.showShowTabLike(wbsTree);
|
|
|
|
+ if (obj != 1) {
|
|
|
|
+ throw new ServiceException(StringUtil.format("未获取到 {} 对应实体表信息,关联失败", wbsTree.getDeptName()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取当前元素表与清表关系信息
|
|
|
|
+ List<WbsTabRelationExcelTab> list = baseMapper.selectWbsTabRelationExcelTab(String.valueOf(formElementDTO.getId()), String.valueOf(formElementDTO.getExcelTabId()));
|
|
|
|
+ if (list.size() <= 0) {
|
|
|
|
+ //新增当前元素表与清表关系信息
|
|
|
|
+ baseMapper.insertWbsTabRelationExcelTab(SnowFlakeUtil.getId(), formElementDTO.getExcelTabId(), formElementDTO.getId());
|
|
}
|
|
}
|
|
|
|
|
|
//获取表单下的元素信息
|
|
//获取表单下的元素信息
|
|
List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda()
|
|
List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda()
|
|
- .eq(WbsFormElement::getFId, tableId));
|
|
|
|
|
|
+ .eq(WbsFormElement::getFId, formElementDTO.getId()));
|
|
Collections.reverse(wbsFormElements);
|
|
Collections.reverse(wbsFormElements);
|
|
WbsFormElement firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
|
|
WbsFormElement firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
|
|
|
|
|
|
@@ -426,7 +500,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
//新增元素到当前表中
|
|
//新增元素到当前表中
|
|
wbsFormElementInfo.setEKey(key);
|
|
wbsFormElementInfo.setEKey(key);
|
|
wbsFormElementInfo.setId(SnowFlakeUtil.getId());
|
|
wbsFormElementInfo.setId(SnowFlakeUtil.getId());
|
|
- wbsFormElementInfo.setFId(String.valueOf(tableId));
|
|
|
|
|
|
+ wbsFormElementInfo.setFId(String.valueOf(formElementDTO.getId()));
|
|
wbsFormElementInfo.setStatus(1);
|
|
wbsFormElementInfo.setStatus(1);
|
|
wbsFormElementInfo.setELength(Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType())));
|
|
wbsFormElementInfo.setELength(Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType())));
|
|
|
|
|
|
@@ -442,7 +516,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, eTypeFiled, eLengthFiled);
|
|
wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, eTypeFiled, eLengthFiled);
|
|
//判断是否追加成功
|
|
//判断是否追加成功
|
|
int row2 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
|
|
int row2 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
|
|
- if (row2 != 1) {
|
|
|
|
|
|
+ if (row2 == 0) {
|
|
//追加失败,删除元素,跳过
|
|
//追加失败,删除元素,跳过
|
|
baseMapper.deleteElementByfId2(wbsFormElementInfo.getId());
|
|
baseMapper.deleteElementByfId2(wbsFormElementInfo.getId());
|
|
continue;
|
|
continue;
|
|
@@ -450,85 +524,12 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
}
|
|
}
|
|
newKeyNumber++;
|
|
newKeyNumber++;
|
|
}
|
|
}
|
|
-
|
|
|
|
- //修改关联信息
|
|
|
|
- wbsTree.setIsLinkTable(2);
|
|
|
|
- wbsTreeMapper.updateById(wbsTree);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- public boolean saveRelation(FormElementDTO2 formElementDTO) {
|
|
|
|
- //获取当前表信息
|
|
|
|
- WbsTree wbsTree = wbsTreeMapper.selectOne(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getId, formElementDTO.getId()));
|
|
|
|
- //查询实体表是否存在
|
|
|
|
- Object obj = baseMapper.showShowTabLike(wbsTree);
|
|
|
|
- if (obj == null) {
|
|
|
|
- throw new ServiceException(StringUtil.format("未获取到 {} 对应实体表信息,关联失败", wbsTree.getDeptName()));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //获取当前元素表与清表关系信息
|
|
|
|
- List<WbsTabRelationExcelTab> list = baseMapper.selectWbsTabRelationExcelTab(String.valueOf(formElementDTO.getId()), String.valueOf(formElementDTO.getExcelTabId()));
|
|
|
|
- if (list.size() <= 0) {
|
|
|
|
- //新增当前元素表与清表关系信息
|
|
|
|
- baseMapper.insertWbsTabRelationExcelTab(SnowFlakeUtil.getId(), formElementDTO.getExcelTabId(), formElementDTO.getId());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //获取表单下的元素信息
|
|
|
|
- List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda()
|
|
|
|
- .eq(WbsFormElement::getFId, formElementDTO.getId()));
|
|
|
|
- Collections.reverse(wbsFormElements);
|
|
|
|
- WbsFormElement firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
|
|
|
|
-
|
|
|
|
- //去重,元素表中名称已存在的元素不添加
|
|
|
|
- List<WbsFormElement> newList = formElementDTO.getElementList().stream().filter(a ->
|
|
|
|
- !wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
|
|
|
|
- ).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- //初始化eKey字段
|
|
|
|
- int keyNumber = Integer.parseInt(firstWbsFormElement.getEKey().split("_")[1]);
|
|
|
|
- int newKeyNumber = keyNumber + 1;
|
|
|
|
- for (WbsFormElement wbsFormElementInfo : newList) {
|
|
|
|
- String key = "key_" + (newKeyNumber);
|
|
|
|
- //新增元素到当前表中
|
|
|
|
- wbsFormElementInfo.setEKey(key);
|
|
|
|
- wbsFormElementInfo.setId(SnowFlakeUtil.getId());
|
|
|
|
- wbsFormElementInfo.setFId(String.valueOf(formElementDTO.getId()));
|
|
|
|
- wbsFormElementInfo.setStatus(1);
|
|
|
|
- wbsFormElementInfo.setELength(Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType())));
|
|
|
|
-
|
|
|
|
- baseMapper.insert(wbsFormElementInfo);
|
|
|
|
-
|
|
|
|
- String eTypeFiled = getInitTableFiledType(wbsFormElementInfo.getEType());
|
|
|
|
- int eLengthFiled = Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType()));
|
|
|
|
-
|
|
|
|
- //判断是否存在该Key字段
|
|
|
|
- int row1 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
|
|
|
|
- if (row1 == 0) {
|
|
|
|
- //追加字段到实体表中
|
|
|
|
- wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, eTypeFiled, eLengthFiled);
|
|
|
|
- //判断是否追加成功
|
|
|
|
- int row2 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
|
|
|
|
- if (row2 == 0) {
|
|
|
|
- //追加失败,删除元素,跳过
|
|
|
|
- baseMapper.deleteElementByfId2(wbsFormElementInfo.getId());
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- newKeyNumber++;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //修改关联信息
|
|
|
|
- wbsTree.setIsLinkTable(2);
|
|
|
|
- wbsTreeMapper.updateById(wbsTree);
|
|
|
|
-
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean saveFormElement(FormElementDTO2 formElementDTO) {
|
|
public boolean saveFormElement(FormElementDTO2 formElementDTO) {
|
|
//获取新增节点ids
|
|
//获取新增节点ids
|