update 拆分结果编辑 目录往一级拖动内容时,后拖入的,放在后面

This commit is contained in:
lijiarao
2024-09-13 17:12:24 +08:00
parent a8a6e88142
commit ee337530c4
2 changed files with 52 additions and 24 deletions
@@ -375,8 +375,11 @@
select * from SAR_FILE_SPLIT_MENU select * from SAR_FILE_SPLIT_MENU
where parent_id = #{parentId} where parent_id = #{parentId}
AND valid_flag = '0' AND valid_flag = '0'
and display_seq > #{displaySeq} <if test="displaySeq != null">
order by display_seq desc and display_seq > #{displaySeq}
</if>
order by display_seq
</select> </select>
<select id="queryByGTDisplaySeq" resultMap="BaseResultMap"> <select id="queryByGTDisplaySeq" resultMap="BaseResultMap">
@@ -377,30 +377,55 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
public void updateMenuLevel(String sourceIds, String parentId, Long displaySeq) { public void updateMenuLevel(String sourceIds, String parentId, Long displaySeq) {
// 要移动到的节点信息 // 要移动到的节点信息
SarFileSplitMenuEO parentMenu = baseMapper.findById(parentId); SarFileSplitMenuEO parentMenu = baseMapper.findById(parentId);
Long menuDisplaySeq = parentMenu.getDisplaySeq();
// 获取要移动到的层级的最后一个 的排序值
List<SarFileSplitMenuEO> lastMenuList = getLastMenu(parentMenu.getId(),displaySeq);
List<String> sourceIdList = Arrays.asList(sourceIds.split(",")); List<String> sourceIdList = Arrays.asList(sourceIds.split(","));
int size = sourceIdList.size();
for (SarFileSplitMenuEO sarFileSplitMenuEO : lastMenuList) { List<SarFileSplitMenuEO> lastMenuList;
Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq(); //是否是放到最后
sarFileSplitMenuEO.setDisplaySeq(displaySeq1+size); boolean equals = Objects.equals(menuDisplaySeq, displaySeq);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); if (equals){
} // 获取要移动到的层级的最后一个 的排序值
if(displaySeq == 0){ lastMenuList = getLastMenu(parentMenu.getId(),null);
displaySeq = parentMenu.getDisplaySeq(); int size = lastMenuList.size();
} for (int i = 0; i < size; i++) {
//this.updateBatchById(lastMenuList); SarFileSplitMenuEO sarFileSplitMenuEO = lastMenuList.get(i);
List<SarFileSplitMenuEO> updateList = new ArrayList<>(); sarFileSplitMenuEO.setDisplaySeq(menuDisplaySeq+i+1);
for (int i = 0; i < sourceIdList.size(); i++) { baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
String sourceId = sourceIdList.get(i); }
// 要移动的节点信息 if(displaySeq == 0){
SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); displaySeq = menuDisplaySeq;
sarFileSplitMenuEO.setParentId(parentId); }
sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1); for (int i = 0; i < sourceIdList.size(); i++) {
updateList.add(sarFileSplitMenuEO); String sourceId = sourceIdList.get(i);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); // 要移动的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId);
sarFileSplitMenuEO.setParentId(parentId);
sarFileSplitMenuEO.setDisplaySeq(displaySeq+size+i+1);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
}else {
// 获取要移动到的层级的最后一个 的排序值
lastMenuList = getLastMenu(parentMenu.getId(),displaySeq);
int size = sourceIdList.size();
for (SarFileSplitMenuEO sarFileSplitMenuEO : lastMenuList) {
Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq();
sarFileSplitMenuEO.setDisplaySeq(displaySeq1+size);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
if(displaySeq == 0){
displaySeq = parentMenu.getDisplaySeq();
}
for (int i = 0; i < sourceIdList.size(); i++) {
String sourceId = sourceIdList.get(i);
// 要移动的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId);
sarFileSplitMenuEO.setParentId(parentId);
sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
} }
//this.updateBatchById(updateList); //this.updateBatchById(updateList);
// 要移动的节点所有子集(包括本身) // 要移动的节点所有子集(包括本身)
//List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>(); //List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();