|
@@ -312,7 +312,15 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
|
|
|
@Override
|
|
|
public Long findWbsTreePrivate(String ids) {
|
|
|
- return baseMapper.selectCount(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getProjectId, ids));
|
|
|
+ List<WbsTreePrivate> wbsTreePrivates = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().select(WbsTreePrivate::getParentId).eq(WbsTreePrivate::getProjectId, ids));
|
|
|
+ boolean allParentIdAreMinus10 = wbsTreePrivates.stream().allMatch(f -> f.getParentId() == -10L);
|
|
|
+ if (allParentIdAreMinus10) {
|
|
|
+ //如果都是元素库引用的表,那么直接全部删除
|
|
|
+ jdbcTemplate.execute("delete from m_wbs_tree_private where project_id = " + ids);
|
|
|
+ return 0L;
|
|
|
+ } else {
|
|
|
+ return 1L;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -969,7 +977,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
insertList.forEach(i -> i.setId(SnowFlakeUtil.getId()));
|
|
|
this.wbsParamServiceImpl.saveOrUpdateBatch(insertList, 1000);
|
|
|
/*生成公式,并自动绑定元素,同key复用一个公式*/
|
|
|
- Map<String, Long> formulaIdeyMap =this.wbsParamServiceImpl.formulaIdKeyMap(insertList.stream().map(WbsParam::getK).collect(Collectors.toList()));
|
|
|
+ Map<String, Long> formulaIdeyMap = this.wbsParamServiceImpl.formulaIdKeyMap(insertList.stream().map(WbsParam::getK).collect(Collectors.toList()));
|
|
|
/* Map<Long, Formula> insertFormulaMap = insertList.stream().map(e -> {
|
|
|
Map<String, Object> tmpMap = new HashMap<>();
|
|
|
Formula formula = new Formula();
|
|
@@ -1002,7 +1010,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
List<ElementFormulaMapping> insertEfm = new ArrayList<>();
|
|
|
insertList.forEach(p -> {
|
|
|
List<Map<String, Object>> elementMap = groupElementNode.get(p.getNodeId().toString());
|
|
|
- // Formula formula = insertFormulaMap.get(p.getId());
|
|
|
+ // Formula formula = insertFormulaMap.get(p.getId());
|
|
|
if (Func.isNotEmpty(elementMap)) {
|
|
|
elementMap.forEach(m -> {
|
|
|
if (com.mixsmart.utils.StringUtils.handleNull(m.get("name")).contains(p.getName())) {
|