diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java
index 2753084..c65cd8c 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java
@@ -791,10 +791,18 @@
       public Predicate toPredicate(Root<TPointsdtl> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
         List<Predicate> predicates = new ArrayList<>();
         if (!StringUtil.isEmpty(param.getStartDate())) {
-          predicates.add(criteriaBuilder.ge(root.get("transdate").as(Long.class), Long.valueOf(DateUtil.formatDateStr(param.getStartDate(), "yyyy年MM月dd日", "yyyyMMdd"))));
+          if (param.getStartDate().length() == 8) {
+            predicates.add(criteriaBuilder.ge(root.get("transdate").as(Long.class), Long.valueOf(param.getStartDate())));
+          } else {
+            predicates.add(criteriaBuilder.ge(root.get("transdate").as(Long.class), Long.valueOf(DateUtil.formatDateStr(param.getStartDate(), "yyyy年MM月dd日", "yyyyMMdd"))));
+          }
         }
         if (!StringUtil.isEmpty(param.getEndDate())) {
-          predicates.add(criteriaBuilder.le(root.get("transdate").as(Long.class), Long.valueOf(DateUtil.formatDateStr(param.getEndDate(), "yyyy年MM月dd日", "yyyyMMdd"))));
+          if (param.getStartDate().length() == 8) {
+            predicates.add(criteriaBuilder.le(root.get("transdate").as(Long.class), Long.valueOf(param.getEndDate())));
+          } else {
+            predicates.add(criteriaBuilder.le(root.get("transdate").as(Long.class), Long.valueOf(DateUtil.formatDateStr(param.getEndDate(), "yyyy年MM月dd日", "yyyyMMdd"))));
+          }
         }
         if (param.getRefno() != null) {
           predicates.add(criteriaBuilder.equal(root.get("refno").as(Integer.class), param.getRefno()));
