diff --git a/src/main/java/com/supwisdom/dlpay/device/domain/TDevice.java b/src/main/java/com/supwisdom/dlpay/device/domain/TDevice.java
new file mode 100644
index 0000000..f07b454
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/device/domain/TDevice.java
@@ -0,0 +1,87 @@
+package com.supwisdom.dlpay.device.domain;
+
+import javax.persistence.*;
+@Entity
+@Table(name = "TB_DEVICE")
+@SequenceGenerator(name="SEQ_DEVICE",sequenceName="SEQ_DEVICE",allocationSize=1)
+public class TDevice {
+
+    private Integer id;
+    private String devicename;
+    private String devphyid;
+    private String termid;
+    private Integer shopid;
+    private String factoryid;
+    private Integer status;
+    private String operid;
+    @Id
+    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_DEVICE")
+    @Column(name = "id", unique = true, nullable = false, length = 8)
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer areacode) {
+        this.id = areacode;
+    }
+
+
+    @Column(name = "AREANAME", length = 60)
+    public String getDevicename() {
+        return devicename;
+    }
+
+    public void setDevicename(String devicename) {
+        this.devicename = devicename;
+    }
+
+    @Column(name = "devphyid", length = 20)
+    public String getDevphyid() {
+        return devphyid;
+    }
+
+    public void setDevphyid(String devphyid) {
+        this.devphyid = devphyid;
+    }
+
+    @Column(name = "termid", length = 20)
+    public String getTermid() {
+        return termid;
+    }
+
+    public void setTermid(String termid) {
+        this.termid = termid;
+    }
+    @Column(name = "shopid", length = 10)
+    public Integer getShopid() {
+        return shopid;
+    }
+
+    public void setShopid(Integer shopid) {
+        this.shopid = shopid;
+    }
+    @Column(name = "factoryid", length = 10)
+    public String getFactoryid() {
+        return factoryid;
+    }
+
+    public void setFactoryid(String factoryid) {
+        this.factoryid = factoryid;
+    }
+    @Column(name = "status", length = 1)
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+    @Column(name = "operid", length = 100)
+    public String getOperid() {
+        return operid;
+    }
+
+    public void setOperid(String operid) {
+        this.operid = operid;
+    }
+}
\ No newline at end of file
