diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java index c32719cb8..ff3a85cce 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java @@ -3,8 +3,8 @@ package com.jero.modules.collection.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.collection.entity.OnlCgformCollection; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; -import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Map; @@ -22,4 +22,6 @@ public interface OnlCgformCollectionMapper extends BaseMapper queryListByDocumentId(@Param("document_id") String document_id); IPage queryPageList(IPage page,@Param("params") Map params); + + List> infoList(@Param("params") Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml index 1201ec8f4..71e60206a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml @@ -70,4 +70,48 @@ order by occ.create_time desc + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java index 43d36e1dd..16fb190dd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java @@ -13,12 +13,14 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi import com.jero.modules.collection.entity.OnlCgformCollection; import com.jero.modules.collection.mapper.OnlCgformCollectionMapper; import com.jero.modules.collection.service.IOnlCgformCollectionService; +import com.jero.modules.document.enums.LawsStateEnum; import com.jero.modules.ocr.util.LineHumpUtil; import com.jero.modules.subscribe.entity.OnlCgformSubscribe; import com.jero.modules.subscribe.mapper.OnlCgformSubscribeMapper; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -26,7 +28,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -227,10 +234,77 @@ public class OnlCgformCollectionServiceImpl extends ServiceImpl> records = result.getRecords(); dataDispose(records,params); return result; } + private IPage stateSort(Map parameter, int pageNo, int pageSize, IPage infoPage) { +// parameter.put("orderByField","state"); +// parameter.put("orderBy","1"); + List> list = new LinkedList<>(); + //状态排序,需要特殊处理 现行,即将实施,草稿,被替代,废止 + if(ObjectUtils.isNotEmpty(parameter.get("orderByField")) && "state".equals((String) parameter.get("orderByField"))){ + List> infoList = onlCgformCollectionMapper.infoList(parameter); + + List> active = infoList.stream() + .filter(e -> LawsStateEnum.ACTIVE.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> theUpcoming = infoList.stream() + .filter(e -> LawsStateEnum.THE_UPCOMING.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> draft = infoList.stream() + .filter(e -> LawsStateEnum.DRAFT.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> beReplaced = infoList.stream() + .filter(e -> LawsStateEnum.BE_REPLACED.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> abolish = infoList.stream() + .filter(e -> LawsStateEnum.ABOLISH.getValue().equals(e.get("state"))).collect(Collectors.toList()); + if ("1".equals((String) parameter.get("orderBy"))) { + //正序 + list.addAll(active); + list.addAll(theUpcoming); + list.addAll(draft); + list.addAll(beReplaced); + list.addAll(abolish); + + } else if ("2".equals((String) parameter.get("orderBy"))) { + //倒序 + list.addAll(abolish); + list.addAll(beReplaced); + list.addAll(draft); + list.addAll(theUpcoming); + list.addAll(active); + } + if(ObjectUtils.isNotEmpty(list)){ + infoPage = getPages(pageNo, pageSize, list); + } + } + return infoPage; + } + public IPage getPages(Integer currentPage, Integer pageSize, List> list){ + IPage page =new Page(); + if(list==null){ + return null; + } + int size = list.size(); + if(pageSize > size){ + pageSize = size; + } + if(pageSize!=0){ + //求出最⼤页数,防⽌currentPage越界 + int maxPage = size % pageSize ==0? size / pageSize : size / pageSize +1; + if(currentPage > maxPage){ + currentPage = maxPage; + } + } + //当前页第⼀条数据的下标 + int curIdx = currentPage >1?(currentPage -1)* pageSize :0; + List pageList =new ArrayList(); + //将当前页的数据放进pageList + for(int i =0; i < pageSize && curIdx + i < size; i++){ + pageList.add(list.get(curIdx + i)); + } + page.setCurrent(currentPage).setSize(pageSize).setTotal(list.size()).setRecords(pageList); + return page; + } public void dataDispose(List> datas, Map params){ if(CollectionUtils.isNotEmpty(datas)){