|
@@ -58,8 +58,10 @@ public class WbsTreePrivateController extends BladeController {
|
|
|
@ApiOperation(value = "保存项目日志划分")
|
|
|
public R<Boolean> saveContractLogNode(@RequestBody SaveLogContractVO vo){
|
|
|
if(StringUtils.isNotEmpty(vo.getWbsTreeIds())){
|
|
|
+ Date now = new Date();
|
|
|
+
|
|
|
//获取当前项目已经划分的日志树
|
|
|
- List<WbsTreePrivate> oldDataList = this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, vo.getProjectId()).eq(WbsTreePrivate::getWbsType, "4").eq(WbsTreePrivate::getWbsId, vo.getWbsId()));
|
|
|
+ List<WbsTreePrivate> oldDataList = this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, vo.getProjectId()).eq(WbsTreePrivate::getWbsType, "4").eq(WbsTreePrivate::getWbsId, vo.getWbsId()).eq(WbsTreePrivate::getType, 1));
|
|
|
|
|
|
//需要保存的集合
|
|
|
List<WbsTreePrivate> saveTreePrivateList = new ArrayList<>();
|
|
@@ -82,6 +84,51 @@ public class WbsTreePrivateController extends BladeController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //检查一下原本节点的表是否有新增的(只处理新增)
|
|
|
+ if(oldDataList != null && oldDataList.size() > 0){
|
|
|
+ for(WbsTreePrivate treePrivate : oldDataList){
|
|
|
+ //获取当前节点下绑定的表格元素
|
|
|
+ List<WbsTreePrivate> treePrivateTableList = this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, treePrivate.getProjectId()).eq(WbsTreePrivate::getParentId, treePrivate.getId()).eq(WbsTreePrivate::getType, 2));
|
|
|
+
|
|
|
+ //获取当前节点引用的模板下的表格元素
|
|
|
+ List<WbsTree> wbsTreeTableList = this.wbsTreeService.list(Wrappers.<WbsTree>lambdaQuery().eq(WbsTree::getParentId, treePrivate.getId()).eq(WbsTree::getType, 2));
|
|
|
+
|
|
|
+ //校验数量
|
|
|
+ if(wbsTreeTableList != null && wbsTreeTableList.size() > 0){
|
|
|
+ if(treePrivateTableList != null){
|
|
|
+ if(treePrivateTableList.size() < wbsTreeTableList.size()){
|
|
|
+ //小于,说明模板节点存在新增,检查哪些是新增的
|
|
|
+ Iterator<WbsTree> iterator = wbsTreeTableList.iterator();
|
|
|
+ while (iterator.hasNext()){
|
|
|
+ WbsTree tree = iterator.next();
|
|
|
+ for(WbsTreePrivate privateNode : treePrivateTableList){
|
|
|
+ if(privateNode.getId().equals(tree.getId())){
|
|
|
+ //存在,删除
|
|
|
+ iterator.remove();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //多出来的,新增
|
|
|
+ if(wbsTreeTableList.size() > 0){
|
|
|
+ for(WbsTree wbsTree : wbsTreeTableList){
|
|
|
+ WbsTreePrivate newTreePrivate = new WbsTreePrivate();
|
|
|
+ BeanUtils.copyProperties(wbsTree, newTreePrivate);
|
|
|
+ newTreePrivate.setWbsType("4");
|
|
|
+ newTreePrivate.setProjectId(vo.getProjectId());
|
|
|
+ newTreePrivate.setCreateTime(now);
|
|
|
+ newTreePrivate.setPKeyId(SnowFlakeUtil.getId());
|
|
|
+
|
|
|
+ saveTreePrivateList.add(newTreePrivate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if(wbsTreeIds.size() > 0){
|
|
|
//获取模板节点
|
|
|
List<WbsTree> wbsTreeList = this.wbsTreeService.list(Wrappers.<WbsTree>lambdaQuery().in(WbsTree::getId, wbsTreeIds));
|
|
@@ -90,28 +137,29 @@ public class WbsTreePrivateController extends BladeController {
|
|
|
if(wbsTreeTableList != null && wbsTreeTableList.size() > 0){
|
|
|
wbsTreeList.addAll(wbsTreeTableList);
|
|
|
}
|
|
|
+
|
|
|
//复制数据
|
|
|
- Date now = new Date();
|
|
|
for(WbsTree tree : wbsTreeList){
|
|
|
WbsTreePrivate treePrivate = new WbsTreePrivate();
|
|
|
BeanUtils.copyProperties(tree, treePrivate);
|
|
|
- saveTreePrivateList.add(treePrivate);
|
|
|
treePrivate.setWbsType("4");
|
|
|
treePrivate.setProjectId(vo.getProjectId());
|
|
|
treePrivate.setPKeyId(SnowFlakeUtil.getId());
|
|
|
treePrivate.setCreateTime(now);
|
|
|
- }
|
|
|
- if(saveTreePrivateList.size() > 0){
|
|
|
- //修改项目引用
|
|
|
- this.projectInfoService.update(Wrappers.<ProjectInfo>lambdaUpdate().set(ProjectInfo::getReferenceLogWbsTemplateId, vo.getWbsId()).eq(ProjectInfo::getId, vo.getProjectId()));
|
|
|
|
|
|
- //保存数据
|
|
|
- return R.data(this.wbsTreePrivateService.saveBatch(saveTreePrivateList));
|
|
|
+ saveTreePrivateList.add(treePrivate);
|
|
|
}
|
|
|
- } else {
|
|
|
- return R.data(200, true, "未找到需要新增的节点");
|
|
|
}
|
|
|
|
|
|
+ if(saveTreePrivateList.size() > 0){
|
|
|
+ //修改项目引用
|
|
|
+ this.projectInfoService.update(Wrappers.<ProjectInfo>lambdaUpdate().set(ProjectInfo::getReferenceLogWbsTemplateId, vo.getWbsId()).eq(ProjectInfo::getId, vo.getProjectId()));
|
|
|
+
|
|
|
+ //保存数据
|
|
|
+ return R.data(this.wbsTreePrivateService.saveBatch(saveTreePrivateList));
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.data(200, true, "保存成功");
|
|
|
}
|
|
|
return R.data(300, true, "保存失败,未选择任何数据");
|
|
|
}
|