diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index c3df0e6..77d4185 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -4,8 +4,8 @@
 spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
 spring.datasource.continue-on-error=true
 spring.datasource.initialization-mode=always
-spring.jpa.show-sql=true
-logging.level.org.hibernate.SQL=DEBUG
+#spring.jpa.show-sql=true
+#logging.level.org.hibernate.SQL=DEBUG
 # Postgresql settings
 spring.datasource.platform=postgresql
 spring.datasource.url=jdbc:postgresql://172.28.201.101:25432/restauranttest
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDeviceGroup.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDeviceGroup.java
index 930a3f6..80564dd 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDeviceGroup.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDeviceGroup.java
@@ -43,7 +43,7 @@
 
 
     @Column(name = "operid", length = 100)
-    public String gerOperid() {
+    public String getOperid() {
         return operid;
     }
 
@@ -51,4 +51,5 @@
         this.operid = operid;
     }
 
+
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
index 8dd96be..865114d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
@@ -236,13 +236,13 @@
   public List<TreeSelectNode> getDeviceGroupSelectTree() {
     List<TDeviceGroup> groupList = deviceGroupDao.findAll();
     if (StringUtil.isEmpty(groupList)) return new ArrayList<>(0);
-    return getDevgroupTree(groupList, null);
+    return getDevgroupTree(groupList, 0);
   }
 
   private List<TreeSelectNode> getDevgroupTree(List<TDeviceGroup> groupList, Integer pid) {
     List<TreeSelectNode> result = new ArrayList<>(0);
     for (TDeviceGroup gp : groupList) {
-      if ((null == pid && gp.getPid() == null) || (null != pid && pid.equals(gp.getPid()))) {
+      if ((0 == pid && gp.getPid() == 0) || (null != pid && pid.equals(gp.getPid()))) {
         TreeSelectNode node = new TreeSelectNode();
         node.setId(String.valueOf(gp.getDevgroupid()));
         node.setName(gp.getGroupname());
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java b/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java
index 32eda08..90cf9b3 100644
--- a/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java
+++ b/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java
@@ -49,4 +49,13 @@
     this.children = children;
   }
 
+  @Override
+  public String toString() {
+    return "TreeSelectNode{" +
+            "id='" + id + '\'' +
+            ", name='" + name + '\'' +
+            ", open=" + open +
+            ", checked=" + checked +
+            '}';
+  }
 }
diff --git a/src/main/resources/templates/restaurant/customer/form.html b/src/main/resources/templates/restaurant/customer/form.html
index 81e569e..426d576 100644
--- a/src/main/resources/templates/restaurant/customer/form.html
+++ b/src/main/resources/templates/restaurant/customer/form.html
@@ -1,6 +1,6 @@
 
-<form id="form" lay-filter="form" class="layui-form model-form">
-    <input name="custid" id="custid" type="hidden"/>
+<form id="customer-form" lay-filter="form" class="layui-form model-form">
+    <input name="custid" id="customer-custid" type="hidden"/>
     <div class="layui-form-item">
         <label class="layui-form-label">姓名</label>
         <div class="layui-input-block">
@@ -33,7 +33,7 @@
 
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-        <button class="layui-btn" lay-filter="form-submit" lay-submit id="submitbtn">保存</button>
+        <button class="layui-btn" lay-filter="customer-form-submit" lay-submit id="customer-submitbtn">保存</button>
     </div>
 </form>
 
@@ -51,14 +51,14 @@
         var dev = admin.getTempData('t_cus');
         if (dev) {
             $('input[name="custid"]').attr('readonly', 'readonly');
-            form.val('form', dev);
+            form.val('customer-form', dev);
         }
         /* let fid = admin.getTempData("fid");
          if (fid) {
              form.val('form', {"fid": fid});
          }*/
         // 表单提交事件
-        form.on('submit(form-submit)', function (data) {
+        form.on('submit(customer-form-submit)', function (data) {
             console.log(data);
             layer.load(2);
             let token = $("meta[name='_csrf_token']").attr("value");
diff --git a/src/main/resources/templates/restaurant/customer/import.html b/src/main/resources/templates/restaurant/customer/import.html
index 72e6663..2d3d730 100644
--- a/src/main/resources/templates/restaurant/customer/import.html
+++ b/src/main/resources/templates/restaurant/customer/import.html
@@ -5,21 +5,21 @@
     <!-- row -->
     <div class="layui-form-item">
         <label class="control-label">请选择导入文件<span style="color: red"> * </span></label>
-        <input type="file" name="file" id="file" placeholder="请选择xls格式文件">
+        <input type="file" name="file" id="customer-file" placeholder="请选择xls格式文件">
     </div>
 
     <!-- /row -->
     <!-- row -->
     <div class="layui-form-item" align="center">
-        <div id="importError" style="color:red">
+        <div id="customer-importError" style="color:red">
         </div>
-        <div id="importInfo" >
+        <div id="customer-importInfo" >
         </div>
     </div>
 
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-        <button class="layui-btn" lay-filter="form-import" lay-submit id="importbtn">保存</button>
+        <button class="layui-btn" lay-filter="customer-form-import" lay-submit id="importbtn">保存</button>
     </div>
 </form>
 
@@ -37,9 +37,9 @@
              form.val('form', {"fid": fid});
          }*/
         // 表单提交事件
-        form.on('submit(form-import)', function (data) {
-            $("#importError").html("");
-            var files = $('#file').prop('files');
+        form.on('submit(customer-form-import)', function (data) {
+            $("#customer-importError").html("");
+            var files = $('#customer-file').prop('files');
             var formData = new FormData();
             $.each(files, function (i, file) {
 
@@ -71,7 +71,7 @@
                         }, 1000);
                         return;
                     } else {
-                        $("#importError").html("导入结束，导入失败信息:<br/>" + result.msg);
+                        $("#customer-importError").html("导入结束，导入失败信息:<br/>" + result.msg);
 
                         console.log('err:' + result.code);
                       /*  layer.msg(result.msg, {icon: 2});*/
diff --git a/src/main/resources/templates/restaurant/customer/index.html b/src/main/resources/templates/restaurant/customer/index.html
index 09fc1f2..fd83300 100644
--- a/src/main/resources/templates/restaurant/customer/index.html
+++ b/src/main/resources/templates/restaurant/customer/index.html
@@ -53,7 +53,7 @@
         });
         // 搜索按钮点击事件
         $('#customer-btn-search').click(function () {
-            let key = $('#customer-search-value').val();
+            let key = $('#customer-search-value').val().trim();
             table.reload('customer-table', {where: {searchkey: key}, page: {curr: 1}});
         });
         $('#customer-btn-add').click(function () {
diff --git a/src/main/resources/templates/restaurant/device/form.html b/src/main/resources/templates/restaurant/device/form.html
index 08c499e..e5ee279 100644
--- a/src/main/resources/templates/restaurant/device/form.html
+++ b/src/main/resources/templates/restaurant/device/form.html
@@ -1,6 +1,6 @@
 
-<form id="form" lay-filter="form" class="layui-form model-form">
-    <input name="id" id="id" type="hidden"/>
+<form id="device-form" lay-filter="form" class="layui-form model-form">
+    <input name="id" id="device-id" type="hidden"/>
     <div class="layui-form-item">
         <label class="layui-form-label">设备物理ID</label>
         <div class="layui-input-block">
@@ -11,7 +11,7 @@
     <div class="layui-form-item">
         <label class="layui-form-label">设备厂商</label>
         <div class="layui-input-block">
-            <select name="factoryid" id="factoryid" lay-verify="required">
+            <select name="factoryid"  lay-verify="required">
                 <option  value="XKP">新开普</option>
             </select>
         </div>
@@ -27,7 +27,7 @@
 
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-        <button class="layui-btn" lay-filter="form-submit" lay-submit id="submitbtn">保存</button>
+        <button class="layui-btn" lay-filter="device-form-submit" lay-submit id="submitbtn">保存</button>
     </div>
 </form>
 
@@ -72,7 +72,7 @@
             form.val('form', {"fid": fid});
         }*/
         // 表单提交事件
-        form.on('submit(form-submit)', function (data) {
+        form.on('submit(device-form-submit)', function (data) {
             console.log(data);
             layer.load(2);
             let token = $("meta[name='_csrf_token']").attr("value");
diff --git a/src/main/resources/templates/restaurant/device/import.html b/src/main/resources/templates/restaurant/device/import.html
index a97ba9d..4d9f10d 100644
--- a/src/main/resources/templates/restaurant/device/import.html
+++ b/src/main/resources/templates/restaurant/device/import.html
@@ -5,7 +5,7 @@
     <!-- row -->
     <div class="layui-form-item">
         <label class="control-label">请选择导入文件<span class="required"> * </span></label>
-        <input type="file" name="file" id="file" placeholder="请选择xls格式文件">
+        <input type="file" name="file" id="device-file" placeholder="请选择xls格式文件">
     </div>
   <!--  <div class="layui-input-inline" style="width: auto;margin-left:3%">
         <button type="button" class="layui-btn upoadfile-btn" >
@@ -17,7 +17,7 @@
     <!-- /row -->
     <!-- row -->
     <div class="layui-form-item" align="center">
-        <div id="importError" style="color:red">
+        <div id="device-importError" style="color:red">
         </div>
         <div id="importInfo" >
         </div>
@@ -29,7 +29,7 @@
         </div>-->
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-        <button class="layui-btn" lay-filter="form-import" lay-submit id="importbtn">保存</button>
+        <button class="layui-btn" lay-filter="device-form-import" lay-submit id="importbtn">保存</button>
     </div>
 </form>
 
@@ -47,9 +47,9 @@
              form.val('form', {"fid": fid});
          }*/
         // 表单提交事件
-        form.on('submit(form-import)', function (data) {
-            $("#importError").html("");
-            var files = $('#file').prop('files');
+        form.on('submit(device-form-import)', function (data) {
+            $("#device-importError").html("");
+            var files = $('#device-file').prop('files');
             var formData = new FormData();
             $.each(files, function (i, file) {
 
@@ -81,7 +81,7 @@
                         }, 1000);
                         return;
                     } else {
-                        $("#importError").html("导入结束，导入失败信息:<br/>" + result.msg);
+                        $("#device-importError").html("导入结束，导入失败信息:<br/>" + result.msg);
 
                         console.log('err:' + result.code);
                       /*  layer.msg(result.msg, {icon: 2});*/
diff --git a/src/main/resources/templates/restaurant/device/index.html b/src/main/resources/templates/restaurant/device/index.html
index 69479ec..26d5449 100644
--- a/src/main/resources/templates/restaurant/device/index.html
+++ b/src/main/resources/templates/restaurant/device/index.html
@@ -55,7 +55,7 @@
         });
         // 搜索按钮点击事件
         $('#device-btn-search').click(function () {
-            let key = $('#device-search-value').val();
+            let key = $('#device-search-value').val().trim();
             table.reload('device-table', {where: {searchkey: key}, page: {curr: 1}});
         });
         $('#device-btn-add').click(function () {
diff --git a/src/main/resources/templates/restaurant/devicegroup/form.html b/src/main/resources/templates/restaurant/devicegroup/form.html
index 3478df1..a85f85e 100644
--- a/src/main/resources/templates/restaurant/devicegroup/form.html
+++ b/src/main/resources/templates/restaurant/devicegroup/form.html
@@ -1,6 +1,6 @@
 <!-- operator表单弹窗 -->
-<form id="form" lay-filter="form" class="layui-form model-form">
-    <input name="devgroupid" id="devgroupid" type="hidden"/>
+<form id="devicegroup-form" lay-filter="form" class="layui-form model-form">
+    <input name="devgroupid" id="devicegroup-devgroupid" type="hidden"/>
     <div class="layui-form-item">
         <label class="layui-form-label">设备组名称</label>
         <div class="layui-input-block">
@@ -11,7 +11,7 @@
     <div class="layui-form-item">
         <label class="layui-form-label">上级设备组</label>
         <div class="layui-input-block">
-            <select name="pid" id="pid" lay-verify="required">
+            <select name="pid"  lay-verify="required">
                 <option value="0">根设备</option>
                 <option th:each="group : ${grouplist}" th:value="${group.devgroupid}">[[${group.groupname}]]</option>
             </select>
@@ -20,7 +20,7 @@
 
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-        <button class="layui-btn" lay-filter="form-submit" lay-submit id="submitbtn">保存</button>
+        <button class="layui-btn" lay-filter="devicegroup-form-submit" lay-submit id="submitbtn">保存</button>
     </div>
 </form>
 
@@ -40,7 +40,7 @@
         }*/
 
         // 表单提交事件
-        form.on('submit(form-submit)', function (data) {
+        form.on('submit(devicegroup-form-submit)', function (data) {
             layer.load(2);
             let token = $("meta[name='_csrf_token']").attr("value");
             $.ajax({
diff --git a/src/main/resources/templates/restaurant/devicegroup/index.html b/src/main/resources/templates/restaurant/devicegroup/index.html
index 5b9efad..e359ca9 100644
--- a/src/main/resources/templates/restaurant/devicegroup/index.html
+++ b/src/main/resources/templates/restaurant/devicegroup/index.html
@@ -35,7 +35,7 @@
 </div>
 
 <script type="text/html" id="devicegroup-dev-tpl-state">
-    <input type="checkbox" lay-filter="dev-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="正常|注销" disabled
+    <input type="checkbox" lay-filter="devicegroup-dev-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="正常|注销" disabled
            {{d.state=='1'?'checked':''}} />
 </script>
 <script>
@@ -59,13 +59,13 @@
                     {field: 'devphyid', sort: true, width: 120, title: '设备物理id'},
                     {field: 'shopid', sort: true, width: 100, title: '商户id'},
                     {field: 'factoryid', sort: true, width: 100, title: '设备厂商'},
-                    {field: 'state', title: '状态', sort: true, width: 100, templet: '#dev-tpl-state'},
+                    {field: 'state', title: '状态', sort: true, width: 100, templet: '#devicegroup-dev-tpl-state'},
                 ]
             ]
         });
         // 搜索按钮点击事件
         $('#devicegroup-btn-search').click(function () {
-            let key = $('#search-value').val();
+            let key = $('#search-value').val().trim();
             table.reload('devicegroup-table', {where: {searchkey: key}, page: {curr: 1}});
         });
         $('#devicegroup-btn-add').click(function () {
diff --git a/src/main/resources/templates/restaurant/devicemanage/form.html b/src/main/resources/templates/restaurant/devicemanage/form.html
index f9c84be..81162e7 100644
--- a/src/main/resources/templates/restaurant/devicemanage/form.html
+++ b/src/main/resources/templates/restaurant/devicemanage/form.html
@@ -12,6 +12,7 @@
         <label class="layui-form-label">设备组</label>
         <div class="layui-input-block">
             <select name="devgroupid" id="devgroupid" lay-verify="required">
+                <option value="0">无</option>
                 <option th:each="group : ${grouplist}" th:value="${group.devgroupid}">[[${group.groupname}]]</option>
             </select>
         </div>
diff --git a/src/main/resources/templates/restaurant/devicemanage/index.html b/src/main/resources/templates/restaurant/devicemanage/index.html
index 92c05ad..6f09bb5 100644
--- a/src/main/resources/templates/restaurant/devicemanage/index.html
+++ b/src/main/resources/templates/restaurant/devicemanage/index.html
@@ -62,10 +62,10 @@
         });
         // 搜索按钮点击事件
         $('#devicemanage-btn-search').click(function () {
-            let devphyid = $('#devicemanage-devphyid').val();
-            let id = $('#devicemanage-termid').val();
-            let factoryid = $('#devicemanage-factoryid').val();
-            let devicename = $('#devicemanage-devicename').val();
+            let devphyid = $('#devicemanage-devphyid').val().trim();
+            let id = $('#devicemanage-termid').val().trim();
+            let factoryid = $('#devicemanage-factoryid').val().trim();
+            let devicename = $('#devicemanage-devicename').val().trim();
             table.reload('devicemanage-table', {where: {
                 devphyid: devphyid,
                 id:id,
diff --git a/src/main/resources/templates/restaurant/transdtl/index.html b/src/main/resources/templates/restaurant/transdtl/index.html
index d5c1b20..c7298f4 100644
--- a/src/main/resources/templates/restaurant/transdtl/index.html
+++ b/src/main/resources/templates/restaurant/transdtl/index.html
@@ -193,13 +193,13 @@
         });
         // 搜索按钮点击事件
         $('#transdtl-btn-search').click(function () {
-            let custname = $('#transdtl-custname').val();
-            let shopid = $('#transdtl-shopid').val();
+            let custname = $('#transdtl-custname').val().trim();
+            let shopid = $('#transdtl-shopid').val().trim();
             let startdate = $('#transdtl-startdate').val();
             let enddate = $('#transdtl-enddate').val();
-            let refno = $('#transdtl-refno').val();
+            let refno = $('#transdtl-refno').val().trim();
             let status = $('#transdtl-status').val();
-            let termid = $('#transdtl-termid').val();
+            let termid = $('#transdtl-termid').val().trim();
             table.reload('transdtl-table', {
                 where: {
                     custname: custname,
diff --git a/src/main/resources/templates/restaurant/transdtlform/index.html b/src/main/resources/templates/restaurant/transdtlform/index.html
index 4570b0c..0142ee2 100644
--- a/src/main/resources/templates/restaurant/transdtlform/index.html
+++ b/src/main/resources/templates/restaurant/transdtlform/index.html
@@ -64,7 +64,7 @@
         });
         // 搜索按钮点击事件
         $('#btn-search').click(function () {
-            let key = $('#search-value').val();
+            let key = $('#search-value').val().trim();
             table.reload('table', {where: {searchkey: key}});
         });
         $('#btn-add').click(function () {
diff --git a/src/main/resources/templates/restaurant/transdtlrev/form.html b/src/main/resources/templates/restaurant/transdtlrev/form.html
index 96fbc4e..23a5594 100644
--- a/src/main/resources/templates/restaurant/transdtlrev/form.html
+++ b/src/main/resources/templates/restaurant/transdtlrev/form.html
@@ -1,5 +1,5 @@
 
-<form id="form" lay-filter="form" class="layui-form model-form">
+<form id="transdtlrev-form" lay-filter="form" class="layui-form model-form">
     <input name="refno" id="refno" type="hidden"/>
     <div class="layui-form-item">
         <label class="layui-form-label">冲正对象</label>
@@ -25,7 +25,7 @@
 
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-        <button class="layui-btn" lay-filter="form-submit" lay-submit id="submitbtn">冲正</button>
+        <button class="layui-btn" lay-filter="transdtlrev-form-submit" lay-submit id="submitbtn">冲正</button>
     </div>
 </form>
 
@@ -45,7 +45,7 @@
             form.val('form', dtl);
         }
         // 表单提交事件
-        form.on('submit(form-submit)', function (data) {
+        form.on('submit(transdtlrev-form-submit)', function (data) {
             console.log(data);
             layer.load(2);
             let token = $("meta[name='_csrf_token']").attr("value");
diff --git a/src/main/resources/templates/restaurant/transdtlrev/index.html b/src/main/resources/templates/restaurant/transdtlrev/index.html
index 5a0a06a..c97111e 100644
--- a/src/main/resources/templates/restaurant/transdtlrev/index.html
+++ b/src/main/resources/templates/restaurant/transdtlrev/index.html
@@ -156,8 +156,8 @@
 
         // 搜索按钮点击事件
         $('#transdtlrev-btn-search').click(function () {
-            let custname = $('#transdtlrev-custname').val();
-            let refno = $('#transdtlrev-refno').val();
+            let custname = $('#transdtlrev-custname').val().trim();
+            let refno = $('#transdtlrev-refno').val().trim();
             let accdate = $('#transdtlrev-accdate').val();
             table.reload('transdtlrev-table', {
                 where: {
