update 文档拆分目录可以批量移动序号
This commit is contained in:
+3
-2
@@ -72,8 +72,9 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
|
|||||||
@GetMapping("/updateMenuLevel")
|
@GetMapping("/updateMenuLevel")
|
||||||
// @RequiresPermissions("split:sarFileSplitMenu:updateMenuLevel")
|
// @RequiresPermissions("split:sarFileSplitMenu:updateMenuLevel")
|
||||||
public Result<SarFileSplitMenuEO> updateMenuLevel(@ApiParam(value = "要移动的节点id")String sourceId,
|
public Result<SarFileSplitMenuEO> updateMenuLevel(@ApiParam(value = "要移动的节点id")String sourceId,
|
||||||
@ApiParam(value = "要移动到的节点id")String targetId) {
|
@ApiParam(value = "要移动到的节点id")String targetId,
|
||||||
sarFileSplitMenuEOService.updateMenuLevel(sourceId, targetId);
|
@ApiParam(value = "序号")Long displaySeq) {
|
||||||
|
sarFileSplitMenuEOService.updateMenuLevel(sourceId, targetId, displaySeq);
|
||||||
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.split.entity;
|
package com.jero.modules.split.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -16,6 +17,7 @@ import java.util.List;
|
|||||||
* <b>版权所有:<b>版权归北京卡达克数据技术中心所有。<br>
|
* <b>版权所有:<b>版权归北京卡达克数据技术中心所有。<br>
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@TableName("SAR_FILE_SPLIT_MENU")
|
||||||
public class SarFileSplitMenuEO implements Serializable {
|
public class SarFileSplitMenuEO implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -74,7 +74,7 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper<SarFileSplitMenuEO>
|
|||||||
|
|
||||||
SarFileSplitMenuEO findById(String id);
|
SarFileSplitMenuEO findById(String id);
|
||||||
|
|
||||||
SarFileSplitMenuEO findLastByParentId(String parentId);
|
List<SarFileSplitMenuEO> findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq);
|
||||||
|
|
||||||
List<SarFileSplitMenuEO> queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq);
|
List<SarFileSplitMenuEO> queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq);
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -373,9 +373,10 @@
|
|||||||
|
|
||||||
<select id="findLastByParentId" resultMap="BaseResultMap">
|
<select id="findLastByParentId" resultMap="BaseResultMap">
|
||||||
select * from SAR_FILE_SPLIT_MENU
|
select * from SAR_FILE_SPLIT_MENU
|
||||||
where parent_id = #{parentId} AND valid_flag = '0'
|
where parent_id = #{parentId}
|
||||||
|
AND valid_flag = '0'
|
||||||
|
and display_seq > #{displaySeq}
|
||||||
order by display_seq desc
|
order by display_seq desc
|
||||||
limit 1
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryByGTDisplaySeq" resultMap="BaseResultMap">
|
<select id="queryByGTDisplaySeq" resultMap="BaseResultMap">
|
||||||
|
|||||||
+1
-1
@@ -58,5 +58,5 @@ public interface ISarFileSplitMenuEOService extends IService<SarFileSplitMenuEO>
|
|||||||
|
|
||||||
Result moveUpOrDown(JSONObject json);
|
Result moveUpOrDown(JSONObject json);
|
||||||
|
|
||||||
void updateMenuLevel(String sourceId, String targetId);
|
void updateMenuLevel(String sourceId, String targetId, Long displaySeq);
|
||||||
}
|
}
|
||||||
|
|||||||
+58
-45
@@ -374,50 +374,63 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateMenuLevel(String sourceId, String targetId) {
|
public void updateMenuLevel(String sourceIds, String parentId, Long displaySeq) {
|
||||||
// 要移动的节点信息
|
|
||||||
SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findById(sourceId);
|
|
||||||
// 要移动到的节点信息
|
// 要移动到的节点信息
|
||||||
SarFileSplitMenuEO sarFileSplitMenuEO2 = baseMapper.findById(targetId);
|
SarFileSplitMenuEO parentMenu = baseMapper.findById(parentId);
|
||||||
// 获取要移动到的层级的最后一个 的排序值
|
// 获取要移动到的层级的最后一个 的排序值
|
||||||
SarFileSplitMenuEO lastMenu = getLastMenu(sarFileSplitMenuEO2.getId());
|
List<SarFileSplitMenuEO> lastMenuList = getLastMenu(parentMenu.getId(),displaySeq);
|
||||||
if (Objects.isNull(lastMenu)){
|
List<String> sourceIdList = Arrays.asList(sourceIds.split(","));
|
||||||
lastMenu = sarFileSplitMenuEO2;
|
int size = sourceIdList.size();
|
||||||
}
|
for (SarFileSplitMenuEO sarFileSplitMenuEO : lastMenuList) {
|
||||||
|
Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq();
|
||||||
// 要移动的节点所有子集(包括本身)
|
sarFileSplitMenuEO.setDisplaySeq(displaySeq1+size);
|
||||||
List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();
|
|
||||||
sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1);
|
|
||||||
List<SarFileSplitMenuEO> allList = new ArrayList<>();
|
|
||||||
getChildren(allList, sarFileSplitMenuEO1List);
|
|
||||||
List<String> idlist = new ArrayList<>();
|
|
||||||
|
|
||||||
// 更新要移动节点及其子集的排序
|
|
||||||
for (int i = 0; i <allList.size(); i++) {
|
|
||||||
SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i);
|
|
||||||
if (!Objects.equals(sarFileSplitMenuEO.getId(), lastMenu.getId())){
|
|
||||||
sarFileSplitMenuEO.setDisplaySeq(lastMenu.getDisplaySeq() + i + 1);
|
|
||||||
}
|
|
||||||
idlist.add(sarFileSplitMenuEO.getId());
|
|
||||||
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
|
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
|
||||||
}
|
}
|
||||||
Long displaySeq = allList.get(allList.size() - 1).getDisplaySeq();
|
//this.updateBatchById(lastMenuList);
|
||||||
|
List<SarFileSplitMenuEO> updateList = new ArrayList<>();
|
||||||
// 更新 大于 要移动到节点最后节点 的节点排序值
|
for (int i = 0; i < sourceIdList.size(); i++) {
|
||||||
List<SarFileSplitMenuEO> sarFileSplitMenuEOList =
|
String sourceId = sourceIdList.get(i);
|
||||||
baseMapper.queryByGTDisplaySeq(sarFileSplitMenuEO1.getInfoId(), lastMenu.getDisplaySeq());
|
// 要移动的节点信息
|
||||||
sarFileSplitMenuEOList = sarFileSplitMenuEOList.stream()
|
SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId);
|
||||||
.filter(v -> !idlist.contains(v.getId())).collect(Collectors.toList());
|
sarFileSplitMenuEO.setParentId(parentId);
|
||||||
for (int i = 0; i < sarFileSplitMenuEOList.size(); i++) {
|
sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1);
|
||||||
// 更新排序
|
updateList.add(sarFileSplitMenuEO);
|
||||||
SarFileSplitMenuEO fileSplitMenuEO = sarFileSplitMenuEOList.get(i);
|
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
|
||||||
fileSplitMenuEO.setDisplaySeq(displaySeq + i + 1);
|
|
||||||
baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO);
|
|
||||||
}
|
}
|
||||||
|
//this.updateBatchById(updateList);
|
||||||
// 更新要移动节点的parentId
|
// 要移动的节点所有子集(包括本身)
|
||||||
sarFileSplitMenuEO1.setParentId(targetId);
|
//List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();
|
||||||
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO1);
|
//sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1);
|
||||||
|
//List<SarFileSplitMenuEO> allList = new ArrayList<>();
|
||||||
|
//getChildren(allList, sarFileSplitMenuEO1List);
|
||||||
|
//List<String> idlist = new ArrayList<>();
|
||||||
|
//
|
||||||
|
//// 更新要移动节点及其子集的排序
|
||||||
|
//for (int i = 0; i <allList.size(); i++) {
|
||||||
|
// SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i);
|
||||||
|
// if (!Objects.equals(sarFileSplitMenuEO.getId(), lastMenu.getId())){
|
||||||
|
// sarFileSplitMenuEO.setDisplaySeq(lastMenu.getDisplaySeq() + i + 1);
|
||||||
|
// }
|
||||||
|
// idlist.add(sarFileSplitMenuEO.getId());
|
||||||
|
// baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
|
||||||
|
//}
|
||||||
|
//Long displaySeq = allList.get(allList.size() - 1).getDisplaySeq();
|
||||||
|
//
|
||||||
|
//// 更新 大于 要移动到节点最后节点 的节点排序值
|
||||||
|
//List<SarFileSplitMenuEO> sarFileSplitMenuEOList =
|
||||||
|
// baseMapper.queryByGTDisplaySeq(sarFileSplitMenuEO1.getInfoId(), lastMenu.getDisplaySeq());
|
||||||
|
//sarFileSplitMenuEOList = sarFileSplitMenuEOList.stream()
|
||||||
|
// .filter(v -> !idlist.contains(v.getId())).collect(Collectors.toList());
|
||||||
|
//for (int i = 0; i < sarFileSplitMenuEOList.size(); i++) {
|
||||||
|
// // 更新排序
|
||||||
|
// SarFileSplitMenuEO fileSplitMenuEO = sarFileSplitMenuEOList.get(i);
|
||||||
|
// fileSplitMenuEO.setDisplaySeq(displaySeq + i + 1);
|
||||||
|
// baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO);
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//// 更新要移动节点的parentId
|
||||||
|
//sarFileSplitMenuEO1.setParentId(parentId);
|
||||||
|
//baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getChildren(List<SarFileSplitMenuEO> allList, List<SarFileSplitMenuEO> sarFileSplitMenuEOList) {
|
private void getChildren(List<SarFileSplitMenuEO> allList, List<SarFileSplitMenuEO> sarFileSplitMenuEOList) {
|
||||||
@@ -430,11 +443,11 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public SarFileSplitMenuEO getLastMenu(String parentId) {
|
public List<SarFileSplitMenuEO> getLastMenu(String parentId, Long displaySeq) {
|
||||||
SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findLastByParentId(parentId);
|
List<SarFileSplitMenuEO> lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq);
|
||||||
if(sarFileSplitMenuEO1 != null){
|
//if(sarFileSplitMenuEO1 != null){
|
||||||
getLastMenu(sarFileSplitMenuEO1.getId());
|
// getLastMenu(sarFileSplitMenuEO1.getId());
|
||||||
}
|
//}
|
||||||
return sarFileSplitMenuEO1;
|
return lastByParentId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user