diff --git a/build.gradle b/build.gradle
index e7300fc..d45b97f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -52,7 +52,8 @@
     implementation 'org.springframework.boot:spring-boot-starter-data-redis'
     implementation 'org.springframework.boot:spring-boot-starter-web'
     implementation 'org.springframework.boot:spring-boot-starter-security'
-    implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.0.1.RELEASE'
+//    implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.0.1.RELEASE'
+    implementation 'org.springframework.boot:spring-boot-autoconfigure'
 //    implementation 'org.springframework.security.oauth:spring-security-oauth2'
     implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
     implementation 'org.springframework.session:spring-session-data-redis'
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index c6572ae..37c08c2 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -3,12 +3,12 @@
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
+spring.datasource.continue-on-error=true
 # Postgresql settings
 spring.datasource.platform=postgresql
 spring.datasource.url=jdbc:postgresql://172.28.201.70:15432/watermanager
 spring.datasource.username=watermanager
 spring.datasource.password=123456
-database.dbtype=postgresql
 # Redis settings
 redis.server=172.28.201.101
 redis.port=16379
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt b/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt
index 6a45f69..eca960c 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt
@@ -149,6 +149,9 @@
     @Sign
     var flowsensors: Int = 0
 
+    @Sign
+    var transtatus: String = ""
+
     override fun checkParam(): Boolean {
         if (deviceno.length != 8 || deviceno.any { it !in '0'..'9' }) {
             throw RequestParamCheckException(TradeErrorCode.INPUT_DATA_ERROR, "设备ID号长度不符")
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
index ca1750b..b761adb 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
@@ -98,13 +98,15 @@
     fun getRegionTree(): ResponseEntity<Any> {
         try {
             areaService.queryAllAreas()?.let { it ->
-                areaService.getAreaTree(it, 0)?.let {
+                areaService.getAreaTree(it, 0).let {
                     return ResponseEntity.ok(ResponseBodyBuilder.create()
                             .data("regions", it)
                             .success())
                 }
             }
-            return ResponseEntity.ok(ResponseBodyBuilder.create().fail(WaterErrorCode.REQUEST_DATA_ERROR, "区域未找到"))
+            return ResponseEntity.ok(ResponseBodyBuilder.create()
+                    .data("regions", "")
+                    .success())
         } catch (ex: Exception) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
                     .exception(WaterErrorCode.PROCESS_ERROR, ex, "服务器繁忙,请稍后再试"))
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt b/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt
index 099779a..ef2b1d7 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt
@@ -25,11 +25,15 @@
         val dtl = transdtlDao.findByBillnoForUpdate(record.refno)
                 ?: throw TransactionProcessException(WaterErrorCode.DATA_NOTFOUND_ERROR,
                         "交易订单号不存在")
+        if (record.transtatus == "2") {
+            dtl.status = TradeDict.DTL_STATUS_FAIL
+        }else if (record.transtatus == "1") {
+            dtl.status = TradeDict.DTL_STATUS_WIP
+        }
         dtl.amount = record.amount / 100.0
         dtl.waterSumHundredLitre = record.flowsensors
         dtl.uploadTime = record.transdate + record.transtime
         dtl.uploadStatus = 1
-        dtl.status = TradeDict.DTL_STATUS_WIP
         transdtlDao.save(dtl)
         return dtl
     }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index e80789e..4efcdb1 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -4,10 +4,7 @@
 spring.datasource.hikari.connection-timeout=60000
 spring.datasource.hikari.maximum-pool-size=5
 spring.jpa.hibernate.ddl-auto=update
-
-spring.flyway.locations=classpath:db/migration
-spring.flyway.baseline-version=0
-spring.flyway.baseline-on-migrate=true
+spring.datasource.initialization-mode=always
 # logging
 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
 logging.level.org.hibernate.SQL=debug
diff --git a/src/main/resources/data-pg.sql b/src/main/resources/data-postgresql.sql
similarity index 84%
rename from src/main/resources/data-pg.sql
rename to src/main/resources/data-postgresql.sql
index c9655e1..2f9f683 100644
--- a/src/main/resources/data-pg.sql
+++ b/src/main/resources/data-postgresql.sql
@@ -4,4 +4,5 @@
 insert into TB_VOUCHERNOCTL(VOUCHERTYPE,PERIODMONTH,VOUCHERNO)
 values (1,to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'),0);
 
+update TB_SUBJECT set opendate = to_number(to_char(CURRENT_TIMESTAMP,'yyyymmdd'),'99999999');
 commit ;
\ No newline at end of file
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index ce5e596..d305208 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -34,7 +34,6 @@
 Insert into TB_ROLE_FUNCTION (ID,FUNCTIONID,ROLEID) values ('3','3','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 Insert into TB_ROLE_FUNCTION (ID,FUNCTIONID,ROLEID) values ('4','4','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
-commit;
 
 -- 资产类
 Insert into TB_SUBJECT (SUBJNO,SUBJNAME,SUBJTYPE,BALFLAG,FSUBJNO,SUBJLEVEL,ENDFLAG,OPENDATE,DISPLAYFLAG) values ('1001','库存现金',1,1,null,1,1,null,'y');
@@ -78,8 +77,7 @@
 Insert into TB_SUBJECT (SUBJNO,SUBJNAME,SUBJTYPE,BALFLAG,FSUBJNO,SUBJLEVEL,ENDFLAG,OPENDATE,DISPLAYFLAG) values ('6602','管理费收入',6,2,null,1,1,null,'y');
 -- -- oracle --
 -- update TB_SUBJECT set opendate = to_char(sysdate,'yyyyMMdd');
-update TB_SUBJECT set opendate = to_number(to_char(CURRENT_TIMESTAMP,'yyyymmdd'),'99999999');
-commit;
+
 
 
  -- oracle --
@@ -94,39 +92,24 @@
 */
 
 -- --pg--
-commit;
 
 
 Insert into TB_SUBJECT (SUBJNO,SUBJNAME,SUBJTYPE,BALFLAG,FSUBJNO,SUBJLEVEL,ENDFLAG,OPENDATE,DISPLAYFLAG) values ('112234','市民卡支付款',1,1,'1122',2,1,null,'y');
-INSERT INTO "public"."tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/region/index', '区域管理', 2, 1);
-INSERT INTO "public"."tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (7, NULL, 1, NULL, 'layui-icon-set', '/device/index', '设备管理', 3, 1);
-INSERT INTO "public"."tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('6', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "public"."tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('7', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/region/index', '区域管理', 2, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (7, NULL, 1, NULL, 'layui-icon-set', '/device/index', '设备管理', 3, 1);
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('6', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('7', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
-CREATE SEQUENCE "public"."seq_refno" INCREMENT 1MINVALUE  1MAXVALUE 9223372036854775807 START 1 CACHE 1;
-ALTER SEQUENCE "public"."seq_refno" OWNER TO "watermanager";
+CREATE SEQUENCE "seq_refno" INCREMENT 1MINVALUE  1MAXVALUE 9223372036854775807 START 1 CACHE 1;
+ALTER SEQUENCE "seq_refno" OWNER TO "watermanager";
 
-INSERT INTO "public"."tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (3, 1, '', '正常', '食堂POS03', '10000003', NULL);
-INSERT INTO "public"."tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (5, 2, NULL, '正常', '食堂POS05', '10000005', NULL);
-INSERT INTO "public"."tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (4, 1, NULL, '注销', '食堂POS04', '10000004', NULL);
-INSERT INTO "public"."tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (2, 2, NULL, '注销', '食堂POS02', '10000002', '');
-INSERT INTO "public"."tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (1, 2, '1.02.0', '正常', '食堂POS01', '10000001', '');
-INSERT INTO "public"."tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (6, 2, NULL, '注销', '食堂POS06', '10000006', NULL);
 
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (1, '宝山区套路1号', '一号楼', 1, 1, 0, '无', '11');
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (4, '宝山区套路1号', '四号楼', 0, 1, 0, '无', '444');
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (2, '宝山区套路1号', '二号楼', 1, 1, 0, '无', '2222');
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (5, '宝山区套路1号', '四号楼', 0, 1, 0, '无', '555');
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (6, '宝山区套路1号', '六号楼', 1, 1, 0, '无', '666666');
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (7, '宝山区套路1号', '四号楼', 1, 1, 0, '无', '666666');
-INSERT INTO "public"."tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "parentname", "remarks") VALUES (3, '宝山区套路1号', '三号楼', 1, 1, 0, '无', '33');
+INSERT INTO "tb_devicefeeconfig"("deviceid", "feecfgversion", "feeconfig") VALUES (1, NULL, 1);
 
-INSERT INTO "public"."tb_devicefeeconfig"("deviceid", "feecfgversion", "feeconfig") VALUES (1, NULL, 1);
+INSERT INTO "tb_feeconfig"("id", "amount", "max_water_litre", "cfg_version") VALUES (1, 1, 50, NULL);
 
-INSERT INTO "public"."tb_feeconfig"("id", "amount", "max_water_litre", "cfg_version") VALUES (1, 1, 50, NULL);
+INSERT INTO "tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('1', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
-INSERT INTO "public"."tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('1', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', NULL, NULL);
 
-INSERT INTO "public"."tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', NULL, NULL);
-
-commit ;
\ No newline at end of file
+commit;
\ No newline at end of file
diff --git a/src/main/resources/templates/system/region/index.html b/src/main/resources/templates/system/region/index.html
index 0fc9002..399b8ac 100644
--- a/src/main/resources/templates/system/region/index.html
+++ b/src/main/resources/templates/system/region/index.html
@@ -52,11 +52,11 @@
             cols: [
                 [
                     {field: 'areano', align: 'center', title: '区域号', unresize: true, width: "9%"},
-                    {field: 'areaName', align: 'center', title: '区域名称'},
-                    {field: 'level', align: 'center', title: '区域级别', unresize: true, width: "10%"},
-                    {field: 'parentName', align: 'center', title: '父区域'},
-                    {field: 'address', align: 'center', title: '详细地址'},
-                    {field: 'remarks', align: 'center', title: '备注'},
+                    {field: 'areaName', align: 'center', unresize: true,title: '区域名称'},
+                    {field: 'level', align: 'center', title: '区域级别', unresize: true, width: "12%"},
+                    {field: 'parentName', align: 'center',unresize: true, title: '父区域'},
+                    {field: 'address', align: 'center', unresize: true,title: '详细地址'},
+                    {field: 'remarks', align: 'center',unresize: true, title: '备注'},
                     {
                         field: 'regionId', align: 'center', title: '操作', unresize: true, templet: function (item) {
                             let html = ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>修改</a> ' +
@@ -204,6 +204,7 @@
         success: function (data) {
             if (data.retcode == '0') {
                 var treeData = data.regions;
+                console.log(treeData)
                 layui.use('tree', function () {
                     var tree = layui.tree;
                     var inst1 = tree.render({
