diff --git a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TCitizencardLossApply.java b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TCitizencardLossApply.java
index 6063b0b..fe1d694 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TCitizencardLossApply.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TCitizencardLossApply.java
@@ -1,7 +1,7 @@
 package com.supwisdom.dlpay.citizencard.domain;
 
 import javax.persistence.*;
-import java.security.Timestamp;
+import java.sql.Timestamp;
 
 @Entity
 @Table(name = "TB_CITIZENCARD_LOSSAPPLY")
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/task/CitizencardCardLossTask.java b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/task/CitizencardCardLossTask.java
index 4af5665..e291450 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/task/CitizencardCardLossTask.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/task/CitizencardCardLossTask.java
@@ -1,7 +1,6 @@
 package com.supwisdom.dlpay.citizencard.task;
 
 import com.google.gson.Gson;
-import com.google.gson.JsonObject;
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.ClientResponse;
 import com.sun.jersey.api.client.WebResource;
@@ -38,12 +37,12 @@
   private static final Logger logger = LoggerFactory.getLogger(CitizencardCardLossTask.class);
 
   @Scheduled(cron = "${citizencard.dolosstask.cron}")
-  @SchedulerLock(name = "CitizencardCardLossTask", lockAtMostForString = "PT30M")
+  @SchedulerLock(name = "CitizencardCardLossTask", lockAtMostForString = "PT10M")
   public void doCitizencardCardLossTask() {
     try {
       long t1 = System.currentTimeMillis();
       List<TCitizencardLossApply> applyList = citizencardManagerService.getNewApplyCitizencardLossRecords();
-      String cardsysUrl = systemUtilService.getBusinessValue(ConstantUtil.CITIZENCARD_SYSTEM_URL);
+      String cardsysUrl = systemUtilService.getBusinessValue(ConstantUtil.CITIZENCARD_SYSTEM_URL); //卡管挂失接口地址
       if(!StringUtil.isEmpty(applyList) && StringUtil.isEmpty(cardsysUrl)){
         logger.error("市民卡管系统地址未配置[BusinessParam=" + ConstantUtil.CITIZENCARD_SYSTEM_URL + "]");
         return;
diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql
index 3fbc086..d218c43 100644
--- a/payapi/src/main/resources/data.sql
+++ b/payapi/src/main/resources/data.sql
@@ -40,7 +40,7 @@
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
 VALUES (19, NULL, 0, NULL, 'layui-icon-user', '#', '用户中心', 5, -1, '{tenantid}');
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
-VALUES (20, NULL, 0, NULL, 'layui-icon-rmb', '#', '结算中心', 6, -1, '{tenantid}');
+VALUES (20, NULL, 0, NULL, 'layui-icon-rmb', '#', '报表中心', 6, -1, '{tenantid}');
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
 VALUES (21, NULL, 1, NULL, '', '/user/index', '用户管理', 1, 19, '{tenantid}');
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
diff --git a/payapi/src/main/resources/templates/system/report/shopbusiness.html b/payapi/src/main/resources/templates/system/report/shopbusiness.html
index 49a512a..93833b1 100644
--- a/payapi/src/main/resources/templates/system/report/shopbusiness.html
+++ b/payapi/src/main/resources/templates/system/report/shopbusiness.html
@@ -2,7 +2,7 @@
     <div class="layui-card-header">
         <h2 class="header-title">商户营业情况表</h2>
         <span class="layui-breadcrumb pull-right">
-          <a href="#">结算中心</a>
+          <a href="#">报表中心</a>
           <a><cite>商户营业情况表</cite></a>
         </span>
     </div>
diff --git a/payapi/src/main/resources/templates/system/report/subjectday.html b/payapi/src/main/resources/templates/system/report/subjectday.html
index 11453f8..c906e81 100644
--- a/payapi/src/main/resources/templates/system/report/subjectday.html
+++ b/payapi/src/main/resources/templates/system/report/subjectday.html
@@ -2,7 +2,7 @@
     <div class="layui-card-header">
         <h2 class="header-title">科目汇总表</h2>
         <span class="layui-breadcrumb pull-right">
-          <a href="#">结算中心</a>
+          <a href="#">报表中心</a>
           <a><cite>科目汇总表</cite></a>
         </span>
     </div>
@@ -103,12 +103,12 @@
 
                             }
                         },
-                        {align: 'center', title: '期初余额', colspan: 2},
+                        // {align: 'center', title: '期初余额', colspan: 2},
                         {align: 'center', title: '本期发生额', colspan: 2},
-                        {align: 'center', title: '期末余额', colspan: 2}
+                        {align: 'center', title: '期末扎差', colspan: 2}
                     ], [
-                        {field: 'lastdaydrbal', title: '借方', align: 'center'},
-                        {field: 'lastdaycrbal', title: '贷方', align: 'center'},
+                        // {field: 'lastdaydrbal', title: '借方', align: 'center'},
+                        // {field: 'lastdaycrbal', title: '贷方', align: 'center'},
                         {field: 'dramt', title: '借方', align: 'center'},
                         {field: 'cramt', title: '贷方', align: 'center'},
                         {field: 'drbal', title: '借方', align: 'center'},
diff --git a/payapi/src/main/resources/templates/system/report/subjectdetail.html b/payapi/src/main/resources/templates/system/report/subjectdetail.html
index ab46d99..0fffd7e 100644
--- a/payapi/src/main/resources/templates/system/report/subjectdetail.html
+++ b/payapi/src/main/resources/templates/system/report/subjectdetail.html
@@ -2,7 +2,7 @@
     <div class="layui-card-header">
         <h2 class="header-title">科目明细账</h2>
         <span class="layui-breadcrumb pull-right">
-          <a href="#">结算中心</a>
+          <a href="#">报表中心</a>
           <a><cite>科目明细账</cite></a>
         </span>
     </div>
@@ -119,7 +119,7 @@
                                 return dateFormat('' + d.voucherdate);
                             }
                         },
-                        {field: 'voucherno', title: '凭证号', align: 'center', width: 80, sort: true},
+                        {field: 'voucherno', title: '凭证号', align: 'center', width: 100, sort: true},
                         {field: 'summary', title: '摘要', align: 'center'},
                         {field: 'dramt', title: '借方发生额', align: 'center'},
                         {field: 'cramt', title: '贷方发生额', align: 'center'},
