diff --git a/build.gradle b/build.gradle
index fa8028b..b57d012 100644
--- a/build.gradle
+++ b/build.gradle
@@ -93,7 +93,7 @@
     annotationProcessor 'org.projectlombok:lombok:1.18.8'
     compileOnly 'org.projectlombok:lombok:1.18.8'
 
-    compile 'com.supwisdom:payapi-sdk:1.0.10'
+    compile 'com.supwisdom:payapi-sdk:1.0.17'
     
     testImplementation 'org.springframework.boot:spring-boot-starter-test'
     testImplementation 'io.rest-assured:rest-assured:3.3.0'
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 6c0c15f..f0be20a 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -25,13 +25,15 @@
 jwt.expiration=3600
 auth.password.bcrypt.seed=
 spring.jackson.serialization.fail-on-empty-beans=false
-server.port=8080
+server.port=8180
 
 payapi.url=https://yy.dlsmk.cn/payapi/
-payapi.appid=300003
-payapi.secret=b32309b244904e1789b055eb1da51db1
+#payapi.appid=300003
+#payapi.secret=b32309b244904e1789b055eb1da51db1
+payapi.appid=200003
+payapi.secret=04c7e1a1f7a34df3bf07f3bd2f667d7e
 
-#payapi.url=http://172.28.43.3:8099/payapi
+#payapi.url=http://localhost:8080/payapi
 #payapi.appid=200001
 #payapi.secret=dc1d26c0d43e442588092c8d45c21bce
 
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 311fdbb..507edf3 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
@@ -5,11 +5,14 @@
 import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
 import cn.afterturn.easypoi.view.PoiBaseView;
+import com.supwisdom.dlpay.api.bean.ApiResponse;
+import com.supwisdom.dlpay.api.bean.CommonSendMessageParam;
 import com.supwisdom.dlpay.api.bean.JsonResult;
 import com.supwisdom.dlpay.conference.bean.ConferenceShowBean;
 import com.supwisdom.dlpay.conference.domain.TConfPeople;
 import com.supwisdom.dlpay.conference.domain.TConference;
 import com.supwisdom.dlpay.conference.domain.TConferenceDevbind;
+import com.supwisdom.dlpay.conference.domain.TConferenceReview;
 import com.supwisdom.dlpay.conference.service.ConferenceService;
 import com.supwisdom.dlpay.conference.util.ConferenceConstant;
 import com.supwisdom.dlpay.conference.util.QRCodeUtil;
@@ -26,6 +29,8 @@
 import com.supwisdom.dlpay.ncmgr.domain.TNcCardlist;
 import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
 import com.supwisdom.dlpay.ncmgr.service.NcService;
+import com.supwisdom.dlpay.paysdk.proxy.ApiCommonProxy;
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
 import com.supwisdom.dlpay.util.RedisUtil;
 import com.supwisdom.dlpay.util.WebCheckException;
 import com.supwisdom.dlpay.visitormanage.domain.EVisitorConfDtl;
@@ -64,9 +69,13 @@
     private VisitormanageService visitormanageService;
     @Autowired
     DoorlistMgrService doorlistMgrService;
+    @Autowired
+    private ApiCommonProxy commonProxy;
 
     @Value("${visitor.deviceids}")
     private String deviceids;
+
+
     @GetMapping("/conference/index")
     public String ConferenceView() {
         return "conference/conflist";
@@ -172,10 +181,8 @@
                                      @RequestParam("starttime") String starttime,
                                      @RequestParam("endtime") String endtime,
                                      @RequestParam("attendtime") String attendtime,
-                                   //  @RequestParam("deviceid") Integer deviceid,
                                      @RequestParam("deviceids") List<Integer> deviceid,
                                      @RequestParam("remark") String remark,
-                                     //    @RequestParam(value = "file", required = false) MultipartFile file,
                                      @AuthenticationPrincipal UserDetails operUser,
                                      HttpServletRequest request) {
         try {
@@ -196,7 +203,19 @@
                 return JsonResult.error("登录过期，请重新登录");
             }
 
+
             if (conferenceService.saveNewConference(confname.trim(), DateUtil.unParseToDateFormat(confdate), conftype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), DateUtil.unParseToDateFormat(attendtime), oper, deviceid, remark)) {
+                List<TConferenceReview> review=conferenceService.getAllReviewer(oper.getDeptcode());
+                CommonSendMessageParam param=new CommonSendMessageParam();
+                param.setContent("您有新的会议需要分配，请确认");
+                param.setTitle("会议分配通知");
+                for(TConferenceReview rev:review){
+                    param.setUserid(rev.getCustid());
+                    ApiResponse resp=commonProxy.sendMsg(param);
+                    resp.getRetcode();
+                    resp.getRetmsg();
+
+                }
                 return JsonResult.ok("新增成功");
             } else {
                 return JsonResult.error("新增失败");
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 75f1613..269dda1 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -120,8 +120,11 @@
     List<ConfPeopleApiBean> getConfPeopleListByConfid(Integer confid, String conftype) ;
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
-    public List<TCustomerInfo> getConferenceReviewList(String deptcode);
+    List<TCustomerInfo> getConferenceReviewList(String deptcode);
+
+    @Transactional(rollbackFor = Exception.class, readOnly = true)
+    List<TConferenceReview> getAllReviewer(String deptcode);
 
     @Transactional(rollbackFor = Exception.class)
-    public boolean addConfReview(String deptcode, String opercode, List<String> custidlist);
+    boolean addConfReview(String deptcode, String opercode, List<String> custidlist);
 }
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 5685129..cf69c68 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
@@ -855,7 +855,6 @@
                 "on p.custid=t.custid left join tb_dept d on d.deptcode=t.deptcode where confid=:confid)");
         query.setParameter("confid", confid);
         BigInteger cnt = (BigInteger) query.getSingleResult();
-        System.out.println("cnt:::" + cnt);
 
         return cnt.intValue();
     }
@@ -878,6 +877,23 @@
     }
 
     @Override
+    public List<TConferenceReview> getAllReviewer(String deptcode) {
+        StringBuffer querySql = new StringBuffer("select a.custid,a.opercode,a.updatetime from t_conference_review a  " +
+                "left join t_customer c on a.custid=c.custid where 1=1" );
+
+        if (!StringUtil.isEmpty(deptcode)) {
+            List<String> deptlist = customerDao.getChildDeptlist(deptcode);
+            if (!StringUtil.isEmpty(deptlist)) {
+                querySql.append(" and c.deptcode in ('" + StringUtils.join(deptlist.toArray(), "','") + "') ");
+            }
+        }
+        Query query = entityManager.createNativeQuery(querySql.toString());
+        query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TConferenceReview.class));
+        List<TConferenceReview> list = query.getResultList();
+        return list;
+    }
+
+    @Override
     public boolean addConfReview(String deptcode, String opercode, List<String> custidlist) {
         delConfReview(deptcode);
         for (String custid:custidlist){
@@ -890,7 +906,7 @@
         return true;
     }
 
-    public boolean delConfReview(String deptcode) {
+    private boolean delConfReview(String deptcode) {
         String sql=" delete from TConferenceReview where custid in (select custid from TCustomer where 1=1  ";
         if(!StringUtil.isEmpty(deptcode)){
             sql+=" and deptcode = :dcode";
@@ -909,4 +925,6 @@
 
         return false;
     }
+
+
 }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/mobile/dao/ApiDao.kt b/src/main/kotlin/com/supwisdom/dlpay/api/mobile/dao/ApiDao.kt
new file mode 100644
index 0000000..60dab67
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/mobile/dao/ApiDao.kt
@@ -0,0 +1,9 @@
+package com.supwisdom.dlpay.api.mobile.dao
+
+import com.supwisdom.dlpay.api.mobile.domain.TBMsg
+import org.springframework.data.jpa.repository.JpaRepository
+import org.springframework.stereotype.Repository
+
+
+@Repository
+interface MsgDao : JpaRepository<TBMsg, String>
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/mobile/domain/TBMsg.kt b/src/main/kotlin/com/supwisdom/dlpay/api/mobile/domain/TBMsg.kt
new file mode 100644
index 0000000..b777878
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/mobile/domain/TBMsg.kt
@@ -0,0 +1,41 @@
+package com.supwisdom.dlpay.api.mobile.domain
+
+import org.hibernate.annotations.GenericGenerator
+import javax.persistence.*
+
+@Entity
+@Table(name = "TB_MSG")
+class TBMsg{
+    @Id
+    @GenericGenerator(name = "idGenerator", strategy = "uuid")
+    @GeneratedValue(generator = "idGenerator")
+    @Column(name = "msgid", nullable = false, length = 32)
+    var msgid: String = ""
+
+    @Column(name = "userid", length = 32)
+    var userid:String = ""
+
+    @Column(name = "title", length = 100)
+    var title: String? = null
+
+    @Column(name = "refno", length = 32)
+    var refno: String? = null
+
+    @Column(name = "content", length = 400)
+    var content: String? = null
+
+    @Column(name = "lastupdate", length = 14)
+    var lastupdate: String? = null
+
+    @Column(name = "extras", length = 1000)
+    var extras: String? = null
+
+    @Column(name = "pushresult", length = 500)
+    var pushresult: String? = null
+
+    @Column(name = "pusheduids", length = 400)
+    var pusheduids:String? = ""
+
+    @Column(name = "tenantid", length = 32)
+    var tenantid:String? = null
+}
diff --git a/src/main/resources/templates/conference/confupdate.html b/src/main/resources/templates/conference/confupdate.html
index 79b7356..33663da 100644
--- a/src/main/resources/templates/conference/confupdate.html
+++ b/src/main/resources/templates/conference/confupdate.html
@@ -43,7 +43,7 @@
     <div class="layui-form-item">
         <label class="layui-form-label confinput-label">会议概要</label>
         <div class="layui-input-block">
-            <textarea name="remark" placeholder="请输入" class="layui-textarea" th:value="${remark}"></textarea>
+            <textarea name="remark" placeholder="请输入" class="layui-textarea" th:text="${remark}"></textarea>
         </div>
     </div>
 
