fix: 标准拆分条款目录-移动层级

This commit is contained in:
yjz
2024-08-16 09:38:28 +08:00
parent 6bd669ee6a
commit ea0654f28e
3 changed files with 24 additions and 20 deletions
@@ -68,11 +68,12 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
return Result.OK(MessageUtils.getMessage(ResultCommon.EDIT_OK),sarFileSplitMenuEO);
}
@ApiOperation(value = "标准拆分条款目录-修改层级")
@ApiOperation(value = "标准拆分条款目录-移动层级")
@GetMapping("/updateMenuLevel")
// @RequiresPermissions("split:sarFileSplitMenu:updateMenuLevel")
public Result<SarFileSplitMenuEO> updateMenuLevel(String id, String parentId) {
sarFileSplitMenuEOService.updateMenuLevel(id, parentId);
public Result<SarFileSplitMenuEO> updateMenuLevel(@ApiParam(value = "要移动的节点id")String sourceId,
@ApiParam(value = "要移动到的节点id")String targetId) {
sarFileSplitMenuEOService.updateMenuLevel(sourceId, targetId);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
@@ -58,5 +58,5 @@ public interface ISarFileSplitMenuEOService extends IService<SarFileSplitMenuEO>
Result moveUpOrDown(JSONObject json);
void updateMenuLevel(String id, String parentId);
void updateMenuLevel(String sourceId, String targetId);
}
@@ -374,40 +374,43 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
}
@Override
public void updateMenuLevel(String id, String parentId) {
public void updateMenuLevel(String sourceId, String targetId) {
// 要移动的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findById(sourceId);
// 要移动到的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO2 = baseMapper.findById(targetId);
// 获取要移动到的层级的最后一个 的排序值
SarFileSplitMenuEO lastMenu = getLastMenu(parentId);
SarFileSplitMenuEO lastMenu = getLastMenu(sarFileSplitMenuEO2.getPId());
// 查询当前节点和当前节点所有子集
SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findById(id);
// 要移动的节点所有子集(包括本身)
List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();
sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1);
List<SarFileSplitMenuEO> allList = new ArrayList<>();
getChildren(allList, sarFileSplitMenuEO1List);
// 获取要移动节点的数量
int childCount = allList.size();
// 要移动节点的数量
int moveNodeCount = allList.size();
// 更新节点排序
SarFileSplitMenuEO parentSarFileSplitMenu = baseMapper.findById(parentId);
// 更新 大于 要移动到节点最后节点 的节点排序
List<SarFileSplitMenuEO> sarFileSplitMenuEOList =
baseMapper.queryByGTDisplaySeq(parentSarFileSplitMenu.getInfoId(), lastMenu.getDisplaySeq());
baseMapper.queryByGTDisplaySeq(sarFileSplitMenuEO1.getInfoId(), lastMenu.getDisplaySeq());
for (SarFileSplitMenuEO fileSplitMenuEO : sarFileSplitMenuEOList) {
// 更新排序
fileSplitMenuEO.setDisplaySeq(fileSplitMenuEO.getDisplaySeq() + childCount);
fileSplitMenuEO.setDisplaySeq(fileSplitMenuEO.getDisplaySeq() + moveNodeCount);
baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO);
}
// 更新要移动节点的排序
// 更新要移动节点及其子集的排序
for (int i = 0; i <allList.size(); i++) {
SarFileSplitMenuEO sarFileSplitMenuEO2 = allList.get(i);
sarFileSplitMenuEO2.setDisplaySeq(lastMenu.getDisplaySeq() + i + 1);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO2);
SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i);
sarFileSplitMenuEO.setDisplaySeq(lastMenu.getDisplaySeq() + i + 1);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
// 更新要移动节点的pId
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
sarFileSplitMenuEO.setId(id);
sarFileSplitMenuEO.setPId(parentId);
sarFileSplitMenuEO.setId(sourceId);
sarFileSplitMenuEO.setPId(sarFileSplitMenuEO2.getPId());
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}