diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java b/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
index 25df4ed..8998a41 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
@@ -1,10 +1,34 @@
 package com.supwisdom.dlpay.framework.util;
 
 public class WaterDeviceParam {
+    //  系统日期
+    public static final String systemDate = "sysdate";
+    //  系统时间
+    public static final String systemTime = "systime";
+    //  设备状态
+    public static final String deviceStatus = "status";
     //  设备最大脱机时间
     public static final String devOfflineMaxHour = "devOfflineMaxHour";
     //  每百毫升脉冲数
     public static final String pulseInHML = "pulseInHML";
-    //  系统时间
-    public static final String systemTime = "systemTime";
+    //  系统日期时间
+    public static final String systemDateTime = "systemDateTime";
+    //  刷卡单次出水上限
+    public static final String waterLimit = "waterlimit";
+    //  单位扣费金额
+    public static final String feeAmount = "feeamount";
+    //  交易号
+    public static final String billNo = "billno";
+    //  从第多少百毫升开始计费
+    public static final String feeUnit = "feeunit";
+    //  二维码失效时间
+    public static final String vaildTime = "vaildtime";
+    //  二维码的url
+    public static final String url = "url";
+    //  用户授权认证状态
+    public static final String authStatus = "authstatus";
+    //  订单支付状态
+    public static final String payStatus = "paystatus";
+    //  订单已支付金额
+    public static final String paidAmount = "paidAmount";
 }
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java b/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java
index 66e1d86..7d73588 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java
@@ -16,28 +16,43 @@
 public interface DeviceService {
     @Transactional(rollbackFor = Exception.class)
     boolean existSubDevice(Integer areano);
+
     @Transactional(rollbackFor = Exception.class)
     PageResult<TDevice> queryDeviceList(DeviceSearchBean param);
+
     @Transactional(rollbackFor = Exception.class)
     TDevice queryDeviceById(Integer deviceid);
+
     @Transactional(rollbackFor = Exception.class)
     boolean updateDevice(TDevice device);
+
     @Transactional(rollbackFor = Exception.class)
     boolean saveDevice(TDevice device);
+
     @Transactional(rollbackFor = Exception.class)
     Map<String, Object> checkParams(TDevice device);
+
     @Transactional(rollbackFor = Exception.class)
     boolean deleteDevice(Integer deviceid);
+
     @Transactional(rollbackFor = Exception.class)
     List<TDictionary> groupStatus();
+
     @Transactional(rollbackFor = Exception.class)
     PageResult<TDevice> queryDeviceByParams(DeviceSearchBean param);
+
     @Transactional(rollbackFor = Exception.class)
     PageResult<TDevice> queryAreaname(Page<TDevice> devicePage);
+
     @Transactional(rollbackFor = Exception.class)
-    Map<String,Object> deviceLogin(DeviceLoginParam param);
+    Map<String, Object> deviceLogin(DeviceLoginParam param);
+
     @Transactional(rollbackFor = Exception.class)
     TDevice lineCheck(DeviceLineCheckParam param);
+
     @Transactional(rollbackFor = Exception.class)
     TFeeConfig queryTFeeConfigByDeviceno(String deviceno);
+
+    @Transactional(rollbackFor = Exception.class)
+    Map<String, String> getParaMapByDeviceno(String deviceno);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
index 2098022..ae40828 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
@@ -246,13 +246,14 @@
         return null;
     }
 
-    private Map<String, String> getParaMapByDeviceno(String deviceno) {
+    @Override
+    public Map<String, String> getParaMapByDeviceno(String deviceno) {
         Query query = entityManager.createNativeQuery(paraSql);
         query.setParameter(1, deviceno);
         query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TAreapara.class));
         List<TAreapara> list = query.getResultList();
         if (list == null || list.size() == 0 || list.get(0).getParaname() == null) {
-            throw new RuntimeException("该设备未绑定参数，签到失败");
+            throw new RuntimeException("该设备未绑定参数,请求失败!");
         }
         return list.stream().collect(Collectors.toMap(TAreapara::getParaname, TAreapara::getParaval));
     }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
index 2545a7c..948aa7d 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
@@ -45,14 +45,14 @@
                 return ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data(WaterDeviceParam.devOfflineMaxHour, result[WaterDeviceParam.devOfflineMaxHour]!!)
                         .data(WaterDeviceParam.pulseInHML, result[WaterDeviceParam.pulseInHML]!!)
-                        .data(WaterDeviceParam.systemTime, systemUtilService.sysdatetime.hostdatetime)
+                        .data(WaterDeviceParam.systemDateTime, systemUtilService.sysdatetime.hostdatetime)
                         .success())
             }
             return ResponseEntity.ok(ResponseBodyBuilder.create()
                     .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, result["errorMsg"].toString()))
         } catch (ex: Exception) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .exception(WaterErrorCode.PROCESS_ERROR, ex, "系统出错"))
+                    .exception(WaterErrorCode.PROCESS_ERROR, ex, "系统处理异常"))
         }
     }
 
@@ -64,9 +64,9 @@
                     ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
                             .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "没有编号为${param.deviceno}的设备"))
             return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .data("sysdate", systemUtilService.sysdatetime.hostdate)
-                    .data("systime", systemUtilService.sysdatetime.hosttime)
-                    .data("status", device.deviceStatus)
+                    .data(WaterDeviceParam.systemDate, systemUtilService.sysdatetime.hostdate)
+                    .data(WaterDeviceParam.systemTime, systemUtilService.sysdatetime.hosttime)
+                    .data(WaterDeviceParam.deviceStatus, device.deviceStatus)
                     .success())
         } catch (ex: Exception) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -81,9 +81,7 @@
                     ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
                             .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到您的身份信息"))
             //2. 通过 deviceno 查询设备费率参数
-            val feeConfig = deviceService.queryTFeeConfigByDeviceno(param.deviceno)
-                    ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
-                            .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到该设备的费率信息"))
+            val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
             //3. 创建 transdtl 记录初始流水
             val trans = TTransdtl().apply {
                 billno = systemUtilService.refno
@@ -102,10 +100,10 @@
             val savedTrans = transdtlService.createNewTransdtl(trans)
             //4. 将流水 billno 和费率信息返回给终端
             return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .data("billno", savedTrans.billno)
-                    .data("feeamount", feeConfig.amount)
-                    .data("waterlimit", feeConfig.maxWaterLitre)
-                    .data("feeunit", 0)
+                    .data(WaterDeviceParam.billNo, savedTrans.billno)
+                    .data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
+                    .data(WaterDeviceParam.waterLimit, deviceParam[WaterDeviceParam.waterLimit]!!)
+                    .data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
                     .success())
         } catch (ex: Exception) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -116,9 +114,7 @@
     @PostMapping("/qrcode/init")
     fun qrcodePayInit(@RequestBody param: QrcodePayRequest): ResponseEntity<Any> {
         try {
-            val feeConfig = deviceService.queryTFeeConfigByDeviceno(param.deviceno)
-                    ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
-                            .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到该设备的费率信息"))
+            val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
             //1. 创建并记录初始流水
             val trans = TTransdtl().apply {
                 billno = systemUtilService.refno
@@ -138,9 +134,9 @@
             val url = ShortURLUtil.doGetSinaShortUrl(
                     businessparaDao.findByParakey("water_auth_url").paraval + savedTrans.billno)
             return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .data("billno", savedTrans.billno)
-                    .data("url", url)
-                    .data("vaildtime", 180)
+                    .data(WaterDeviceParam.billNo, savedTrans.billno)
+                    .data(WaterDeviceParam.url, url)
+                    .data(WaterDeviceParam.vaildTime, deviceParam[WaterDeviceParam.vaildTime]!!)
                     .success())
         } catch (ex: Exception) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -150,17 +146,17 @@
 
     @GetMapping("/qrcode/query")
     fun qrcodeQuery(@RequestBody param: QrcodeQueryRequest): ResponseEntity<Any> {
-            val feeConfig = deviceService.queryTFeeConfigByDeviceno(param.deviceno)
-                    ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
-                            .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到该设备的费率信息"))
+            val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
             val trans = transdtlService.queryTrans(param)
             return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .data("billno", trans.billno)
-                    .data("authstatus", trans.authStatus)
-                    .data("paystatus", 2)
-                    .data("feeamount", feeConfig.amount)
-                    .data("feeunit", 0)
-                    .data("paidAmount", 0)
+                    .data(WaterDeviceParam.billNo, trans.billno)
+                    .data(WaterDeviceParam.authStatus, trans.authStatus)
+                    //2为代扣模式
+                    .data(WaterDeviceParam.payStatus, 2)
+                    .data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
+                    .data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
+                    //  如果订单为已支付状态，支付金额多少
+                    .data(WaterDeviceParam.paidAmount, 0)
                     .success())
     }
 
@@ -185,7 +181,7 @@
     fun transdtlUpload(@RequestBody param: UploadRecordRequest): ResponseEntity<Any> {
         // 1. 根据 billno 查询 transdtl , 并加锁
         val dtl = transdtlService.saveDeviceDtlData(param)
-        return ResponseEntity.ok(ResponseBodyBuilder.create().data("billno", dtl.billno)
+        return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.billNo, dtl.billno)
                 .success())
     }
 }
\ No newline at end of file
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 7e033e6..0783339 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -111,7 +111,7 @@
 INSERT INTO "tb_feeconfig"("id", "amount", "max_water_litre", "cfg_version") VALUES (1, 1, 50, NULL);
 INSERT INTO "tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('1', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 INSERT INTO "tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '王富贵', NULL, NULL, '1', NULL, NULL);
-INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'http://172.28.43.20:8080/water/api/confirm?billno=');
+INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'http://172.28.43.20:8080/water/api/device/confirm?billno=');
 
 INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('正常', 1, 'normal', '设备状态');
 INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('注销', 1, 'closed', '设备状态');
@@ -119,15 +119,16 @@
 
 INSERT INTO "tb_areapara_group"("groupid", "globalflag", "groupname", "lastsaved", "verno") VALUES (1, 't', '默认参数组', '20190628133646', 7);
 
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('water_limit', 1, '500', '1', '单次用水上限(单位:百毫升)', '200', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('waittime', 1, '180', '60', '出水等待时间(单位:秒):超出这个时间，自动关闭水阀门', '90', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('vaildtime', 1, '240', '60', '二维码有效时间(单位:秒)', '180', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('app_water_limit', 1, '500', '1', 'app单次用水上限(单位:百毫升)', '200', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('code_vaildtime', 1, '240', '60', '二维码有效时间(单位:秒)', '180', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('wait_water_time', 1, '180', '60', '出水等待时间(单位:秒):超出这个时间，自动关闭水阀门', '90', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('dev_offline_maxHour', 1, '168', '1', '设备最大脱机时间(单位:小时)', '72', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('amount_limit', 1, '50', '1', '单次消费金额上限(单位:元)', '30', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('month_amount_limit', 1, '1500', '30', '月累计消费金额上限(单位:元)', '900', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('fee_amount', 1, '100', '1', '单位扣费金额(单位:百毫升/分)', '10', 'N');
-
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('devOfflineMaxHour', 1, '168', '1', '设备最大脱机时间(单位:小时)', '72', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('pulseInHML', 1, '100', '1', '每百毫升流量计的脉冲数(单位:个)', '40', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('waterlimit', 1, '500', '1', '单次用水上限(单位:百毫升)', '300', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feeamount', 1, '100', '1', '单位扣费金额(单位:百毫升/分)', '10', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feeunit', 1, '10', '0', '从第多少百毫升开始计费(单位:百毫升)', '0', 'N');
 
 
 commit;
\ No newline at end of file
diff --git a/src/main/resources/templates/system/areapara/index.html b/src/main/resources/templates/system/areapara/index.html
index ae43566..8470707 100644
--- a/src/main/resources/templates/system/areapara/index.html
+++ b/src/main/resources/templates/system/areapara/index.html
@@ -73,6 +73,7 @@
                 title: "新增设备参数组",
                 path: '[[@{/areapara/loadadd}]]',
                 area: '1200px',
+                offset: '10px',
                 finish: function () {
                     table.reload('areaparagroupTable',{
                         where:{groupname:""},
diff --git a/src/main/resources/templates/system/region/index.html b/src/main/resources/templates/system/region/index.html
index 854747f..515ec25 100644
--- a/src/main/resources/templates/system/region/index.html
+++ b/src/main/resources/templates/system/region/index.html
@@ -253,10 +253,12 @@
                         , click: function (region) {
                             if (region.data.children.size != 0) {
                                 table.reload("regiontable", {
-                                    url: "[[@{/region/list/}]]" + region.data.id
+                                    url: "[[@{/region/search}]]",
+                                    where:{
+                                        searchkey:region.data.title
+                                    }
                                     , page: {
-                                        curr: 1,
-                                        limit: 2
+                                        curr: 1
                                     }
                                 });
                             }
