调整操作员属性,完善查询设备名单功能
diff --git a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
new file mode 100644
index 0000000..1cd837b
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
@@ -0,0 +1,219 @@
+package com.supwisdom.dlpay.doorlist.controller;

+

+import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;

+import cn.afterturn.easypoi.excel.entity.ExportParams;

+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;

+import cn.afterturn.easypoi.view.PoiBaseView;

+import com.supwisdom.dlpay.framework.domain.TOperator;

+import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;

+import com.supwisdom.dlpay.mainservice.domain.TKey;

+import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;

+import com.supwisdom.dlpay.ncmgr.domain.TBuilding;

+import com.supwisdom.dlpay.ncmgr.service.NcService;

+import com.supwisdom.dlpay.system.domain.TDictionaryId;

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

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

+import com.supwisdom.dlpay.util.RedisUtil;

+import org.apache.log4j.Logger;

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

+import org.springframework.security.core.annotation.AuthenticationPrincipal;

+import org.springframework.security.core.userdetails.UserDetails;

+import org.springframework.stereotype.Controller;

+import org.springframework.ui.ModelMap;

+import org.springframework.web.bind.annotation.*;

+

+import javax.servlet.http.HttpServletRequest;

+import javax.servlet.http.HttpServletResponse;

+import javax.servlet.http.HttpSession;

+import java.text.SimpleDateFormat;

+import java.util.ArrayList;

+import java.util.HashMap;

+import java.util.List;

+import java.util.Map;

+

+@Controller

+@RequestMapping("/doorlistMgr")

+public class DoorlistMgrController {

+

+    protected static Logger logger = Logger.getLogger(DoorlistMgrController.class);

+

+    @Autowired

+    SystemService systemService;

+    @Autowired

+    WebInterfaceService webInterfaceService;

+    @Autowired

+    NcService ncService;

+

+    @RequestMapping("/downDoorList")

+    public String downDoorList(ModelMap model){

+        return "doorlist/addDoorlist";

+    }

+

+    @RequestMapping("/deleteDoorList")

+    public String deleteDoorList(ModelMap model){

+        return "doorlist/deleteDoorlist";

+    }

+

+    @RequestMapping("/searchDoorlist")

+    public String searchDoorlist(ModelMap model){

+        return "doorlist/searchDoorlist";

+    }

+

+    /**

+     * 填充查询门禁列表下拉菜单

+     * @return

+     * @throws Exception

+     */

+    @ResponseBody

+    @RequestMapping(value = "/getFillFormList")

+    public Map getFillFormList() throws Exception {

+        Map map = new HashMap();

+        //名单状态

+        List<TDictionaryId> syncDicts = systemService.findTDictionaryByType(3);

+        map.put("syncDicts", syncDicts);

+        //厂商id

+        List<TKey> allFactoryId = webInterfaceService.getAllKeys();

+        map.put("allFactoryId", allFactoryId);

+        //操作标记

+        List<TDictionaryId> operDicts = new ArrayList<TDictionaryId>();

+        operDicts.addAll(systemService.findByType(2, "A"));

+        operDicts.addAll(systemService.findByType(2, "D"));

+        operDicts.addAll(systemService.findByType(2, "C"));

+        map.put("operDicts", operDicts);

+

+        //所有楼栋

+        List<TBuilding> buildings = ncService.getAllBuilding();

+        map.put("buildings", buildings);

+        return map;

+    }

+

+    /**

+     * 查询设备名单

+     * @param request

+     * @param factoryId

+     * @param doorName

+     * @param custName

+     * @param stuempNo

+     * @param syncStatus

+     * @param operFlag

+     * @param building

+     * @param allocatStartDate

+     * @param allocatEndDate

+     * @param pageNo

+     * @param pageSize

+     * @param operUser

+     * @return

+     */

+    @ResponseBody

+    @RequestMapping(value = "/getAllCardList")

+    public Map getAllCardList(HttpServletRequest request,

+                                 @RequestParam(value = "factoryId", required = false, defaultValue = "all") String factoryId,

+                                 @RequestParam(value = "doorName", required = false, defaultValue = "") String doorName,

+                                 @RequestParam(value = "custName", required = false, defaultValue = "") String custName,

+                                 @RequestParam(value = "stuempNo", required = false, defaultValue = "") String stuempNo,

+                                 @RequestParam(value = "syncStatus", required = false, defaultValue = "all") String syncStatus,

+                                 @RequestParam(value = "operFlag", required = false, defaultValue = "all") String operFlag,

+                                 @RequestParam(value = "building", required = false, defaultValue = "") String building,

+                                 @RequestParam(value = "allocatStartDate", required = false, defaultValue = "") String allocatStartDate,

+                                 @RequestParam(value = "allocatEndDate", required = false, defaultValue = "") String allocatEndDate,

+                                 @RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,

+                                 @RequestParam(value = "pageSize", required = false, defaultValue = "15") int pageSize,

+                                 @AuthenticationPrincipal TOperator operUser) {

+

+        Map map = new HashMap();

+        try {

+            List<String> allopername = systemService.findOperatorsByFopercode(operUser.getOperid());

+            boolean flag = true;

+

+            Pagination pResult;

+            pResult = webInterfaceService.getAllCardListFrSearch(factoryId, allocatStartDate, allocatEndDate,

+                    doorName, custName, stuempNo, syncStatus, allopername, operFlag, building, pageNo, pageSize);

+            map.put("PageResult", pResult);

+            map.put("index", flag);

+            map.put("result", "查询设备名单成功!");

+        } catch (Exception e) {

+            e.printStackTrace();

+            map.put("result", "查询设备名单失败!");

+            logger.error("查询设备名单失败:" + e.getMessage());

+        }

+        return map;

+    }

+

+    /**

+     * 注解方式导出设备名单Excel

+     * @param modelMap

+     * @param request

+     * @param response

+     * @param factoryId

+     * @param doorName

+     * @param custName

+     * @param stuempNo

+     * @param syncStatus

+     * @param operFlag

+     * @param building

+     * @param allocatStartDate

+     * @param allocatEndDate

+     * @param operUser

+     */

+    @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)

+    public void download(ModelMap modelMap, HttpServletRequest request, HttpServletResponse response,

+                         @RequestParam(value = "factoryId", required = false, defaultValue = "all") String factoryId,

+                         @RequestParam(value = "doorName", required = false, defaultValue = "") String doorName,

+                         @RequestParam(value = "custName", required = false, defaultValue = "") String custName,

+                         @RequestParam(value = "stuempNo", required = false, defaultValue = "") String stuempNo,

+                         @RequestParam(value = "syncStatus", required = false, defaultValue = "all") String syncStatus,

+                         @RequestParam(value = "operFlag", required = false, defaultValue = "all") String operFlag,

+                         @RequestParam(value = "building", required = false, defaultValue = "") String building,

+                         @RequestParam(value = "allocatStartDate", required = false, defaultValue = "") String allocatStartDate,

+                         @RequestParam(value = "allocatEndDate", required = false, defaultValue = "") String allocatEndDate,

+                         @AuthenticationPrincipal TOperator operUser) {

+        /**

+         * 1.查询值

+         */

+        List<String> allopername = systemService.findOperatorsByFopercode(operUser.getOperid());

+        List<TDoorcardlstInfo> cardList = webInterfaceService.getAllCardListMap(factoryId, allocatStartDate, allocatEndDate,

+                doorName, custName, stuempNo, syncStatus, allopername, operFlag, building);

+

+        /**

+         * 2.设置表格属性: title:标题  sheetName:工作簿名 type:表格类型

+         */

+        ExportParams params = new ExportParams("设备名单列表", "设备名单", ExcelType.XSSF);

+

+        modelMap.put(NormalExcelConstants.DATA_LIST, cardList);//设置值

+        modelMap.put(NormalExcelConstants.PARAMS, params);//设置属性

+        modelMap.put(NormalExcelConstants.CLASS, TDoorcardlstInfo.class);

+        modelMap.put(NormalExcelConstants.FILE_NAME, "下发设备名单");

+        PoiBaseView.render(modelMap, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);

+

+    }

+

+    /**

+     * 重新下发名单

+     * @param request

+     * @param tDoorcardlstInfos

+     * @return

+     */

+    @ResponseBody

+    @RequestMapping(value = "/reSaveDoorCardList", method = {RequestMethod.POST})

+    public Map reSaveDoorCardList(HttpServletRequest request,

+                                     @RequestBody TDoorcardlstInfo[] tDoorcardlstInfos){

+        Map map = new HashMap();

+        String msg = "";

+        try {

+            List<Long> listIds = new ArrayList<>();

+            for (TDoorcardlstInfo tDoorcardlstInfo:tDoorcardlstInfos){

+                listIds.add(Long.valueOf(tDoorcardlstInfo.getListid()));

+            }

+            webInterfaceService.updateDoorcardlstToNoWithIds(listIds);

+            RedisUtil.incr("zcard_max_version");

+            map.put("result","重新下发设备名单成功!");

+        }catch (Exception e){

+            e.printStackTrace();

+            map.put("result","重新下发设备名单失败!");

+            msg = "重新下发设备名单异常";

+            logger.error("重定向出错:"+e.getMessage());

+        }

+        map.put("msg",msg);

+        return map;

+    }

+}

diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
index cfcbeea..c5c4872 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
@@ -51,6 +51,8 @@
   @Transient
   private String roleids;
 
+  private TOperator father;
+
   @Transient
   private Collection<? extends GrantedAuthority> authorities;  //权限
 
@@ -210,4 +212,14 @@
   public void setRoleids(String roleids) {
     this.roleids = roleids;
   }
+
+  @ManyToOne(fetch = FetchType.EAGER)
+  @JoinColumn(name = "foperid")
+  public TOperator getFather() {
+    return father;
+  }
+
+  public void setFather(TOperator father) {
+    this.father = father;
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
index 9d44ea9..33c2ecb 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
@@ -133,4 +133,17 @@
   }
 
 
+  public static String intOrLikeIntListTransToStr(List list) {
+    StringBuffer buf = new StringBuffer(" ( ");
+    for (int i = 0; i < list.size(); i++) {
+      buf.append(list.get(i));
+      if (i == list.size() - 1) {
+        buf.append(")");
+      } else {
+        buf.append(",");
+      }
+    }
+    return buf.toString();
+  }
+
 }
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/bean/TDoorcardlstInfo.java b/src/main/java/com/supwisdom/dlpay/mainservice/bean/TDoorcardlstInfo.java
new file mode 100644
index 0000000..7e0d970
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/bean/TDoorcardlstInfo.java
@@ -0,0 +1,228 @@
+package com.supwisdom.dlpay.mainservice.bean;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+@Entity
+public class TDoorcardlstInfo implements Serializable {
+
+    @Id
+    private String listid;
+
+    private String factoryId;
+    @Excel(name = "厂商")
+    private String factoryName;
+    @Excel(name = "设备名称", width = 15)
+    private String doorName;
+    @Excel(name = "姓名", width = 15)
+    private String custName;
+    @Excel(name = "分配操作员", width = 15)
+    private String operName;
+    @Excel(name = "学/工号", width = 15)
+    private String stuempNo;
+    @Excel(name = "楼栋", width = 15)
+    private String buildingName;
+    @Excel(name = "区域",width = 15)
+    private String regionName;
+    @Excel(name = "名单状态")
+    private String syncStatus;
+    private String operFlagIndex;
+    @Excel(name = "操作标记")
+    private String operFlag;
+    @Excel(name = "分配时间", databaseFormat = "yyyy-MM-dd", width = 20)
+    private String allocatTime;
+    @Excel(name = "同步时间", databaseFormat = "yyyy-MM-dd", width = 20)
+    private String syncTime;
+    @Excel(name = "反馈时间", databaseFormat = "yyyy-MM-dd", width = 20)
+    private String feedbackTime;
+    @Excel(name = "反馈信息", width = 15)
+    private String retmsg;
+    @Excel(name = "名单备注", width = 15)
+    private String reason;
+    @Excel(name = "设备使用类型", width = 15)
+    private String usetype;
+    private String closedate;
+
+    public String getRetmsg() {
+        return retmsg;
+    }
+
+    public void setRetmsg(String retmsg) {
+        this.retmsg = retmsg;
+    }
+
+    public String getClosedate() {
+        return closedate;
+    }
+
+    public void setClosedate(String closedate) {
+        this.closedate = closedate;
+    }
+
+    public String getOperFlagIndex() {
+        return operFlagIndex;
+    }
+
+    public void setOperFlagIndex(String operFlagIndex) {
+        this.operFlagIndex = operFlagIndex;
+    }
+
+    public String getListid() {
+        return listid;
+    }
+
+    public void setListid(String listid) {
+        this.listid = listid;
+    }
+
+    public String getFactoryId() {
+        return factoryId;
+    }
+
+    public void setFactoryId(String factoryId) {
+        this.factoryId = factoryId;
+    }
+
+    public String getFactoryName() {
+        return factoryName;
+    }
+
+    public void setFactoryName(String factoryName) {
+        this.factoryName = factoryName;
+    }
+
+    public String getDoorName() {
+        return doorName;
+    }
+
+    public void setDoorName(String doorName) {
+        this.doorName = doorName;
+    }
+
+    public String getCustName() {
+        return custName;
+    }
+
+    public void setCustName(String custName) {
+        this.custName = custName;
+    }
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public String getStuempNo() {
+        return stuempNo;
+    }
+
+    public void setStuempNo(String stuempNo) {
+        this.stuempNo = stuempNo;
+    }
+
+    public String getBuildingName() {
+        return buildingName;
+    }
+
+    public void setBuildingName(String buildingName) {
+        this.buildingName = buildingName;
+    }
+
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
+    public String getSyncStatus() {
+        return syncStatus;
+    }
+
+    public void setSyncStatus(String syncStatus) {
+        this.syncStatus = syncStatus;
+    }
+
+    public String getOperFlag() {
+        return operFlag;
+    }
+
+    public void setOperFlag(String operFlag) {
+        this.operFlag = operFlag;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+    /*public String getTimeName() {
+            return timeName;
+        }
+        public void setTimeName(String timeName) {
+            this.timeName = timeName;
+        }*/
+
+    public String getUsetype() {
+        return usetype;
+    }
+
+    public void setUsetype(String usetype) {
+        this.usetype = usetype;
+    }
+
+    public String getAllocatTime() {
+        return allocatTime;
+    }
+
+    public void setAllocatTime(String allocatTime) {
+        this.allocatTime = allocatTime;
+    }
+
+    public String getSyncTime() {
+        return syncTime;
+    }
+
+    public void setSyncTime(String syncTime) {
+        this.syncTime = syncTime;
+    }
+
+    public String getFeedbackTime() {
+        return feedbackTime;
+    }
+
+    public void setFeedbackTime(String feedbackTime) {
+        this.feedbackTime = feedbackTime;
+    }
+
+    public TDoorcardlstInfo(String listid, String factoryId, String factoryName, String doorName, String custName, String operName, String stuempNo, String buildingName, String regionName, String syncStatus, String operFlagIndex, String operFlag, String allocatTime, String syncTime, String feedbackTime, String retmsg, String reason, String usetype, String closedate) {
+        this.listid = listid;
+        this.factoryId = factoryId;
+        this.factoryName = factoryName;
+        this.doorName = doorName;
+        this.custName = custName;
+        this.operName = operName;
+        this.stuempNo = stuempNo;
+        this.buildingName = buildingName;
+        this.regionName = regionName;
+        this.syncStatus = syncStatus;
+        this.operFlagIndex = operFlagIndex;
+        this.operFlag = operFlag;
+        this.allocatTime = allocatTime;
+        this.syncTime = syncTime;
+        this.feedbackTime = feedbackTime;
+        this.retmsg = retmsg;
+        this.reason = reason;
+        this.usetype = usetype;
+        this.closedate = closedate;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/bean/TDoordtlInfo.java b/src/main/java/com/supwisdom/dlpay/mainservice/bean/TDoordtlInfo.java
new file mode 100644
index 0000000..b49a994
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/bean/TDoordtlInfo.java
@@ -0,0 +1,114 @@
+package com.supwisdom.dlpay.mainservice.bean;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+public class TDoordtlInfo implements Serializable{
+	@Excel(name = "厂商名称")
+	private String factoryname;
+	@Excel(name = "设备编号")
+	private String doorid;
+	@Excel(name = "设备名称")
+	private String doorname;
+	@Excel(name = "学/工号",width = 20)
+	private String stuempno;
+	@Excel(name = "姓名")
+	private String custname;
+	@Excel(name = "楼栋",width = 30)
+	private String buildingname;
+	@Excel(name = "区域",width = 30)
+	private String regionname;
+	@Excel(name = "物理卡号")
+	private String cardphyid;
+	@Excel(name = "刷卡时间",databaseFormat = "yyyy-MM-dd",width = 20)
+	private String transdate;
+	@Excel(name = "描述")
+	private String dtldesc;
+	@Excel(name = "流水状态")
+	private String status;
+	@Excel(name = "采集时间",databaseFormat = "yyyy-MM-dd",width = 20)
+	private String coldate;
+
+	public String getDoorid() {
+		return doorid;
+	}
+
+	public String getCardphyid() {
+		return cardphyid;
+	}
+
+	public void setCardphyid(String cardphyid) {
+		this.cardphyid = cardphyid;
+	}
+
+	public void setDoorid(String doorid) {
+		this.doorid = doorid;
+	}
+
+	public String getDtldesc() {
+		return dtldesc;
+	}
+	public void setDtldesc(String dtldesc) {
+		this.dtldesc = dtldesc;
+	}
+	public String getFactoryname() {
+		return factoryname;
+	}
+	public void setFactoryname(String factoryname) {
+		this.factoryname = factoryname;
+	}
+	public String getDoorname() {
+		return doorname;
+	}
+	public void setDoorname(String doorname) {
+		this.doorname = doorname;
+	}
+	public String getStuempno() {
+		return stuempno;
+	}
+	public void setStuempno(String stuempno) {
+		this.stuempno = stuempno;
+	}
+	public String getCustname() {
+		return custname;
+	}
+	public void setCustname(String custname) {
+		this.custname = custname;
+	}
+
+	public String getBuildingname() {
+		return buildingname;
+	}
+
+	public void setBuildingname(String buildingname) {
+		this.buildingname = buildingname;
+	}
+
+	public String getRegionname() {
+		return regionname;
+	}
+
+	public void setRegionname(String regionname) {
+		this.regionname = regionname;
+	}
+
+	public String getTransdate() {
+		return transdate;
+	}
+	public void setTransdate(String transdate) {
+		this.transdate = transdate;
+	}
+	public String getStatus() {
+		return status;
+	}
+	public void setStatus(String status) {
+		this.status = status;
+	}
+	public String getColdate() {
+		return coldate;
+	}
+	public void setColdate(String coldate) {
+		this.coldate = coldate;
+	}
+}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java
new file mode 100644
index 0000000..941cdb9
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/CardListDao.java
@@ -0,0 +1,17 @@
+package com.supwisdom.dlpay.mainservice.dao;

+

+import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;

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

+

+import java.util.List;

+

+public interface CardListDao {

+

+    public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,

+                                             String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String building, int pageNo, int pageSize);

+

+    public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,

+                                                    String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String building);

+

+    public void updateDoorcardlstToNoWithIds(List<Long> listIds);

+}

diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/KeyDao.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/KeyDao.java
new file mode 100644
index 0000000..a67bed9
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/KeyDao.java
@@ -0,0 +1,9 @@
+package com.supwisdom.dlpay.mainservice.dao;

+

+import com.supwisdom.dlpay.mainservice.domain.TKey;

+

+import java.util.List;

+

+public interface KeyDao {

+    public List<TKey> getAllKeys() throws Exception;

+}

diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
new file mode 100644
index 0000000..722afdd
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CardListDaoImpl.java
@@ -0,0 +1,421 @@
+package com.supwisdom.dlpay.mainservice.dao.impl;

+

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

+import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;

+import com.supwisdom.dlpay.mainservice.dao.CardListDao;

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

+import com.supwisdom.dlpay.util.RedisUtil;

+import org.springframework.stereotype.Repository;

+import org.springframework.transaction.annotation.Transactional;

+

+import javax.persistence.EntityManager;

+import javax.persistence.NamedNativeQuery;

+import javax.persistence.PersistenceContext;

+import javax.persistence.Query;

+import java.text.SimpleDateFormat;

+import java.util.Date;

+import java.util.List;

+

+@Repository

+public class CardListDaoImpl implements CardListDao {

+

+    @PersistenceContext

+    EntityManager entityManager;

+

+    @Transactional

+    @Override

+    public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus,List<String> opername, String operFlag, String building, int pageNo, int pageSize) {

+        try {

+

+            String queryString = "select a.listid, a.factoryId,d.doorName,a.custName,g.operName,a.stuempNo," +

+                    "a.syncStatus,a.operFlag operFlagIndex,a.updatetime allocatTime,a.syncTime,a.closedate," +

+                    "b.updatetime feedbackTime,b.retmsg,a.reason ,a.buildingName,f.regionName" +

+                    " from t_doorcardlst a left join t_rtnresult b on a.listid=b.listid " +

+                    " left join tb_region f on a.regionid=f.regionid " +

+                    " left join t_doordev d on a.deviceid=d.doorid" +

+                    " left join tb_operator g on a.operid=g.operid" +

+                    " where 1>0 " +

+                    "  and (a.operid in (:operids ) " +

+                    " or a.deviceid in (select deviceid from T_OPERDEVICE o where o.operid in(:operids)))";

+            if (!"".equals(allocatStartDate)) {

+                queryString += " and a.updatetime>=:allocatStartDate ";

+            }

+            if (!"".equals(allocatEndDate)) {

+                queryString += " and a.updatetime<=:allocatEndDate ";

+            }

+            if (!("all").equals(syncStatus)) {

+                queryString += " and a.syncstatus =:syncStatus";

+            }

+            if (!("all").equals(factoryId)) {

+                queryString += " and a.factoryid =:factoryId";

+            }

+            if (!("").equals(doorName)) {

+                queryString += " and d.doorname like :doorName";

+            }

+            if (!("all").equals(operFlag)) {

+                queryString += " and a.operFlag =:operFlag";

+            }

+            if (!("").equals(building)) {

+                queryString += " and a.buildingid =:building ";

+            }

+            if (!("").equals(custName)) {

+                queryString += " and a.custname like :custName";

+            }

+            if (!("").equals(stuempNo)) {

+                queryString += " and a.stuempno like :stuempNo";

+            }

+            queryString += " ORDER by a.listid DESC";

+

+            Query query = entityManager.createNativeQuery(queryString, TDoorcardlstInfo.class);

+

+            if (!"".equals(allocatStartDate)) {

+                query.setParameter("allocatStartDate", allocatStartDate + "000000");

+            }

+            if (!"".equals(allocatEndDate)) {

+                query.setParameter("allocatEndDate", allocatEndDate + "235959");

+            }

+

+

+            query.setParameter("operids", opername);

+            if (!("all").equals(syncStatus)) {

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

+            }

+            if (!("all").equals(factoryId)) {

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

+            }

+            if (!("").equals(doorName)) {

+                query.setParameter("doorName", "%" + doorName + "%");

+            }

+            if (!("all").equals(operFlag)) {

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

+            }

+            if (!("").equals(building)) {

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

+            }

+            if (!("").equals(custName)) {

+                query.setParameter("custName", "%" + custName + "%");

+            }

+            if (!("").equals(stuempNo)) {

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

+            }

+            List<TDoorcardlstInfo> tDoorcardlstInfos = query.getResultList();

+            SimpleDateFormat _ymdhms = new SimpleDateFormat("yyyyMMddHHmmss");

+            SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+            for (TDoorcardlstInfo grp : tDoorcardlstInfos) {

+                List<String> factory = RedisUtil.lrange("dict_4", 0, -1);

+                List<String> operflag = RedisUtil.lrange("dict_2", 0, -1);

+                List<String> sync = RedisUtil.lrange("dict_3", 0, -1);

+                if(operflag!= null && operflag.size()>0){

+                    String operFlagIndex = grp.getOperFlagIndex();

+                    for (String s : operflag) {

+                        String[] split = s.split("_");

+                        if (operFlagIndex.equals(split[0])){

+                            grp.setOperFlag(split[1]);

+                            break;

+                        }

+                    }

+                }

+                if(sync!= null && sync.size()>0){

+                    String syncStatus1 = grp.getSyncStatus();

+                    for (String s : sync) {

+                        String[] split = s.split("_");

+                        if (syncStatus1.equals(split[0])){

+                            grp.setSyncStatus(split[1]);

+                            break;

+                        }else {

+                            grp.setSyncStatus("");

+                        }

+                    }

+                }

+                if(factory != null && factory.size()>0){

+                    String factoryId1 = grp.getFactoryId();

+                    for (String s : factory) {

+                        String[] split = s.split("_");

+                        if (factoryId1.equals(split[0])){

+                            grp.setFactoryName(split[1]);

+                            break;

+                        }else {

+                            grp.setFactoryName("");

+                        }

+                    }

+                }else {

+                    queryString = "select a.id.dictcaption from TDictionary a where a.id.dicttype=:dicttype and a.id.dictval=:dictval";

+                    query = entityManager.createQuery(queryString);

+                    query.setParameter("dicttype", 4);

+                    query.setParameter("dictval", grp.getFactoryId());

+                    if(null != query.getSingleResult()){

+                        grp.setFactoryName(query.getSingleResult().toString());

+                    }else {

+                        grp.setFactoryName("");

+                    }

+

+                    query.setParameter("dicttype", 3);

+                    query.setParameter("dictval", grp.getSyncStatus());

+                    if(null != query.getSingleResult()) {

+                        grp.setSyncStatus(query.getSingleResult().toString());

+                    }else {

+                        grp.setSyncStatus("");

+                    }

+                    query.setParameter("dicttype", 2);

+                    if (grp.getOperFlagIndex() != null) {

+                        query.setParameter("dictval", grp.getOperFlagIndex());

+                        grp.setOperFlag(query.getSingleResult().toString());

+                    }

+                }

+

+

+                String time = grp.getAllocatTime();

+                Date date;

+                String hms = "000000";

+                if (time != null) {

+                    if (time.length() == 14) {

+                        date = _ymdhms.parse(time);

+                        grp.setAllocatTime(ymdhms.format(date));

+                    } else {

+

+                        time += hms.substring(0, 14 - time.length());

+                        date = _ymdhms.parse(time + "");

+                        grp.setAllocatTime(ymdhms.format(date));

+                    }

+

+                }

+

+                time = grp.getSyncTime();

+                if (time != null) {

+                    if (time.length() == 14) {

+                        date = _ymdhms.parse(time);

+                        grp.setSyncTime(ymdhms.format(date));

+                    } else {

+                        time += hms.substring(0, 14 - time.length());

+                        date = _ymdhms.parse(time);

+                        grp.setSyncTime(ymdhms.format(date));

+                    }

+

+                }

+

+                time = grp.getFeedbackTime();

+                if (time != null) {

+                    if (time.length() == 14) {

+                        date = _ymdhms.parse(time);

+                        grp.setFeedbackTime(ymdhms.format(date));

+                    } else {

+                        time += hms.substring(0, 14 - time.length());

+                        date = _ymdhms.parse(time);

+                        grp.setFeedbackTime(ymdhms.format(date));

+                    }

+                }

+

+            }

+

+            pageNo = pageNo <= 0 ? 1 : pageNo;

+            query.setFirstResult((pageNo - 1) * pageSize);

+            query.setMaxResults(pageSize);

+            Pagination page = new Pagination();

+            page.setPageNo(pageNo);

+            page.setPageSize(pageSize);

+            page.setList(tDoorcardlstInfos);

+            int totalCount = tDoorcardlstInfos.size();

+            page.setTotalCount(totalCount);

+            return page;

+        }catch (Exception e){

+            e.printStackTrace();

+        }

+        return null;

+    }

+

+    @Transactional

+    @Override

+    public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String building) {

+        try {

+            String queryString = "select a.listid, a.factoryId,d.doorName,a.custName,g.operName,a.stuempNo," +

+                    "a.syncStatus,a.operFlag operFlagIndex,a.updatetime allocatTime,a.syncTime,a.closedate," +

+                    "b.updatetime feedbackTime,b.retmsg,a.reason ,a.buildingName,f.regionName" +

+                    " from t_doorcardlst a left join t_rtnresult b on a.listid=b.listid " +

+                    " left join tb_region f on a.regionid=f.regionid " +

+                    " left join t_doordev d on a.deviceid=d.doorid" +

+                    " left join tb_operator g on a.operid=g.operid" +

+                    " where 1>0 " +

+                    "  and (a.operid in (:operids ) " +

+                    " or a.deviceid in (select deviceid from T_OPERDEVICE o where o.operid in(:operids)))";

+            if (!"".equals(allocatStartDate)) {

+                queryString += " and a.updatetime>=:allocatStartDate ";

+            }

+            if (!"".equals(allocatEndDate)) {

+                queryString += " and a.updatetime<=:allocatEndDate ";

+            }

+            if (!("all").equals(syncStatus)) {

+                queryString += " and a.syncstatus =:syncStatus";

+            }

+            if (!("all").equals(factoryId)) {

+                queryString += " and a.factoryid =:factoryId";

+            }

+            if (!("").equals(doorName)) {

+                queryString += " and d.doorname like :doorName";

+            }

+            if (!("all").equals(operFlag)) {

+                queryString += " and a.operFlag =:operFlag";

+            }

+            if (!("").equals(building)) {

+                queryString += " and a.buildingid =:building";

+            }

+            if (!("").equals(custName)) {

+                queryString += " and a.custname like :custName";

+            }

+            if (!("").equals(stuempNo)) {

+                queryString += " and a.stuempno like :stuempNo";

+            }

+            queryString += " order by a.listid DESC";

+

+            Query query = entityManager.createNativeQuery(queryString, TDoorcardlstInfo.class);

+            if (!"".equals(allocatStartDate)) {

+                query.setParameter("allocatStartDate", allocatStartDate + "000000");

+            }

+            if (!"".equals(allocatEndDate)) {

+                query.setParameter("allocatEndDate", allocatEndDate + "235959");

+            }

+

+

+            query.setParameter("operids", opername);

+            if (!("all").equals(syncStatus)) {

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

+            }

+            if (!("all").equals(factoryId)) {

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

+            }

+            if (!("").equals(doorName)) {

+                query.setParameter("doorName", "%" + doorName + "%");

+            }

+            if (!("all").equals(operFlag)) {

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

+            }

+            if (!("").equals(building)) {

+                query.setParameter("buildingid", building);

+            }

+            if (!("").equals(custName)) {

+                query.setParameter("custName", "%" + custName + "%");

+            }

+            if (!("").equals(stuempNo)) {

+                query.setParameter("stuempNo", "%" + stuempNo + "%");

+            }

+

+            List<TDoorcardlstInfo> tDoorcardlstInfos = query.getResultList();

+            SimpleDateFormat _ymdhms = new SimpleDateFormat("yyyyMMddHHmmss");

+            SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+            for (TDoorcardlstInfo grp : tDoorcardlstInfos) {

+                List<String> factory = RedisUtil.lrange("dict_4", 0, -1);

+                List<String> operflag = RedisUtil.lrange("dict_2", 0, -1);

+                List<String> sync = RedisUtil.lrange("dict_3", 0, -1);

+                if(operflag!= null && operflag.size()>0){

+                    String operFlagIndex = grp.getOperFlagIndex();

+                    for (String s : operflag) {

+                        String[] split = s.split("_");

+                        if (operFlagIndex.equals(split[0])){

+                            grp.setOperFlag(split[1]);

+                            break;

+                        }

+                    }

+                }

+                if(sync!= null && sync.size()>0){

+                    String syncStatus1 = grp.getSyncStatus();

+                    for (String s : sync) {

+                        String[] split = s.split("_");

+                        if (syncStatus1.equals(split[0])){

+                            grp.setSyncStatus(split[1]);

+                            break;

+                        }else {

+                            grp.setSyncStatus("");

+                        }

+                    }

+                }

+                if(factory != null && factory.size()>0){

+                    String factoryId1 = grp.getFactoryId();

+                    for (String s : factory) {

+                        String[] split = s.split("_");

+                        if (factoryId1.equals(split[0])){

+                            grp.setFactoryName(split[1]);

+                            break;

+                        }else {

+                            grp.setFactoryName("");

+                        }

+                    }

+                }else {

+                    queryString = "select a.id.dictcaption from TDictionary a where a.id.dicttype=:dicttype and a.id.dictval=:dictval";

+                    query = entityManager.createQuery(queryString);

+                    query.setParameter("dicttype", 4);

+                    query.setParameter("dictval", grp.getFactoryId());

+                    if(null != query.getSingleResult()){

+                        grp.setFactoryName(query.getSingleResult().toString());

+                    }else {

+                        grp.setFactoryName("");

+                    }

+

+                    query.setParameter("dicttype", 3);

+                    query.setParameter("dictval", grp.getSyncStatus());

+                    if(null != query.getSingleResult()) {

+                        grp.setSyncStatus(query.getSingleResult().toString());

+                    }else {

+                        grp.setSyncStatus("");

+                    }

+                    query.setParameter("dicttype", 2);

+                    if (grp.getOperFlagIndex() != null) {

+                        query.setParameter("dictval", grp.getOperFlagIndex());

+                        grp.setOperFlag(query.getSingleResult().toString());

+                    }

+                }

+

+                String time = grp.getAllocatTime();

+                Date date;

+                String hms = "000000";

+                if (time != null) {

+                    if (time.length() == 14) {

+                        date = _ymdhms.parse(time);

+                        grp.setAllocatTime(ymdhms.format(date));

+                    } else {

+

+                        time += hms.substring(0, 14 - time.length());

+                        date = _ymdhms.parse(time + "");

+                        grp.setAllocatTime(ymdhms.format(date));

+                    }

+

+                }

+

+                time = grp.getSyncTime();

+                if (time != null) {

+                    if (time.length() == 14) {

+                        date = _ymdhms.parse(time);

+                        grp.setSyncTime(ymdhms.format(date));

+                    } else {

+                        time += hms.substring(0, 14 - time.length());

+                        date = _ymdhms.parse(time);

+                        grp.setSyncTime(ymdhms.format(date));

+                    }

+

+                }

+

+                time = grp.getFeedbackTime();

+                if (time != null) {

+                    if (time.length() == 14) {

+                        date = _ymdhms.parse(time);

+                        grp.setFeedbackTime(ymdhms.format(date));

+                    } else {

+                        time += hms.substring(0, 14 - time.length());

+                        date = _ymdhms.parse(time);

+                        grp.setFeedbackTime(ymdhms.format(date));

+                    }

+                }

+            }

+            return tDoorcardlstInfos;

+        }catch (Exception e){

+            e.printStackTrace();

+        }

+        return null;

+    }

+

+    @Transactional

+    @Override

+    public void updateDoorcardlstToNoWithIds(List<Long> listIds) {

+        String sql = "update T_DOORCARDLST set version = version+1,syncstatus='0',SYNCTIME='', UPDATETIME=to_char(current_timestamp, 'YYYYMMDDHH24MISS') where listid in " + StringUtil.intOrLikeIntListTransToStr(listIds);

+        Query query = entityManager.createNativeQuery(sql);

+        query.executeUpdate();

+    }

+}

diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/KeyDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/KeyDaoImpl.java
new file mode 100644
index 0000000..789dfb3
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/KeyDaoImpl.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.mainservice.dao.impl;

+

+import com.supwisdom.dlpay.mainservice.dao.KeyDao;

+import com.supwisdom.dlpay.mainservice.domain.TKey;

+import org.springframework.stereotype.Repository;

+import org.springframework.transaction.annotation.Transactional;

+

+import javax.persistence.EntityManager;

+import javax.persistence.PersistenceContext;

+import javax.persistence.TypedQuery;

+import java.util.List;

+

+@Repository

+public class KeyDaoImpl implements KeyDao {

+

+    @PersistenceContext

+    EntityManager entityManager;

+

+    @Transactional

+    @Override

+    public List<TKey> getAllKeys() throws Exception {

+        String sql = "select bean from TKey bean order by bean.factoryid desc";

+        TypedQuery<TKey> query = entityManager.createQuery(sql, TKey.class);

+        return query.getResultList();

+    }

+}

diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/domain/TKey.java b/src/main/java/com/supwisdom/dlpay/mainservice/domain/TKey.java
new file mode 100644
index 0000000..319a24e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/domain/TKey.java
@@ -0,0 +1,75 @@
+package com.supwisdom.dlpay.mainservice.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Author. jov
+ * Date. 14-12-16
+ * Describtion.
+ */
+@Entity
+@Table(name = "T_KEYS")
+public class TKey {
+    private String factoryid;
+    private String keyval;
+    private String ip;
+    private String factoryname;
+    private String queueflag;
+    
+    public TKey() {
+    }
+
+    public TKey(String factoryid, String keyval) {
+        this.factoryid = factoryid;
+        this.keyval = keyval;
+    }
+
+    @Id
+    @Column(name = "FACTORYID", nullable = false, length = 9)
+    public String getFactoryid() {
+        return factoryid;
+    }
+
+    public void setFactoryid(String factoryid) {
+        this.factoryid = factoryid;
+    }
+
+    @Column(name = "KEYVAL", length = 32)
+    public String getKeyval() {
+        return keyval;
+    }
+
+    public void setKeyval(String keyval) {
+        this.keyval = keyval;
+    }
+
+    @Column(name = "IP", length = 120)
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+    @Column(name = "FACTORYNAME", length = 150)
+    public String getFactoryname() {
+		return this.factoryname;
+	}
+
+	public void setFactoryname(String factoryname) {
+		this.factoryname = factoryname;
+	}
+	
+	@Column(name = "QUEUEFLAG", length = 12)
+	public String getQueueflag() {
+		return this.queueflag;
+	}
+
+	public void setQueueflag(String queueflag) {
+		this.queueflag = queueflag;
+	}
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java b/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
new file mode 100644
index 0000000..e7955a3
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/service/WebInterfaceService.java
@@ -0,0 +1,24 @@
+package com.supwisdom.dlpay.mainservice.service;

+

+import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;

+import com.supwisdom.dlpay.mainservice.domain.TKey;

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

+

+import java.util.List;

+

+public interface WebInterfaceService {

+

+    //获取所有厂商

+    public List<TKey> getAllKeys() throws Exception;

+

+    //根据查询条件分页获取流水

+    public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate,

+                                             String doorName, String custName, String stuempNo, String syncStatus, List<String> opername,String operFlag, String building, int pageNo, int pageSize);

+

+    //根据查询条件获取导出表单信息

+    public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate,

+                                                    String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String building);

+

+    //根据名单编号将已同步的名单修改为未同步使其重新同步

+    public void updateDoorcardlstToNoWithIds (List<Long> listIds);

+}

diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
new file mode 100644
index 0000000..f9f4633
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
@@ -0,0 +1,40 @@
+package com.supwisdom.dlpay.mainservice.service.impl;

+

+import com.supwisdom.dlpay.mainservice.bean.TDoorcardlstInfo;

+import com.supwisdom.dlpay.mainservice.dao.CardListDao;

+import com.supwisdom.dlpay.mainservice.dao.KeyDao;

+import com.supwisdom.dlpay.mainservice.domain.TKey;

+import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;

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

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

+import org.springframework.stereotype.Service;

+

+import java.util.List;

+

+@Service

+public class WebInterfaceServiceImpl implements WebInterfaceService {

+    @Autowired

+    KeyDao keyDao;

+    @Autowired

+    CardListDao cardListDao;

+

+    @Override

+    public List<TKey> getAllKeys() throws Exception {

+        return keyDao.getAllKeys();

+    }

+

+    @Override

+    public Pagination getAllCardListFrSearch(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String building, int pageNo, int pageSize) {

+        return cardListDao.getAllCardListFrSearch(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, opername, operFlag, building, pageNo, pageSize);

+    }

+

+    @Override

+    public List<TDoorcardlstInfo> getAllCardListMap(String factoryId, String allocatStartDate, String allocatEndDate, String doorName, String custName, String stuempNo, String syncStatus, List<String> opername, String operFlag, String building) {

+        return cardListDao.getAllCardListMap(factoryId, allocatStartDate, allocatEndDate, doorName, custName, stuempNo, syncStatus, opername, operFlag, building);

+    }

+

+    @Override

+    public void updateDoorcardlstToNoWithIds(List<Long> listIds) {

+        cardListDao.updateDoorcardlstToNoWithIds(listIds);

+    }

+}

diff --git a/src/main/java/com/supwisdom/dlpay/query/controller/QueryController.java b/src/main/java/com/supwisdom/dlpay/query/controller/QueryController.java
new file mode 100644
index 0000000..413fd5b
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/query/controller/QueryController.java
@@ -0,0 +1,7 @@
+package com.supwisdom.dlpay.query.controller;

+

+import org.springframework.stereotype.Controller;

+

+@Controller("/query")

+public class QueryController {

+}

diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
index bbd7a5c..a08eece 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
@@ -28,7 +28,7 @@
     }
 
     @GetMapping("/function/list")
-    @PreAuthorize("hasPermission('/function/index','')")
+    //@PreAuthorize("hasPermission('/function/index','')")
     @ResponseBody
     public PageResult<TFunction> getDataList(@RequestParam("page") Integer pageNo,
                                              @RequestParam("limit") Integer pageSize,
@@ -48,13 +48,13 @@
     }
 
     @GetMapping("/function/loadadd")
-    @PreAuthorize("hasPermission('/function/loadadd','')")
+    //@PreAuthorize("hasPermission('/function/loadadd','')")
     public String loadadd() {
         return "system/function/form";
     }
 
     @PostMapping("/function/add")
-    @PreAuthorize("hasPermission('/function/add','')")
+    //@PreAuthorize("hasPermission('/function/add','')")
     @ResponseBody
     public JsonResult add(@RequestBody TFunction function) {
         if (function != null) {
@@ -64,7 +64,7 @@
         }
     }
     @PostMapping("/function/delfunc")
-    @PreAuthorize("hasPermission('/function/delfunc','')")
+    //@PreAuthorize("hasPermission('/function/delfunc','')")
     @ResponseBody
     public JsonResult delfunc(@RequestParam Integer funcid) {
         return functionService.deleteFunction(funcid);
@@ -83,7 +83,7 @@
     }
 
     @GetMapping("/function/loadsubadd")
-    @PreAuthorize("hasPermission('/function/loadsubadd','')")
+    //@PreAuthorize("hasPermission('/function/loadsubadd','')")
     public String loadsubadd(Model model) {
         List<TFunction> functionList = functionService.getParentFunction();
         model.addAttribute("list", functionList);
@@ -91,7 +91,7 @@
     }
 
     @GetMapping("/function/loadres")
-    @PreAuthorize("hasPermission('/function/loadres','')")
+    //@PreAuthorize("hasPermission('/function/loadres','')")
     public String loadres(@RequestParam Integer functionid, Model model) {
         TFunction function = functionService.getFunctionById(functionid);
         List<TResource> resources = functionService.getResources(functionid);
@@ -100,7 +100,7 @@
         return "system/function/reslist";
     }
     @GetMapping("/function/reslist")
-    @PreAuthorize("hasPermission('/function/loadres','')")
+    //@PreAuthorize("hasPermission('/function/loadres','')")
     @ResponseBody
     public PageResult<TResource> reslist(@RequestParam Integer functionid, Model model) {
         List<TResource> resources = functionService.getResources(functionid);
@@ -114,7 +114,7 @@
     }
 
     @PostMapping("/function/addres")
-    @PreAuthorize("hasPermission('/function/addres','')")
+    //@PreAuthorize("hasPermission('/function/addres','')")
     @ResponseBody
     public JsonResult addres(@RequestBody TResource resource) {
         if (resource != null) {
@@ -130,7 +130,7 @@
         return "system/function/resform";
     }
     @PostMapping("/function/delres")
-    @PreAuthorize("hasPermission('/function/delres','')")
+    //@PreAuthorize("hasPermission('/function/delres','')")
     @ResponseBody
     public JsonResult delres(@RequestParam Integer resid) {
         return functionService.deleteResource(resid);
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
index dc0ef57..b1599d1 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
@@ -31,7 +31,7 @@
     private RoleService roleService;
 
     @GetMapping("/index")
-    @PreAuthorize("hasPermission('/operator/index','')")
+    //@PreAuthorize("hasPermission('/operator/index','')")
     public String indexView(Model model) {
         return "system/operator/index";
     }
@@ -64,7 +64,7 @@
     }
 
     @GetMapping("/load4add")
-    @PreAuthorize("hasPermission('/operator/load4add','')")
+    //@PreAuthorize("hasPermission('/operator/load4add','')")
     public String load4addOperator(Model model) {
         model.addAttribute("roles", roleService.findAllRoles());
         return "system/operator/operator";
@@ -90,7 +90,7 @@
     }
 
     @PostMapping("/add")
-    @PreAuthorize("hasPermission('/operator/add','')")
+    //@PreAuthorize("hasPermission('/operator/add','')")
     @ResponseBody
     public JsonResult add(@RequestParam("operid") String operid, @RequestParam("opercode") String opercode,
                           @RequestParam("opername") String opername, @RequestParam("sex") String sex,
@@ -115,7 +115,7 @@
     }
 
     @PostMapping("/resetpwd")
-    @PreAuthorize("hasPermission('/operator/resetpwd','')")
+    //@PreAuthorize("hasPermission('/operator/resetpwd','')")
     @ResponseBody
     public JsonResult resetpwd(@RequestParam("operid") String operid) {
         if (operatorService.resetPwd(operid)) {
@@ -126,7 +126,7 @@
     }
 
     @PostMapping("/updatestate")
-    @PreAuthorize("hasPermission('/operator/updatestate','')")
+    //@PreAuthorize("hasPermission('/operator/updatestate','')")
     @ResponseBody
     public JsonResult updatestate(@RequestParam("operid") String operid, @RequestParam("state") String state) {
         if (operatorService.updateState(operid, state)) {
@@ -142,7 +142,7 @@
     }
 
     @GetMapping("/logslist")
-    @PreAuthorize("hasPermission('/operator/logslist','')")
+    //@PreAuthorize("hasPermission('/operator/logslist','')")
     @ResponseBody
     public PageResult<TOperLog> logslist(@RequestParam("page") Integer pageNo,
                                          @RequestParam("limit") Integer pageSize,
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java b/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
index 48d2bfc..12b7613 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
@@ -29,21 +29,6 @@
         return "system/role/index";
     }
 
-    @RequestMapping("/doorlistMgr/downDoorList")
-    public String downDoorList(ModelMap model){
-        return "doorlist/addDoorlist";
-    }
-
-    @RequestMapping("/doorlistMgr/deleteDoorList")
-    public String deleteDoorList(ModelMap model){
-        return "doorlist/deleteDoorlist";
-    }
-
-    @RequestMapping("/doorlistMgr/searchDoorlist")
-    public String searchDoorlist(ModelMap model){
-        return "doorlist/searchDoorlist";
-    }
-
     @RequestMapping("/query/tdoorstream")
     public String tdoorstream(ModelMap model){
         return "query/tdoorstream";
@@ -54,7 +39,7 @@
 
 
     @GetMapping("/role/list")
-    @PreAuthorize("hasPermission('/role/index','')")
+    //@PreAuthorize("hasPermission('/role/index','')")
     @ResponseBody
     public PageResult<TRole> getDataList(@RequestParam("page") Integer pageNo,
                                          @RequestParam("limit") Integer pageSize,
@@ -79,7 +64,7 @@
     }
 
     @PostMapping("/role/add")
-    @PreAuthorize("hasPermission('/role/add','')")
+    //@PreAuthorize("hasPermission('/role/add','')")
     @ResponseBody
     public JsonResult add(@RequestBody TRole role) {
         if (role != null) {
@@ -90,13 +75,13 @@
     }
 
     @GetMapping("/role/loadfunc")
-    @PreAuthorize("hasPermission('/role/loadfunc','')")
+    //@PreAuthorize("hasPermission('/role/loadfunc','')")
     public String loadfunc() {
         return "system/role/func";
     }
 
     @PostMapping("/role/addfunc")
-    @PreAuthorize("hasPermission('/role/addfunc','')")
+    //@PreAuthorize("hasPermission('/role/addfunc','')")
     @ResponseBody
     public JsonResult addfunc(@RequestParam String roleId,
                               @RequestParam String funcs) {
@@ -112,7 +97,7 @@
         return result;
     }
     @PostMapping("/role/del")
-    @PreAuthorize("hasPermission('/role/del','')")
+    //@PreAuthorize("hasPermission('/role/del','')")
     @ResponseBody
     public JsonResult del(@RequestParam String  roleid) {
         return roleService.deleteRole(roleid);
diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java b/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java
new file mode 100644
index 0000000..31bf34d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/OperatorDao.java
@@ -0,0 +1,8 @@
+package com.supwisdom.dlpay.system.dao;

+

+import java.util.List;

+

+public interface OperatorDao {

+

+    public List<String> findOperatorsByFopercode(String operid);

+}

diff --git a/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java b/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java
new file mode 100644
index 0000000..9949432
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/system/dao/impl/OperatorDaoImpl.java
@@ -0,0 +1,69 @@
+package com.supwisdom.dlpay.system.dao.impl;

+

+import com.supwisdom.dlpay.framework.domain.TOperator;

+import com.supwisdom.dlpay.system.dao.OperatorDao;

+import org.springframework.stereotype.Repository;

+import org.springframework.transaction.annotation.Transactional;

+

+import javax.persistence.EntityManager;

+import javax.persistence.PersistenceContext;

+import javax.persistence.Query;

+import javax.persistence.TypedQuery;

+import java.util.ArrayList;

+import java.util.List;

+

+@Repository

+public class OperatorDaoImpl implements OperatorDao {

+

+    @PersistenceContext

+    EntityManager entityManager;

+

+    @Transactional

+    @Override

+    public List<String> findOperatorsByFopercode(String operid) {

+        try{

+            String sql = "select bean from TOperator bean where bean.status='0' and bean.father.opercode =?1 ";

+            TypedQuery<TOperator> query = entityManager.createQuery(sql, TOperator.class);

+            query.setParameter(1, operid);

+            List<TOperator> tOperators = new ArrayList<TOperator>();

+            tOperators.addAll(query.getResultList());

+            List<String> allopercode = new ArrayList<String>();

+            if(tOperators != null && tOperators.size() > 0){

+                for(TOperator grp:tOperators){

+                    allopercode.add(grp.getOpercode());

+                }

+                boolean index = false;

+                List<TOperator> lstsons = new ArrayList<TOperator>();

+                List<TOperator> lstson = new ArrayList<TOperator>();

+                lstson.addAll(tOperators);

+                while(lstson != null && lstson.size() > 0){

+                    if(index){

+                        for(TOperator grp:lstson){

+                            allopercode.add(grp.getOpercode());

+                        }

+                    }

+                    index = true;

+                    if(!lstsons.isEmpty()){

+                        lstsons.clear();

+                    }

+                    for(TOperator grp:lstson){

+                        String queryString = "select bean from TOperator bean where bean.father.opercode =?1";

+                        query = entityManager.createQuery(queryString, TOperator.class);

+                        query.setParameter(1, grp.getOpercode());

+                        lstsons.addAll(query.getResultList());

+                    }

+                    if(!lstson.isEmpty()){

+                        lstson.clear();

+                    }

+                    lstson.addAll(lstsons);

+                }

+            }

+            allopercode.add(operid);

+

+            return allopercode;

+        }catch(Exception e){

+            e.printStackTrace();

+        }

+        return null;

+    }

+}

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 32155a5..24ec522 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/SystemService.java
@@ -9,16 +9,27 @@
 import java.util.List;

 

 public interface SystemService {

+

+    //根据查询条件分页查询字典

     public Pagination findDictionary(String dicttype, String dictcaption, Integer pageNo, Integer pageSize);

 

+    //获取所有字典类型

     public List<DictionaryType> findDictionaryType();

 

+    //保存字典值

     public boolean saveDictionary(String dicttype, String dicttypename, String dictval, String dictcaption);

 

+    //根据类型获取字典值

     public List<TDictionaryId> findTDictionaryByType(int type);

 

+    //根据类型和值获取字典值

     public List<TDictionaryId> findByType(int type, String dicVal);

 

+    //修改字典值

     public TDictionary updateDictionary(String dicttype, String dicttypename, String dictval, String dictcaption, String oriengaltype, String oriengalval);

 

+    //根据操作员id获取有权限的操作员

+    public List<String> findOperatorsByFopercode(String operid);

+

+

 }

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 32e4ce7..6b47410 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.system.dao.DictionaryDao;

+import com.supwisdom.dlpay.system.dao.OperatorDao;

 import com.supwisdom.dlpay.system.domain.DictionaryType;

 import com.supwisdom.dlpay.system.domain.TDictionary;

 import com.supwisdom.dlpay.system.domain.TDictionaryId;

@@ -15,6 +16,9 @@
 public class SystemServiceImpl implements SystemService {

     @Autowired

     private DictionaryDao dictionaryDao;

+    @Autowired

+    private OperatorDao operatorDao;

+

     @Override

     public Pagination findDictionary(String dicttype, String dictcaption, Integer pageNo, Integer pageSize) {

         return dictionaryDao.findDictionary(dicttype, dictcaption, pageNo, pageSize);

@@ -52,4 +56,10 @@
     public TDictionary updateDictionary(String dicttype, String dicttypename, String dictval, String dictcaption, String oriengaltype, String oriengalval) {

         return dictionaryDao.updateDictionary(dicttype, dicttypename, dictval, dictcaption, oriengaltype, oriengalval);

     }

+

+    @Override

+    public List<String> findOperatorsByFopercode(String operid) {

+        return operatorDao.findOperatorsByFopercode(operid);

+    }

+

 }

diff --git a/src/main/resources/templates/doorlist/searchDoorlist.html b/src/main/resources/templates/doorlist/searchDoorlist.html
index 0794d86..15c1d41 100644
--- a/src/main/resources/templates/doorlist/searchDoorlist.html
+++ b/src/main/resources/templates/doorlist/searchDoorlist.html
@@ -87,13 +87,13 @@
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
-                        <el-form-item label="设备类型">
-                            <el-select v-model="searchDoorForm.useType" placeholder="请选择">
+                        <el-form-item label="楼栋">
+                            <el-select v-model="searchDoorForm.building" placeholder="请选择">
                                 <el-option
-                                        v-for="usetype in useTypes"
-                                        :key="usetype.value"
-                                        :label="usetype.label"
-                                        :value="usetype.value">
+                                        v-for="building in buildings"
+                                        :key="building.value"
+                                        :label="building.label"
+                                        :value="building.value">
                                 </el-option>
                             </el-select>
                         </el-form-item>
@@ -133,6 +133,11 @@
                         width="100">
                 </el-table-column>
                 <el-table-column
+                        prop="buildingname"
+                        label="楼栋"
+                        min-width="140">
+                </el-table-column>
+                <el-table-column
                         prop="doorName"
                         label="设备名称"
                         width="180">
@@ -148,10 +153,15 @@
                         width="150">
                 </el-table-column>
                 <el-table-column
-                        prop="deptName"
-                        label="部门"
+                        prop="buildingName"
+                        label="楼栋"
                         width="180">
                 </el-table-column>
+                    <el-table-column
+                            prop="regionName"
+                            label="区域"
+                            width="130">
+                    </el-table-column>
                 <el-table-column
                         prop="closedate"
                         label="有效期"
@@ -198,12 +208,7 @@
                         label="名单备注"
                         min-width="200">
                 </el-table-column>
-                <el-table-column
-                        prop="usetype"
-                        label="设备使用类型"
-                        min-width="140"
-                        :formatter="usetypeform">
-                </el-table-column>
+
                 </el-table>
                 <div class="clearfix"></div>
                 <el-pagination
@@ -255,12 +260,12 @@
                 stuempNo: '',
                 syncStatus: '',
                 operFlag: '',
-                useType: '',
+                building: '',
             },
             factoryIds: [],
             syncStatus: [],
             operFlag: [],
-            useTypes: [],
+            buildings: [],
             selectList:[],
             dialogFormVisible: false,
             dlgAllotDevVisible: false,
@@ -296,9 +301,6 @@
             currRowChange: function (val) {
                 this.currentRow = val;
             },
-            handleRowClick: function (row, event, column) {
-                fillDialog(row);
-            },
             query: function () {
                 this.pagesize = 10;
                 this.currPage = 1;
@@ -318,19 +320,7 @@
             formatDate:function (row, column, cellValue){
                 return cellValue.substr(0,4)+"-"+cellValue.substr(4,2)+"-"+cellValue.substr(6,2);
             },
-            usetypeform: function (row, column, cellValue) {
-                if (row.usetype == 'MJ') {
-                    return '门禁';
-                } else if (row.usetype == 'TD') {
-                    return '通道';
-                } else if (row.usetype == 'KQ') {
-                    return "考勤";
-                } else if (row.usetype == 'HY') {
-                    return "会议签到";
-                } else {
-                    return row.usetype;
-                }
-            },
+
             handleSelect:function(val){
                 this.selectList=val;
             }
@@ -380,26 +370,26 @@
                             label: operDict[i]["dictcaption"]
                         })
                     }
-                    var useTypes = [];
-                    var useType = data.useTypes;
-                    useTypes.push({
-                        value: "all",
+                    var buildings = [];
+                    var building = data.buildings;
+                    buildings.push({
+                        value: "",
                         label: "全部"
                     })
-                    for (var i = 0; i < useType.length; i++) {
-                        useTypes.push({
-                            value: useType[i]["dictval"],
-                            label: useType[i]["dictcaption"]
+                    for (var i = 0; i < building.length; i++) {
+                        buildings.push({
+                            value: building[i]["buildingid"],
+                            label: building[i]["buildingname"]
                         })
                     }
                     vue.factoryIds = factoryList;
                     vue.syncStatus = syncDicts;
                     vue.operFlag = operDicts;
-                    vue.useTypes = useTypes;
+                    vue.buildings = buildings;
                     vue.searchDoorForm.factoryId = 'all';
                     vue.searchDoorForm.syncStatus = 'all';
                     vue.searchDoorForm.operFlag = 'all';
-                    vue.searchDoorForm.useType = 'all';
+                    vue.searchDoorForm.building = '';
                 }
             })
             this.searchDoorForm.allocatStartDate ='';
@@ -428,23 +418,6 @@
         return fmt;
     }
 
-    function fillDialog(rowData) {
-        if (rowData.operFlagIndex == "D") {
-            layer.msg('已删除的名单没有时间段和节假日名称!', {icon: 2, time: 1000});
-        } else {
-            var url = "/doorlistMgr/getTimeAndHolidayName.json?" + "&listid=" + rowData.listid;
-            $.get(url).success(function (data, status) {
-                if (data.alloTimeName == undefined) {
-                    layer.msg('用户认证已过期,请重新登录', {icon: 2, time: 1000});
-                    window.location = "login";
-                    return;
-                }
-                vue.alloTimeName = data.alloTimeName;
-                vue.alloHolidayName = data.alloHolidayName;
-                vue.dialogFormVisible = true;
-            });
-        }
-    }
 
     function commonQuery(_self, searchDoor, pageno, pagesize) {
         var startStr = '';
@@ -458,17 +431,23 @@
                 endStr = searchDoor.allocatEndDate.Format('yyyyMMdd');
             }
         }
-        var url = "/doorlistMgr/getAllCardList.json?" + "&allocatStartDate=" + startStr + "&allocatEndDate=" + endStr +
+        var url = "/doorlistMgr/getAllCardList?" + "&allocatStartDate=" + startStr + "&allocatEndDate=" + endStr +
             "&doorName=" + searchDoor.doorName + "&custName=" + searchDoor.custName
             + "&stuempNo=" + searchDoor.stuempNo + "&factoryId=" + searchDoor.factoryId
             + "&syncStatus=" + searchDoor.syncStatus +
             "&pageNo=" + pageno + "&pageSize=" + pagesize + "&operFlag=" + searchDoor.operFlag
-            + "&useType=" + searchDoor.useType;
+            + "&building=" + searchDoor.building;
+        var token=$("meta[name='_csrf_token']").attr("value");
         $.ajax({
             type: "POST",
             dataType: "json",
             url: encodeURI(url),
             contentType: "application/json",
+            headers: {
+                'Accept': 'application/json',
+                'Content-Type': 'application/json',
+                'X-CSRF-TOKEN':token,
+            },
             success: function (ret) {
                 if (ret.PageResult != null) {
                     _self.totSize = ret.PageResult.totalCount;
@@ -497,11 +476,11 @@
                 endStr = searchDoor.allocatEndDate.Format('yyyyMMdd');
             }
         }
-        var url = "/doorlistMgr/exportExcel.json?" + "&allocatStartDate=" + startStr + "&allocatEndDate=" + endStr +
+        var url = "/doorlistMgr/exportExcel?" + "&allocatStartDate=" + startStr + "&allocatEndDate=" + endStr +
             "&doorName=" + searchDoor.doorName + "&custName=" + searchDoor.custName
             + "&stuempNo=" + searchDoor.stuempNo + "&factoryId=" + searchDoor.factoryId
             + "&syncStatus=" + searchDoor.syncStatus + "&operFlag=" + searchDoor.operFlag
-            + "&useType=" + searchDoor.useType;
+            + "&building=" + searchDoor.building;
 //        window.location.href
         var uri = encodeURI(url);
         window.open(uri);
@@ -514,11 +493,17 @@
         }else {
             layer.confirm('确定要重新下发这些名单吗?', {icon: 3, title:'请确认',offset:'30%'},function(index){
                 var url = "/doorlistMgr/reSaveDoorCardList.json";
+                var token=$("meta[name='_csrf_token']").attr("value");
                 $.ajax({
                     type: "POST",
                     url: url,
                     dataType: "json",
                     contentType: "application/json",
+                    headers: {
+                        'Accept': 'application/json',
+                        'Content-Type': 'application/json',
+                        'X-CSRF-TOKEN':token,
+                    },
                     data:JSON.stringify(listIds) ,
                     success: function (data) {
                         layer.msg(data.result,{time:2000})
diff --git a/src/main/resources/templates/query/tdoorstream.html b/src/main/resources/templates/query/tdoorstream.html
index 3ab95b3..583ac64 100644
--- a/src/main/resources/templates/query/tdoorstream.html
+++ b/src/main/resources/templates/query/tdoorstream.html
@@ -43,11 +43,11 @@
                     </el-col>
                     <el-col :span="8">
                         <label class="control-label "
-                               style="margin-right:10px;font-size: 14px;width:80px">设备类型:</span>
+                               style="margin-right:10px;font-size: 14px;width:80px">楼栋:</span>
                         </label>
                         <el-select style="width:193px"
-                                   v-model="tdoorstream.usetype" placeholder="请选择" @change="query">
-                            <el-option v-for="item in usetypes"
+                                   v-model="tdoorstream.building" placeholder="请选择" >
+                            <el-option v-for="item in buildings"
                                        :key="item.value" :label="item.label" :value="item.value">
                             </el-option>
                         </el-select>
@@ -72,6 +72,19 @@
                             </el-option>
                         </el-select>
                     </el-col>
+
+
+                    <el-col :span="8">
+                        <label class="control-label "
+                               style="margin-right:10px;font-size: 14px;width:80px">区域:</span>
+                        </label>
+                        <el-select style="width:193px" v-model="tdoorstream.region" placeholder="请选择" >
+                            <el-option v-for="item in regions"
+                                       :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-col>
+
                     <el-col :span="8" >
                         <button type="button" class="btn btn-info" @click="query"
                                 id="qrybtn" style="margin-left:95px">查 询</button>
@@ -108,6 +121,12 @@
                             prop="transdate" label="刷卡时间" width="210" sortable :formatter="dateFormat">
                     </el-table-column>
                     <el-table-column
+                            prop="buildingname" label="楼栋" width="200">
+                    </el-table-column>
+                    <el-table-column
+                            prop="regionname" label="区域" width="125">
+                    </el-table-column>
+                    <el-table-column
                             prop="dtldesc" label="描述" width="125">
                     </el-table-column>
                     <el-table-column
@@ -152,7 +171,8 @@
             },
 
             tlist:[],
-            usetypes:[],
+            buildings:[],
+            regions:[],
             dtlstatus:[],
             currentRow : null,
             tdoorstream : {
@@ -161,8 +181,9 @@
                 factoryid:'',
                 deptfullname:'',
                 doorname:'',
-                usetype:'',
-                dtlStatus:'all'
+                building:'',
+                dtlStatus:'all',
+                region:''
             },
         },
         methods : {
@@ -241,7 +262,7 @@
                     }
                     _self.dtlstatus = dtllist;
 
-                    var ut=ret.usetypes;
+                    var ut=ret.buildings;
                     var rows = [];
                     rows.push({
                         value:'',
@@ -249,13 +270,28 @@
                     });
                     for ( var i = 0; i < ut.length; i++) {
                         rows.push({
-                            value:ut[i].dictval,
-                            label:ut[i].dictcaption
+                            value:ut[i].buildingid,
+                            label:ut[i].buildingname
                         });
                     }
                     vue.usetypes=rows;
                     vue.tdoorstream.usetype='';
 
+                    var rg=ret.regions;
+                    var rgion = [];
+                    rgion.push({
+                        value:'',
+                        label:"全部"
+                    });
+                    for (var j = 0; j < rg.length; j++){
+                        rgion.push({
+                            value:rg[j].regionid,
+                            label:rg[j].regionname
+                        });
+                    }
+                    vue.regions=rgion;
+                    vue.tdoorstream.region='';
+
                     _self.loading=false;
                 }
             })