public Page<DcimAccessoryRoomDO> findByCondition(DcimAccessoryRoomDO accessoryRoom, Pageable pageable,List<SpcRoomDO> spcRoomDOs) {
return dcimAccessoryRoomDao.findAll(new Specification<DcimAccessoryRoomDO>() {
@Override
public Predicate toPredicate(Root<DcimAccessoryRoomDO> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
Path<String> accessoryRoomName = root.get("accessoryRoomName");
Path<String> stationId = root.get("stationId");
Path<String> positName = root.get("positName");
Path<String> accessoryRoomType = root.get("accessoryRoomType");
Path<String> oprStateId=root.get("oprStateId");
Path<String> custId=root.get("custId");
Path<String> propertyBelong=root.get("propertyBelong");
Path<String> roomId=root.get("roomId");
Path<String> contractId=root.get("contractId");
Path<String> rackUserFor=root.get("rackUserFor");
Path<String> compartmentId=root.get("compartmentId");
Path<String> cfStatus=root.get("cfStatus");
Path<String> deleteState=root.get("deleteState");
List<Predicate> list = new ArrayList<Predicate>();
//模糊搜素
if(StringUtils.isNotBlank(accessoryRoom.getAccessoryRoomName())){
list.add(cb.like(accessoryRoomName,'%'+accessoryRoom.getAccessoryRoomName()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getStationId())){
list.add(cb.like(stationId,'%'+accessoryRoom.getStationId()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getPositName())){
list.add(cb.like(positName,'%'+accessoryRoom.getPositName()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getAccessoryRoomType())){
list.add(cb.like(accessoryRoomType,'%'+accessoryRoom.getAccessoryRoomType()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getOprStateId())){
list.add(cb.like(oprStateId,'%'+accessoryRoom.getOprStateId()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getCustId())){
list.add(cb.like(custId,'%'+accessoryRoom.getCustId()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getPropertyBelong())){
list.add(cb.like(propertyBelong,'%'+accessoryRoom.getPropertyBelong()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getRoomId())){
list.add(cb.like(roomId,'%'+accessoryRoom.getRoomId()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getContractId())){
list.add(cb.like(contractId,'%'+accessoryRoom.getContractId()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getRackUserFor())){
list.add(cb.like(rackUserFor,'%'+accessoryRoom.getRackUserFor()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getCompartmentId())){
list.add(cb.like(compartmentId,'%'+accessoryRoom.getCompartmentId()+'%'));
}
if(StringUtils.isNotBlank(accessoryRoom.getCfStatus())){
list.add(cb.like(cfStatus,'%'+accessoryRoom.getCfStatus()+'%'));
}
list.add(cb.notLike(deleteState,"1"));
In<String> in = cb.in(root.get("roomId"));
if(!spcRoomDOs.isEmpty()) {
for (SpcRoomDO spcroom : spcRoomDOs) {
in.value(spcroom.getRoomId());
}
list.add(in);
}
Predicate[] arr = new Predicate[list.size()];
//cq.where(list.toArray(arr));
return cb.and(list.toArray(arr));
}
}, pageable);
}