diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java
index b8790ae..412522f 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java
@@ -8,6 +8,7 @@
 import com.supwisdom.dlpay.api.domain.TSourceTypeCheckStatus;
 import com.supwisdom.dlpay.api.domain.TTransactionChkdtl;
 import com.supwisdom.dlpay.api.domain.TTransactionChkfile;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
 import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.DateUtil;
 import com.supwisdom.dlpay.framework.util.PageResult;
@@ -44,6 +45,8 @@
 
   @PersistenceContext
   private EntityManager entityManager;
+  @Autowired
+  private SystemUtilService systemUtilService;
 
 
   @Override
@@ -65,6 +68,22 @@
     query.setFirstResult((pageNo - 1) * pageSize);
     query.setMaxResults(pageSize); //分页显示
     List<TSourceTypeCheckStatus> list = query.getResultList();
+    if (null != list && list.size() > 0) {
+      //处理【对账到】和【已对账】问题，避免修改对账逻辑和结算逻辑，这里直接处理显示问题
+      final String today = systemUtilService.getSysdatetime().getHostdate();
+      for (TSourceTypeCheckStatus stat : list) {
+        if (today.equals(stat.getCheckAccdate())) {
+          //对账到了当前日期，说明昨天已对账完成。切换下展示内容
+          stat.setCheckAccdate(DateUtil.getNewDay(stat.getCheckAccdate(), -1));
+          stat.setCheckFileOk(true);
+          stat.setCheckStatus(true);
+          stat.setRepairStatus(true);
+          stat.setSettleStatus(true);
+          stat.setRemark("对账完成"); //显示昨天已对账完成
+        }
+      }
+    }
+
     Long count = (Long) countQuery.getSingleResult();
     return new PageResult<>(count.longValue(), list);
   }
