var specification = (Specification<SimCardInfo>) (root, query, cb) -> {
            var predicates = new ArrayList<>();
            if (StringUtils.isNotEmpty(statusModifyTimeStart) && StringUtils.isNotEmpty(statusModifyTimeEnd)) {
                predicates.add(cb.between(cb.function("DATE_FORMAT", String.class, root.get("statusModifyTime"), cb.literal("%Y-%m-%d %H:%i:%s")), statusModifyTimeStart, statusModifyTimeEnd));
            }

	    //或者
            if (startTime != null) {
                Instant strt = startTime.atZone(ZoneId.systemDefault()).toInstant();
                predicateList.add(cb.greaterThanOrEqualTo(root.get("time").as(Instant.class), strt));
            }
            if (endTime != null) {
                Instant end = endTime.atZone(ZoneId.systemDefault()).toInstant();
                predicateList.add(cb.lessThan(root.get("time").as(Instant.class), end));
            }
            predicates.add(cb.equal(root.get("isDelete"), "0"));
            return cb.and(predicates.toArray(new Predicate[0]));
        };

        List<String> iccids = simCardInfoRepository.findAll(specification).stream().map(SimCardInfo::getIccid).collect(Collectors.toList());