diff --git a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
index 28af857..81fa14a 100644
--- a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
@@ -869,6 +869,8 @@
                 doorlistMgrService.batchSaveAllotTime(tNcAllottimes);
             }
 
+
+
             map.put("result", "下发设备名单成功！");
             okFlag = true;
             msg = "下发设备名单成功！";
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/domain/TDoordtl.java b/src/main/java/com/supwisdom/dlpay/mainservice/domain/TDoordtl.java
index 8e5c62e..8f50de0 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/domain/TDoordtl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/domain/TDoordtl.java
@@ -7,7 +7,8 @@
  */
 @Entity
 @Table(name = "T_DOORDTL",
-		indexes = {@Index(name = "idx_dtl_date", columnList = "transdate")})
+		indexes = {@Index(name = "idx_dtl_date", columnList = "transdate"),
+					@Index(name="idx_dtl_time",columnList = "transtime")})
 public class TDoordtl implements java.io.Serializable {
 
 	// Fields
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java b/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java
index 653bbd8..1ae8da0 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/controller/NcMgrController.java
@@ -407,7 +407,14 @@
                 tNcCardlist.setSyncflag("N");
                 tNcCardlist.setRtnflag("N");
                 tNcCardlist.setRtntime("");
+                tNcCardlist.setVersion(0);
                 ncService.saveCardlist(tNcCardlist);
+            }else{
+                cleanList.setSyncflag("N");
+                cleanList.setSynctime("");
+                cleanList.setVersion(cleanList.getVersion()+1);
+                cleanList.setRectime(DateUtil.getNow());
+                ncService.updateCardlist(cleanList);
             }
         }catch (Exception e){
             e.printStackTrace();
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcCardListDao.java b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcCardListDao.java
index eac278e..7228e91 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcCardListDao.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/NcCardListDao.java
@@ -9,6 +9,8 @@
 
     public boolean saveCardlist(TNcCardlist bean);
 
+    public boolean updateCardlist(TNcCardlist bean);
+
     public void updateForListReload(int devid);
 
     public TNcCardlist getNcCardlist(int deviceid,String cardphyid,String timeid);
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcCardListDaoImpl.java b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcCardListDaoImpl.java
index f9ed72d..154af8f 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcCardListDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/dao/impl/NcCardListDaoImpl.java
@@ -48,9 +48,22 @@
 
     @Transactional
     @Override
+    public boolean updateCardlist(TNcCardlist bean) {
+        boolean flag = false;
+        try {
+            entityManager.merge(bean);
+            flag = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return flag;
+    }
+
+    @Transactional
+    @Override
     public void updateForListReload(int devid) {
         String sql = "update T_NC_CARDLIST set syncflag='N' ,synctime='' "+
-                " where deviceid=?1 and operflag != 'C'";
+                " where deviceid=?1 and operflag != 'Q'";
         Query query = entityManager.createNativeQuery(sql);
         query.setParameter(1, devid);
         query.executeUpdate();
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java b/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java
index 831c84f..41b5fa3 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/service/NcService.java
@@ -99,6 +99,10 @@
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
     public boolean saveCardlist(TNcCardlist bean);
 
+    //修改同步名单
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+    public boolean updateCardlist(TNcCardlist bean);
+
     //设备名单重下(修改该设备已同步名单为未同步)
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
     public void updateForListReload(int devid);
diff --git a/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java b/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java
index 1f76fa1..a949f67 100644
--- a/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/ncmgr/service/impl/NcServiceImpl.java
@@ -141,6 +141,11 @@
     }
 
     @Override
+    public boolean updateCardlist(TNcCardlist bean) {
+        return ncCardListDao.updateCardlist(bean);
+    }
+
+    @Override
     public void updateForListReload(int devid) {
         ncCardListDao.updateForListReload(devid);
     }
diff --git a/src/main/resources/templates/doorlist/addDoorlist.html b/src/main/resources/templates/doorlist/addDoorlist.html
index 053d412..d5d9645 100644
--- a/src/main/resources/templates/doorlist/addDoorlist.html
+++ b/src/main/resources/templates/doorlist/addDoorlist.html
@@ -41,7 +41,7 @@
                                     <el-col :span="3"  :offset="3">
                                         <el-button size="small" style="height:24px; line-height:9px;overflow:hidden;width:100%;" type="primary" @click="person_searchPerson">&nbsp;搜索&nbsp;</el-button>
                                     </el-col>
-                                    <el-col :span="3"  :offset="2">
+                                    <el-col :span="3"  :offset="1">
                                         <el-button type="warning" size="small" style="height:24px; line-height:9px;overflow:hidden; " onclick="javascript:document.getElementById('addDoorlist_importquery').scrollIntoView()" @click="open3">导入选择人员</el-button>
                                     </el-col>
                                 </el-col>
@@ -201,7 +201,7 @@
                 </div>
 
                 <div id="addDoorlist_importquery" style="float:left;border-top:solid 1px #e0e0e0; width:100%; height:30px; margin-top:10px;padding-top:10px;  font-size: 14px!important;">
-                    <form action="/door/doorlistMgr/addexcel" method="post" style="width: 60%;float:left;" id="addDoorlist_uploadExcelId" name="formUpload" enctype="multipart/form-data" target="_top">
+                    <form  th:attr="action=@{/doorlistMgr/addexcel}" method="post" style="width: 60%;float:left;" id="addDoorlist_uploadExcelId" name="formUpload" enctype="multipart/form-data" target="_top">
                         导入查询并选择人员：<el-input size="small" v-model="per_sheetname" name="sheetname" style="width: 20%;"></el-input>
                         <el-button size="small" type="primary" @click="person_openExcel">打开Excel<i class="el-icon-upload el-icon&#45;&#45;right"></i></el-button>
                         文件路径：<el-input size="small" v-model="textfield" name="textfield" style="width: 30%;"></el-input>
@@ -601,7 +601,7 @@
                     </div>
                     <el-card class="box-card">
                         <el-collapse v-model="postCollapse">
-                            <el-collapse-item :title="devTitle" name="2">
+                            <el-collapse-item :title="devTitle" name="1">
                                 <el-tag
                                         :key="tag"
                                         v-for="tag in devSel_allocated"
@@ -611,7 +611,7 @@
                                     {{tag.devname}}
                                 </el-tag>
                             </el-collapse-item>
-                            <el-collapse-item :title="timeTitle" name="3">
+                            <el-collapse-item :title="timeTitle" name="2">
                                 <el-tag
                                         :key="tag"
                                         v-for="tag in timeTags"
diff --git a/src/main/resources/templates/doorlist/impCustomerlist.html b/src/main/resources/templates/doorlist/impCustomerlist.html
index 89a31b4..12b1b61 100644
--- a/src/main/resources/templates/doorlist/impCustomerlist.html
+++ b/src/main/resources/templates/doorlist/impCustomerlist.html
@@ -21,7 +21,7 @@
                 <el-row>
                     <el-col :span="12">
                         <el-form-item >
-                            <form action="/door/doorlistMgr/impDoorCardList" method="post" style="float:left;" id="impCustomerlist_uploadExcelId" name="formUpload" enctype="multipart/form-data" target="_top">
+                            <form th:attr="action=@{/doorlistMgr/impDoorCardList}" method="post" style="float:left;" id="impCustomerlist_uploadExcelId" name="formUpload" enctype="multipart/form-data" target="_top">
                                 <el-input v-model="textfield" type="hidden" name="textfield" ></el-input>
                                 <el-button size="small" type="primary" @click="person_openExcel">选择导入文件<i class="el-icon-upload el-icon--right"></i></el-button>
 
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index 94a4564..9a19eeb 100755
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -78,7 +78,7 @@
                     <!--<dd ay-unselect><a lay-href="/operator/userinfor">基本资料</a></dd>-->
                     <dd ay-unselect><a lay-href="/operator/setpwd">修改密码</a></dd>
                     <hr>
-                    <dd layadmin-event="logout" style="text-align: center;" ><a href="/door/logout">退出</a></dd>
+                    <dd layadmin-event="logout" style="text-align: center;" ><a th:href='@{/logout}'>退出</a></dd>
                 </dl>
             </li>
             <li class="layui-nav-item" lay-unselect>
diff --git a/src/main/resources/templates/ncmgr/nc_dev.html b/src/main/resources/templates/ncmgr/nc_dev.html
index 947dc98..c09c728 100644
--- a/src/main/resources/templates/ncmgr/nc_dev.html
+++ b/src/main/resources/templates/ncmgr/nc_dev.html
@@ -871,7 +871,7 @@
             success: function (data) {
                 if (data.errStr == undefined) {
                     layer.msg('用户认证已过期，请重新登录', {icon: 2, time: 1000});
-                    window.location = "login";
+                    window.location = "@{/login}";
                     return;
                 }
                 if (data.errStr != "") {
diff --git a/src/main/resources/templates/system/region.html b/src/main/resources/templates/system/region.html
index 4e7fc7e..0fb00c5 100644
--- a/src/main/resources/templates/system/region.html
+++ b/src/main/resources/templates/system/region.html
@@ -344,7 +344,7 @@
                 success:function(ret){
                     if(ret.message == undefined){
                         layer.msg('用户认证已过期，请重新登录', {icon:2,time:1000});
-                        window.location="login";
+                        window.location='@{/login}';
                         return;
                     }
                     if (ret.message != "") {
diff --git a/src/main/resources/templates/system/role/form.html b/src/main/resources/templates/system/role/form.html
index 4515a0f..ce475f2 100755
--- a/src/main/resources/templates/system/role/form.html
+++ b/src/main/resources/templates/system/role/form.html
@@ -57,7 +57,7 @@
                         admin.finishPopupCenter();
                     } else if (result.code == 401) {
                         layer.msg(result.msg, {icon: 2, time: 1500}, function () {
-                            location.replace('/login');
+                            location.replace('@{/logout}');
                         }, 1000);
                         return;
                     } else {
diff --git a/src/main/resources/templates/system/role/func.html b/src/main/resources/templates/system/role/func.html
index 8599d55..f84874b 100755
--- a/src/main/resources/templates/system/role/func.html
+++ b/src/main/resources/templates/system/role/func.html
@@ -39,7 +39,7 @@
                 initTree(data.node);
             } else if (data.code == 401) {
                 layer.msg(data.msg, {icon: 2, time: 1500}, function () {
-                    location.replace('/door/login');
+                    location.replace('@{/login}');
                 }, 1000);
                 return;
             } else {
@@ -72,7 +72,7 @@
                     admin.finishPopupCenter();
                 } else if (data.code == 401) {
                     layer.msg(data.msg, {icon: 2, time: 1500}, function () {
-                        location.replace('/login');
+                        location.replace('@{/login}');
                     }, 1000);
                     return;
                 } else {
