diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index cb84f01..7fad670 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -24,6 +24,10 @@
 auth.password.bcrypt.seed=
 spring.jackson.serialization.fail-on-empty-beans=false
 
+logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
+logging.level.org.hibernate.SQL=debug
+logging.config=classpath:logback.xml
+logging.level.root=info
 
 payapi.url=https://yy.dlsmk.cn/payapi
 
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index b4d73f5..c0ccfaa 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -467,18 +467,25 @@
 
                     return resp;
                 }
-                if(cntamount!=amount){
-                    tTransdtl.setRuleid(bean.getRuleid());
-                }
+
                 TBusinesspara cntflag = businessparaDao.findByParakey("need.ceil");
                 if(null!=cntflag) {
                     cntamount=Math.ceil(cntamount);
 
                 }
+                if(cntamount!=amount){
+                    tTransdtl.setRuleid(bean.getRuleid());
+                    tTransdtl.setManagefee(amount - cntamount);
+                    tTransdtl.setManagefeetype(bean.getRuletype());
+                    tTransdtl.setAmount(cntamount);
+                }else{
+                    tTransdtl.setManagefeetype(RestaurantConstant.RULETYPE_NORMAL);
+                    tTransdtl.setAmount(amount);
+                    tTransdtl.setManagefee(0.0);
+                }
 
-                tTransdtl.setManagefee(amount - cntamount);
-                tTransdtl.setManagefeetype(bean.getRuletype());
-                tTransdtl.setAmount(cntamount);
+
+
             } else {
                 tTransdtl.setManagefeetype(RestaurantConstant.RULETYPE_NORMAL);
                 tTransdtl.setAmount(amount);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustReportServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustReportServiceImpl.java
index b6f4db8..02798d6 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustReportServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustReportServiceImpl.java
@@ -135,7 +135,7 @@
                     tot.setTotamt(tot.getTotamt()+b.getTotamt());
 
                     b.setCustname(DataUtil.dataDesensitization(b.getCustname(), 1));
-                    b.setCardno(DataUtil.dataDesensitization(b.getCardno(), 4));
+                    b.setCardno(DataUtil.dataDesensitization(b.getCardno(), 0,4));
                 }
                 list.add(tot);
                 return list;
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
index 16445aa..5e9921c 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
@@ -68,15 +68,14 @@
                 "left join tb_dept d on c.deptcode= d.deptcode " +
                 "left join tb_custtype p on c.custtype=p.custtypeid " +
 
-                " where 1=1 ");
+                " where 1=1 and t.status='normal'");
         StringBuffer countSql = new StringBuffer("select count(*) as cnt from tb_customer c " +
                 "left join Tb_card t on t.custid=c.custid " +
                 "left join (select  cardno,cast(count(ruleid) as int4)as discnt from tb_discount_detail group by cardno) gg " +
                 "on t.cardno=gg.cardno " +
                 "left join tb_dept d on c.deptcode= d.deptcode " +
                 "left join tb_custtype p on c.custtype=p.custtypeid " +
-
-                " where 1=1 ");
+                " where 1=1 and t.status='normal'");
         if (!StringUtil.isEmpty(param.getCustname())) {
             querySql.append(" and  c.custname like :str ");
             countSql.append(" and  c.custname like :str ");
@@ -122,7 +121,7 @@
             if(null!=list){
                 for(CustomerShowBean bean:list){
                     bean.setCustname(DataUtil.dataDesensitization(bean.getCustname(),1));
-                    bean.setCardno(DataUtil.dataDesensitization(bean.getCardno(),4));
+                    bean.setCardno(DataUtil.dataDesensitization(bean.getCardno(),0,4));
                     bean.setBankcardno(DataUtil.dataDesensitization(bean.getBankcardno(),6,4));
                 }
             }
@@ -175,7 +174,7 @@
                     ocard.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
                     cardDao.save(ocard);
                     saveCardver(cardverno, date, ocard, ocard.getStatus(), ocard.getStatus(), 1);
-                    return JsonResult.ok("成功");
+                 //   return JsonResult.ok("成功");
                 }
                 TCard card = new TCard();
                 String cardverno = systemUtilService.getCardverno();
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
index 6878c4d..0d64ceb 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
@@ -69,7 +69,7 @@
         Page<TTransDtl> dtls = transDtlDao.findAll(spec, pageable);
         dtls.forEach((dtl) -> {
             dtl.setCustname(DataUtil.dataDesensitization(dtl.getCustname(), 1));
-            dtl.setCardno(DataUtil.dataDesensitization(dtl.getCardno(), 4));
+            dtl.setCardno(DataUtil.dataDesensitization(dtl.getCardno(), 0,4));
         });
 
         return new PageResult<>(dtls);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/util/DataUtil.java b/src/main/java/com/supwisdom/dlpay/restaurant/util/DataUtil.java
index 5b585f7..9046057 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/util/DataUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/util/DataUtil.java
@@ -31,8 +31,8 @@
     }
 
     public static void main(String[] args) {
-        String i="61594512365898452369";
-        System.out.println(dataDesensitization(i,6,4));
+        String i="25008888";
+        System.out.println(dataDesensitization(i,0,4));
 
     }
 }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index d348bac..9dacbd0 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -6,7 +6,9 @@
 spring.jpa.hibernate.ddl-auto=update
 # logging
 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
-logging.level.org.hibernate.SQL=error
+logging.level.org.hibernate.SQL=debug
+logging.config=classpath:logback.xml
+logging.level.root=info
 #################### JSP PAGE ####################
 #spring.mvc.view.prefix=/pages/
 #spring.mvc.view.suffix=.jsp
@@ -42,3 +44,4 @@
 # 查询流水状态任务
 restaurant.querydtlresult.cron=-
 
+
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
new file mode 100644
index 0000000..d7e3f5f
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <!-- 格式化输出：%date表示日期，%thread表示线程名，%-5level：级别从左显示5个字符宽度 %msg：日志消息，%n是换行符-->
+    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n"/>
+    <!-- 定义日志存储的路径，不要配置相对路径 -->
+    <property name="FILE_PATH" value="./log/restaurant.%d{yyyy-MM-dd}.%i.log" />
+
+    <!-- 控制台输出日志 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
+            <pattern>${LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <!--每天生成一个日志文件，保存15天的日志文件。rollingFile是用来切分文件的 -->
+    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${FILE_PATH}</FileNamePattern>
+            <!-- 日志文件最大尺寸 -->
+            <maxFileSize>100MB</maxFileSize>
+            <!--日志文件保留天数-->
+            <!--<MaxHistory>365</MaxHistory>-->
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- project default level -->
+    <logger name="src" level="INFO"/>
+
+    <!-- 日志输出级别 常用的日志级别按照从高到低依次为：ERROR、WARN、INFO、DEBUG。 -->
+    <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="FILE"/>
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/customer/import.html b/src/main/resources/templates/restaurant/customer/import.html
index 9b6ddaa..90e1bda 100644
--- a/src/main/resources/templates/restaurant/customer/import.html
+++ b/src/main/resources/templates/restaurant/customer/import.html
@@ -53,6 +53,7 @@
                 type: "POST",
                 url: url,
                 dataType: 'json',
+                timeout: 1000*60*5,
                 processData:false,
                 contentType: false,
                 data: formData,
diff --git a/src/main/resources/templates/restaurant/customerlist/form.html b/src/main/resources/templates/restaurant/customerlist/form.html
index 4ede5ea..a5df0ae 100644
--- a/src/main/resources/templates/restaurant/customerlist/form.html
+++ b/src/main/resources/templates/restaurant/customerlist/form.html
@@ -110,6 +110,7 @@
                 url: '[[@{/customerlist/addcustomerlist}]]',
                 dataType: 'json',
                 processData:false,
+                timeout: 1000*60*5,
                 contentType: false,
                 data: formData,
                 headers: {
diff --git a/src/main/resources/templates/restaurant/custreport/index.html b/src/main/resources/templates/restaurant/custreport/index.html
index 810f47e..56fe8de 100644
--- a/src/main/resources/templates/restaurant/custreport/index.html
+++ b/src/main/resources/templates/restaurant/custreport/index.html
@@ -14,7 +14,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label"> 商户：</label>
                     <div class="layui-input-inline">
-                        <select name="shopid" id="custreport-search-shopid">
+                        <select class="layui-select"   id="custreport-search-shopid">
                             <option value="" selected>全部</option>
                             <option th:each="shop : ${shoplistForSelect}" th:value="${shop.shopid}">[[${shop.shopname}]]</option>
                         </select>
@@ -23,7 +23,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">餐补规则：</label>
                     <div class="layui-input-inline" style="height: 38px">
-                        <select  id="custreport-search-ruleid">
+                        <select class="layui-select"   id="custreport-search-ruleid">
                             <option value=""  selected>全部</option>
                             <option th:each="rl:${rulelist}" th:value="${rl.ruleid}"
                                     th:text="${rl.rulename}"></option>
@@ -150,9 +150,9 @@
     layui.use(['form', 'layer', 'element', 'laydate', 'treeSelect'], function () {
         var layer = layui.layer;
         var $ = layui.jquery;
-        var treeSelect = layui.treeSelect;
         var laydate = layui.laydate;
-
+        let form = layui.form;
+        form.render("select");
 
         laydate.render({
             elem: '#custreport-search-startdate',
@@ -160,7 +160,7 @@
             trigger: 'click'
         });
         laydate.render({
-            elem: '#shopreport-labercount-search-enddate',
+            elem: '#custreport-search-enddate',
             max: $("#custreport-hidden-maxdate").val(),
             trigger: 'click'
         });
diff --git a/src/main/resources/templates/restaurant/termreport/index.html b/src/main/resources/templates/restaurant/termreport/index.html
index 0bc3d75..45b1bd5 100644
--- a/src/main/resources/templates/restaurant/termreport/index.html
+++ b/src/main/resources/templates/restaurant/termreport/index.html
@@ -14,7 +14,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label"> 商户：</label>
                     <div class="layui-input-inline">
-                        <select name="shopid" id="termreport-search-shopid">
+                        <select class="layui-select"   id="termreport-search-shopid">
                             <option value="" selected>全部</option>
                             <option th:each="shop : ${shoplistForSelect}" th:value="${shop.shopid}">[[${shop.shopname}]]</option>
                         </select>
@@ -23,7 +23,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">餐补规则：</label>
                     <div class="layui-input-inline" style="height: 38px">
-                        <select  id="termreport-search-ruleid">
+                        <select class="layui-select"   id="termreport-search-ruleid">
                             <option value=""  selected>全部</option>
                             <option th:each="rl:${rulelist}" th:value="${rl.ruleid}"
                                     th:text="${rl.rulename}"></option>
@@ -146,9 +146,9 @@
     layui.use(['form', 'layer', 'element', 'laydate', 'treeSelect'], function () {
         var layer = layui.layer;
         var $ = layui.jquery;
-        var treeSelect = layui.treeSelect;
         var laydate = layui.laydate;
-
+        let form = layui.form;
+        form.render("select");
 
         laydate.render({
             elem: '#termreport-search-startdate',
@@ -156,7 +156,7 @@
             trigger: 'click'
         });
         laydate.render({
-            elem: '#shopreport-labercount-search-enddate',
+            elem: '#termreport-search-enddate',
             max: $("#termreport-hidden-maxdate").val(),
             trigger: 'click'
         });
