对接父子级数据的添加或修改逻辑
2021
04.21

对接父子级数据的添加或修改逻辑

1、对接父子级数据时注意对接的数据的“id”和“父级id”需要保存, 修改

2、在对接的实体类中加入对接“id”和“父级id”,例如:

@Data public class Branch  {    

private Long id;  

private String name;

private Long parentId;    //对接的id和pId    

private String dockId;        

private String  dockParentId;

}

3、对接逻辑

/*List<SsoDeptVo> deptVoList  对接的回传数据*/

//SsoDeptVo  对接接口的实体类,由接口文档提供

public void info(List<SsoDeptVo> deptVoList) {

 

List<Branch> updBrancheList = new ArrayList<>();

Map<String,Branch> currSave = new HashMap<>();

 

deptVoList.stream().parallel().forEach(dept -> {

Branch optionBranch = new Branch();

//对接数据的父级id

String dockParentId = dept.getParentId();

optionBranch.setDockParentId(dockParentId);        optionBranch.setName(dept.getDeptName());//对接数据的名称 //查询是否存在这条数据

Branch branch = branchDao.queryBranchByDockId(dept.getId());

if(ObjectUtils.isNotNull(branch)){

//更新            

optionBranch.setId(branch.getId());            branchDao.updateBranch(optionBranch);//父级id

            if(!Objects.equals(branch.getDockParentId(),dockParentId)){

updBrancheList.add(optionBranch);

}        

} else {

//插入            

optionBranch.setDockId(dept.getId());            branchDao.addBranch(optionBranch);            currSave.put(optionBranch.getDockId(),optionBranch);            updBrancheList.add(optionBranch);

}

});

 

 

//调整 子父关系    

if(ObjectUtils.isNotNull(updBrancheList)){        updBrancheList.stream().forEach(updBranche -> {

//机构id

Long id = updBranche.getId();

//父级id

String dockParentId = updBranche.getDockParentId();

 

//查询 父级id 的 机构id

Branch branch = branchDao.queryBranchByDockId(dockParentId);

Branch branchMap = currSave.get(dockParentId);

Long parentId = null;            

if(ObjectUtils.isNotNull(branch)){                parentId = branch.getId();  //更新关系            

} else if (ObjectUtils.isNotNull(branchMap)){

parentId = branchMap.getId(); //更新关系

} else  {

logger.warn("dockParentId:["+dockParentId+"] is not exist");

}            

if(ObjectUtils.isNotNull(parentId)){

Branch updBranch = new Branch();

updBranch.setId(id);                updBranch.setParentId(parentId);                branchDao.updateBranch(updBranch);

}

});

}

热门文章
1
通过微信接口获取code
7087浏览 2021-04-14 09:26
2
Java实现html页面抓取转PDF
4040浏览 2021-04-13 17:09
3
vue 页面按钮点击复制内容
2989浏览 2021-04-21 09:42
4
对接父子级数据的添加或修改逻辑
2948浏览 2021-04-21 09:47
5
Mysql常用sql语句
2754浏览 2021-04-20 10:46
6
邀请函│EICD2021中国民办教育大会
2064浏览 2021-03-15 14:06
7
Linux安装中文字体
1980浏览 2021-04-13 17:14
8
合并单元格的方法
1698浏览 2021-04-14 09:23
9
vue中数组去重的实现
1606浏览 2021-04-14 09:20
10
Nginx如何配置重定向
1578浏览 2021-04-14 09:09