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 17ad02f..b3435f4 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,9 +88,13 @@
         Integer actualcnt = 0;
         Float rate = 0f;
         if (ConferenceConstant.CONFTYPE_LIST.equals(conf.getConftype())) {
-            totcnt = conferenceService.getConfPeopleCount(confid, null);
             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);
             if (0 != totcnt) {
@@ -234,7 +238,7 @@
                 mov.setViewName("apph5/confresult");
                 return mov;
             }
-            if (!ConferenceConstant.ATTENDSTATUS_CHECKED.equals(people.getAttstatus())) {
+            if (ConferenceConstant.ATTENDSTATUS_CHECKED.equals(people.getAttstatus())) {
                 mov.addObject("msg", "签到失败");
                 mov.addObject("errorMsg", "请勿重复签到");
                 mov.setViewName("apph5/confresult");
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 c8f127d..7410233 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
@@ -24,4 +24,6 @@
     int countByConfidAndCustidAndAttstatusNot(Integer confid,String custid,String attstatus);
 
     int countByConfidAndAttstatusIn(Integer confid, List<String> attstatus);
+
+    int countByConfidAndAttstatusNotIn(Integer confid, List<String> attstatus);
 }
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 d08a12a..9164a8a 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -93,6 +93,9 @@
     Integer getConfPeopleCount(Integer confid,List<String> status) ;
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
+    Integer getConfPeopleCountNotIn(Integer confid,List<String> status) ;
+
+    @Transactional(rollbackFor = Exception.class, readOnly = true)
     Integer getNolistConfPeopleCount(Integer confid) ;
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
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 fc79f29..8a8411e 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
@@ -480,6 +480,10 @@
             if(null==conf){
                 return JsonResult.error("修改失败，会议不存在");
             }
+            if(null!=people.getAtttime()){
+                return JsonResult.error("已签到人员不可修改状态");
+            }
+
             if(ConferenceConstant.ATTENDSTATUS_INSTEAD.equals(attstatus)){
                 if(ConferenceConstant.CONFSTATUS_OVER.equals(conf.getStatus())||ConferenceConstant.CONFSTATUS_START.equals(conf.getStatus())){
                     return JsonResult.error("已开始或结束的会议不能代签");
@@ -620,13 +624,17 @@
 
     @Override
     public Integer getConfPeopleCount(Integer confid,List<String> status) {
-        if(StringUtil.isEmpty(status)){
-            return confPeopleDao.countByConfid( confid);
-        }
+
         return confPeopleDao.countByConfidAndAttstatusIn(confid,status);
     }
 
     @Override
+    public Integer getConfPeopleCountNotIn(Integer confid,List<String> status) {
+
+        return confPeopleDao.countByConfidAndAttstatusNotIn(confid,status);
+    }
+
+    @Override
     public Integer getNolistConfPeopleCount(Integer confid) {
         return nolistConfPeopleDao.countByConfid(confid);
     }
@@ -664,7 +672,7 @@
                 "left join t_customer b on a.custid=b.custid " +
                 "left join tb_dept c on b.deptcode=c.deptcode " +
                 "left join tb_custtype d on b.custtypeid=d.custtypeid "+
-                    "where confid=:confid");
+                    "where a.atttime is not null and  confid=:confid ");
         Query query = entityManager.createNativeQuery(querySql.toString());
         query.setParameter("confid",confid);
         query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(ConfPeopleApiBean.class));
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/domain/TCustomer.java b/src/main/java/com/supwisdom/dlpay/mainservice/domain/TCustomer.java
index edf0e6a..1019339 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/domain/TCustomer.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/domain/TCustomer.java
@@ -28,7 +28,7 @@
 	private String addoperid;
 	private String remark;
 	private String deptcode;
-	private String custtypeid;
+	private Integer custtypeid;
 
 	// Constructors
 
@@ -176,11 +176,11 @@
 	}
 
 	@Column(name = "CUSTTYPEID",length = 9)
-	public String getCusttypeid() {
+	public Integer getCusttypeid() {
 		return custtypeid;
 	}
 
-	public void setCusttypeid(String custtypeid) {
+	public void setCusttypeid(Integer custtypeid) {
 		this.custtypeid = custtypeid;
 	}
 }
\ No newline at end of file
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 ae9edf9..ba3ccd7 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
@@ -185,7 +185,11 @@
             customer.setAddoperid(operid);
             customer.setRemark(list.getRemarks());
             customer.setDeptcode(deptcode);
-            customer.setCusttypeid(list.getCusttypeid());
+            String custtypeid=list.getCusttypeid();
+            if(null!=custtypeid){
+                customer.setCusttypeid(Integer.parseInt(custtypeid));
+            }
+
             saveCustomer(customer);
 
             //一个用户可能会有多个卡，补办新卡新增一条信息
@@ -226,7 +230,11 @@
             customerTmp.setAddoperid(operid);
             customerTmp.setRemark(list.getRemarks());
             customerTmp.setDeptcode(deptcode);
-            customerTmp.setCusttypeid(list.getCusttypeid());
+
+            String custtypeid=list.getCusttypeid();
+            if(null!=custtypeid){
+                customerTmp.setCusttypeid(Integer.parseInt(custtypeid));
+            }
             saveCustomer(customerTmp);
 
             TCard cardTmp = new TCard();
diff --git a/src/main/resources/templates/conference/conflist.html b/src/main/resources/templates/conference/conflist.html
index f9b326e..877af44 100644
--- a/src/main/resources/templates/conference/conflist.html
+++ b/src/main/resources/templates/conference/conflist.html
@@ -33,12 +33,12 @@
     {{# if(d.status=='unstart'&&d.conftype=='list'){ }}
     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
     <a class="layui-btn layui-btn layui-btn-xs" lay-event="people">分配人员</a>
-    <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看明细</a>
+   <!-- <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看明细</a>-->
     {{# } else if(d.status=='unstart'&&d.conftype=='nolist'){ }}
     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
     {{# } else if(d.status!='unstart'&&d.conftype=='list'){ }}
     <a class="layui-btn layui-btn layui-btn-xs" lay-event="people">分配人员</a>
-    <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看明细</a>
+   <!-- <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看明细</a>-->
     {{# } }}
 
 </script>
