我的收藏-表头排序
This commit is contained in:
+3
-1
@@ -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<OnlCgformCollectio
|
||||
List<OnlCgformCollection> queryListByDocumentId(@Param("document_id") String document_id);
|
||||
|
||||
IPage queryPageList(IPage page,@Param("params") Map<String, Object> params);
|
||||
|
||||
List<Map<String,Object>> infoList(@Param("params") Map<String, Object> params);
|
||||
}
|
||||
|
||||
+44
@@ -70,4 +70,48 @@
|
||||
order by occ.create_time desc
|
||||
</if>
|
||||
</select>
|
||||
<select id="infoList" parameterType="java.util.Map" resultType="hashmap">
|
||||
select
|
||||
occ.id,
|
||||
occ.create_time as createTime,
|
||||
occ.create_by as createBy,
|
||||
bdl.serial_number as serialNumber,
|
||||
bdl.title,
|
||||
bdl.state,
|
||||
occ.document_id as documentId
|
||||
from
|
||||
onl_cgform_collection occ
|
||||
right join buss_document_library bdl on occ.document_id = bdl.id
|
||||
where occ.create_by = #{params.createBy}
|
||||
<if test="params.serialNumber != null and params.serialNumber != ''">
|
||||
<!--搜索条件:编号;包含%,单独搜索-->
|
||||
<choose>
|
||||
<when test='params.serialNumber != null and params.serialNumber != "" and params.serialNumber.contains("%")'>
|
||||
and bdl.serial_number like '%1%%' escape '1'
|
||||
</when>
|
||||
<otherwise>
|
||||
and bdl.serial_number like concat(concat('%',#{params.serialNumber}),'%')
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
|
||||
<if test="params.title != null and params.title != ''">
|
||||
<!--搜索条件:标题;包含%,单独搜索-->
|
||||
<choose>
|
||||
<when test='params.title != null and params.title != "" and params.title.contains("%")'>
|
||||
and bdl.title like '%1%%' escape '1'
|
||||
</when>
|
||||
<otherwise>
|
||||
and bdl.title like concat(concat('%',#{params.title}),'%')
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
|
||||
<if test="params.state != null and params.state != '' ">
|
||||
and bdl.state in
|
||||
<foreach collection="params.state.split(',')" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+75
-1
@@ -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<OnlCgformCollect
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
params.put("createBy",sysUser.getUsername());
|
||||
IPage result = onlCgformCollectionMapper.queryPageList(page,params);
|
||||
result = stateSort(params,pageNo,pageSize,result);
|
||||
List<Map<String,Object>> records = result.getRecords();
|
||||
dataDispose(records,params);
|
||||
return result;
|
||||
}
|
||||
private IPage stateSort(Map<String, Object> parameter, int pageNo, int pageSize, IPage infoPage) {
|
||||
// parameter.put("orderByField","state");
|
||||
// parameter.put("orderBy","1");
|
||||
List<Map<String,Object>> list = new LinkedList<>();
|
||||
//状态排序,需要特殊处理 现行,即将实施,草稿,被替代,废止
|
||||
if(ObjectUtils.isNotEmpty(parameter.get("orderByField")) && "state".equals((String) parameter.get("orderByField"))){
|
||||
List<Map<String, Object>> infoList = onlCgformCollectionMapper.infoList(parameter);
|
||||
|
||||
List<Map<String, Object>> active = infoList.stream()
|
||||
.filter(e -> LawsStateEnum.ACTIVE.getValue().equals(e.get("state"))).collect(Collectors.toList());
|
||||
List<Map<String, Object>> theUpcoming = infoList.stream()
|
||||
.filter(e -> LawsStateEnum.THE_UPCOMING.getValue().equals(e.get("state"))).collect(Collectors.toList());
|
||||
List<Map<String, Object>> draft = infoList.stream()
|
||||
.filter(e -> LawsStateEnum.DRAFT.getValue().equals(e.get("state"))).collect(Collectors.toList());
|
||||
List<Map<String, Object>> beReplaced = infoList.stream()
|
||||
.filter(e -> LawsStateEnum.BE_REPLACED.getValue().equals(e.get("state"))).collect(Collectors.toList());
|
||||
List<Map<String, Object>> 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<Map<String,Object>> 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<Map<String,Object>> datas, Map<String,Object> params){
|
||||
if(CollectionUtils.isNotEmpty(datas)){
|
||||
|
||||
Reference in New Issue
Block a user