提交人员消费次数报表
diff --git a/sql/restarant_create_table.sql b/sql/restarant_create_table.sql
index dfdb9cb..c9cfc8b 100644
--- a/sql/restarant_create_table.sql
+++ b/sql/restarant_create_table.sql
@@ -197,6 +197,7 @@
   custtypeid int4 NOT NULL,
   custtypename varchar(20),
   feetype int4
+  expireday int4
 );
 ALTER TABLE tb_custtype ADD CONSTRAINT tb_custtype_pkey PRIMARY KEY (custtypeid);
 
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index 56ac747..f572850 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -353,6 +353,7 @@
                 logger.info("按月计费");
                 discount_cnt = transDtlService.getDiscountLimitMonth(termdate.substring(0, 6), custid, bean.getRuleid());
             } else {
+                logger.info("按日计费");
                 discount_cnt = transDtlService.getDiscountLimitToday(termdate, custid, bean.getRuleid());
             }
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransCountBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransCountBean.java
new file mode 100644
index 0000000..16a2433
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransCountBean.java
@@ -0,0 +1,50 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+public class TransCountBean {
+  private String groupname;
+  private String mealtype;
+  private Integer cnt;
+  private Integer devgroupid;
+  private String endtime;
+
+  public String getGroupname() {
+    return groupname;
+  }
+
+  public void setGroupname(String groupname) {
+    this.groupname = groupname;
+  }
+
+  public String getMealtype() {
+    return mealtype;
+  }
+
+  public void setMealtype(String mealtype) {
+    this.mealtype = mealtype;
+  }
+
+  public Integer getCnt() {
+    return cnt;
+  }
+
+  public void setCnt(Integer cnt) {
+    this.cnt = cnt;
+  }
+
+  public Integer getDevgroupid() {
+    return devgroupid;
+  }
+
+  public void setDevgroupid(Integer devgroupid) {
+    this.devgroupid = devgroupid;
+  }
+
+  public String getEndtime() {
+    return endtime;
+  }
+
+  public void setEndtime(String endtime) {
+    this.endtime = endtime;
+  }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransCountShowBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransCountShowBean.java
new file mode 100644
index 0000000..4d3e846
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransCountShowBean.java
@@ -0,0 +1,61 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+public class TransCountShowBean {
+  private String groupname;
+  private Integer rownum; //行号
+
+  private Integer btotalcnt;//早餐份数
+  private Integer ltotalcnt;//午餐份数
+  private Integer dtotalcnt;//晚餐份数
+
+  private Integer sumcnt;
+
+  public String getGroupname() {
+    return groupname;
+  }
+
+  public void setGroupname(String groupname) {
+    this.groupname = groupname;
+  }
+
+  public Integer getRownum() {
+    return rownum;
+  }
+
+  public void setRownum(Integer rownum) {
+    this.rownum = rownum;
+  }
+
+  public Integer getSumcnt() {
+    return sumcnt;
+  }
+
+  public void setSumcnt(Integer sumcnt) {
+    this.sumcnt = sumcnt;
+  }
+
+  public Integer getBtotalcnt() {
+    return btotalcnt;
+  }
+
+  public void setBtotalcnt(Integer btotalcnt) {
+    this.btotalcnt = btotalcnt;
+  }
+
+  public Integer getLtotalcnt() {
+    return ltotalcnt;
+  }
+
+  public void setLtotalcnt(Integer ltotalcnt) {
+    this.ltotalcnt = ltotalcnt;
+  }
+
+  public Integer getDtotalcnt() {
+    return dtotalcnt;
+  }
+
+  public void setDtotalcnt(Integer dtotalcnt) {
+    this.dtotalcnt = dtotalcnt;
+  }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
index b04b17d..ed3772c 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -87,10 +87,10 @@
     @GetMapping("/loadadd")
     @PreAuthorize("hasPermission('/customer/loadadd','')")
     public String loadadd(Model model) {
-//        List<TCustType> list=custTypeService.findAll();
-//        model.addAttribute("typelist",list);
-//        List<TDept> dept = deptService.findAllDept();
-//        model.addAttribute("deptlist",dept);
+        List<TCustType> list=custTypeService.findAll();
+        model.addAttribute("typelist",list);
+        List<TDept> dept = deptService.findAllDept();
+        model.addAttribute("deptlist",dept);
 
         return "restaurant/customer/form";
     }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransCountReportController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransCountReportController.java
new file mode 100644
index 0000000..36a2900
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransCountReportController.java
@@ -0,0 +1,108 @@
+package com.supwisdom.dlpay.restaurant.controller;
+
+
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.restaurant.bean.DailyReportSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.TransCountShowBean;
+import com.supwisdom.dlpay.restaurant.service.StatementReportService;
+import com.supwisdom.dlpay.restaurant.service.TransCountReportService;
+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.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@Controller
+@RequestMapping("/transcountreport")
+public class TransCountReportController {
+
+    @Autowired
+    private SystemUtilService systemUtilService;
+    @Autowired
+    private TransCountReportService transCountReportService;
+    @Autowired
+    private StatementReportService statementReportService;
+
+    @RequestMapping("/index")
+    public String indexView(
+            @ModelAttribute("searchBean") DailyReportSearchBean searchBean,
+            @AuthenticationPrincipal UserDetails operUser,
+            ModelMap model) {
+        String settledate = statementReportService.getMaxStatementDate();
+        String maxdate = DateUtil.reformatDatetime(settledate, "yyyyMMdd", "yyyy-MM-dd");
+        searchBean.setStartdate(settledate);
+        searchBean.setEnddate(settledate);
+        model.addAttribute("showlist", transCountReportService.getTransCountReportSearchData(searchBean));
+
+        model.addAttribute("maxdate", maxdate);
+
+        TOperator oper = (TOperator) operUser;
+        model.addAttribute("opercode", oper == null ? "unknow" : oper.getOpercode());
+
+        return "restaurant/transcountreport/index";
+    }
+
+    @RequestMapping("/transcountreportlist")
+ //   @PreAuthorize("hasPermission('/deptreport/deptreportlist','')")
+    public String getDataList(
+            @ModelAttribute("searchBean") DailyReportSearchBean searchBean,
+            @AuthenticationPrincipal UserDetails operUser,
+            ModelMap map) {
+        try {
+
+            TOperator oper = (TOperator) operUser;
+            map.addAttribute("opercode", oper == null ? "unknow" : oper.getOpercode());
+
+            List<TransCountShowBean> bean = transCountReportService.getTransCountReportSearchData(searchBean);
+
+            map.addAttribute("showlist",bean);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "restaurant/transcountreport/index::transcountreportTable";
+    }
+
+    @GetMapping("/excelexport")
+    public void excelExport(@ModelAttribute("searchBean") DailyReportSearchBean searchBean,
+                                    @AuthenticationPrincipal UserDetails operUser,
+                                    HttpServletRequest request, HttpServletResponse response, ModelMap map){
+        try {
+            List<TransCountShowBean> bean = transCountReportService.getTransCountReportSearchData(searchBean);
+            TOperator oper = (TOperator) operUser;
+            String filename="人员消费报表";
+            transCountReportService.doCreateTransCountReportExcel(response, bean, searchBean, filename, oper);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    @GetMapping("/print/printtranscountreport")
+    public String print(@ModelAttribute("searchBean") DailyReportSearchBean searchBean,
+                                @RequestParam(value = "opercode",required = false) String opercode, ModelMap map) {
+        try {
+            map.addAttribute("showlist", transCountReportService.getTransCountReportSearchData(searchBean));
+
+            TOperator oper = statementReportService.getOperatorByOpercode(opercode);
+            map.addAttribute("opername", oper == null ? "unknow" : oper.getOpername());
+            map.addAttribute("period", transCountReportService.getTransCountReportSearchPeriod(searchBean));
+            map.addAttribute("printdatetime",DateUtil.reformatDatetime(systemUtilService.getSysdatetime().getHostdatetime(),DateUtil.DATETIME_FMT,"yyyy-MM-dd HH:mm:ss"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "restaurant/transcountreport/print/printtranscountreport";
+    }
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
index bf289b2..a8066a5 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
@@ -5,6 +5,7 @@
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
@@ -27,6 +28,7 @@
 
     TCard findByCardno(String cardno);
 
+    @Modifying
     @Query(value = "update TB_CARD set STATUS=:status,TRANSSTATUS=:transstatus,EXPIREDATE=:expiredate," +
             "bankcardno=:bankcardno,cardphyid=:cardphyid where CARDNO=:cardno", nativeQuery = true)
     void updateCardInfo(@Param("cardno") String cardno,@Param("status") String status,@Param("transstatus") String transstatus,
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransCountReportService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransCountReportService.java
new file mode 100644
index 0000000..126b7b4
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransCountReportService.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.restaurant.service;
+
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.restaurant.bean.CusttypeReportShowBean;
+import com.supwisdom.dlpay.restaurant.bean.DailyReportSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.TransCountBean;
+import com.supwisdom.dlpay.restaurant.bean.TransCountShowBean;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+public interface TransCountReportService {
+
+
+    @Transactional(rollbackFor = Exception.class,readOnly = true)
+    List<TransCountShowBean> getTransCountReportSearchData(DailyReportSearchBean searchBean);
+
+    @Transactional(rollbackFor = Exception.class,readOnly = true)
+    String getTransCountReportSearchPeriod(DailyReportSearchBean searchBean);
+
+    @Transactional(rollbackFor = Exception.class,readOnly = true)
+    void doCreateTransCountReportExcel(HttpServletResponse response,  List<TransCountShowBean> datalist, DailyReportSearchBean searchBean, String filename, TOperator oper);
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
index 9b1701c..33d8674 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
@@ -258,7 +258,13 @@
                     d.setCardno(cardno);
                     d.setBankcardno(bankcardno);
                     String custtype = (String) data[i][3];
-                    d.setCusttype(Integer.parseInt(custtype));
+                    if(!NumberUtil.isDigits(custtype)){
+                        msg = msg + "第" + i + "行,客户类别代码错误。<br/>";
+                        failCnt += 1;
+                    }else{
+                        d.setCusttype(Integer.parseInt(custtype));
+                    }
+
                     if (null != data[i][4]) {
                         d.setPhone((String) data[i][4]);
                     }
@@ -268,8 +274,10 @@
                         if(null==dept){
                             msg = msg + "第" + i + "行,部门不存在。<br/>";
                             failCnt += 1;
+                        }else{
+                            d.setDeptcode(dept.getDeptcode());
                         }
-                        d.setDeptcode(dept.getDeptcode());
+
                     }
 
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransCountReportServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransCountReportServiceImpl.java
new file mode 100644
index 0000000..cf169ac
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransCountReportServiceImpl.java
@@ -0,0 +1,265 @@
+package com.supwisdom.dlpay.restaurant.service.impl;
+
+import com.supwisdom.dlpay.framework.dao.OperatorDao;
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.MoneyUtil;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.bean.CusttypeReportShowBean;
+import com.supwisdom.dlpay.restaurant.bean.DailyReportSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.TransCountBean;
+import com.supwisdom.dlpay.restaurant.bean.TransCountShowBean;
+import com.supwisdom.dlpay.restaurant.dao.CheckCtlDao;
+import com.supwisdom.dlpay.restaurant.dao.DeviceGroupDao;
+import com.supwisdom.dlpay.restaurant.dao.MealTypeDao;
+import com.supwisdom.dlpay.restaurant.domain.TDeviceGroup;
+import com.supwisdom.dlpay.restaurant.domain.TMealtype;
+import com.supwisdom.dlpay.restaurant.service.CusttypeReportService;
+import com.supwisdom.dlpay.restaurant.service.DeviceGroupService;
+import com.supwisdom.dlpay.restaurant.service.TransCountReportService;
+import com.supwisdom.dlpay.restaurant.util.ExcelPoiUtil;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class TransCountReportServiceImpl implements TransCountReportService {
+
+
+    @Autowired
+    private SystemUtilService systemUtilService;
+    @Autowired
+    private CheckCtlDao checkCtlDao;
+    @Autowired
+    private OperatorDao operatorDao;
+    @Autowired
+    private MealTypeDao mealTypeDao;
+    @Autowired
+    private DeviceGroupDao deviceGroupDao;
+
+    @PersistenceContext
+    private EntityManager entityManager;
+
+    private static final Logger logger = LoggerFactory.getLogger(TransCountReportServiceImpl.class);
+
+
+    @Override
+    public List<TransCountShowBean> getTransCountReportSearchData(DailyReportSearchBean searchBean) {
+        if (null != searchBean) {
+            String startdate = DateUtil.unParseToDateFormat(searchBean.getStartdate());
+            String enddate = DateUtil.unParseToDateFormat(searchBean.getEnddate());
+            StringBuffer sb = new StringBuffer("select  cast(count(t.custid) as int4)as cnt,t.mealtype,t.groupname,t.devgroupid from ( " +
+                    "select DISTINCT r.custid,r.mealtype,g.groupname,g.devgroupid from tb_transdtl r " +
+                    "left join tb_device d on r.termid=d.id " +
+                    "left join tb_devicegroup g on d.devgroupid=g.devgroupid " +
+                    "where r.accdate>=:startdate and r.accdate<=:enddate " +
+                    ") t ") ;
+            if (null!=searchBean.getGroupid()) {
+                sb.append(  "where t.devgroupid=:groupid " );
+            }
+            sb.append(("group by t.groupname,t.mealtype,t.devgroupid " +
+                    "order by t.devgroupid "));
+
+            Query query = entityManager.createNativeQuery(sb.toString());
+            query.setParameter("startdate", startdate);
+            query.setParameter("enddate", enddate);
+            if (null!=searchBean.getGroupid()) {
+                query.setParameter("groupid", searchBean.getGroupid());
+            }
+            query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TransCountBean.class));
+            List<TransCountBean> list = query.getResultList();
+
+            if (null != list){
+                List<TransCountShowBean> showBeanList=new ArrayList<>();
+                List<TDeviceGroup> devgroups=deviceGroupDao.findByGrouptype("leaf");
+
+                for(int i=1;i<devgroups.size()+1;i++){
+                    TransCountShowBean showBean=new TransCountShowBean();
+                    TDeviceGroup group=devgroups.get(i-1);
+                    showBean.setGroupname(group.getGroupname());
+                    showBean.setRownum(i);
+                    showBean.setBtotalcnt(0);
+                    showBean.setLtotalcnt(0);
+                    showBean.setDtotalcnt(0);
+                    for(int j=0;j<list.size();j++){
+                        TransCountBean bean=list.get(j);
+                        if(bean.getDevgroupid()==group.getDevgroupid()){
+                            if("dinner".equals(bean.getMealtype())){
+                                showBean.setDtotalcnt(bean.getCnt());
+                            }else if("lunch".equals(bean.getMealtype())){
+                                showBean.setLtotalcnt(bean.getCnt());
+                            }else if("breakfast".equals(bean)){
+                                showBean.setBtotalcnt(bean.getCnt());
+                            }
+                        }
+                    }
+                    showBeanList.add(showBean);
+                }
+                return showBeanList;
+            }
+        }
+        return new ArrayList<>(0);
+    }
+
+
+    @Override
+    public String getTransCountReportSearchPeriod(DailyReportSearchBean searchBean) {
+        String startdate = DateUtil.unParseToDateFormat(searchBean.getStartdate());
+        String enddate = DateUtil.unParseToDateFormat(searchBean.getEnddate());
+        if (startdate.equals(enddate)) {
+            return DateUtil.reformatDatetime(startdate, "yyyyMMdd", "yyyy年MM月dd日");
+        } else {
+            return DateUtil.reformatDatetime(startdate, "yyyyMMdd", "yyyy年MM月dd日") + " ~ " + DateUtil.reformatDatetime(enddate, "yyyyMMdd", "yyyy年MM月dd日");
+        }
+    }
+
+    @Override
+    public void doCreateTransCountReportExcel(HttpServletResponse response,  List<TransCountShowBean> datalist, DailyReportSearchBean searchBean, String filename, TOperator oper) {
+
+        HSSFWorkbook workbook = new HSSFWorkbook();
+        HSSFSheet sheet = workbook.createSheet("消费人次报表");
+
+        int columns = 13; //
+        sheet.setColumnWidth(0, ExcelPoiUtil.columnWidth(25)); //日期
+        for (int i = 3; i < columns; i++) {
+            sheet.setColumnWidth(i, ExcelPoiUtil.columnWidth(15));
+        }
+
+        //标题样式
+        HSSFCellStyle titleStyle = ExcelPoiUtil.creatStyle(workbook, "宋体", true, 20, HSSFCellStyle.ALIGN_CENTER, false); //设置单元格样式
+        //表头样式
+        HSSFCellStyle headStyle = ExcelPoiUtil.creatStyle(workbook, "宋体", true, 15, HSSFCellStyle.ALIGN_CENTER, true); //设置单元格样式
+        //正文样式 有边框-textStyle1 无边框-textStyle2
+        HSSFCellStyle textStyle1 = ExcelPoiUtil.creatStyle(workbook, "宋体", false, 10, HSSFCellStyle.ALIGN_CENTER, true); //设置单元格样式
+        HSSFCellStyle textStyle2 = ExcelPoiUtil.creatStyle(workbook, "宋体", false, 10, HSSFCellStyle.ALIGN_CENTER, false); //设置单元格样式
+
+
+        //TODO:创建标题
+        HSSFRow row0 = ExcelPoiUtil.createRow(sheet, 0, 800); //表格标题
+        ExcelPoiUtil.createCell(row0, 0, titleStyle, filename);
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columns - 1)); //合并单元格CellRangeAddress构造参数依次表示 起始行,截至行,起始列, 截至列
+
+        //TODO:创建表格页眉
+        HSSFRow row1 = ExcelPoiUtil.createRow(sheet, 1, 400);
+        ExcelPoiUtil.createCell(row1, 0, textStyle2, "区间");
+        ExcelPoiUtil.createCell(row1, 1, textStyle2, getTransCountReportSearchPeriod(searchBean));
+        ExcelPoiUtil.createCell(row1, 2, textStyle2, null);
+        ExcelPoiUtil.createCell(row1, 3, textStyle2, null);
+        ExcelPoiUtil.createCell(row1, 4, textStyle2, null);
+
+        sheet.addMergedRegion(new CellRangeAddress(1, 1, 1, 4));
+        ExcelPoiUtil.createCell(row1, columns - 1, ExcelPoiUtil.creatStyle(workbook, "宋体", false, 10, HSSFCellStyle.ALIGN_RIGHT, false), "单位:元");
+
+        //TODO:创建表头(poi做多行合并,一定需要先绘制单元格,然后写入数据,最后合并)
+        HSSFRow row2 = ExcelPoiUtil.createRow(sheet, 2, 600);
+        ExcelPoiUtil.createCell(row2, 0, headStyle, "序号");
+        ExcelPoiUtil.createCell(row2, 1, headStyle, "食堂");
+        ExcelPoiUtil.createCell(row2, 2, headStyle, null);
+        ExcelPoiUtil.createCell(row2, 3, headStyle, null);
+        sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 3)); //合并单元格CellRangeAddress构造参数依次表示 起始行,截至行,起始列, 截至列
+
+        ExcelPoiUtil.createCell(row2, 4, headStyle, "早餐次数");
+        ExcelPoiUtil.createCell(row2, 5, headStyle, null);
+        ExcelPoiUtil.createCell(row2, 6, headStyle, null);
+        sheet.addMergedRegion(new CellRangeAddress(2, 2, 4, 6)); //合并单元格CellRangeAddress构造参数依次表示 起始行,截至行,起始列, 截至列
+        ExcelPoiUtil.createCell(row2, 7, headStyle, "午餐次数");
+        ExcelPoiUtil.createCell(row2, 8, headStyle, null);
+        ExcelPoiUtil.createCell(row2, 9, headStyle, null);
+
+        sheet.addMergedRegion(new CellRangeAddress(2, 2, 7, 9)); //合并单元格CellRangeAddress构造参数依次表示 起始行,截至行,起始列, 截至列
+        ExcelPoiUtil.createCell(row2, 10, headStyle, "晚餐次数");
+        ExcelPoiUtil.createCell(row2, 11, headStyle, null);
+        ExcelPoiUtil.createCell(row2, 12, headStyle, null);
+        sheet.addMergedRegion(new CellRangeAddress(2, 2, 10, 12)); //合并单元格CellRangeAddress构造参数依次表示 起始行,截至行,起始列, 截至列
+
+        //TODO: 数据
+        int rowNum = 3;
+        if (StringUtil.isEmpty(datalist)) {
+            //无数据
+            HSSFRow row3 = ExcelPoiUtil.createRow(sheet, rowNum, 500);
+            ExcelPoiUtil.createCell(row3, 0, textStyle1, "无数据");
+            for (int n = 1; n < columns; n++) ExcelPoiUtil.createCell(row3, n, textStyle1, null);
+            sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, columns - 1)); //合并列
+        } else {
+            //有数据
+            for (int i = 0; i < datalist.size(); i++) {
+                TransCountShowBean detail = datalist.get(i);
+
+                HSSFRow row = ExcelPoiUtil.createRow(sheet, rowNum, 500);
+                ExcelPoiUtil.createCell(row, 0, textStyle1,""+ detail.getRownum());
+                ExcelPoiUtil.createCell(row, 1, textStyle1, detail.getGroupname());
+                ExcelPoiUtil.createCell(row, 2, textStyle1, null);
+                ExcelPoiUtil.createCell(row, 3, textStyle1, null);
+                sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 1, 3));
+                ExcelPoiUtil.createCell(row, 4, textStyle1, detail.getBtotalcnt()+"");
+                ExcelPoiUtil.createCell(row, 5, textStyle1, null);
+                ExcelPoiUtil.createCell(row, 6, textStyle1, null);
+                sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 4, 6));
+                ExcelPoiUtil.createCell(row, 7, textStyle1, detail.getLtotalcnt()+"");
+                ExcelPoiUtil.createCell(row, 8, textStyle1, null);
+                ExcelPoiUtil.createCell(row, 9, textStyle1, null);
+                sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 7, 9));
+                ExcelPoiUtil.createCell(row, 10, textStyle1, detail.getDtotalcnt()+"");
+                ExcelPoiUtil.createCell(row, 11, textStyle1, null);
+                ExcelPoiUtil.createCell(row, 12, textStyle1, null);
+                sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 10, 12));
+                rowNum++;
+            }
+
+
+        }
+
+        //TODO: 表格页脚
+        HSSFCellStyle textStyle3 = ExcelPoiUtil.creatStyle(workbook, "宋体", false, 10, HSSFCellStyle.ALIGN_LEFT, false); //设置单元格样式
+        HSSFRow buttom = ExcelPoiUtil.createRow(sheet, ++rowNum, 400);
+        ExcelPoiUtil.createCell(buttom, 0, textStyle3, "制表人:" + (oper == null ? "unknow" : oper.getOpername()) + "  " + DateUtil.reformatDatetime(systemUtilService.getSysdatetime().getHostdatetime(), DateUtil.DATETIME_FMT, "yyyy-MM-dd HH:mm:ss"));
+        sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, 2));  //合并列
+
+        //TODO: 审核信息
+        HSSFRow signRow10 = ExcelPoiUtil.createRow(sheet, rowNum + 3, 400);
+        ExcelPoiUtil.createCell(signRow10, 0, textStyle3, "大理州公安局警务保障处审核盖章:");
+        ExcelPoiUtil.createCell(signRow10, 6, textStyle3, "苍山饭店审核盖章:");
+        sheet.addMergedRegion(new CellRangeAddress(rowNum + 3, rowNum + 3, 0, 5));  //合并列
+        sheet.addMergedRegion(new CellRangeAddress(rowNum + 3, rowNum + 3, 6, columns - 1));  //合并列
+        HSSFRow signRow11 = ExcelPoiUtil.createRow(sheet, rowNum + 4, 400);
+        ExcelPoiUtil.createCell(signRow11, 0, textStyle3, "经办人:");
+        ExcelPoiUtil.createCell(signRow11, 6, textStyle3, "审核人:");
+        sheet.addMergedRegion(new CellRangeAddress(rowNum + 4, rowNum + 4, 0, 5));  //合并列
+        sheet.addMergedRegion(new CellRangeAddress(rowNum + 4, rowNum + 4, 6, columns - 1));  //合并列
+
+        HSSFRow signRow12 = ExcelPoiUtil.createRow(sheet, rowNum + 5, 400);
+        ExcelPoiUtil.createCell(signRow12, 0, textStyle3, "审核人:");
+        sheet.addMergedRegion(new CellRangeAddress(rowNum + 5, rowNum + 5, 0, 5));  //合并列
+
+
+        try {
+            response.setContentType("application/x-msdownload");
+            response.setHeader("Content-Disposition", "attachment;" + " filename=" + new String(filename.getBytes(), "ISO-8859-1") + ".xls");
+            OutputStream out = response.getOutputStream();
+            workbook.write(out);
+            out.flush();
+            out.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+}
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index c450a89..e9ad3a5 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -89,46 +89,42 @@
 INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('init', 'transtatusList', '初始化', '流水状态');
 
 
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 2, -1);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 2, 3);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/operator/index', '操作员管理', 4, 3);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (4, NULL, 1, NULL, 'layui-icon-set', '/function/index', '功能维护', 1, 3);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (9, NULL, 1, NULL, '', '/operator/logs', '操作日志', 4, 3);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (14, NULL, 0, NULL, 'layui-icon-app', '#', '设备管理', 8, -1);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (15, NULL, 1, NULL, 'layui-icon-app', '/device/index', '注册设备', 1, 14);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (16, NULL, 1, NULL, 'layui-icon-home', '/devicegroup/index', '设备组管理', 2, 14);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (19, NULL, 1, NULL, 'layui-icon-home', '/devicemanage/index', '设备信息管理', 3, 14);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (20, NULL, 1, NULL, '', '/device/devpara', '设备参数组管理', 4, 14);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (21, NULL, 1, NULL, '', '/device/devparabind', '设备参数组绑定', 5, 14);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (22, NULL, 0, NULL, 'layui-icon-username', '#', '客户管理', 9, -1);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (24, NULL, 0, NULL, 'layui-icon-face-smile', '#', '餐补规则管理', 3, -1);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (26, NULL, 1, NULL, '', '/discountrule/check', '餐补规则审核', 2, 24);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (25, NULL, 1, NULL, '', '/discountrule/index', '餐补规则维护', 1, 24);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (27, NULL, 1, NULL, '', '/discountrule/devbind', '餐补规则设备绑定', 3, 24);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (28, NULL, 0, NULL, 'layui-icon-home', '#', '流水管理', 9, -1);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (29, NULL, 1, NULL, '', '/transdtl/index', '食堂消费流水表', 1, 28);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (30, NULL, 1, NULL, '', '/transdtlrev/index', '申请退款', NULL, 28);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (1, NULL, 1, NULL, '', '/custtype/index', '客户类型维护', 1, 22);
-INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (23, NULL, 1, NULL, 'layui-icon-home', '/customer/index', '就餐对象管理', 3, 22);
-INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (10, NULL, 0, NULL, 'layui-icon-util', '#', '参数管理', 3, -1);
---INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (11, NULL, 1, NULL, 'layui-icon-util', '/param/syspara', '系统参数配置', 1, 10);
-INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (12, NULL, 1, NULL, 'layui-icon-util', '/param/businesspara', '业务参数配置', 2, 10);
-INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (17, NULL, 1, NULL, 'layui-icon-util', '/param/apiclientpara', '应用参数配置', 3, 10);
---INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (2, NULL, 1, NULL, '', '/custmeallist/index', '就餐名单管理', 3, 22);
---INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (7, NULL, 1, NULL, '', '/custmealcheck/index', '就餐名单审核', 4, 22);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (8, NULL, 1, NULL, '', '/devicecheck/index', '设备审核', 2, 14);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (13, NULL, 1, NULL, '', '/whitelist/index', '就餐白名单维护', 1, 11);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (18, NULL, 1, NULL, '', '/whitelistcheck/index', '就餐白名单审核', 2, 11);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (31, NULL, 1, NULL, '', '/whitelistbind/devbind', '就餐白名单设备绑定', 3, 11);
-
-INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (11, NULL, 0, NULL, 'layui-icon-util', '#', '就餐白名单管理', 7, -1);
-INSERT INTO  "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (32, NULL, 1, NULL, '', '/shopsettlement/index', '商户管理', 2, 22);
-INSERT INTO  "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (34, NULL, 1, NULL, '', '/customerlist/index', '餐补人员名单管理', 1, 24);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (35, NULL, 0, NULL, 'layui-icon-rmb', '#', '报表中心', 10, -1);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (36, NULL, 1, NULL, '', '/report/laborfee', '商户劳务费报表', 1, 35);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (37, NULL, 1, NULL, '', '/report/laborcount', '商户劳务费人次统计表', 2, 35);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (40, NULL, 1, NULL, '', '/dept/index', '部门管理', 6, 22);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (41, NULL, 1, NULL, '', '/custtypereport/index', '人员类别消费报表', 4, 36);
+INSERT INTO "tb_function" VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 2, -1);
+INSERT INTO "tb_function" VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 2, 3);
+INSERT INTO "tb_function" VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/operator/index', '操作员管理', 4, 3);
+INSERT INTO "tb_function" VALUES (4, NULL, 1, NULL, 'layui-icon-set', '/function/index', '功能维护', 1, 3);
+INSERT INTO "tb_function" VALUES (9, NULL, 1, NULL, '', '/operator/logs', '操作日志', 4, 3);
+INSERT INTO "tb_function" VALUES (14, NULL, 0, NULL, 'layui-icon-app', '#', '设备管理', 8, -1);
+INSERT INTO "tb_function" VALUES (15, NULL, 1, NULL, 'layui-icon-app', '/device/index', '注册设备', 1, 14);
+INSERT INTO "tb_function" VALUES (16, NULL, 1, NULL, 'layui-icon-home', '/devicegroup/index', '设备组管理', 2, 14);
+INSERT INTO "tb_function" VALUES (19, NULL, 1, NULL, 'layui-icon-home', '/devicemanage/index', '设备信息管理', 3, 14);
+INSERT INTO "tb_function" VALUES (20, NULL, 1, NULL, '', '/device/devpara', '设备参数组管理', 4, 14);
+INSERT INTO "tb_function" VALUES (21, NULL, 1, NULL, '', '/device/devparabind', '设备参数组绑定', 5, 14);
+INSERT INTO "tb_function" VALUES (22, NULL, 0, NULL, 'layui-icon-username', '#', '客户管理', 9, -1);
+INSERT INTO "tb_function" VALUES (24, NULL, 0, NULL, 'layui-icon-face-smile', '#', '餐补规则管理', 3, -1);
+INSERT INTO "tb_function" VALUES (26, NULL, 1, NULL, '', '/discountrule/check', '餐补规则审核', 2, 24);
+INSERT INTO "tb_function" VALUES (25, NULL, 1, NULL, '', '/discountrule/index', '餐补规则维护', 1, 24);
+INSERT INTO "tb_function" VALUES (27, NULL, 1, NULL, '', '/discountrule/devbind', '餐补规则设备绑定', 3, 24);
+INSERT INTO "tb_function" VALUES (28, NULL, 0, NULL, 'layui-icon-home', '#', '流水管理', 9, -1);
+INSERT INTO "tb_function" VALUES (29, NULL, 1, NULL, '', '/transdtl/index', '食堂消费流水表', 1, 28);
+INSERT INTO "tb_function" VALUES (30, NULL, 1, NULL, '', '/transdtlrev/index', '申请退款', NULL, 28);
+INSERT INTO "tb_function" VALUES (1, NULL, 1, NULL, '', '/custtype/index', '客户类型维护', 1, 22);
+INSERT INTO "tb_function" VALUES (23, NULL, 1, NULL, 'layui-icon-home', '/customer/index', '就餐对象管理', 3, 22);
+INSERT INTO "tb_function" VALUES (10, NULL, 0, NULL, 'layui-icon-util', '#', '参数管理', 3, -1);
+INSERT INTO "tb_function" VALUES (12, NULL, 1, NULL, 'layui-icon-util', '/param/businesspara', '业务参数配置', 2, 10);
+INSERT INTO "tb_function" VALUES (17, NULL, 1, NULL, 'layui-icon-util', '/param/apiclientpara', '应用参数配置', 3, 10);
+INSERT INTO "tb_function" VALUES (8, NULL, 1, NULL, '', '/devicecheck/index', '设备审核', 2, 14);
+INSERT INTO "tb_function" VALUES (13, NULL, 1, NULL, '', '/whitelist/index', '就餐白名单维护', 1, 11);
+INSERT INTO "tb_function" VALUES (18, NULL, 1, NULL, '', '/whitelistcheck/index', '就餐白名单审核', 2, 11);
+INSERT INTO "tb_function" VALUES (31, NULL, 1, NULL, '', '/whitelistbind/devbind', '就餐白名单设备绑定', 3, 11);
+INSERT INTO "tb_function" VALUES (11, NULL, 0, NULL, 'layui-icon-util', '#', '就餐白名单管理', 7, -1);
+INSERT INTO "tb_function" VALUES (32, NULL, 1, NULL, '', '/shopsettlement/index', '商户管理', 2, 22);
+INSERT INTO "tb_function" VALUES (34, NULL, 1, NULL, '', '/customerlist/index', '餐补人员名单管理', 1, 24);
+INSERT INTO "tb_function" VALUES (35, NULL, 0, NULL, 'layui-icon-rmb', '#', '报表中心', 10, -1);
+INSERT INTO "tb_function" VALUES (36, NULL, 1, NULL, '', '/report/laborfee', '商户劳务费报表', 1, 35);
+INSERT INTO "tb_function" VALUES (37, NULL, 1, NULL, '', '/report/laborcount', '商户劳务费人次统计表', 2, 35);
+INSERT INTO "tb_function" VALUES (40, NULL, 1, NULL, '', '/dept/index', '部门管理', 6, 22);
+INSERT INTO "tb_function" VALUES (41, NULL, 1, NULL, '', '/custtypereport/index', '人员类别消费报表', 4, 35);
 
 
 
@@ -144,334 +140,459 @@
 INSERT INTO "tb_paytype_config" (paytype,configid,config_name,config_value) VALUES ('yktpay', 'orderurl', NULL, 'http://172.28.201.101:9116/epayapi/services/thirdparty/common/pay');
 INSERT INTO "tb_paytype_config" (paytype,configid,config_name,config_value) VALUES ('yktpay', 'reverseurl', NULL, 'http://172.28.201.101:9116/epayapi/services/thirdparty/common/payreverse');
 
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b30009', 16, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b3000a', 17, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b3000b', 19, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b4000c', 20, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b4000d', 21, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b4000f', 6, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b40010', 7, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b50011', 8, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b50012', 9, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b50013', 22, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bd0015', 4, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bd0016', 5, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0be0017', 10, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0be0018', 11, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0be0019', 12, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001a', 13, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001b', 14, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001c', 15, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001e', 24, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c00021', 23, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c00022', 25, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c00023', 31, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10024', 38, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10025', 42, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10026', 44, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10027', 86, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c20029', 45, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c2002a', 46, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c2002b', 47, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c3002c', 48, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e3002d', 49, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e3002f', 50, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e30030', 52, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e30031', 53, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e40033', 54, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1030034', 55, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1030035', 56, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1040036', 57, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1040038', 58, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1040039', 59, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c104003a', 60, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c105003b', 65, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c105003e', 61, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c105003f', 62, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060040', 63, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060041', 64, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060042', 66, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060043', 67, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060044', 68, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1070047', 71, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1070048', 80, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1070049', 81, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c108004b', 70, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c108004c', 74, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c109004d', 75, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c109004e', 76, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c109004f', 77, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1090050', 78, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1090052', 69, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0053', 82, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0054', 83, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0055', 84, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0058', 79, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b0059', 85, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b005a', 87, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b005c', 88, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b005d', 89, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c005e', 90, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c005f', 1, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c0060', 2, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c0061', 3, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c0062', 18, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816aaf2ec3016aaf4edaac009f', 27, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a330002', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a330003', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340004', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340005', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340006', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340008', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a350009', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a35000a', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a36000b', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a36000c', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a36000e', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a37000f', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370010', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370011', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370012', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370013', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a380014', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a380015', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a380017', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001a', 23, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001b', 25, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001c', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001d', 38, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001e', 42, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001f', 44, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a390020', 86, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0022', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0023', 46, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0024', 47, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0025', 48, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0026', 49, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b0028', 50, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b0029', 52, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002a', 53, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002c', 54, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002d', 55, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002e', 56, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c002f', 57, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0031', 58, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0032', 59, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0033', 60, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0034', 65, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3d0036', 1, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3d0037', 2, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3d003a', 91, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003c', 61, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003d', 62, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003e', 63, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003f', 64, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e0040', 66, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e0041', 67, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3f0042', 68, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3f0045', 80, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a400046', 81, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a400047', 71, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a400049', 70, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a40004a', 74, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004b', 75, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004c', 76, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004d', 77, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004e', 78, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a410050', 82, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a410051', 83, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420052', 84, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420053', 69, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420056', 79, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420057', 85, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420058', 87, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a43005a', 88, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a43005b', 89, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a43005c', 90, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a44005f', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a440060', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a440061', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a450062', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460063', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460065', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460066', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460067', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460068', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a470069', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a47006a', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a47006d', 51, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a47006e', 72, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a470070', 41, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a480071', 43, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a480073', 3, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a480074', 18, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e26421b016e264517d40044', 93, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e26421b016e264517d40045', 73, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e26421b016e264517d40046', 92, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e86d617016e86daac05004a', 94, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816ea5a411016ea5bc08af007d', 95, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816eb6236e016eb62961f8007d', 96, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816ec4640b016ec471f89d0080', 97, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO  "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816ec4640b016ec471f89d007f', 98, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b30009', 16, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b3000a', 17, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b3000b', 19, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b4000c', 20, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b4000d', 21, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b4000f', 6, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b40010', 7, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b50011', 8, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b50012', 9, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0b50013', 22, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0bd0015', 4, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0bd0016', 5, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0be0017', 10, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0be0018', 11, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0be0019', 12, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0bf001a', 13, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0bf001b', 14, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0bf001c', 15, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0bf001e', 24, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c00021', 23, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c00022', 25, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c00023', 31, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c10024', 38, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c10025', 42, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c10026', 44, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c10027', 86, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c20029', 45, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c2002a', 46, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c2002b', 47, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0c3002c', 48, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0e3002d', 49, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0e3002f', 50, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0e30030', 52, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0e30031', 53, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c0e40033', 54, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1030034', 55, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1030035', 56, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1040036', 57, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1040038', 58, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1040039', 59, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c104003a', 60, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c105003b', 65, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c105003e', 61, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c105003f', 62, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1060040', 63, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1060041', 64, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1060042', 66, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1060043', 67, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1060044', 68, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1070047', 71, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1070048', 80, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1070049', 81, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c108004b', 70, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c108004c', 74, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c109004d', 75, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c109004e', 76, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c109004f', 77, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1090050', 78, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c1090052', 69, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10a0053', 82, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10a0054', 83, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10a0055', 84, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10a0058', 79, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10b0059', 85, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10b005a', 87, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10b005c', 88, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10b005d', 89, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10c005e', 90, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10c005f', 1, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10c0060', 2, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10c0061', 3, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('402890866bf9ea0d016bfde2c10c0062', 18, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission" VALUES ('ff8080816aaf2ec3016aaf4edaac009f', 27, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4670004', 61, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4680007', 71, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4680009', 94, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c469000c', 79, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c469000d', 85, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c469000e', 87, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4690011', 95, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4690012', 96, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4690014', 97, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b808673086e05017308a2c4690015', 98, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25b054b', 16, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c054c', 17, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c054d', 19, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c054e', 20, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c054f', 21, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0551', 6, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0552', 7, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0553', 8, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0554', 9, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0555', 22, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0558', 23, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0559', 25, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c055a', 31, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c055b', 38, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c055c', 42, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c055d', 44, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c055e', 86, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0560', 45, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0561', 46, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0562', 47, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0563', 48, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0564', 49, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0566', 50, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0567', 52, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0568', 53, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c056a', 54, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c056b', 55, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c056c', 56, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c056d', 57, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c056f', 58, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0570', 59, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0571', 60, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0572', 65, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0574', 1, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0575', 2, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0578', 91, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c057a', 61, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c057b', 62, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c057c', 63, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c057d', 64, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c057e', 66, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c057f', 67, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0580', 68, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0582', 73, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0583', 92, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25c0584', 93, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0587', 71, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0588', 80, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0589', 81, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d058b', 70, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d058c', 74, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d058d', 75, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d058e', 76, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d058f', 77, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0590', 78, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0592', 69, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0593', 82, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0594', 83, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0595', 84, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d0597', 94, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d059a', 79, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d059b', 85, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d059c', 87, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d059e', 88, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d059f', 89, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05a0', 90, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05a3', 33, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05a4', 32, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05a5', 28, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05a6', 30, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05a7', 29, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05aa', 3, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05ab', 18, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05ad', 41, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05ae', 43, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05b0', 51, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05b1', 72, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05b4', 95, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05b5', 96, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05b7', 97, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b80867308cb5401732853b25d05b8', 98, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d71', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d72', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d73', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d74', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d75', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d77', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d78', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d79', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d7a', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d7b', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d7d', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d7e', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d7f', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d80', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d81', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d82', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d83', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d84', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d86', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d89', 23, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d8a', 25, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d8b', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d8c', 38, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d8d', 42, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d8e', 44, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d8f', 86, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d91', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d92', 46, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d93', 47, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d94', 48, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d95', 49, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d97', 50, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d98', 52, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d99', 53, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d9b', 54, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d9c', 55, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d9d', 56, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801d9e', 57, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da0', 58, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da1', 59, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da2', 60, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da3', 65, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da5', 1, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da6', 2, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801da9', 91, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801dab', 61, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801dac', 62, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801dad', 63, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801dae', 64, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db801daf', 66, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811db0', 67, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811db1', 68, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811db3', 93, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811db4', 73, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811db5', 92, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811db9', 80, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dba', 81, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dbb', 71, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dbd', 70, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dbe', 74, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dbf', 75, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc0', 76, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc1', 77, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc2', 78, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc4', 82, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc5', 83, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc6', 84, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc7', 69, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dc9', 94, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dcc', 79, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dcd', 85, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dce', 87, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd0', 88, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd1', 89, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd2', 90, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd5', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd6', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd7', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd8', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dd9', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811ddb', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811ddc', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811ddd', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dde', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811ddf', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811de0', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811de3', 3, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811de4', 18, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811de6', 41, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811de7', 43, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811de9', 51, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dea', 72, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811dee', 95, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811def', 96, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811df1', 97, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" VALUES ('2c9b808672e528ec01730415db811df2', 98, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
 
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (4, '1', 4, '添加功能', '/function/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (5, '', 4, '添加父功能', '/function/loadadd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (6, '1', 6, '查询', '/operator/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (7, '', 6, '添加查询', '/operator/load4add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (8, '', 6, '添加和修改', '/operator/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (9, '', 6, '重置密码', '/operator/resetpwd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (10, '', 4, '查询', '/function/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (11, '', 4, '删除', '/function/delfunc');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (12, '', 4, '添加子功能', '/function/loadsubadd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (13, '', 4, '维护资源', '/function/loadres');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (14, '', 4, '添加资源', '/function/addres');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (15, '', 4, '删除资源', '/function/delres');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (16, '', 5, '查询', '/role/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (17, '', 5, '添加', '/role/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (19, '', 5, '分配功能', '/role/addfunc');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (20, '', 5, '加载分配功能', '/role/loadfunc');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (21, '', 5, '删除角色', '/role/del');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (22, '', 6, '修改状态', '/operator/updatestate');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (24, '', 9, '查询', '/operator/logslist');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (23, '', 15, '查询', '/device/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (25, '', 15, '添加页面', '/device/loadadd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (31, '', 15, '添加', '/device/add');
---INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (26, '', 11, '修改', '/param/sysparaupdate');
---INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (27, '', 11, '查询', '/param/syspara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (28, '', 12, '查询', '/param/businesspara');
-INSERT INTO "tb_resource"  (id,code,function_id,name,uri) VALUES (29, '', 12, '删除', '/param/deletebusinesspara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (30, '', 12, '修改', '/param/businessparaupdate');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (32, '', 12, '新增', '/param/addbusinesspara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (33, '', 12, '新增跳转', '/param/load4addbuspara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (34, '', 17, '查询', '/param/apiclientpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (35, '', 17, '新增修改跳转', '/param/load4addapiclient');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (36, '', 17, '修改状态', '/param/updateapiclientstate');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (37, '', 17, '删除', '/param/deleteapiclient');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (39, '', 17, '修改', '/param/updateapiclientpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (40, '', 17, '新增', '/param/addapiclientpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (38, '', 15, '修改状态', '/device/updatestate');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (42, '', 15, '导入页面', '/device/loadimport');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (44, '', 15, '导入', '/device/import');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (45, '', 16, '查询', '/devicegroup/listDevice');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (46, '', 16, '展示树', '/devicegroup/listTree');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (47, '', 16, '显示添加', '/devicegroup/loadadd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (48, '', 16, '添加', '/devicegroup/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (49, '', 16, '删除', '/devicegroup/delete');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (50, '', 19, '查询', '/devicemanage/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (52, '', 19, '修改', '/devicemanage/update');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (53, '', 19, '加载修改', '/devicemanage/loadupdate');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (54, '', 20, '查询', '/device/devpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (55, '', 20, '删除', '/device/deletedevpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (56, '', 20, '跳转', '/device/load4editdevpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (57, '', 20, '新增或修改', '/device/editdevpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (58, '', 21, '查询', '/device/devparabind');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (59, '', 21, '删除', '/device/deletedevparabind');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (60, '', 21, '新增跳转', '/device/load4binddevpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (61, '', 23, '查询', '/customer/list');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (62, '', 23, '添加页面', '/customer/loadadd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (63, '', 23, '添加', '/customer/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (64, '', 23, '导入界面', '/customer/loadimport');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (65, '', 21, '新增', '/device/addbinddevpara');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (66, '', 23, '删除', '/customer/delete');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (67, '', 23, '下载模板', '/customer/download');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (68, '', 23, '导入', '/customer/import');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (69, '', 27, '查询', '/discountrule/devbind');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (70, '', 25, '查询', '/discountrule/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (71, '', 26, '查询', '/discountrule/check');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (74, '', 25, '跳转', '/discountrule/load4addrule');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (75, '', 25, '删除', '/discountrule/deleterule');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (76, '', 25, '关闭', '/discountrule/closerule');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (77, '', 25, '查看名单', '/discountrule/load4detail');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (78, '', 25, '新增', '/discountrule/addrule');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (79, '', 29, '查询', '/transdtl/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (80, '', 26, '审核跳转', '/discountrule/load4checkdetail');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (81, '', 26, '审核', '/discountrule/checkruledetail');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (82, '', 27, '删除', '/discountrule/deletedevbind');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (83, '', 27, '新增跳转', '/discountrule/load4binddev');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (84, '', 27, '新增', '/discountrule/dorulebinddev');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (85, '', 29, '导出', '/transdtl/export');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (86, '', 15, '下载模板', '/device/download');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (87, '', 29, '查询', '/transdtl/list');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (88, '', 30, '查询', '/transdtlrev/index');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (89, '', 30, '加载冲正页面', '/transdtlrev/loadrevert');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (90, '', 30, '冲正', '/transdtlrev/revert');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (91, '', 1, '查询', '/custtype/index');
---INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (92, '', 1, '添加', '/custtype/add');
---INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (93, '', 1, '修改', '/custtype/update');
---INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (94, '', 1, '删除', '/custtype/delete');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (1, '', 8, '查询', '/devicecheck/index');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (2, '', 8, '审核', '/devicecheck/docheckdevice');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (3, '', 13, '查询', '/whitelist/index');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (18, '', 13, '添加', '/whitelist/addwhitelist');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (41, '', 18, '查询', '/whitelistcheck/checklist');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (43, '', 18, '审核', '/whitelistcheck/load4checkdetail');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (51, '', 31, '查询', '/whitelistbind/devbind');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (72, '', 31, '绑定', '/whitelistbind/dobinddev');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (73, '', 32, '查询', '/shopsettlement/index');
-
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (92, '', 32, '添加', '/shopsettlement/loadadd');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (93, '', 32, '删除', '/shopsettlement/delete');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (94, '', 34, '查询', '/customerlist/index');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (95, '', 36, '查询', '/report/laborfee');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (96, '', 36, '导出', '/report/excelexportlaborfee');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (97, '', 37, '查询', '/report/laborcount');
-INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (98, '', 37, '导出', '/report/excelexportlaborcnt');
-
+INSERT INTO "tb_resource" VALUES (4, '1', 4, '添加功能', '/function/add');
+INSERT INTO "tb_resource" VALUES (5, '', 4, '添加父功能', '/function/loadadd');
+INSERT INTO "tb_resource" VALUES (6, '1', 6, '查询', '/operator/index');
+INSERT INTO "tb_resource" VALUES (7, '', 6, '添加查询', '/operator/load4add');
+INSERT INTO "tb_resource" VALUES (8, '', 6, '添加和修改', '/operator/add');
+INSERT INTO "tb_resource" VALUES (9, '', 6, '重置密码', '/operator/resetpwd');
+INSERT INTO "tb_resource" VALUES (10, '', 4, '查询', '/function/index');
+INSERT INTO "tb_resource" VALUES (11, '', 4, '删除', '/function/delfunc');
+INSERT INTO "tb_resource" VALUES (12, '', 4, '添加子功能', '/function/loadsubadd');
+INSERT INTO "tb_resource" VALUES (13, '', 4, '维护资源', '/function/loadres');
+INSERT INTO "tb_resource" VALUES (14, '', 4, '添加资源', '/function/addres');
+INSERT INTO "tb_resource" VALUES (15, '', 4, '删除资源', '/function/delres');
+INSERT INTO "tb_resource" VALUES (16, '', 5, '查询', '/role/index');
+INSERT INTO "tb_resource" VALUES (17, '', 5, '添加', '/role/add');
+INSERT INTO "tb_resource" VALUES (19, '', 5, '分配功能', '/role/addfunc');
+INSERT INTO "tb_resource" VALUES (20, '', 5, '加载分配功能', '/role/loadfunc');
+INSERT INTO "tb_resource" VALUES (21, '', 5, '删除角色', '/role/del');
+INSERT INTO "tb_resource" VALUES (22, '', 6, '修改状态', '/operator/updatestate');
+INSERT INTO "tb_resource" VALUES (24, '', 9, '查询', '/operator/logslist');
+INSERT INTO "tb_resource" VALUES (23, '', 15, '查询', '/device/index');
+INSERT INTO "tb_resource" VALUES (25, '', 15, '添加页面', '/device/loadadd');
+INSERT INTO "tb_resource" VALUES (31, '', 15, '添加', '/device/add');
+INSERT INTO "tb_resource" VALUES (28, '', 12, '查询', '/param/businesspara');
+INSERT INTO "tb_resource" VALUES (29, '', 12, '删除', '/param/deletebusinesspara');
+INSERT INTO "tb_resource" VALUES (30, '', 12, '修改', '/param/businessparaupdate');
+INSERT INTO "tb_resource" VALUES (32, '', 12, '新增', '/param/addbusinesspara');
+INSERT INTO "tb_resource" VALUES (33, '', 12, '新增跳转', '/param/load4addbuspara');
+INSERT INTO "tb_resource" VALUES (34, '', 17, '查询', '/param/apiclientpara');
+INSERT INTO "tb_resource" VALUES (35, '', 17, '新增修改跳转', '/param/load4addapiclient');
+INSERT INTO "tb_resource" VALUES (36, '', 17, '修改状态', '/param/updateapiclientstate');
+INSERT INTO "tb_resource" VALUES (37, '', 17, '删除', '/param/deleteapiclient');
+INSERT INTO "tb_resource" VALUES (39, '', 17, '修改', '/param/updateapiclientpara');
+INSERT INTO "tb_resource" VALUES (40, '', 17, '新增', '/param/addapiclientpara');
+INSERT INTO "tb_resource" VALUES (38, '', 15, '修改状态', '/device/updatestate');
+INSERT INTO "tb_resource" VALUES (42, '', 15, '导入页面', '/device/loadimport');
+INSERT INTO "tb_resource" VALUES (44, '', 15, '导入', '/device/import');
+INSERT INTO "tb_resource" VALUES (45, '', 16, '查询', '/devicegroup/listDevice');
+INSERT INTO "tb_resource" VALUES (46, '', 16, '展示树', '/devicegroup/listTree');
+INSERT INTO "tb_resource" VALUES (47, '', 16, '显示添加', '/devicegroup/loadadd');
+INSERT INTO "tb_resource" VALUES (48, '', 16, '添加', '/devicegroup/add');
+INSERT INTO "tb_resource" VALUES (49, '', 16, '删除', '/devicegroup/delete');
+INSERT INTO "tb_resource" VALUES (50, '', 19, '查询', '/devicemanage/index');
+INSERT INTO "tb_resource" VALUES (52, '', 19, '修改', '/devicemanage/update');
+INSERT INTO "tb_resource" VALUES (53, '', 19, '加载修改', '/devicemanage/loadupdate');
+INSERT INTO "tb_resource" VALUES (54, '', 20, '查询', '/device/devpara');
+INSERT INTO "tb_resource" VALUES (55, '', 20, '删除', '/device/deletedevpara');
+INSERT INTO "tb_resource" VALUES (56, '', 20, '跳转', '/device/load4editdevpara');
+INSERT INTO "tb_resource" VALUES (57, '', 20, '新增或修改', '/device/editdevpara');
+INSERT INTO "tb_resource" VALUES (58, '', 21, '查询', '/device/devparabind');
+INSERT INTO "tb_resource" VALUES (59, '', 21, '删除', '/device/deletedevparabind');
+INSERT INTO "tb_resource" VALUES (60, '', 21, '新增跳转', '/device/load4binddevpara');
+INSERT INTO "tb_resource" VALUES (61, '', 23, '查询', '/customer/list');
+INSERT INTO "tb_resource" VALUES (62, '', 23, '添加页面', '/customer/loadadd');
+INSERT INTO "tb_resource" VALUES (63, '', 23, '添加', '/customer/add');
+INSERT INTO "tb_resource" VALUES (64, '', 23, '导入界面', '/customer/loadimport');
+INSERT INTO "tb_resource" VALUES (65, '', 21, '新增', '/device/addbinddevpara');
+INSERT INTO "tb_resource" VALUES (66, '', 23, '删除', '/customer/delete');
+INSERT INTO "tb_resource" VALUES (67, '', 23, '下载模板', '/customer/download');
+INSERT INTO "tb_resource" VALUES (68, '', 23, '导入', '/customer/import');
+INSERT INTO "tb_resource" VALUES (69, '', 27, '查询', '/discountrule/devbind');
+INSERT INTO "tb_resource" VALUES (70, '', 25, '查询', '/discountrule/index');
+INSERT INTO "tb_resource" VALUES (71, '', 26, '查询', '/discountrule/check');
+INSERT INTO "tb_resource" VALUES (74, '', 25, '跳转', '/discountrule/load4addrule');
+INSERT INTO "tb_resource" VALUES (75, '', 25, '删除', '/discountrule/deleterule');
+INSERT INTO "tb_resource" VALUES (76, '', 25, '关闭', '/discountrule/closerule');
+INSERT INTO "tb_resource" VALUES (77, '', 25, '查看名单', '/discountrule/load4detail');
+INSERT INTO "tb_resource" VALUES (78, '', 25, '新增', '/discountrule/addrule');
+INSERT INTO "tb_resource" VALUES (79, '', 29, '查询', '/transdtl/index');
+INSERT INTO "tb_resource" VALUES (80, '', 26, '审核跳转', '/discountrule/load4checkdetail');
+INSERT INTO "tb_resource" VALUES (81, '', 26, '审核', '/discountrule/checkruledetail');
+INSERT INTO "tb_resource" VALUES (82, '', 27, '删除', '/discountrule/deletedevbind');
+INSERT INTO "tb_resource" VALUES (83, '', 27, '新增跳转', '/discountrule/load4binddev');
+INSERT INTO "tb_resource" VALUES (84, '', 27, '新增', '/discountrule/dorulebinddev');
+INSERT INTO "tb_resource" VALUES (85, '', 29, '导出', '/transdtl/export');
+INSERT INTO "tb_resource" VALUES (86, '', 15, '下载模板', '/device/download');
+INSERT INTO "tb_resource" VALUES (87, '', 29, '查询', '/transdtl/list');
+INSERT INTO "tb_resource" VALUES (88, '', 30, '查询', '/transdtlrev/index');
+INSERT INTO "tb_resource" VALUES (89, '', 30, '加载冲正页面', '/transdtlrev/loadrevert');
+INSERT INTO "tb_resource" VALUES (90, '', 30, '冲正', '/transdtlrev/revert');
+INSERT INTO "tb_resource" VALUES (91, '', 1, '查询', '/custtype/index');
+INSERT INTO "tb_resource" VALUES (1, '', 8, '查询', '/devicecheck/index');
+INSERT INTO "tb_resource" VALUES (2, '', 8, '审核', '/devicecheck/docheckdevice');
+INSERT INTO "tb_resource" VALUES (3, '', 13, '查询', '/whitelist/index');
+INSERT INTO "tb_resource" VALUES (18, '', 13, '添加', '/whitelist/addwhitelist');
+INSERT INTO "tb_resource" VALUES (41, '', 18, '查询', '/whitelistcheck/checklist');
+INSERT INTO "tb_resource" VALUES (43, '', 18, '审核', '/whitelistcheck/load4checkdetail');
+INSERT INTO "tb_resource" VALUES (51, '', 31, '查询', '/whitelistbind/devbind');
+INSERT INTO "tb_resource" VALUES (72, '', 31, '绑定', '/whitelistbind/dobinddev');
+INSERT INTO "tb_resource" VALUES (73, '', 32, '查询', '/shopsettlement/index');
+INSERT INTO "tb_resource" VALUES (92, '', 32, '添加', '/shopsettlement/loadadd');
+INSERT INTO "tb_resource" VALUES (93, '', 32, '删除', '/shopsettlement/delete');
+INSERT INTO "tb_resource" VALUES (94, '', 34, '查询', '/customerlist/index');
+INSERT INTO "tb_resource" VALUES (95, '', 36, '查询', '/report/laborfee');
+INSERT INTO "tb_resource" VALUES (96, '', 36, '导出', '/report/excelexportlaborfee');
+INSERT INTO "tb_resource" VALUES (97, '', 37, '查询', '/report/laborcount');
+INSERT INTO "tb_resource" VALUES (98, '', 37, '导出', '/report/excelexportlaborcnt');
 
 
 INSERT INTO "tb_role" (roleid,createtime,editflag,lastsaved,rolecode,roledesc,rolename) VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '20190101000000', 0, '', 'ROLE_ADMIN', '超级管理员', '超级管理员');
 INSERT INTO "tb_role" (roleid,createtime,editflag,lastsaved,rolecode,roledesc,rolename) VALUES ('2c9cab836a8af5d5016a8af6ece20000', '20190506102639', 1, '', 'ROLE_ADMIN', '系统管理员', '系统管理员');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaa80081', 1, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaa80082', 2, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaa80083', 3, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaa80084', 5, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaa9008a', 6, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaa90090', 4, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaaa0099', 9, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaaa009b', 7, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaab009c', 10, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaab009d', 11, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401b90026', 1, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401ba0027', 2, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401ba0028', 3, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401ba0029', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401cf002f', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d00035', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d2003e', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d30040', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d30041', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d30042', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d40048', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d6004f', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d60050', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d80058', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401d9005e', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401da0062', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401db0067', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401dc006c', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401dc006d', 23, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401de0075', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401de0076', 26, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401df007a', 25, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e00081', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e10086', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e10087', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e2008b', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2438ba016d243a95b400d6', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2438ba016d243a95b500d9', 18, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2438ba016d243a95b600dc', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2446b3016d2447fc74006a', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d24bd0e016d24c02e250039', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ea57c6e86d617016e86daac040049', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ea57c6e26421b016e264517d30043', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaa80081', 1, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaa80082', 2, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaa80083', 3, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaa80084', 5, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaa9008a', 6, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaa90090', 4, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaaa0099', 9, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaaa009b', 7, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaab009c', 10, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('ff8080816aaf2ec3016aaf4edaab009d', 11, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4640002', 22, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4650003', 23, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4680005', 24, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4680006', 26, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4680008', 34, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c468000a', 28, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c468000b', 29, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c469000f', 35, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4690010', 36, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4690013', 37, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b808673086e05017308a2c4690016', 41, NULL, '2c9a8084723b686501724aec30280059');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b2590549', 3, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b259054a', 5, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0550', 6, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0556', 14, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0557', 15, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c055f', 16, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0565', 19, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0569', 20, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c056e', 21, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0573', 8, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0576', 22, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0577', 1, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0579', 23, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0581', 32, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25c0585', 24, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d0586', 26, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d058a', 25, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d0591', 27, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d0596', 34, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d0598', 28, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d0599', 29, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d059d', 30, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05a1', 10, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05a2', 12, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05a8', 11, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05a9', 13, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05ac', 18, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05af', 31, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05b2', 35, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05b3', 36, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05b6', 37, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b80867308cb5401732853b25d05b9', 41, NULL, '2c9a8084723b686501724fe3bafc009b');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db7d1d6f', 3, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db7d1d70', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d76', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d7c', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d85', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d87', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d88', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d90', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d96', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d9a', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801d9f', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801da4', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801da7', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801da8', 1, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db801daa', 23, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811db2', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811db6', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811db7', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811db8', 26, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dbc', 25, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dc3', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dc8', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dca', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dcb', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dcf', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dd3', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dd4', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dda', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811de1', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811de2', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811de5', 18, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811de8', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811deb', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811dec', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811ded', 41, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function" VALUES ('2c9b808672e528ec01730415db811df0', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('ff8080816ea5a411016ea5bc08ae007b', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('ff8080816ea5a411016ea5bc08ae007c', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('ff8080816ec4640b016ec471f89d007e', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
 
 INSERT INTO "tb_shopsettlement" (shopsettlementno,operno,shopid,shopname) VALUES ('1', '1234', '2000000012', '测试商户');
diff --git a/src/main/resources/templates/restaurant/customer/form.html b/src/main/resources/templates/restaurant/customer/form.html
index cc312e3..319ca9f 100644
--- a/src/main/resources/templates/restaurant/customer/form.html
+++ b/src/main/resources/templates/restaurant/customer/form.html
@@ -28,6 +28,7 @@
         <label class="layui-form-label">人员类别</label>
         <div class="layui-input-block">
             <select name="custtype" id="customer-custtype" lay-verify="required">
+                <option value="">无</option>
                 <option th:each="type : ${typelist}" th:value="${type.custtypeid}">[[${type.custtypename}]]</option>
             </select>
         </div>
@@ -36,6 +37,7 @@
         <label class="layui-form-label">部门</label>
         <div class="layui-input-block">
             <select name="deptcode" id="customer-deptment" lay-verify="required">
+                <option value="">无</option>
                 <option th:each="dept : ${deptlist}" th:value="${dept.deptcode}">[[${dept.deptname}]]</option>
             </select>
         </div>
diff --git a/src/main/resources/templates/restaurant/custtypereport/index.html b/src/main/resources/templates/restaurant/custtypereport/index.html
index edb8a17..ca72230 100644
--- a/src/main/resources/templates/restaurant/custtypereport/index.html
+++ b/src/main/resources/templates/restaurant/custtypereport/index.html
@@ -1,9 +1,9 @@
 <div class="layui-card">
     <div class="layui-card-header">
-        <h2 class="header-title">食堂日分餐表</h2>
+        <h2 class="header-title">食堂客户分餐表</h2>
         <span class="layui-breadcrumb pull-right">
           <a href="#">报表中心</a>
-          <a><cite>食堂日分餐表</cite></a>
+          <a><cite>食堂客户分餐表</cite></a>
         </span>
     </div>
     <div class="layui-card-body">
@@ -26,7 +26,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">选择设备组</label>
                     <div class="layui-input-block">
-                        <input type="text" name="groupid" id="custtypereport-search-devgroup"
+                        <input type="text" name="groupid" id="custtypereport-search-devgroup" lay-filter="custtypereport-search-devgroup-filter"
                                autocomplete="off" class="layui-input"/>
                     </div>
                 </div>
@@ -114,9 +114,9 @@
 
         treeSelect.render({
             elem: '#custtypereport-search-devgroup',
-            data: '[[@{/discountrule/devgroupbranchtree}]]',
+            data: '[[@{/whitelistbind/devgrouptree}]]',
             type: 'get',
-            placeholder: '选择食堂',
+            placeholder: '选择设备组',
             search: false,
             style: {
                 folder: {
@@ -128,6 +128,14 @@
             },
             // 点击回调
             click: function (d) {
+                var treeNode = d.current;
+                console.log(treeNode);
+                if(treeNode.grouptype == 'branch'){
+                    layer.msg("请选择末级商户", {icon: 2, time:1500});
+                    $("#dailyreport-search-devgroup").val("");
+                    treeSelect.revokeNode('custtypereport-search-devgroup-filter');
+                    return false;
+                }
                 return true;
             },
             success: function (d) {
diff --git a/src/main/resources/templates/restaurant/report/laborcount.html b/src/main/resources/templates/restaurant/report/laborcount.html
index a1dc870..a1476fd 100644
--- a/src/main/resources/templates/restaurant/report/laborcount.html
+++ b/src/main/resources/templates/restaurant/report/laborcount.html
@@ -46,7 +46,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">食堂</label>
                     <div class="layui-input-block">
-                        <input type="text" name="groupid" id="labercount-search-devgroup"
+                        <input type="text" name="groupid" id="labercount-search-devgroup"  lay-filter="labercount-search-devgroup-filter"
                                autocomplete="off" class="layui-input"/>
                     </div>
                 </div>
@@ -180,7 +180,7 @@
 
         treeSelect.render({
             elem: '#labercount-search-devgroup',
-            data: '[[@{/discountrule/devgroupbranchtree}]]',
+            data: '[[@{/whitelistbind/devgrouptree}]]',
             type: 'get',
             placeholder: '选择设备组',
             search: false,
@@ -194,6 +194,14 @@
             },
             // 点击回调
             click: function (d) {
+                var treeNode = d.current;
+                console.log(treeNode);
+                if(treeNode.grouptype == 'branch'){
+                    layer.msg("请选择末级商户", {icon: 2, time:1500});
+                    $("#dailyreport-search-devgroup").val("");
+                    treeSelect.revokeNode('labercount-search-devgroup-filter');
+                    return false;
+                }
                 return true;
             },
             success: function (d) {
diff --git a/src/main/resources/templates/restaurant/report/laborfee.html b/src/main/resources/templates/restaurant/report/laborfee.html
index 4636477..64e7aaf 100644
--- a/src/main/resources/templates/restaurant/report/laborfee.html
+++ b/src/main/resources/templates/restaurant/report/laborfee.html
@@ -45,7 +45,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">食堂</label>
                     <div class="layui-input-block">
-                        <input type="text" name="groupid" id="laborfee-search-devgroup"
+                        <input type="text" name="groupid" id="laborfee-search-devgroup" lay-filter="laborfee-search-devgroup-filter"
                                autocomplete="off" class="layui-input"/>
                     </div>
                 </div>
@@ -196,13 +196,11 @@
             trigger: 'click'
         });
 
-
-
         treeSelect.render({
             elem: '#laborfee-search-devgroup',
-            data: '[[@{/discountrule/devgroupbranchtree}]]',
+            data: '[[@{/whitelistbind/devgrouptree}]]',
             type: 'get',
-            placeholder: '选择食堂',
+            placeholder: '选择设备组',
             search: false,
             style: {
                 folder: {
@@ -214,6 +212,14 @@
             },
             // 点击回调
             click: function (d) {
+                var treeNode = d.current;
+                console.log(treeNode);
+                if(treeNode.grouptype == 'branch'){
+                    layer.msg("请选择末级商户", {icon: 2, time:1500});
+                    $("#dailyreport-search-devgroup").val("");
+                    treeSelect.revokeNode('laborfee-search-devgroup-filter');
+                    return false;
+                }
                 return true;
             },
             success: function (d) {
@@ -221,6 +227,7 @@
             }
         });
 
+
         $("#shopreport-laborfee-search-btn").click(function(){
             var startdate=$("#shopreport-laborfee-search-startdate").val();
             var enddate = $("#shopreport-laborfee-search-enddate").val();
diff --git a/src/main/resources/templates/restaurant/transcountreport/index.html b/src/main/resources/templates/restaurant/transcountreport/index.html
new file mode 100644
index 0000000..9897eb7
--- /dev/null
+++ b/src/main/resources/templates/restaurant/transcountreport/index.html
@@ -0,0 +1,218 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">食堂消费人次表</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#">报表中心</a>
+          <a><cite>食堂消费人次表</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form" lay-filter="transcountreport-search-form">
+            <input type="hidden" id="transcountreport-hidden-maxdate" th:value="${maxdate}" />
+            <div class="layui-form-item" style="margin-bottom: 0;">
+                <div class="layui-inline">
+                    <label class="layui-form-label">记账日期</label>
+                    <div class="layui-input-inline">
+                        <input type="text" name="startdate" id="transcountreport-search-startdate" placeholder="起始日期" th:value="${maxdate}"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                    <div class="layui-form-mid">-</div>
+                    <div class="layui-input-inline">
+                        <input type="text" name="enddate" id="transcountreport-search-enddate" placeholder="截止日期" th:value="${maxdate}"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+
+                <div class="layui-inline">
+                    <label class="layui-form-label">选择设备组</label>
+                    <div class="layui-input-block">
+                        <input type="text" name="groupid" id="transcountreport-search-devgroup" lay-filter="transcountreport-search-devgroup-filter"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+
+                <div class="layui-inline">
+                    <button id="transcountreport-search-btn" class="layui-btn icon-btn" data-type="search"><i
+                            class="layui-icon">&#xe615;</i>搜索
+                    </button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            <div class="layui-btn-group">
+                <button id="shopreport-transcountreport-export-excel" class="layui-btn layui-btn-sm layui-btn-primary sw-print"><i class="layui-icon layui-icon-export"></i>导出</button>
+                <button id="shopreport-transcountreport-print-table" class="layui-btn layui-btn-sm layui-btn-primary sw-print"><i class="layui-icon layui-icon-print"></i>打印</button>
+            </div>
+        </div>
+        <table class="layui-table sw-table" id="shopreport-transcountreport-table" th:fragment="transcountreportTable">
+            <thead>
+            <tr>
+                <th rowspan="2" style="text-align: center;min-width: 100px;">序号</th>
+                <th rowspan="2" style="text-align: center;min-width: 100px;">食堂</th>
+                <th rowspan="2" style="text-align: center;">早餐次数</th>
+                <th rowspan="2" style="text-align: center;">午餐次数</th>
+                <th rowspan="2" style="text-align: center;">晚餐次数</th>
+            </tr>
+            </thead>
+            <tbody id="shopreport-transcountreport-tbody" th:data-startdate="${searchBean.startdate}" th:data-enddate="${searchBean.enddate}"  th:data-opercode="${opercode}">
+            <tr th:if="${null==showlist || showlist.size()==0}">
+                <td colspan="5">无数据</td>
+            </tr>
+            <div th:remove="tag" th:if="${null!=showlist && showlist.size()>0}" th:each="data:${showlist}" >
+                <tr>
+                    <td style="font-weight: bold;" th:text="${data.rownum}"></td>
+                    <td style="font-weight: bold;" th:text="${data.groupname}"></td>
+                    <td style="font-weight: bold;" th:text="${data.btotalcnt}"></td>
+                    <td style="font-weight: bold;" th:text="${data.ltotalcnt}"></td>
+                    <td style="font-weight: bold;" th:text="${data.dtotalcnt}"></td>
+                </tr>
+            </div>
+            </tbody>
+        </table>
+    </div>
+</div>
+
+
+<script>
+    layui.use(['form', 'layer',  'element', 'laydate','treeSelect'], function () {
+        var laydate = layui.laydate;
+        var layer = layui.layer;
+        var $ = layui.jquery;
+        var treeSelect = layui.treeSelect;
+
+        treeSelect.render({
+            elem: '#dailyreport-search-devgroup',
+            data: '[[@{/whitelistbind/devgrouptree}]]',
+            type: 'get',
+            placeholder: '选择设备组',
+            search: false,
+            style: {
+                folder: {
+                    enable: false
+                },
+                line: {
+                    enable: true
+                }
+            },
+            // 点击回调
+            click: function (d) {
+                var treeNode = d.current;
+                console.log(treeNode);
+                if(treeNode.grouptype == 'branch'){
+                    layer.msg("请选择末级商户", {icon: 2, time:1500});
+                    $("#dailyreport-search-devgroup").val("");
+                    treeSelect.revokeNode('transcountreport-search-devgroup-filter');
+                    return false;
+                }
+                return true;
+            },
+            success: function (d) {
+                console.log(d); // 加载完成后的回调函数
+            }
+        });
+
+
+        laydate.render({
+            elem: '#transcountreport-search-startdate',
+            max: $("#transcountreport-hidden-maxdate").val(),
+            trigger: 'click'
+        });
+        laydate.render({
+            elem: '#transcountreport-search-enddate',
+            max: $("#transcountreport-hidden-maxdate").val(),
+            trigger: 'click'
+        });
+
+        $('#transcountreport-search-btn').click(function () {
+            var startdate = $("#transcountreport-search-startdate").val();
+            var enddate = $("#transcountreport-search-enddate").val();
+            var groupid = $("#transcountreport-search-devgroup").val();
+            if (null == startdate || "" == $.trim(startdate)) {
+                layer.msg('请选择起始日期', {icon: 2, time: 1500});
+                return;
+            }
+            if (null == enddate || "" == $.trim(enddate)) {
+                layer.msg('请选择截止日期', {icon: 2, time: 1500});
+                return;
+            }
+
+            $.ajax({
+                url: '[[@{/transcountreport/transcountreportlist}]]',
+                type: "POST",
+                data: {
+                    startdate: startdate,
+                    enddate: enddate,
+                    groupid: groupid,
+                    _csrf: $("meta[name='_csrf_token']").attr("value")
+                },
+                success: function (data) {
+                    $("#shopreport-transcountreport-table").html(data);
+                    layer.closeAll('loading');
+                },
+                error: function (status, err) {
+                    layer.closeAll('loading');
+                    layer.msg('查询失败了', {icon: 2});
+                }
+            });
+        });
+
+        $("#shopreport-transcountreport-export-excel").click(function(){
+            var startdate= $("#shopreport-transcountreport-tbody").attr("data-startdate");
+            var enddate= $("#shopreport-transcountreport-tbody").attr("data-enddate");
+            var groupid = $("#transcountreport-search-devgroup").val();
+
+            var dataUrl='[[@{/transcountreport/excelexport}]]?startdate='+startdate+'&enddate='+enddate+'&groupid='+groupid;
+            var xhr = new XMLHttpRequest();
+            xhr.responseType = "blob"; //设置响应类型为blob类型
+            xhr.onload = function () {
+                debugger
+                if (this.status == "200") {
+                    //获取响应文件流 
+                    var blob = this.response;
+                    // 转换完成,创建一个a标签用于下载
+                    var aElem = document.createElement('a');
+                    aElem.href = window.URL.createObjectURL(blob);
+                    aElem.download = "消费人次报表.xls";
+                    aElem.onload = function (e) {
+                        window.URL.revokeObjectURL(aElem.href);
+                    };
+                    $("body").append(aElem);  // 修复firefox中无法触发click
+                    aElem.click();
+                    $(aElem).remove();
+
+                }else if(this.status == "403"){
+                    layer.msg('无导出资源权限', {icon: 2});
+                } else {
+                    layer.msg('导出excel失败了', {icon: 2});
+                }
+            }
+            xhr.open("GET", dataUrl, true);
+            xhr.send();
+        });
+
+        var LODOP; //声明为全局变量
+        $("#shopreport-transcountreport-print-table").click(function(){
+            var startdate= $("#shopreport-transcountreport-tbody").attr("data-startdate");
+            var enddate= $("#shopreport-transcountreport-tbody").attr("data-enddate");
+            var groupid = $("#transcountreport-search-devgroup").val();
+
+            var opercode = $("#shopreport-transcountreport-tbody").attr("data-opercode");
+            var url = '/transcountreport/print/printtranscountreport?startdate=' + startdate + '&enddate=' + enddate +'&groupid=' + groupid+  '&opercode=' + opercode;
+
+            LODOP = getLodop();
+            LODOP.PRINT_INIT("消费人次报表");
+            LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");
+            LODOP.ADD_PRINT_URL(30, 20, "95%", "90%", encodeURI(url));
+            LODOP.ADD_PRINT_HTM("95%", "48%", 150, 50, "<font style='font-size:12px'><span tdata='pageNO'>##</span>/<span tdata='pageCount'>&nbsp;&nbsp;##</span></font>");
+            LODOP.SET_PRINT_STYLEA(0, "ItemType", 1);
+            LODOP.SET_PRINT_STYLEA(0, "HOrient", 3);
+            LODOP.SET_PRINT_STYLEA(0, "VOrient", 3);
+            LODOP.SET_SHOW_MODE("NP_NO_RESULT", true);
+            LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true);
+            LODOP.PREVIEW();
+        });
+
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/transcountreport/print/printtranscountreport.html b/src/main/resources/templates/restaurant/transcountreport/print/printtranscountreport.html
new file mode 100644
index 0000000..44a2ab0
--- /dev/null
+++ b/src/main/resources/templates/restaurant/transcountreport/print/printtranscountreport.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+<head>
+    <meta charset="UTF-8">
+    <title>消费人次表</title>
+
+    <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" th:href="@{/static/custom/css/custom.css}"/>
+</head>
+<body>
+<div class="layui-card">
+    <div class="layui-card-header" style="text-align: center;">
+        <h1>消费人次表</h1>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            <div style="float: left;padding-left: 3px;" th:text="${'区间:'+period}"></div>
+            <div style="float: right;" th:text="'单位:元'"></div>
+        </div>
+        <table class="layui-table sw-table sw-print">
+            <thead>
+            <tr>
+                <th rowspan="2" style="text-align: center;min-width: 100px;">序号</th>
+                <th rowspan="2" style="text-align: center;min-width: 100px;">食堂</th>
+                <th rowspan="2" style="text-align: center;">早餐次数</th>
+                <th rowspan="2" style="text-align: center;">午餐次数</th>
+                <th rowspan="2" style="text-align: center;">晚餐次数</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr th:if="${null==showlist || showlist.size()==0}">
+                <td colspan="5">无数据</td>
+            </tr>
+            <div th:remove="tag" th:if="${null!=showlist && showlist.size()>0}" th:each="data:${showlist}" >
+                <tr>
+                    <td style="font-weight: bold;" th:text="${data.rownum}"></td>
+                    <td style="font-weight: bold;" th:text="${data.groupname}"></td>
+                    <td style="font-weight: bold;" th:text="${data.btotalcnt}"></td>
+                    <td style="font-weight: bold;" th:text="${data.ltotalcnt}"></td>
+                    <td style="font-weight: bold;" th:text="${data.dtotalcnt}"></td>
+                </tr>
+            </div>
+            </tbody>
+        </table>
+        <div class="layui-form toolbar">
+            <div style="float: left;padding-left: 3px;" th:text="${'制表人:'+opername+' &nbsp;&nbsp; '+ printdatetime}"></div>
+        </div>
+    </div>
+    <div class="layui-card-body" style="margin-top: 25px;">
+        <table class="sw-print-sign">
+            <tr>
+                <td width="50%">大理州公安局警务保障处审核盖章:</td>
+                <td width="50%">苍山饭店审核盖章:</td>
+            </tr>
+            <tr>
+                <td>经办人:</td>
+                <td>审核人:</td>
+            </tr>
+            <tr>
+                <td>审核人:</td>
+
+            </tr>
+            <tr>
+                <td colspan="2">&nbsp;</td>
+            </tr>
+            <tr>
+                <td colspan="2">&nbsp;</td>
+            </tr>
+            <!--            <tr>-->
+            <!--                <td>市民卡公司审核盖章:</td>-->
+            <!--                <td>建桥园审核盖章:</td>-->
+            <!--            </tr>-->
+            <!--            <tr>-->
+            <!--                <td>审核人:</td>-->
+            <!--                <td>审核人:</td>-->
+            <!--            </tr>-->
+        </table>
+    </div>
+</div>
+</body>
+</html>
\ No newline at end of file