diff --git a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java
index 38a046e..8b22126 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java
@@ -21,7 +21,7 @@
 
 
     @Id
-    @Column(name = "atteno")
+    @Column(name = "atteno",length = 14)
     public String getAtteno() {
         return atteno;
     }
@@ -29,7 +29,7 @@
     public void setAtteno(String atteno) {
         this.atteno = atteno;
     }
-    @Column(name = "custid")
+    @Column(name = "custid",length = 32)
     public String getCustid() {
         return custid;
     }
@@ -37,7 +37,7 @@
     public void setCustid(String custid) {
         this.custid = custid;
     }
-    @Column(name = "attedate")
+    @Column(name = "attedate",length = 8)
     public String getAttedate() {
         return attedate;
     }
@@ -45,7 +45,7 @@
     public void setAttedate(String attedate) {
         this.attedate = attedate;
     }
-    @Column(name = "timeid")
+    @Column(name = "timeid",length = 32)
     public Integer getTimeid() {
         return timeid;
     }
@@ -53,7 +53,7 @@
     public void setTimeid(Integer timeid) {
         this.timeid = timeid;
     }
-    @Column(name = "state")
+    @Column(name = "state",length = 32)
     public Integer getState() {
         return state;
     }
@@ -61,7 +61,7 @@
     public void setState(Integer state) {
         this.state = state;
     }
-    @Column(name = "status")
+    @Column(name = "status",length = 16)
     public Integer getStatus() {
         return status;
     }
@@ -70,7 +70,7 @@
         this.status = status;
     }
 
-    @Column(name = "remark")
+    @Column(name = "remark",length = 255)
     public String getRemark() {
         return remark;
     }
@@ -78,7 +78,7 @@
     public void setRemark(String remark) {
         this.remark = remark;
     }
-    @Column(name = "oldstate")
+    @Column(name = "oldstate",length = 32)
     public Integer getOldstate() {
         return oldstate;
     }
@@ -86,7 +86,7 @@
     public void setOldstate(Integer oldstate) {
         this.oldstate = oldstate;
     }
-    @Column(name = "operid")
+    @Column(name = "operid",length = 32)
     public String getOperid() {
         return operid;
     }
@@ -94,7 +94,7 @@
     public void setOperid(String operid) {
         this.operid = operid;
     }
-    @Column(name = "updatetime")
+    @Column(name = "updatetime",length = 14)
     public String getUpdatetime() {
         return updatetime;
     }
diff --git a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteReview.java b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteReview.java
index 455c63c..043f2e8 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteReview.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteReview.java
@@ -14,7 +14,7 @@
     private String updatetime;
 
     @Id
-    @Column(name="custid")
+    @Column(name="custid",length = 32)
     public String getCustid() {
         return custid;
     }
@@ -22,7 +22,7 @@
     public void setCustid(String custid) {
         this.custid = custid;
     }
-    @Column(name="opercode")
+    @Column(name="opercode",length = 255)
     public String getOpercode() {
         return opercode;
     }
@@ -30,7 +30,7 @@
     public void setOpercode(String opercode) {
         this.opercode = opercode;
     }
-    @Column(name="updatetime")
+    @Column(name="updatetime",length = 14)
     public String getUpdatetime() {
         return updatetime;
     }
diff --git a/src/main/java/com/supwisdom/dlpay/atte/domain/TClassCust.java b/src/main/java/com/supwisdom/dlpay/atte/domain/TClassCust.java
index 493391f..5596abc 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/domain/TClassCust.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/domain/TClassCust.java
@@ -10,7 +10,7 @@
     private String custid;
     private String attedate;
 
-    @Column(name="classid")
+    @Column(name="classid",length = 64)
     public Integer getClassid() {
         return classid;
     }
@@ -19,7 +19,7 @@
         this.classid = classid;
     }
     @Id
-    @Column(name="custid")
+    @Column(name="custid",length = 32)
     public String getCustid() {
         return custid;
     }
@@ -27,7 +27,7 @@
     public void setCustid(String custid) {
         this.custid = custid;
     }
-    @Column(name="attedate")
+    @Column(name="attedate",length = 14)
     public String getAttedate() {
         return attedate;
     }
diff --git a/src/main/java/com/supwisdom/dlpay/atte/domain/TSeason.java b/src/main/java/com/supwisdom/dlpay/atte/domain/TSeason.java
index 7cea29a..3a00f8d 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/domain/TSeason.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/domain/TSeason.java
@@ -19,7 +19,7 @@
     private String deptcode;
 
     @Id
-    @Column(name = "id", unique = true, nullable = false)
+    @Column(name = "id", unique = true, nullable = false,length = 32)
     public Integer getId() {
         return id;
     }
@@ -27,7 +27,7 @@
     public void setId(Integer id) {
         this.id = id;
     }
-    @Column(name = "rulename")
+    @Column(name = "rulename",length = 255)
     public String getSeason() {
         return season;
     }
@@ -35,7 +35,7 @@
     public void setSeason(String season) {
         this.season = season;
     }
-    @Column(name = "weekid",  nullable = false)
+    @Column(name = "weekid",  nullable = false,length = 32)
     public Integer getWeekid() {
         return weekid;
     }
@@ -43,7 +43,7 @@
     public void setWeekid(Integer weekid) {
         this.weekid = weekid;
     }
-
+    @Column(name = "status",  nullable = false,length = 32)
     public Integer getStatus() {
         return status;
     }
@@ -51,7 +51,7 @@
     public void setStatus(Integer status) {
         this.status = status;
     }
-    @Column(name = "addtime")
+    @Column(name = "addtime",length = 14)
     public String getAddtime() {
         return addtime;
     }
@@ -59,7 +59,7 @@
     public void setAddtime(String addtime) {
         this.addtime = addtime;
     }
-    @Column(name = "updatetime")
+    @Column(name = "updatetime",length = 14)
     public String getUpdatetime() {
         return updatetime;
     }
@@ -67,7 +67,7 @@
     public void setUpdatetime(String updatetime) {
         this.updatetime = updatetime;
     }
-    @Column(name="custtypeid")
+    @Column(name="custtypeid",length = 64)
     public Integer getCusttypeid() {
         return custtypeid;
     }
@@ -75,7 +75,7 @@
     public void setCusttypeid(Integer custtypeid) {
         this.custtypeid = custtypeid;
     }
-    @Column(name="deptcode")
+    @Column(name="deptcode",length = 32)
     public String getDeptcode() {
         return deptcode;
     }
diff --git a/src/main/resources/atte.sql b/src/main/resources/atte.sql
index 0d1fcae..510750b 100644
--- a/src/main/resources/atte.sql
+++ b/src/main/resources/atte.sql
@@ -83,3 +83,11 @@
 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;
