diff --git a/src/main/java/com/supwisdom/dlpay/conference/api/controller/ConerenceApiController.java b/src/main/java/com/supwisdom/dlpay/conference/api/controller/ConerenceApiController.java
index c79cda4..7d655e4 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/api/controller/ConerenceApiController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/api/controller/ConerenceApiController.java
@@ -88,15 +88,10 @@
         Integer actualcnt = 0;
         Float rate = 0f;
         if (ConferenceConstant.CONFTYPE_LIST.equals(conf.getConftype())) {
-            List<String> list = new ArrayList<>();
-            list.add(ConferenceConstant.ATTENDSTATUS_INSTEAD);
-            list.add(ConferenceConstant.ATTENDSTATUS_CLOSED);
-            totcnt = conferenceService.getConfPeopleCountNotIn(confid, list);
-            list = new ArrayList<>();
-            list.add(ConferenceConstant.ATTENDSTATUS_CHECKED);
-            list.add(ConferenceConstant.ATTENDSTATUS_HANDCHECK);
-            list.add(ConferenceConstant.ATTENDSTATUS_LATE);
-            actualcnt = conferenceService.getConfPeopleCount(confid, list);
+
+            totcnt = conferenceService.getListConfPeopleTotalCount(confid);
+
+            actualcnt = conferenceService.getConfPeopleActualCount(confid);
             if (0 != totcnt) {
                 rate = actualcnt * 100f / totcnt;
             }
@@ -266,6 +261,7 @@
         if(null==conference.getConfid()){
             map.put("errcode","500");
             map.put("errStr","会议不存在");
+            return  map;
         }
         String atttime = DateUtil.getNow("HHmm");
 
@@ -280,7 +276,13 @@
 
         String conftype=conference.getConftype();
         if(ConferenceConstant.CONFTYPE_LIST.equals(conftype)){
-            TConfPeople people=new TConfPeople();
+            TConfPeople people = conferenceService.getTConfPeopleByConfidAndCustid(conference.getConfid(), postData.getPhone());
+            if (null != people) {
+                map.put("errcode","500");
+                map.put("errStr","您已成功签到");
+                return map;
+            }
+            people=new TConfPeople();
 
             people.setAttstatus(attstatus);
             //   people.setCardno(dtl.getCardno());
@@ -293,8 +295,13 @@
             people.setRemark(postData.getDeptname());
             conferenceService.saveConfPeople(people);
         }else{
-            TNolistConfPeople people = new TNolistConfPeople();
-
+            TNolistConfPeople people = conferenceService.getNolistConfPeopleByConfidAndCustid(conference.getConfid(), postData.getPhone());
+            if (null != people) {
+                map.put("errcode","500");
+                map.put("errStr","您已成功签到");
+                return map;
+            }
+            people = new TNolistConfPeople();
             people.setAttstatus(attstatus);
         //    people.setCardno(dtl.getCardno());
             people.setConfid(conference.getConfid());
diff --git a/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java b/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
index 7493fe2..2290aec 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
@@ -25,6 +25,8 @@
 
     int countByConfidAndAttstatusIn(Integer confid, List<String> attstatus);
 
+    int countByConfidAndAttstatusInAndAtttypeNot(Integer confid, List<String> attstatus,String Atttype);
+
     int countByConfidAndAttstatusNotIn(Integer confid, List<String> attstatus);
 
     int countByConfidAndAttstatusNotInAndAtttypeNot(Integer confid, List<String> attstatus,String atttype);
diff --git a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
index 9164a8a..88083ae 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -90,10 +90,10 @@
     TNolistConfPeople getNolistConfPeopleByConfidAndCustid(Integer confid,String custid) ;
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
-    Integer getConfPeopleCount(Integer confid,List<String> status) ;
+    Integer getConfPeopleActualCount(Integer confid) ;
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
-    Integer getConfPeopleCountNotIn(Integer confid,List<String> status) ;
+    Integer getListConfPeopleTotalCount(Integer confid) ;
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
     Integer getNolistConfPeopleCount(Integer confid) ;
diff --git a/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
index ff13979..388ee1e 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
@@ -122,11 +122,8 @@
                     bean.setAttendrate(format.format(rate)+"%");
 
                 }else if(ConferenceConstant.CONFTYPE_LIST.equals(conf.getConftype())){
-                    Integer totcnt=confPeopleDao.countByConfid(conf.getConfid());
-                    List<String> list=new ArrayList<>();
-                    list.add(ConferenceConstant.ATTENDSTATUS_CHECKED);
-                    list.add(ConferenceConstant.ATTENDSTATUS_LATE);
-                    Integer actualcnt=confPeopleDao.countByConfidAndAttstatusIn(conf.getConfid(),list);
+                    Integer totcnt = getListConfPeopleTotalCount(conf.getConfid());
+                    Integer actualcnt=getConfPeopleActualCount(conf.getConfid());
                     Float rate=0f;
                     if(0!=totcnt){
                         rate=actualcnt*100f/totcnt;
@@ -617,7 +614,7 @@
                 "where b.confid=:confid and b.atttime is "+attflag +" null and b.atttype !='temp' " );
         if(!StringUtil.isEmpty(attflag)){
             querySql.append("union " +
-                    "select b.custname,b.attstatus,b.atttime,b.remark as deptname,'' as remark,'' as insteadcustname,b.atttype from "+table+" b  " +
+                    "select b.custname,b.remark as deptname,b.attstatus,b.atttime,'' as remark,'' as insteadcustname,b.atttype from "+table+" b  " +
                     "where b.confid=:confid and b.atttype ='temp' ");
         }
         if (!StringUtil.isEmpty(attstatus)) {
@@ -663,15 +660,21 @@
     }
 
     @Override
-    public Integer getConfPeopleCount(Integer confid,List<String> status) {
-
-        return confPeopleDao.countByConfidAndAttstatusIn(confid,status);
+    public Integer getConfPeopleActualCount(Integer confid) {
+        List<String> list = new ArrayList<>();
+        list.add(ConferenceConstant.ATTENDSTATUS_CHECKED);
+        list.add(ConferenceConstant.ATTENDSTATUS_HANDCHECK);
+        list.add(ConferenceConstant.ATTENDSTATUS_LATE);
+        return confPeopleDao.countByConfidAndAttstatusInAndAtttypeNot(confid,list,ConferenceConstant.ATTTYPE_TEMP);
     }
 
     @Override
-    public Integer getConfPeopleCountNotIn(Integer confid,List<String> status) {
+    public Integer getListConfPeopleTotalCount(Integer confid) {
+        List<String> list = new ArrayList<>();
+        list.add(ConferenceConstant.ATTENDSTATUS_INSTEAD);
+        list.add(ConferenceConstant.ATTENDSTATUS_CLOSED);
 
-        return confPeopleDao.countByConfidAndAttstatusNotInAndAtttypeNot(confid,status,ConferenceConstant.ATTTYPE_TEMP);
+        return confPeopleDao.countByConfidAndAttstatusNotInAndAtttypeNot(confid,list,ConferenceConstant.ATTTYPE_TEMP);
     }
 
     @Override
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
index ba3ccd7..2576c39 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/service/impl/WebInterfaceServiceImpl.java
@@ -236,8 +236,11 @@
                 customerTmp.setCusttypeid(Integer.parseInt(custtypeid));
             }
             saveCustomer(customerTmp);
-
-            TCard cardTmp = new TCard();
+            TCard cardTmp = findCardByCardno(list.getCardno());
+            if(null!=cardTmp){
+                return;
+            }
+            cardTmp = new TCard();
             cardTmp.setCardno(list.getCardno());
             cardTmp.setBankcardno(response.getBankcardno());
             cardTmp.setCustid(customerTmp.getCustid());
diff --git a/src/main/resources/templates/doorlist/customer/index.html b/src/main/resources/templates/doorlist/customer/index.html
index f197ea3..ebab5f3 100644
--- a/src/main/resources/templates/doorlist/customer/index.html
+++ b/src/main/resources/templates/doorlist/customer/index.html
@@ -72,7 +72,7 @@
                 [
                     {field: 'custname', sort: true, title: '客户姓名'},
                     {field: 'cardno', sort: true, title: '市名卡号'},
-                    {field: 'bankcardno', sort: true,  title: '银行卡号'},
+             //       {field: 'bankcardno', sort: true,  title: '银行卡号'},
                     /*{
                         field: 'checkstatus', title: '审核状态', align: 'center', width: 120, sort: true, templet: function (d) {
                             if ('uncheck' == d.checkstatus) {
diff --git a/src/main/resources/templates/doorlist/searchDoorlist.html b/src/main/resources/templates/doorlist/searchDoorlist.html
index 95501f7..06eb020 100644
--- a/src/main/resources/templates/doorlist/searchDoorlist.html
+++ b/src/main/resources/templates/doorlist/searchDoorlist.html
@@ -155,11 +155,11 @@
                         label="姓名"
                         width="130">
                 </el-table-column>
-                    <el-table-column
+                   <!-- <el-table-column
                             prop="bankcardno"
                             label="银行卡号"
                             width="210">
-                    </el-table-column>
+                    </el-table-column>-->
 
                     <el-table-column
                             prop="regionname"
diff --git a/src/main/resources/templates/query/tdoorstream.html b/src/main/resources/templates/query/tdoorstream.html
index 0878a51..96c2f47 100644
--- a/src/main/resources/templates/query/tdoorstream.html
+++ b/src/main/resources/templates/query/tdoorstream.html
@@ -130,9 +130,9 @@
                     <el-table-column
                             prop="cardno" label="卡号" sortable width="140">
                     </el-table-column>
-                    <el-table-column
+                   <!-- <el-table-column
                             prop="bankcardno" label="银行卡号"  width="200">
-                    </el-table-column>
+                    </el-table-column>-->
                     <el-table-column
                             prop="custname" label="姓名" width="125">
                     </el-table-column>
