diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java index a4b4b93c..7aed79df 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java @@ -1533,8 +1533,13 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { data.put("release_date", new SimpleDateFormat(YYYY_MM_DD).format(releaseDate)); } if (!Objects.isNull(data.get("implementation_date"))){ - Date implementationDate = (Date) data.get("implementation_date"); - data.put("implementation_date", new SimpleDateFormat(YYYY_MM_DD).format(implementationDate)); + try{ + Date implementationDate = (Date) data.get("implementation_date"); + data.put("implementation_date", new SimpleDateFormat(YYYY_MM_DD).format(implementationDate)); + }catch (Exception e){ + String implementationDate = data.get("implementation_date").toString(); + data.put("implementation_date", implementationDate); + } } } return Result.OK(advancedSearchAll); diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java index 9b509d04..e302fecf 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java @@ -74,7 +74,7 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper SarFileSplitMenuEO findById(String id); - List findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq); + List findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq, @Param("sourceIdList") List sourceIdList); List queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq); diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml b/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml index 85827283..c9ffbff0 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml @@ -378,7 +378,9 @@ and display_seq > #{displaySeq} - + + #{item} + order by display_seq diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 7606c490..6546c929 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -2269,6 +2269,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sourceIdList = Arrays.asList(sourceIds.split(",")); - - List lastMenuList; - //是否是放到最后 - boolean equals = Objects.equals(menuDisplaySeq, displaySeq); - if (equals){ - // 获取要移动到的层级的最后一个 的排序值 - lastMenuList = getLastMenu(parentMenu.getId(),null); - int size = lastMenuList.size(); - for (int i = 0; i < size; i++) { - SarFileSplitMenuEO sarFileSplitMenuEO = lastMenuList.get(i); - sarFileSplitMenuEO.setDisplaySeq(menuDisplaySeq+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - if(displaySeq == 0){ - displaySeq = menuDisplaySeq; - } - for (int i = 0; i < sourceIdList.size(); i++) { - String sourceId = sourceIdList.get(i); - // 要移动的节点信息 - 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); - } + // 获取要移动到的层级的最后一个 的排序值 + List lastMenuList = getLastMenu(parentMenu.getId(),displaySeq,sourceIdList); + if (CollectionUtil.isNotEmpty(lastMenuList)){ + displaySeq = lastMenuList.stream().map(SarFileSplitMenuEO::getDisplaySeq).min(Comparator.comparing(x -> x)).orElse(null); } + // 要移动的节点所有子集(包括本身) + List sarFileSplitMenuEO1List = new ArrayList<>(); + for (String sourceId : sourceIdList) { + // 要移动的节点信息 + SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); + sarFileSplitMenuEO.setParentId(parentId); + sarFileSplitMenuEO1List.add(sarFileSplitMenuEO); + } + List allList = new ArrayList<>(); + getChildren(allList, sarFileSplitMenuEO1List); + //for (SarFileSplitMenuEO splitMenuEO : allList) { + // splitMenuEO.setParentId(parentId); + //} + //排除 + getChildren(allList, lastMenuList); + for (int i = 0; i < allList.size(); i++) { + SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i); + sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1); + baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); + } //this.updateBatchById(updateList); // 要移动的节点所有子集(包括本身) @@ -464,16 +445,21 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl allList, List sarFileSplitMenuEOList) { for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOList) { + String id = sarFileSplitMenuEO.getId(); + List idList = CollStreamUtil.toList(allList, SarFileSplitMenuEO::getId); + if (idList.contains(id)){ + continue; + } allList.add(sarFileSplitMenuEO); - List childrenList = baseMapper.findByParentId(sarFileSplitMenuEO.getId()); + List childrenList = baseMapper.findByParentId(id); if (CollectionUtils.isNotEmpty(childrenList)){ getChildren(allList, childrenList); } } } - public List getLastMenu(String parentId, Long displaySeq) { - List lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq); + public List getLastMenu(String parentId, Long displaySeq, List sourceIdList) { + List lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq,sourceIdList); //if(sarFileSplitMenuEO1 != null){ // getLastMenu(sarFileSplitMenuEO1.getId()); //}