文档拆分条款-复制去除目录关联

This commit is contained in:
liyawei
2022-04-02 09:21:23 +08:00
parent fd65344eaa
commit 817a991a32
3 changed files with 111 additions and 56 deletions
@@ -155,6 +155,16 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
return Result.OK(result);
}
@AutoLog(value = "文档拆分条款信息-复制")
@ApiOperation(value = "文档拆分条款信息-复制")
@GetMapping("/batchCopyItems")
public Result<?> batchCopyItems(@RequestParam(value = "ids",required = false) String ids,
@RequestParam(value = "menuids",required = false) String menuIds,
@RequestParam(value = "infoIds",required = false) String infoIds) {
int result = fileSplitItemsEOService.batchCopyItems(ids,menuIds,infoIds);
return Result.OK("复制成功", result);
}
@AutoLog(value = "文档拆分条款信息-批量合并")
@ApiOperation(value = "文档拆分条款信息-批量合并")
@GetMapping("/batchMergeItems")
@@ -39,6 +39,8 @@ public interface IFileSplitItemsEOService extends IService<SarFileSplitItemsEO>
Map<String,Object> judgeContainChilds(String ids);
int batchCopyItems(String ids,String menuIds,String infoId);
Map<String,Object> selectByPrimaryKey(String id);
Map<String,Object> batchMergeItems(String ids);
@@ -457,62 +457,65 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
public int batchDeleteItems(String ids) {
String[] itemIds = ids.split(",");
List<String> idList = Arrays.asList(itemIds);
// 查到对应menu
List<Map<String, Object>> getMenuList = dao.queryByItemsIds(idList);
List<Map<String, Object>> getAllItemList = new ArrayList<>();
List<SarFileSplitMenuEO> getAllMenuList = new ArrayList<>();
List<String> menuIdList = new ArrayList<>();
List<String> allItemIdList = new ArrayList<>();
int result = 0;
if (getMenuList != null && !getMenuList.isEmpty()) {
for(Map<String, Object> splitItemsMap : getMenuList){
String menuId = splitItemsMap.get("menu_id").toString();
menuIdList.add(menuId);
SarFileSplitMenuEO menuEO = new SarFileSplitMenuEO();
menuEO.setId(menuId);
//查询当前目录的所有子目录,不包括当前目录
List<SarFileSplitMenuEO> menuList = sarFileSplitMenuEOMapper.queryByPidExcpetSelf(menuEO);
getAllMenuList.addAll(menuList);
//查询目录的所有条款,包括当前目录
List<Map<String, Object>> rows = dao.queryItemsByMenuId(menuId);
getAllItemList.addAll(rows);
}
if (getAllItemList != null && !getAllItemList.isEmpty()) {
//目录下没有子节点时,
if ((getAllMenuList == null || getAllMenuList.isEmpty()) && getAllItemList.size() > 1) {
// 删除val表数据
sarFileSplitItemsValEOMapper.deleteValByitemIds(idList);
result = dao.deleteByItemsIdList(idList);
return result;
}
for (Map<String, Object> itemsMap : getAllItemList) {
String itemId = itemsMap.get("id").toString();
if (allItemIdList != null && !allItemIdList.contains(itemId)) {
allItemIdList.add(itemId);
} else if (allItemIdList == null || allItemIdList.size() < 1) {
allItemIdList.add(itemId);
}
}
if (getAllMenuList != null && !getAllMenuList.isEmpty()) {
for(SarFileSplitMenuEO sarFileSplitMenuEO : getAllMenuList){
if(!menuIdList.contains(sarFileSplitMenuEO.getId())){
menuIdList.add(sarFileSplitMenuEO.getId());
}
}
}
// 删除menu表数据
sarFileSplitMenuEOMapper.deleteByIdList(menuIdList);
// 删除val表数据
sarFileSplitItemsValEOMapper.deleteValByitemIds(allItemIdList);
result = dao.deleteByItemsIdList(allItemIdList);
}else {
//要删除的条款menuId均不存在,判定为垃圾数据
// 删除val表数据
sarFileSplitItemsValEOMapper.deleteValByitemIds(idList);
result = dao.deleteByItemsIdList(idList);
}
}
// 删除val表数据
sarFileSplitItemsValEOMapper.deleteValByitemIds(idList);
int result = dao.deleteByItemsIdList(idList);
// // 查到对应menu
// List<Map<String, Object>> getMenuList = dao.queryByItemsIds(idList);
// List<Map<String, Object>> getAllItemList = new ArrayList<>();
// List<SarFileSplitMenuEO> getAllMenuList = new ArrayList<>();
// List<String> menuIdList = new ArrayList<>();
// List<String> allItemIdList = new ArrayList<>();
// int result = 0;
// if (getMenuList != null && !getMenuList.isEmpty()) {
// for(Map<String, Object> splitItemsMap : getMenuList){
// String menuId = splitItemsMap.get("menu_id").toString();
// menuIdList.add(menuId);
// SarFileSplitMenuEO menuEO = new SarFileSplitMenuEO();
// menuEO.setId(menuId);
// //查询当前目录的所有子目录,不包括当前目录
// List<SarFileSplitMenuEO> menuList = sarFileSplitMenuEOMapper.queryByPidExcpetSelf(menuEO);
// getAllMenuList.addAll(menuList);
// //查询子目录下的所有条款,包括当前目录
// List<Map<String, Object>> rows = dao.queryItemsByMenuId(menuId);
// getAllItemList.addAll(rows);
// }
// if (getAllItemList != null && !getAllItemList.isEmpty()) {
// //目录下没有子节点时,
// if ((getAllMenuList == null || getAllMenuList.isEmpty()) && getAllItemList.size() > 1) {
// // 删除val表数据
// sarFileSplitItemsValEOMapper.deleteValByitemIds(idList);
// result = dao.deleteByItemsIdList(idList);
// return result;
// }
// for (Map<String, Object> itemsMap : getAllItemList) {
// String itemId = itemsMap.get("id").toString();
// if (allItemIdList != null && !allItemIdList.contains(itemId)) {
// allItemIdList.add(itemId);
// } else if (allItemIdList == null || allItemIdList.size() < 1) {
// allItemIdList.add(itemId);
// }
// }
// if (getAllMenuList != null && !getAllMenuList.isEmpty()) {
// for(SarFileSplitMenuEO sarFileSplitMenuEO : getAllMenuList){
// if(!menuIdList.contains(sarFileSplitMenuEO.getId())){
// menuIdList.add(sarFileSplitMenuEO.getId());
// }
// }
// }
// // 删除menu表数据
// sarFileSplitMenuEOMapper.deleteByIdList(menuIdList);
// // 删除val表数据
// sarFileSplitItemsValEOMapper.deleteValByitemIds(allItemIdList);
// result = dao.deleteByItemsIdList(allItemIdList);
// }else {
// //要删除的条款menuId均不存在,判定为垃圾数据
//
// // 删除val表数据
// sarFileSplitItemsValEOMapper.deleteValByitemIds(idList);
// result = dao.deleteByItemsIdList(idList);
// }
// }
return result;
}
@@ -607,6 +610,46 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
return result;
}
@Override
public int batchCopyItems(String ids, String menuIds, String infoIds) {
List<String> oldItemIdList = Arrays.asList(ids.split(","));
List<String> menuIdList = Arrays.asList(menuIds.split(","));
List<String> infoIdList = Arrays.asList(infoIds.split(","));
int result = 0;
for(int i = 0; i< oldItemIdList.size(); i++) {
// 添加条款
Map<String, Object> itemsMap = selectByPrimaryKey(oldItemIdList.get(i));
String newItemId = UUID.randomUUID().toString().replace("-", "");
itemsMap.remove("id");
itemsMap.remove("creation_user");
itemsMap.remove("creation_time");
itemsMap.remove("modify_user");
itemsMap.remove("modify_time");
itemsMap.remove("sys_org_code");
filterMap(itemsMap);
result += insertInfo(itemsMap, newItemId);
// 添加条目
List<String> queryItemIdList = new ArrayList<>();
queryItemIdList.add(oldItemIdList.get(i));
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOList = sarFileSplitItemsValEOMapper.queryItemsValByMenuId(queryItemIdList);
for (SarFileSplitItemsValEO sarFileSplitItemsValEO : sarFileSplitItemsValEOList) {
String newItemValId = UUID.randomUUID().toString().replace("-", "");
sarFileSplitItemsValEO.setId(newItemValId);
sarFileSplitItemsValEO.setItemId(newItemId);
sarFileSplitItemsValEO.setCreationTime(new Date());
sarFileSplitItemsValEO.setModifyTime(new Date());
sarFileSplitItemsValEO.setCreationUser(UserUtils.getUserId());
sarFileSplitItemsValEO.setModifyUser(UserUtils.getUserId());
}
if (sarFileSplitItemsValEOList.size() > 0) {
sarFileSplitItemsValEOMapper.insertForeach(sarFileSplitItemsValEOList);
}
}
return result;
}
@Override
public Map<String, Object> selectByPrimaryKey(String id) {
return dao.selectByPrimaryKey(id);