diff --git a/src/main/resources/atte.sql b/src/main/resources/atte.sql
deleted file mode 100644
index feed522..0000000
--- a/src/main/resources/atte.sql
+++ /dev/null
@@ -1,93 +0,0 @@
-create view v_atte_dtl as SELECT t.transdate,
-                                 t.transtime,
-                                 substr((t.doorid)::text, 5) AS deviceid,
-                                 t.doorseqno,
-                                 t.cardno,
-                                 t.cardphyid,
-                                 t.bankcardno,
-                                 t.custid,
-                                 t.custname,
-                                 t.status,
-                                 t.devtype
-                          FROM t_doordtl t
-                          WHERE ((substr((t.doorid)::text, 5))::integer IN ( SELECT DISTINCT d.deviceid
-  FROM (t_dev_rule d
-  LEFT JOIN t_atte_rule r ON ((d.ruleid = r.id)))
-  WHERE (r.status = 1)))
-  ORDER BY t.doorseqno;
-
-INSERT INTO "tb_businesspara" VALUES ('atte_bmin', '60');
-INSERT INTO "tb_businesspara" VALUES ('atte_min', '60');
-INSERT INTO "tb_businesspara" VALUES ('atte_emin', '60');
-
-create view v_atte_info as WITH a AS (
-SELECT t.custid,
-t.attedate,
-CASE
-WHEN (EXISTS ( SELECT d.atteno,
-d.custid,
-d.attedate,
-d.timeid,
-d.state,
-d.status,
-d.remark,
-d.oldstate,
-d.operid,
-d.updatetime
-FROM t_atte_dtl d
-WHERE (((t.custid)::text = (d.custid)::text) AND ((t.attedate)::text = (d.attedate)::text) AND (d.state = 0)))) THEN 0
-WHEN (EXISTS ( SELECT d.atteno,
-d.custid,
-d.attedate,
-d.timeid,
-d.state,
-d.status,
-d.remark,
-d.oldstate,
-d.operid,
-d.updatetime
-FROM t_atte_dtl d
-WHERE (((t.custid)::text = (d.custid)::text) AND ((t.attedate)::text = (d.attedate)::text) AND (d.state > 10)))) THEN 3
-WHEN (EXISTS ( SELECT d.atteno,
-d.custid,
-d.attedate,
-d.timeid,
-d.state,
-d.status,
-d.remark,
-d.oldstate,
-d.operid,
-d.updatetime
-FROM t_atte_dtl d
-WHERE (((t.custid)::text = (d.custid)::text) AND ((t.attedate)::text = (d.attedate)::text) AND (d.state = 2)))) THEN 2
-ELSE 1
-END AS state
-FROM t_atte_dtl t
-GROUP BY t.custid, t.attedate
-ORDER BY t.attedate DESC
-)
-SELECT a.custid,
-       a.attedate,
-       a.state,
-       c.custname,
-       c.custtypeid,
-       c.deptcode
-FROM (a
-  LEFT JOIN t_customer c ON (((a.custid)::text = (c.custid)::text)));
-
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('47', NULL, '1', NULL, '', '/atte/dtl/index', '考勤流水', NULL, '36', NULL);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('45', NULL, '1', NULL, '', '/atte/timedtl/index', '考勤状态维护', NULL, '36', NULL);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('37', NULL, '1', NULL, '', '/atte/rule/index', '考勤规则管理', NULL, '36', NULL);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('49', NULL, '1', NULL, '', '/atte/police/index', '考勤报表', NULL, '36', NULL);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('36', NULL, '0', NULL, 'layui-icon-set', '#', '人员考勤', '36', '-1', NULL);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('42', NULL, '1', NULL, '', '/atte/class/index', '手动排班', NULL, '36', NULL);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('48', NULL, '1', NULL, '', '/atte/review/index', '审核人管理', NULL, '36', NULL);
-
-
-CREATE SEQUENCE seq_attedtl
-INCREMENT 1
-MINVALUE 1
-MAXVALUE 9223372036854775807
-START 1
-CACHE 1
-CYCLE;
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 51867d3..e4741ab 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -207,17 +207,15 @@
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (33, NULL, 1, NULL, '', '/customer/index', '客户管理', 2, 21, NULL);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (35, NULL, 1, NULL, '', '/conference/index', '会议管理', 1, 29, NULL);
 
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (45, NULL, 1, NULL, '', '#', '考勤流水管理', NULL, 36, NULL);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (44, NULL, 1, NULL, '', '/confreport/index', '会议报表', 3, 29, NULL);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (43, NULL, 1, NULL, 'layui-icon-set', '/visitor/checkin', '访客登记', 54, 38, NULL);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (42, NULL, 1, NULL, '', '/atte/class/index', '考勤排班', NULL, 36, NULL);
+
 
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (41, NULL, 1, NULL, 'layui-icon-set', '/visitor/index', '访客记录查询', 53, 38, NULL);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (40, NULL, 1, NULL, '', '/atte/custsea/index', '人员类别绑定', NULL, 36, NULL);
+
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (39, NULL, 1, NULL, '', '/confpeople/index', '会议人员查询', 2, 29, NULL);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (38, NULL, 0, NULL, 'layui-icon-set', '#', '访客管理', 52, -1, NULL);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (37, NULL, 1, NULL, '', '/atte/season/index', '时令管理', NULL, 36, NULL);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (36, NULL, 0, NULL, 'layui-icon-set', '#', '人员考勤', 36, -1, NULL);
+
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (35, NULL, 1, NULL, '', '/conference/index', '会议管理', 1, 29, NULL);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (33, NULL, 1, NULL, '', '/customer/index', '客户管理', 2, 21, NULL);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (32, NULL, 1, NULL, '', '/system/deptindex', '部门管理', 10, 3, NULL);
@@ -225,3 +223,99 @@
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES (29, NULL, 0, NULL, 'layui-icon-app', '#', '会议签到', 8, -1, NULL);
 
 INSERT INTO "tb_dept"("deptcode", "deptname", "deptno", "ename", "fdeptcode", "lastsaved", "status") VALUES ('0', '根部门', 'root', NULL, '-1', NULL, 'normal');
+
+--atte
+create view v_atte_dtl as SELECT t.transdate,
+                                 t.transtime,
+                                 substr((t.doorid)::text, 5) AS deviceid,
+                                 t.doorseqno,
+                                 t.cardno,
+                                 t.cardphyid,
+                                 t.bankcardno,
+                                 t.custid,
+                                 t.custname,
+                                 t.status,
+                                 t.devtype
+                          FROM t_doordtl t
+                          WHERE ((substr((t.doorid)::text, 5))::integer IN ( SELECT DISTINCT d.deviceid
+  FROM (t_dev_rule d
+  LEFT JOIN t_atte_rule r ON ((d.ruleid = r.id)))
+  WHERE (r.status = 1)))
+  ORDER BY t.doorseqno;
+
+INSERT INTO "tb_businesspara" VALUES ('atte_bmin', '60');
+INSERT INTO "tb_businesspara" VALUES ('atte_min', '60');
+INSERT INTO "tb_businesspara" VALUES ('atte_emin', '60');
+
+create view v_atte_info as WITH a AS (
+  SELECT t.custid,
+  t.attedate,
+  CASE
+  WHEN (EXISTS ( SELECT d.atteno,
+  d.custid,
+  d.attedate,
+  d.timeid,
+  d.state,
+  d.status,
+  d.remark,
+  d.oldstate,
+  d.operid,
+  d.updatetime
+  FROM t_atte_dtl d
+  WHERE (((t.custid)::text = (d.custid)::text) AND ((t.attedate)::text = (d.attedate)::text) AND (d.state = 0)))) THEN 0
+  WHEN (EXISTS ( SELECT d.atteno,
+  d.custid,
+  d.attedate,
+  d.timeid,
+  d.state,
+  d.status,
+  d.remark,
+  d.oldstate,
+  d.operid,
+  d.updatetime
+  FROM t_atte_dtl d
+  WHERE (((t.custid)::text = (d.custid)::text) AND ((t.attedate)::text = (d.attedate)::text) AND (d.state > 10)))) THEN 3
+  WHEN (EXISTS ( SELECT d.atteno,
+  d.custid,
+  d.attedate,
+  d.timeid,
+  d.state,
+  d.status,
+  d.remark,
+  d.oldstate,
+  d.operid,
+  d.updatetime
+  FROM t_atte_dtl d
+  WHERE (((t.custid)::text = (d.custid)::text) AND ((t.attedate)::text = (d.attedate)::text) AND (d.state = 2)))) THEN 2
+  ELSE 1
+  END AS state
+  FROM t_atte_dtl t
+  GROUP BY t.custid, t.attedate
+  ORDER BY t.attedate DESC
+  )
+SELECT a.custid,
+       a.attedate,
+       a.state,
+       c.custname,
+       c.custtypeid,
+       c.deptcode
+FROM (a
+  LEFT JOIN t_customer c ON (((a.custid)::text = (c.custid)::text)));
+
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('47', NULL, '1', NULL, '', '/atte/dtl/index', '考勤流水', NULL, '36', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('45', NULL, '1', NULL, '', '/atte/timedtl/index', '考勤状态维护', NULL, '36', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('37', NULL, '1', NULL, '', '/atte/rule/index', '考勤规则管理', NULL, '36', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('49', NULL, '1', NULL, '', '/atte/police/index', '考勤报表', NULL, '36', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('36', NULL, '0', NULL, 'layui-icon-set', '#', '人员考勤', '36', '-1', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('42', NULL, '1', NULL, '', '/atte/class/index', '手动排班', NULL, '36', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('48', NULL, '1', NULL, '', '/atte/review/index', '审核人管理', NULL, '36', NULL);
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", "grade") VALUES ('51', NULL, '1', NULL, '', '/atte/rest/index', '假单查询', NULL, '36', NULL);
+
+
+CREATE SEQUENCE seq_attedtl
+INCREMENT 1
+MINVALUE 1
+MAXVALUE 9223372036854775807
+START 1
+CACHE 1
+CYCLE;
