diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
index b4f5da3..caf11db 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
@@ -20,5 +20,5 @@
   @Query(value = "from TSyspara where paraid=?1 ")
   TSyspara findByParaidWithLockNowait(int paraid);
 
-
+  TSyspara findByParaname(String paraname);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
index 2c1ef49..0aef02b 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
@@ -62,6 +62,7 @@
   @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
   TSyspara getSysparaValueForUpdateNowait(int paraid);
 
+  TSyspara getSysparaByparaname(String paraname);
 
   String getBusinessValue(String parakey);
 
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
index 3e0dedf..8672339 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
@@ -149,6 +149,11 @@
   }
 
   @Override
+  public TSyspara getSysparaByparaname(String paraname) {
+    return sysparaDao.findByParaname(paraname);
+  }
+
+  @Override
   public String getBusinessValue(String parakey) {
     if (!StringUtil.isEmpty(parakey)) {
       TBusinesspara businesspara = businessparaDao.findByParakey(parakey.trim());
diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
index 3e623de..79513a6 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
@@ -19,10 +19,6 @@
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-
 import static org.hamcrest.Matchers.equalTo;
 
 
@@ -93,7 +89,7 @@
                 //  入账流水状态为空，需查询是否已初始化
                 QueryDtlResultParam queryParam = new QueryDtlResultParam();
                 queryParam.setBillno(accdtl.getBillno());
-                queryParam.setShopaccno(businessparaService.findByParakey(WaterBudinessConstants.WATER_SHOP_ACCNO).getParaval());
+                queryParam.setShopaccno(systemUtilService.getSysparaByparaname(WaterBudinessConstants.WATER_SHOP_ACCNO).getParaval());
                 QueryTransDtlResponse queryResult = transactionProxy.queryDtlResult(queryParam);
                 if (0 == queryResult.getRetcode()) {
                     //  流水已初始化，进行确认
@@ -184,7 +180,7 @@
         initParam.setDtltype(Constants.DTLTYPE_WATER);
         initParam.setTransdate(accdtl.getTransDate());
         initParam.setTranstime(accdtl.getTransTime());
-        initParam.setShopaccno(businessparaService.findByParakey(WaterBudinessConstants.WATER_SHOP_ACCNO).getParaval());
+        initParam.setShopaccno(systemUtilService.getSysparaByparaname(WaterBudinessConstants.WATER_SHOP_ACCNO).getParaval());
         return initParam;
     }
 
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index f1d41c3..6ded1c2 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -57,12 +57,12 @@
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'https://yy.dlsmk.cn/water/api/device/qrcode/pretend?cobillno=');
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_shorturl_baidu', 'https://dwz.cn/admin/v2/create');
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_shorturl_baidu_token', 'ee9dc7c65a2b0598106a5930dd774971');
-INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_shopaccno', '2000000010');
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_appid', '700001');
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_secret', '5f788ce433ec44f299351cdf7f137e81');
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_dtlcredit_maxcount', '3');
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_dtlcredit_intervalhour', '1');
 
+INSERT INTO "tb_syspara"("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype") VALUES (1, '1', 1, '1', 'shopaccno', NULL, NULL, NULL, NULL);
 
 INSERT INTO "tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "remarks") VALUES (1, '测试路1号', '测试区域', 1, 1, 0, '测试');
 INSERT INTO "tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (1, 1, '20190813143440', 'normal', '测试POS01', '10000001', NULL);
