|
@@ -27,10 +27,7 @@ import org.springblade.manager.entity.*;
|
|
import org.springblade.manager.mapper.*;
|
|
import org.springblade.manager.mapper.*;
|
|
import org.springblade.manager.service.ITableInfoService;
|
|
import org.springblade.manager.service.ITableInfoService;
|
|
import org.springblade.manager.service.IWbsTreePrivateService;
|
|
import org.springblade.manager.service.IWbsTreePrivateService;
|
|
-import org.springblade.manager.vo.TreeNodeVOByTabType;
|
|
|
|
-import org.springblade.manager.vo.WbsNodeTabAndParamVO;
|
|
|
|
-import org.springblade.manager.vo.WbsNodeTableVO;
|
|
|
|
-import org.springblade.manager.vo.WbsTreePrivateVO;
|
|
|
|
|
|
+import org.springblade.manager.vo.*;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
@@ -516,11 +513,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
//获取该节点下所有表单
|
|
//获取该节点下所有表单
|
|
List<WbsNodeTableVO> list = baseMapper.selectNodeTabAndParamList(id, wbsId, projectId);
|
|
List<WbsNodeTableVO> list = baseMapper.selectNodeTabAndParamList(id, wbsId, projectId);
|
|
//获取节点信息
|
|
//获取节点信息
|
|
- WbsTreePrivate nodeInfo = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
|
- .eq(WbsTreePrivate::getId, id)
|
|
|
|
- .eq(WbsTreePrivate::getWbsId, wbsId)
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, projectId)
|
|
|
|
- );
|
|
|
|
|
|
+ WbsTreePrivate nodeInfo = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getId, id).eq(WbsTreePrivate::getWbsId, wbsId).eq(WbsTreePrivate::getProjectId, projectId));
|
|
//获取节点参数,此处使用pKeyId与参数表的wbsId做的绑定才能确定唯一;
|
|
//获取节点参数,此处使用pKeyId与参数表的wbsId做的绑定才能确定唯一;
|
|
List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(nodeInfo.getPKeyId());
|
|
List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(nodeInfo.getPKeyId());
|
|
resultList.setTabData(list);
|
|
resultList.setTabData(list);
|
|
@@ -554,43 +547,30 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
public boolean syncNodeParam(String projectId) {
|
|
public boolean syncNodeParam(String projectId) {
|
|
if (StringUtils.isNotEmpty(projectId)) {
|
|
if (StringUtils.isNotEmpty(projectId)) {
|
|
//获取项目节点树
|
|
//获取项目节点树
|
|
- List<WbsTreePrivate> wbsTreePrivateAllNow = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, projectId)
|
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
|
- .eq(WbsTreePrivate::getType, 1)
|
|
|
|
- );
|
|
|
|
- String wbsId = "";
|
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
|
|
- wbsId = wbsTreePrivate.getWbsId();
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivateAllNow = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getStatus, 1).eq(WbsTreePrivate::getType, 1));
|
|
|
|
+ String wbsId = wbsTreePrivateAllNow.stream().map(WbsTreePrivate::getWbsId).findAny().orElse(null);
|
|
if (StringUtils.isNotEmpty(wbsId)) {
|
|
if (StringUtils.isNotEmpty(wbsId)) {
|
|
- //获取当前参数表的所有业务数据
|
|
|
|
- List<WbsParam> wbsParamListAll = wbsParamMapper.selectList(Wrappers.<WbsParam>query().lambda().eq(WbsParam::getType, 1).isNotNull(WbsParam::getNodeId).ne(WbsParam::getNodeId, -1));
|
|
|
|
|
|
|
|
- List<WbsParam> paramListData = new ArrayList<>();
|
|
|
|
|
|
+ List<WbsParamVO> paramListData = new ArrayList<>();
|
|
//获取公有树
|
|
//获取公有树
|
|
- List<WbsTree> treePublicNodeAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
|
- .eq(WbsTree::getWbsId, wbsId)
|
|
|
|
- .eq(WbsTree::getStatus, 1)
|
|
|
|
- .eq(WbsTree::getType, 1)
|
|
|
|
- );
|
|
|
|
|
|
+ List<WbsTree> treePublicNodeAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, wbsId).eq(WbsTree::getStatus, 1).eq(WbsTree::getType, 1));
|
|
|
|
|
|
if (treePublicNodeAll.size() > 0) {
|
|
if (treePublicNodeAll.size() > 0) {
|
|
//公有引用
|
|
//公有引用
|
|
for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
for (WbsTree wbsTree : treePublicNodeAll) {
|
|
for (WbsTree wbsTree : treePublicNodeAll) {
|
|
if (wbsTree.getId().equals(wbsTreePrivate.getId())) {
|
|
if (wbsTree.getId().equals(wbsTreePrivate.getId())) {
|
|
|
|
+ String sql = "select * from m_wbs_param where node_id = " + wbsTree.getId();
|
|
|
|
+ List<WbsParam> wbsParamList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsParam.class));
|
|
//获取公有节点参数
|
|
//获取公有节点参数
|
|
- List<WbsParam> wbsParamList = wbsParamListAll.stream().filter(f -> f.getNodeId().equals(wbsTree.getId())).collect(Collectors.toList());
|
|
|
|
if (wbsParamList.size() > 0) {
|
|
if (wbsParamList.size() > 0) {
|
|
for (WbsParam wbsParam : wbsParamList) {
|
|
for (WbsParam wbsParam : wbsParamList) {
|
|
- WbsParam param = BeanUtil.copyProperties(wbsParam, WbsParam.class);
|
|
|
|
|
|
+ WbsParamVO param = BeanUtil.copyProperties(wbsParam, WbsParamVO.class);
|
|
if (param != null) {
|
|
if (param != null) {
|
|
|
|
+ param.setOldId(wbsParam.getId());
|
|
param.setNodeId(wbsTreePrivate.getPKeyId());
|
|
param.setNodeId(wbsTreePrivate.getPKeyId());
|
|
param.setId(SnowFlakeUtil.getId());
|
|
param.setId(SnowFlakeUtil.getId());
|
|
paramListData.add(param);
|
|
paramListData.add(param);
|
|
@@ -603,28 +583,19 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
|
|
|
} else {
|
|
} else {
|
|
//私有引用 - 获取原始引用私有树
|
|
//私有引用 - 获取原始引用私有树
|
|
- WbsTreePrivate treePrivateRootNode = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
|
- .eq(WbsTreePrivate::getPKeyId, wbsId)
|
|
|
|
- .eq(WbsTreePrivate::getParentId, 0L)
|
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
|
- .eq(WbsTreePrivate::getType, 1)
|
|
|
|
- );
|
|
|
|
- List<WbsTreePrivate> treePrivateNodeAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
|
- .eq(WbsTreePrivate::getWbsId, treePrivateRootNode.getWbsId())
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, treePrivateRootNode.getProjectId())
|
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
|
- .eq(WbsTreePrivate::getType, 1)
|
|
|
|
- );
|
|
|
|
|
|
+ WbsTreePrivate treePrivateRootNode = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, wbsId).eq(WbsTreePrivate::getParentId, 0L).eq(WbsTreePrivate::getStatus, 1).eq(WbsTreePrivate::getType, 1));
|
|
|
|
+ List<WbsTreePrivate> treePrivateNodeAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getWbsId, treePrivateRootNode.getWbsId()).eq(WbsTreePrivate::getProjectId, treePrivateRootNode.getProjectId()).eq(WbsTreePrivate::getStatus, 1).eq(WbsTreePrivate::getType, 1));
|
|
|
|
|
|
for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateAllNow) {
|
|
for (WbsTreePrivate wbsTreePrivateYS : treePrivateNodeAll) {
|
|
for (WbsTreePrivate wbsTreePrivateYS : treePrivateNodeAll) {
|
|
if (wbsTreePrivateYS.getId().equals(wbsTreePrivate.getId())) {
|
|
if (wbsTreePrivateYS.getId().equals(wbsTreePrivate.getId())) {
|
|
- //获取公有节点参数
|
|
|
|
- List<WbsParam> wbsParamList = wbsParamListAll.stream().filter(f -> f.getNodeId().equals(wbsTreePrivateYS.getPKeyId())).collect(Collectors.toList());
|
|
|
|
|
|
+ String sql = "select * from m_wbs_param where node_id = " + wbsTreePrivateYS.getPKeyId();
|
|
|
|
+ List<WbsParam> wbsParamList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsParam.class));
|
|
if (wbsParamList.size() > 0) {
|
|
if (wbsParamList.size() > 0) {
|
|
for (WbsParam wbsParam : wbsParamList) {
|
|
for (WbsParam wbsParam : wbsParamList) {
|
|
- WbsParam param = BeanUtil.copyProperties(wbsParam, WbsParam.class);
|
|
|
|
|
|
+ WbsParamVO param = BeanUtil.copyProperties(wbsParam, WbsParamVO.class);
|
|
if (param != null) {
|
|
if (param != null) {
|
|
|
|
+ param.setOldId(wbsParam.getId());
|
|
param.setNodeId(wbsTreePrivate.getPKeyId());
|
|
param.setNodeId(wbsTreePrivate.getPKeyId());
|
|
param.setId(SnowFlakeUtil.getId());
|
|
param.setId(SnowFlakeUtil.getId());
|
|
paramListData.add(param);
|
|
paramListData.add(param);
|
|
@@ -636,22 +607,68 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ List<WbsParam> updateList = new ArrayList<>();
|
|
|
|
+ List<WbsParam> insertList = new ArrayList<>();
|
|
//判断是否存在
|
|
//判断是否存在
|
|
- Iterator<WbsParam> iterator = paramListData.iterator();
|
|
|
|
|
|
+ Iterator<WbsParamVO> iterator = paramListData.iterator();
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
- WbsParam next = iterator.next();
|
|
|
|
- List<WbsParam> collect = wbsParamListAll.stream().filter(f ->
|
|
|
|
- (StringUtils.isNotEmpty(f.getK()) && f.getK().equals(next.getK()))
|
|
|
|
- && (StringUtils.isNotEmpty(f.getV()) && f.getV().equals(next.getV()))
|
|
|
|
- && (StringUtils.isNotEmpty(f.getName()) && f.getName().equals(next.getName()))
|
|
|
|
- && (ObjectUtils.isNotEmpty(f.getNodeId()) && f.getNodeId().equals(next.getNodeId())))
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- if (collect.size() > 0) {
|
|
|
|
- iterator.remove();
|
|
|
|
|
|
+ WbsParamVO next = iterator.next();
|
|
|
|
+
|
|
|
|
+ //获取引用的节点上的源参数信息
|
|
|
|
+ String sql1 = "select * from m_wbs_param where id = " + next.getOldId();
|
|
|
|
+ WbsParam oldObj = jdbcTemplate.query(sql1, new BeanPropertyRowMapper<>(WbsParam.class)).stream().findAny().orElse(null);
|
|
|
|
+
|
|
|
|
+ //获取被引用的节点上的现参数信息
|
|
|
|
+ String sql2 = "select * from m_wbs_param where name = '" + next.getName() + "' and k = '" + next.getK() + "' and v = '" + next.getV() + "' and node_id = " + next.getNodeId() + " and remark = '" + next.getRemark() + "' and is_deleted = 0 and status = 1";
|
|
|
|
+ WbsParam newObj = jdbcTemplate.query(sql2, new BeanPropertyRowMapper<>(WbsParam.class)).stream().findAny().orElse(null);
|
|
|
|
+
|
|
|
|
+ if (oldObj != null && newObj != null) {
|
|
|
|
+ //如果源节点参数与现节点参数名称、K、V、备注一致,那么就跳过
|
|
|
|
+ if (oldObj.getName().equals(newObj.getName()) && oldObj.getK().equals(newObj.getK()) && oldObj.getV().equals(newObj.getV()) && oldObj.getRemark().equals(newObj.getRemark())) {
|
|
|
|
+ iterator.remove();
|
|
|
|
+
|
|
|
|
+ //如果源节点参数与现节点参数名称、K一致,V、备注不一致,那么就修改当前名称下的节点参数
|
|
|
|
+ } else if (oldObj.getName().equals(newObj.getName()) && oldObj.getK().equals(newObj.getK()) && (!oldObj.getV().equals(newObj.getV()) || !oldObj.getRemark().equals(newObj.getRemark()))) {
|
|
|
|
+ newObj.setName(oldObj.getName());
|
|
|
|
+ newObj.setK(oldObj.getK());
|
|
|
|
+ newObj.setV(oldObj.getV());
|
|
|
|
+ newObj.setRemark(oldObj.getRemark());
|
|
|
|
+ updateList.add(newObj);
|
|
|
|
+
|
|
|
|
+ //如果源节点参数与现节点参数名称不一致,那么新增
|
|
|
|
+ } else if (!oldObj.getName().equals(newObj.getName())) {
|
|
|
|
+ insertList.add(next);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (oldObj != null) {
|
|
|
|
+ //二次过滤,节点名称、节点id相同,修改
|
|
|
|
+ String sql3 = "select * from m_wbs_param where name = '" + next.getName() + "' and node_id = " + next.getNodeId() + " and is_deleted = 0 and status = 1";
|
|
|
|
+ List<WbsParam> query = jdbcTemplate.query(sql3, new BeanPropertyRowMapper<>(WbsParam.class));
|
|
|
|
+ if (query.size() > 0) {
|
|
|
|
+ for (WbsParam wbsParam : query) {
|
|
|
|
+ if (oldObj.getName().equals(wbsParam.getName())) {
|
|
|
|
+ //修改
|
|
|
|
+ wbsParam.setName(next.getName());
|
|
|
|
+ wbsParam.setK(next.getK());
|
|
|
|
+ wbsParam.setV(next.getV());
|
|
|
|
+ wbsParam.setRemark(next.getRemark());
|
|
|
|
+ updateList.add(wbsParam);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //新增
|
|
|
|
+ insertList.add(next);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- wbsParamServiceImpl.saveBatch(paramListData, 1000);
|
|
|
|
|
|
+ if (updateList.size() > 0) {
|
|
|
|
+ this.wbsParamServiceImpl.updateBatchById(updateList, 1000);
|
|
|
|
+ }
|
|
|
|
+ if (insertList.size() > 0) {
|
|
|
|
+ this.wbsParamServiceImpl.saveBatch(insertList, 1000);
|
|
|
|
+ }
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -659,7 +676,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
public boolean syncNodeTable(String primaryKeyId) {
|
|
public boolean syncNodeTable(String primaryKeyId) {
|
|
if (StringUtils.isNotEmpty(primaryKeyId)) {
|
|
if (StringUtils.isNotEmpty(primaryKeyId)) {
|
|
//获取当前节点对应节点信息
|
|
//获取当前节点对应节点信息
|
|
@@ -1610,26 +1626,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- public void insertDLTab(WbsTreeContractDTO pawDTO) {
|
|
|
|
- //获取当前引用项目的独立库表单
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivates = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId()).eq(WbsTreePrivate::getType, 10));
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesNew = new ArrayList<>();
|
|
|
|
- if (wbsTreePrivates.size() > 0) {
|
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
|
|
|
|
- WbsTreePrivate wbsTreePrivateNew = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
|
|
|
|
- if (wbsTreePrivateNew != null) {
|
|
|
|
- Long id = SnowFlakeUtil.getId();
|
|
|
|
- wbsTreePrivateNew.setPKeyId(id);
|
|
|
|
- wbsTreePrivateNew.setId(id);
|
|
|
|
- wbsTreePrivateNew.setProjectId(pawDTO.getProjectId());
|
|
|
|
- wbsTreePrivatesNew.add(wbsTreePrivateNew);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- this.insertBatch(wbsTreePrivatesNew, 1000);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 修改initTableId
|
|
* 修改initTableId
|
|
*/
|
|
*/
|