参数正常传入,但是筛选不生效,需要在实体类里面添加这样的代码
@JsonIgnore
@Transient
@JSONField(serialize = false)
public HashMap<String, Integer> getIntegerEqualMap() {
HashMap<String, Integer> integerEqualMap = new HashMap<>(5);
integerEqualMap.put("id", id);
integerEqualMap.put("principalId", principalId);
integerEqualMap.put("empId",empId);
return integerEqualMap;
}
**对于时间筛选,**需要添加如下代码
public Page<LngFreightConfigEntity> findAllFreightConfig(LngFreightConfigEntity lngFreightConfigEntity) {
LoggerUtil.infoData("/findAllFreightConfig", lngFreightConfigEntity);
lngFreightConfigEntity.setPages(Pages.getPages(lngFreightConfigEntity.getPages()));
var env = lngDataBaseService.lngFreightConfigDao.findAll((Specification<LngFreightConfigEntity>) (root, query, cb) -> {
// TODO Auto-generated method stub
var predicates = new ArrayList<Predicate>();
predicates.addAll(Result.gitPredicate(root, cb, lngFreightConfigEntity.getStringLikeMap(), lngFreightConfigEntity.getStringEqualMap(), lngFreightConfigEntity.getIntegerEqualMap()));
var createTime = Pages.getCreateTime(root, cb, lngFreightConfigEntity.getPages().getDateName(),
lngFreightConfigEntity.getPages().getStartDate(), lngFreightConfigEntity.getPages().getEndDate());
if (createTime.size() > 0) {
predicates.addAll(createTime);
}
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
}, lngFreightConfigEntity.getPages().getPageable(lngFreightConfigEntity.getPages().getSortDateName()));
env.filter(Objects::nonNull).forEach(e -> {
e.setTrafficName(getTrafficUnitName(lngDataBaseService, e.getTrafficId()));
e.setEmpName(getEmpName(lngDataBaseService, e.getEmpId()));
});
for (var a : env) {
if (a.getEmpId() != null) {
a.setEmpName(lngDataBaseService.employeesDao.findById(a.getEmpId()).get().getName());
}
}
return env;
}
pages代码
package com.entity.util;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Pages implements Serializable {
private static final long serialVersionUID = 1L;
private Integer currentpage = 1;//页数
private Integer pagesize = 25;//每页多少条
private Integer totalpage;//总页数
private Integer introwcount = 1;//总条数
private Integer pageindex;//从多少条开始查
private String startDate;
private String endDate;
private String historyStartDate;
private String historyEndDate;
private String dateName ="createDate";
private String data = "0";//hour
private String orderBy = "id";
private String sortDateName = "createDate";
private Integer sort = 0;
private String today;
private Integer ids;
public Integer getIds() {
return ids;
}
public void setIds(Integer ids) {
this.ids = ids;
}
public String getHistoryStartDate() {
return historyStartDate;
}
public void setHistoryStartDate(String historyStartDate) {
this.historyStartDate = historyStartDate;
}
public String getHistoryEndDate() {
return historyEndDate;
}
public void setHistoryEndDate(String historyEndDate) {
this.historyEndDate = historyEndDate;
}
public String getToday() {
return today;
}
public void setToday(String today) {
this.today = today;
}
public String getSortDateName() {
return sortDateName;
}
public void setSortDateName(String sortDateName) {
this.sortDateName = sortDateName;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public String getDateName() {
return dateName;
}
public void setDateName(String dateName) {
this.dateName = dateName;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public Integer getCurrentpage() {
return currentpage;
}
public void setCurrentpage(Integer currentpage) {
this.currentpage = currentpage;
}
public Integer getPagesize() {
return pagesize;
}
public void setPagesize(Integer pagesize) {
this.pagesize = pagesize;
}
public Integer getTotalpage() {
totalpage = introwcount / pagesize;
if (totalpage == 0) {
totalpage = totalpage + 1;
}
if (introwcount % pagesize > 0 && introwcount > pagesize) {
totalpage = totalpage + 1;
}
return totalpage;
}
public void setTotalpage(Integer totalpage) {
this.totalpage = totalpage;
}
public Integer getIntrowcount() {
return introwcount;
}
public void setIntrowcount(Integer introwcount) {
this.introwcount = introwcount;
}
public Integer getPageindex() {
if (currentpage == 1) {
return 0;
}
return (pagesize * (currentpage - 1));
}
public void setPageindex(Integer pageindex) {
this.pageindex = pageindex;
}
public Pageable getPageable(String id) {
Sort sort = Sort.by(Sort.Direction.DESC, id);
Pageable pageable = PageRequest.of(currentpage - 1, pagesize, sort);
return pageable;
}
public Pageable getPageable(String id,Integer sort) {
Sort sorts = null;
if(sort == 0){
sorts = Sort.by(Sort.Direction.DESC, id);
}else {
sorts = Sort.by(Sort.Direction.ASC, id);
}
Pageable pageable = PageRequest.of(currentpage - 1, pagesize, sorts);
return pageable;
}
public Pageable getPageable(String[] id) {
Sort sort = Sort.by(Sort.Direction.DESC, id);
Pageable pageable = PageRequest.of(currentpage - 1, pagesize, sort);
return pageable;
}
public static List<Predicate> getCreateTime(Root<?> root, CriteriaBuilder cb, String Name, String Start_date, String End_date) {
List<Predicate> predicates = new ArrayList<>();
if (null != Start_date) {
Predicate predicate = cb.greaterThanOrEqualTo(root.get(Name).as(String.class), Start_date);
predicates.add(predicate);
}
if (null != End_date) {
Predicate predicate = cb.lessThanOrEqualTo(root.get(Name).as(String.class), End_date);
predicates.add(predicate);
}
return predicates;
}
public static Pages getPages(Pages pages){
if(pages == null) {
return new Pages();
}
return pages;
}
public static void startPage(Pages pages) {
PageHelper.startPage(pages.getCurrentpage(), pages. getPagesize());
}
public static PageInfo<?> pageInfo(ArrayList<?> list, Pages pages) {
return new PageInfo<>(list, pages.getPagesize());
}
}