diff --git a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
index 51841ee..3ec48c4 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
@@ -153,7 +153,8 @@
                                      @RequestParam("starttime") String starttime,
                                      @RequestParam("endtime") String endtime,
                                      @RequestParam("attendtime") String attendtime,
-                                     @RequestParam("deviceid") Integer deviceid,
+                                   //  @RequestParam("deviceid") Integer deviceid,
+                                     @RequestParam("deviceids") List<Integer> deviceid,
                                      @RequestParam("remark") String remark,
                                      //    @RequestParam(value = "file", required = false) MultipartFile file,
                                      @AuthenticationPrincipal UserDetails operUser,
@@ -389,6 +390,14 @@
         return "conference/confpeoplebind";
     }
 
+    @GetMapping("/conference/loadimportbyExcel")
+    public String loadimportbyExcel(@RequestParam("confid") Integer confid,Model model) {
+        model.addAttribute("detailConfid", confid);
+   //     model.addAttribute("confName", confname);
+
+        return "conference/import";
+    }
+
     @PostMapping("/conference/doimport")
     @ResponseBody
     public JsonResult editConference(@RequestParam("confid") Integer confid,
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 3ebcbc9..0b9da22 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -45,10 +45,14 @@
 
     @Transactional(rollbackFor = Exception.class)
     TConference getConferenceById(Integer confid);
+/*
+    @Transactional(rollbackFor = Exception.class)
+    boolean saveNewConference(String confname,String confdate, String conftype, String starttime,
+                              String endtime, String attendtime, TOperator oper, Integer deviceid,String remark) throws Exception;*/
 
     @Transactional(rollbackFor = Exception.class)
     boolean saveNewConference(String confname,String confdate, String conftype, String starttime,
-                              String endtime, String attendtime, TOperator oper, Integer deviceid,String remark) throws Exception;
+                              String endtime, String attendtime, TOperator oper, List<Integer> deviceid,String remark) throws Exception;
 
     @Transactional(rollbackFor = Exception.class)
     boolean saveConferencePeopleByExcel(Integer confid,String fpath) throws Exception;
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 1931136..30dbeed 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
@@ -254,12 +254,19 @@
     }*/
 
     @Override
-    public boolean saveNewConference(String confname,String confdate, String conftype, String starttime, String endtime,String attendtime, TOperator oper, Integer deviceid,String remark) throws Exception {
+    public boolean saveNewConference(String confname,String confdate, String conftype, String starttime, String endtime,String attendtime, TOperator oper, List<Integer> deviceid,String remark) throws Exception {
 
-        String errdevname=checkTimeErrorDevice(attendtime,endtime,confdate,deviceid);
+        for(Integer i : deviceid){
+            String errdevname=checkTimeErrorDevice(attendtime,endtime,confdate,i);
+            if(!StringUtil.isEmpty(errdevname)){
+                throw new WebCheckException("设备《"+ errdevname+"》存在时间冲突，请重新选择设备");
+            }
+        }
+
+   /*     String errdevname=checkTimeErrorDevice(attendtime,endtime,confdate,deviceid);
         if(!StringUtil.isEmpty(errdevname)){
             throw new WebCheckException("设备《"+ errdevname+"》存在时间冲突，请重新选择设备");
-        }
+        }*/
 
         TConference conf = new TConference();
         conf.setConftype(conftype);
@@ -277,17 +284,15 @@
         conf.setRemark(remark);
         conf = conferenceDao.save(conf);
 
-        TConferenceDevbind bind=new TConferenceDevbind();
-        bind.setConfid(conf.getConfid());
-        bind.setCreateOperid(oper.getOperid());
-        bind.setCreatetime(systime);
-        bind.setDeviceid(deviceid);
-        conferenceDevbindDao.save(bind);
-
-
-
+        for(Integer i : deviceid){
+            TConferenceDevbind bind=new TConferenceDevbind();
+            bind.setConfid(conf.getConfid());
+            bind.setCreateOperid(oper.getOperid());
+            bind.setCreatetime(systime);
+            bind.setDeviceid(i);
+            conferenceDevbindDao.save(bind);
+        }
         return true;
-
     }
 
     @Override
diff --git a/src/main/resources/templates/conference/confform.html b/src/main/resources/templates/conference/confform.html
index 3ba5114..77151ad 100644
--- a/src/main/resources/templates/conference/confform.html
+++ b/src/main/resources/templates/conference/confform.html
@@ -53,7 +53,7 @@
     <div class="layui-form-item">
         <label class="confinput-label layui-form-label"><span style="color: red">* </span>绑定设备</label>
         <div class="layui-input-block">
-             <select lay-verify="required" name="deviceid" class="layui-select" id="conference-form-select-binddevice" lay-search>
+             <select lay-verify="required" name="deviceid" class="layui-select" xm-select-height="36px" xm-select="deviceids">
                  <option th:each="lst:${confdevice}" th:value="${lst.deviceid}"
                          th:text="${lst.devname}"></option>
              </select>&emsp;
@@ -88,7 +88,7 @@
 </div>
 
 <script>
-    layui.use(['layer', 'admin', 'form', 'laydate', 'upload'], function () {
+    layui.use(['layer', 'admin', 'form', 'laydate', 'upload','formSelects'], function () {
         var layer = layui.layer;
         var admin = layui.admin;
         var form = layui.form;
@@ -97,8 +97,10 @@
 
         var confType = 'list';
 
+        var formSelects = layui.formSelects;
+        formSelects.btns('deviceids', []);
 
-        form.render("select");
+     //   form.render("select");
         laydate.render({
             elem: '#form-conference-starttime',
             type: 'time',
@@ -152,8 +154,12 @@
                 layer.msg("签到时间必须早于开始时间", {icon: 2, time: 1500});
                 return;
             }
-
-
+            var deviceids=formSelects.value('deviceids','val');
+            if(deviceids.length==0){
+                layer.msg("请选择设备", {icon: 2, time: 1500});
+                return;
+            }
+            console.log(deviceids);
             var formData = new FormData();
             formData.append("conftype", vdata.conftype);
             formData.append("confname", vdata.confname);
@@ -161,8 +167,10 @@
             formData.append("endtime", vdata.endtime);
             formData.append("attendtime", vdata.attendtime);
             formData.append("confdate",vdata.confdate);
-            formData.append("deviceid",vdata.deviceid);
+      //      formData.append("deviceid",vdata.deviceid);
+
             formData.append("remark",vdata.remark);
+            formData.append("deviceids",deviceids);
           /*  var flag=false;
             var files = $('#form-conference-records').prop('files');
             for (var i = 0; i < files.length; i++) {
@@ -230,6 +238,10 @@
         width: 24%;
     }
 
+    .xm-select-parent .xm-select-title div.xm-select-label>span{
+        height: 22px;
+    }
+
     .upoadfile-btn input {
         position: absolute;
         font-size: 100px;
@@ -239,4 +251,5 @@
         width: 113px;
         height: 34px;
     }
-</style>
\ No newline at end of file
+</style>
+
diff --git a/src/main/resources/templates/conference/conflist.html b/src/main/resources/templates/conference/conflist.html
index 1306d07..8c8276c 100644
--- a/src/main/resources/templates/conference/conflist.html
+++ b/src/main/resources/templates/conference/conflist.html
@@ -32,6 +32,7 @@
 
     {{# 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="excel">excel导入</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="qrcode">申请开门码</a>
     {{# } else if(d.status=='unstart'&&d.conftype=='nolist'){ }}
@@ -92,7 +93,7 @@
                         }
                     },
                     /*  {field: 'remark', title: '备注',  align: 'center'},*/
-                    {align: 'center', title: '操作', width: 250, toolbar: '#conference-table-bar', fixed: 'right'}
+                    {align: 'center', title: '操作', width: 310, toolbar: '#conference-table-bar', fixed: 'right'}
                 ]
             ]
         });
@@ -191,8 +192,18 @@
                         table.reload('conferenceTable');
                     }
                 });
+            }else if ('excel' == obj.event) {
+                admin.popupCenter({
+                    title: "分配人员",
+         //           area: '900px',
+                    path: '[[@{/conference/loadimportbyExcel}]]?confid=' + data.confid,
+                    finish: function () {
+                        table.reload('conferenceTable');
+                    }
+                });
             }
 
+
         });
 
     });
diff --git a/src/main/resources/templates/conference/confpeoplebind.html b/src/main/resources/templates/conference/confpeoplebind.html
index e557fb8..81edd53 100644
--- a/src/main/resources/templates/conference/confpeoplebind.html
+++ b/src/main/resources/templates/conference/confpeoplebind.html
@@ -2,12 +2,16 @@
      style="padding: 30px 25px 10px 25px;">
     <input type="hidden" id="confpeoplebind-confid" th:value="${detailConfid}" />
     <div class="layui-form-item">
-        <div class="layui-input-inline" style="width: 450px;">
+        <div class="layui-input-inline" style="width: 630px;">
             <label class="layui-form-label">会议：</label>
             <div class="layui-input-block">
                 <label style="width:400px;text-align:left" class="layui-form-label" th:text="${confName}"></label>
             </div>
         </div>
+
+        <div class="layui-input-inline">
+            <button class="layui-btn" lay-filter="confpeoplebind-form-loadimport" lay-submit id="loadimport">Excel导入</button>
+        </div>
     </div>
 
     <div class="layui-form-item">
@@ -120,6 +124,18 @@
             treeSelect.revokeNode('search-confpeoplebind-form-deptcode-filter');
         });
 
+        $("#loadimport").click(function () {
+            var confid = $("#confpeoplebind-confid").val();
+            admin.popupCenter({
+                title: "分配人员",
+                //  area: '900px',
+                path: '[[@{/conference/loadimportbyExcel}]]?confid=' + confid,
+                finish: function () {
+                    table.reload('conferenceTable');
+                }
+            });
+        })
+
         form.on('submit(confpeoplebind-form-submit)', function (el) {
             var confid = $("#confpeoplebind-confid").val();
             var checkStatus = table.checkStatus('confpeoplebind-form-table');
