diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 5196f36..9342bff 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -31,4 +31,6 @@
 
 cron.offlinedtl= 0 0/5 * * * ?
 payapi.logintime= 0 0/5 * * * ? 
-busapp.cardsync.cron=0 0/1 * * * ?
\ No newline at end of file
+busapp.cardsync.cron=0 0/1 * * * ?
+payapi.submitOfflineDtl=-
+payapi.checkWipDtl=-
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
index 62c301f..0b55fe8 100644
--- a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
+++ b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
@@ -41,7 +41,7 @@
     @Autowired
     private TransactionProxy transactionProxy;
 
-    @Scheduled(cron = "0 0/1 * * * ?")
+    @Scheduled(cron = "${payapi.submitOfflineDtl}")
     private void submitOfflineDtlTask() {
         String date = DateUtil.getNow("yyyyMMdd");
         List<TOfflineTransDtl> dtls = offlineTransDtlService.getUncheckOfflineTransdtl(date, RestaurantConstant.TRANSTYPE_TRANSDTL_OFFLINE);
@@ -142,7 +142,7 @@
     }
 
 
-    @Scheduled(cron = "0 0/10 * * * ?")
+    @Scheduled(cron = "${payapi.checkWipDtl}")
     private void checkWipDtls() {
         String date = DateUtil.getNow("yyyyMMdd");
         List<TTransDtl> dtls = transDtlService.getSubmittingTransdtl(date);
diff --git a/src/main/java/com/supwisdom/dlpay/bus/task/BusPayTask.java b/src/main/java/com/supwisdom/dlpay/bus/task/BusPayTask.java
index 7b6db29..0151c06 100644
--- a/src/main/java/com/supwisdom/dlpay/bus/task/BusPayTask.java
+++ b/src/main/java/com/supwisdom/dlpay/bus/task/BusPayTask.java
@@ -62,15 +62,14 @@
                 param.setTransdate(dtl.getTransdate());
                 param.setTranstime(dtl.getTranstime());
                 param.setCardNo(dtl.getCardno());
-                param.setDtltype("bus");
+                param.setDtltype("carbus");
                 Double amt = dtl.getAmount() * 100;
                 param.setAmount(amt.intValue());
-                logger.info(dtl.getBillno() + "开始消费逻辑");
 
                 CitizenPayResponse response = citizenCardPayProxy.citizencardPayinit(param);
                 if (response.getRetcode() != 0) {
                     saveFailTransdtls(dtl, tTransDtl, response);
-                    logger.info(dtl.getBillno() + "初始化失败," + response.getRetcode() + "," + response.getRetmsg() + "," + response.getException());
+                    logger.error(dtl.getBillno() + "初始化失败," + response.getRetcode() + "," + response.getRetmsg() + "," + response.getException());
                     continue;
                 }
                 CitizenCardPayfinishParam finishparam = new CitizenCardPayfinishParam();
@@ -78,7 +77,7 @@
                 CitizenPayResponse finishresp = citizenCardPayProxy.citizencardPayFinish(finishparam);
                 if (finishresp.getRetcode() != 0) {
                     saveFailTransdtls(dtl, tTransDtl, finishresp);
-                    logger.info(dtl.getBillno() + "消费确认失败," + finishresp.getRetcode() + "," + finishresp.getRetmsg() + "," + finishresp.getException());
+                    logger.error(dtl.getBillno() + "消费确认失败," + finishresp.getRetcode() + "," + finishresp.getRetmsg() + "," + finishresp.getException());
                     continue;
                 }
                 tTransDtl.setAccdate(date);
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 6d69446..1be4dd5 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -513,6 +513,11 @@
 INSERT INTO "tb_businesspara" (parakey,paraval) VALUES ('customer.ignore', 'false');
 
 
+INSERT INTO "tb_syspara"("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype") VALUES (11, 'y', 0, '20191226102956', '最大卡黑名单版本号', NULL, '00000000000000', NULL, 'string');
+INSERT INTO "tb_syspara"("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype") VALUES (21, 'y', 0, '20191226102956', '跟核心平台同步卡信息的最后时间', NULL, '20200106143936', NULL, 'string');
+INSERT INTO "tb_syspara"("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype") VALUES (10, 'y', 0, '20191226102956', '最大卡版本号', NULL, '00000000000000', NULL, 'string');
+
+
 CREATE SEQUENCE SEQ_REFNO
 INCREMENT BY 1
 START WITH 1
