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 277ca33..855fd57 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
@@ -45,5 +45,7 @@
     public static final String permit = "permit";
     //  限制消费信息
     public static final String limitMsg = "limitmsg";
+    // 单日累计消费金额上限
+    public static final String dayAmountLimit = "day_amount_limit";
 
 }
diff --git a/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java b/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java
index f30cad3..c0095f5 100644
--- a/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java
@@ -30,4 +30,7 @@
     List<TCollectdtl> findWipCollectdtl(Pageable pageable);
 
     TCollectdtl findByCobillnoAndDeviceno(Integer cobillno, String deviceno);
+
+    @Query("select sum(t.amount) from TCollectdtl t where t.userid=?1 and t.transDate=?2")
+    double getTodayAmount(String userid, String date);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java b/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
index 47c7398..a4546c3 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
@@ -47,4 +47,7 @@
 
     @Transactional(rollbackFor = Exception.class)
     void initDtlCountDate();
+
+    @Transactional(rollbackFor = Exception.class)
+    Double getTodayAmount(String userid);
 }
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 3e88744..c77795b 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
@@ -15,7 +15,6 @@
 import com.supwisdom.dlpay.water.service.CollectdtlService
 import mu.KotlinLogging
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.http.HttpRequest
 import org.springframework.http.ResponseEntity
 import org.springframework.web.bind.annotation.*
 import org.springframework.web.servlet.ModelAndView
@@ -104,8 +103,19 @@
             }
             val notaccAmount = userDataService.subtract(personIdentity.coamount, personIdentity.accamount)
             //2. 通过 deviceno 查询设备费率参数
+            val todayAmount = collectdtlService.getTodayAmount(personIdentity.person.userid)
             val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
+            var limitmsg = ""
+            var checkFlag = false
+            if (todayAmount > deviceParam[WaterDeviceParam.dayAmountLimit]!!.toInt()) {
+                limitmsg = "今日消费已达上限"
+                checkFlag = true
+            }
             if (notaccAmount > deviceParam[WaterDeviceParam.permitNotAccAmount]!!.toInt()) {
+                limitmsg = "水费欠费已达上限"
+                checkFlag = true
+            }
+            if (checkFlag) {
                 return ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data(WaterDeviceParam.cobillNo, "")
                         .data(WaterDeviceParam.feeAmount, "")
@@ -114,7 +124,7 @@
                         .data(WaterDeviceParam.feeUnit, "")
                         .data(WaterDeviceParam.AmountLimit,"")
                         .data(WaterDeviceParam.permit, 1)
-                        .data(WaterDeviceParam.limitMsg,"限制消费!未扣费金额过多")
+                        .data(WaterDeviceParam.limitMsg,limitmsg)
                         .success())
             }
             //3. 创建 collectdtl 记录初始流水
@@ -252,7 +262,7 @@
             })
             if (userInfo.retcode != 0) {
                 logger.error { "获取用户${userid}信息失败,错误信息:${userInfo.retmsg}" }
-                return ModelAndView("error/500").addObject("errorMsg", "用户信息异常")
+                return ModelAndView("error/500").addObject("errorMsg", "用户信息异常:${userInfo.retmsg}")
             }
             if (userInfo.cardstatus != TradeDict.STATUS_NORMAL || userInfo.transstatus != TradeDict.STATUS_NORMAL) {
                 return ModelAndView("error/500").addObject("errorMsg", "用户消费状态异常")
@@ -325,11 +335,4 @@
         return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.cobillNo, querycodtl.cobillno)
                 .success())
     }
-
-    @GetMapping("/test")
-    fun test(request:HttpRequest): ResponseEntity<Any> {
-        request.uri
-        return ResponseEntity.ok(ResponseBodyBuilder.create().data("test","test")
-                .success())
-    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
index 3ed389a..05cb1c9 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
@@ -332,4 +332,12 @@
             dtlCountDateDao.save(countDate)
         }
     }
+
+    override fun getTodayAmount(userid:String): Double? {
+        val sql = "select sum(amount) from tb_collectdtl where status in ('wip','success') and userid=:userid and transdate=:date"
+        val query = em.createNativeQuery(sql)
+        query.setParameter("userid",userid)
+        query.setParameter("date","20190902")
+        return query.singleResult as Double?
+    }
 }
\ No newline at end of file
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 49335b2..0fb5bed 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -76,14 +76,14 @@
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feeunit', 1, '10', '1', '单位扣费流量(单位:百毫升)', '1', '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 ('waittime', 1, '180', '5', '出水等待时间(单位:秒):超出这个时间，自动关闭水阀门', '90', '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 ('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 ('app_water_limit', 1, '9999', '1', 'app单次用水上限(单位:百毫升)', '200', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('amount_limit', 1, '9999', '1', '单次消费金额上限(单位:分)', '500', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('day_amount_limit', 1, '9999', '30', '日累计消费金额上限(单位:元)', '900', '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 ('waterlimit', 1, '9999', '1', '单次用水上限(单位:百毫升)', '300', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('validtime', 1, '240', '60', '二维码有效时间(单位:秒)', '180', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('imdDecThreshold', 1, '500', '1', '流水上传立即扣费阈值(单位:分)', '50', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('imdDecThreshold', 1, '9999', '1', '流水上传立即扣费阈值(单位:分)', '50', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('permitNotAccAmount', 1, '200', '1', '允许未入账金额(单位:元)', '50', 'N');
 
 
