人员查询添加部门查询
diff --git a/src/main/java/com/supwisdom/dlpay/customer/controller/CustomerController.java b/src/main/java/com/supwisdom/dlpay/customer/controller/CustomerController.java
index 6cd7f45..a8f6bb1 100644
--- a/src/main/java/com/supwisdom/dlpay/customer/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/customer/controller/CustomerController.java
@@ -69,7 +69,7 @@
     public PageResult<TCustomerInfo> getDataList(@RequestParam("page") Integer pageNo,
                                                  @RequestParam("limit") Integer pageSize,
                                                  @RequestParam(value = "custname", required = false) String custname,
-                                     //            @RequestParam(value = "deptcode", required = false) String deptcode,
+                                                 @RequestParam(value = "deptcode", required = false) String deptcode,
                                                  @AuthenticationPrincipal TOperator operUser) {
         try {
             if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
@@ -78,7 +78,6 @@
             searchBean.setPageNo(pageNo);
             searchBean.setCustname(custname);
             searchBean.setPageSize(pageSize);
-            String deptcode="";
             if (StringUtil.isEmpty(deptcode)&&!"S".equals(operUser.getOpertype())) {
                 deptcode = operUser.getDeptcode();
             }
@@ -137,8 +136,12 @@
 
     @GetMapping("/depttree")
     @ResponseBody
-    public List<TreeSelectNode> searchDeptTree() {
-        List<TreeSelectNode> tree = systemService.getDeptSelectTree();
+    public List<TreeSelectNode> searchDeptTree(@AuthenticationPrincipal TOperator operUser) {
+        String deptcode="";
+        if (!"S".equals(operUser.getOpertype())) {
+            deptcode = operUser.getDeptcode();
+        }
+        List<TreeSelectNode> tree = systemService.getDeptSelectTree(deptcode);
         return tree;
     }
 
diff --git a/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java b/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java
index eafa20c..fa7024a 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java
@@ -40,7 +40,7 @@
 
     //sql,xss过滤
     HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-    logger.info("CrosXssFilter.......orignal url:{},ParameterMap:{}",httpServletRequest.getRequestURI(), new Gson().toJson(httpServletRequest.getParameterMap()));
+   // logger.info("CrosXssFilter.......orignal url:{},ParameterMap:{}",httpServletRequest.getRequestURI(), new Gson().toJson(httpServletRequest.getParameterMap()));
     XssHttpServletRequestWrapper xssHttpServletRequestWrapper = new XssHttpServletRequestWrapper(
         httpServletRequest);
     chain.doFilter(xssHttpServletRequestWrapper, response);
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java b/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
index 12a2bba..c4fe2c8 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
@@ -242,6 +242,6 @@
     TDept getDeptByDeptno(String deptno);

 

     @Transactional(rollbackFor = Exception.class, readOnly = true)

-    List<TreeSelectNode> getDeptSelectTree();

+    List<TreeSelectNode> getDeptSelectTree(String deptcode);

 

 }

diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java
index ef8b1a0..6bea91e 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/SystemServiceImpl.java
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.system.service.impl;

 

 import com.supwisdom.dlpay.api.bean.JsonResult;

+import com.supwisdom.dlpay.customer.bean.TCustomerExportBean;

 import com.supwisdom.dlpay.framework.util.DateUtil;

 import com.supwisdom.dlpay.framework.util.PageResult;

 import com.supwisdom.dlpay.framework.util.StringUtil;

@@ -11,6 +12,8 @@
 import com.supwisdom.dlpay.system.domain.*;

 import com.supwisdom.dlpay.system.page.Pagination;

 import com.supwisdom.dlpay.system.service.SystemService;

+import org.hibernate.query.internal.NativeQueryImpl;

+import org.hibernate.transform.Transformers;

 import org.springframework.beans.factory.annotation.Autowired;

 import org.springframework.cache.annotation.CacheEvict;

 import org.springframework.cache.annotation.Cacheable;

@@ -19,6 +22,9 @@
 import org.springframework.data.domain.Sort;

 import org.springframework.stereotype.Service;

 

+import javax.persistence.EntityManager;

+import javax.persistence.PersistenceContext;

+import javax.persistence.Query;

 import java.util.ArrayList;

 import java.util.List;

 

@@ -41,6 +47,10 @@
     @Autowired

     private CustomerDao customerDao;

 

+    @PersistenceContext

+    EntityManager entityManager;

+

+

     @Override

     @CacheEvict(cacheNames = "door_dictionary_cache", key = "'.*'", allEntries = true)

     public void refreshCache() {

@@ -390,21 +400,30 @@
         return dept.size()>0?dept.get(0):null;

     }

 

-    public List<TreeSelectNode> getDeptSelectTree() {

-        List<TDept> groupList = deptDao.findAll();

+    public List<TreeSelectNode> getDeptSelectTree(String deptcode) {

+        List<TDept> groupList;

+        String pid;

+        if(StringUtil.isEmpty(deptcode)){

+            groupList = deptDao.findAll();

+            pid="-1";

+        }else{

+            groupList=getChildDeptlist(deptcode);

+            pid="0";

+        }

+

         if (StringUtil.isEmpty(groupList)) return new ArrayList<>(0);

-        return getDeptTree(groupList, "-1");

+        return getDeptTree(groupList, pid);

     }

 

     private List<TreeSelectNode> getDeptTree(List<TDept> groupList, String pid) {

         List<TreeSelectNode> result = new ArrayList<>(0);

         for (TDept gp : groupList) {

-            if (("-1".equals(pid) && "-1".equals(gp.getFdeptcode())) || (null != pid && pid.equals(gp.getFdeptcode()))) {

+     //       if (("-1".equals(pid) && "-1".equals(gp.getFdeptcode())) || (null != pid && pid.equals(gp.getFdeptcode()))) {

+            if ( (null != pid && pid.equals(gp.getFdeptcode()))) {

                 TreeSelectNode node = new TreeSelectNode();

                 node.setId(gp.getDeptcode());

                 node.setName(gp.getDeptname());

                 node.setOpen(true);

-              //  node.setGrouptype(gp.getGrouptype());

                 node.setChecked(false);

                 List<TreeSelectNode> children = getDeptTree(groupList, gp.getDeptcode());

                 if (!StringUtil.isEmpty(children)) {

@@ -417,4 +436,21 @@
         }

         return result;

     }

+

+

+    private  List<TDept> getChildDeptlist( String deptcode) {

+        List<TDept> childdplist=null;

+        if (!StringUtil.isEmpty(deptcode)) {

+            Query query = entityManager.createNativeQuery("WITH RECURSIVE r AS(" +

+                    "SELECT * FROM tb_dept WHERE deptcode =:deptcode " +

+                    "union ALL " +

+                    "SELECT t.* FROM tb_dept t, r WHERE t.fdeptcode = r.deptcode) " +

+                    "select * from r order by deptno");

+            query.setParameter("deptcode", deptcode);

+

+            query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TDept.class));

+            childdplist = query.getResultList();

+        }

+        return childdplist;

+    }

 }

diff --git a/src/main/resources/templates/doorlist/customer/index.html b/src/main/resources/templates/doorlist/customer/index.html
index ebab5f3..2f6513a 100644
--- a/src/main/resources/templates/doorlist/customer/index.html
+++ b/src/main/resources/templates/doorlist/customer/index.html
@@ -9,10 +9,14 @@
     <div class="layui-card-body">
         <div class="layui-form toolbar">
             搜索:
-            <input id="customer-search-value" class="layui-input search-input" type="text" placeholder="输入姓名"/>
-           <!-- <input id="search-customer-deptcode" type="text"
-                   lay-filter="search-customer-deptcode-filter" autocomplete="off"
-                   class="layui-input search-input"/>-->
+            <div class="layui-inline" style="margin-right: 20px;">
+                <input id="customer-search-value" class="layui-input search-input" type="text" placeholder="输入姓名"
+                style="margin-right: 20px"/>
+                <input id="search-customer-deptcode" type="text"
+                       lay-filter="search-customer-deptcode-filter" autocomplete="off"
+                       class="layui-input search-input"/>
+            </div>
+
             <button id="customer-btn-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
             </button>
             <button id="customer-btn-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加人员</button>
@@ -34,11 +38,12 @@
         let form = layui.form;
         let table = layui.table;
         let admin = layui.admin;
-     //   var treeSelect = layui.treeSelect;
         var $ = layui.$;
 
         form.render("select");
-       /* treeSelect.render({
+
+        var treeSelect=layui.treeSelect;
+        treeSelect.render({
             elem: '#search-customer-deptcode',
             data: '[[@{/customer/depttree}]]',
             type: 'get',
@@ -61,7 +66,8 @@
             success: function (d) {
                 console.log(d); // 加载完成后的回调函数
             }
-        });*/
+        });
+
         // 渲染表格
         table.render({
             elem: '#customer-table',
@@ -144,9 +150,9 @@
         // 搜索按钮点击事件
         $('#customer-btn-search').click(function () {
             let key = $('#customer-search-value').val().trim();
-          //  let deptcode=$('#customer-deptcode').val();
+            let deptcode=$('#search-customer-deptcode').val();
 
-            table.reload('customer-table', {where: {custname: key}, page: {curr: 1}});
+            table.reload('customer-table', {where: {custname: key,deptcode:deptcode}, page: {curr: 1}});
         });
         $('#customer-btn-add').click(function () {
             showModel();