From b7210488b6129ceb614e559d0240bf3ed3321dea Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 05 十二月 2024 19:36:20 +0800
Subject: [PATCH] 代码初始化

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java          |   71 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java             |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java          |   51 ++
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java                         |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java       |   54 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java        |    5 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java                        |   17 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java                      |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java         |   31 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java            |   83 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java        |  107 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java      |   17 
 server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java                               |  166 +++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java             |   25 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java                         |  645 +++++++++++++++++++++++++----
 16 files changed, 1,161 insertions(+), 136 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
new file mode 100644
index 0000000..1228ce3
--- /dev/null
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
@@ -0,0 +1,166 @@
+package com.doumee.core.wx;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.HttpsUtil;
+import com.doumee.dao.business.model.Bookings;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+/**
+ * 寰俊鍏紬鍙烽�氱煡
+ *
+ * @Author : Rk
+ * @create 2023/12/27 9:19
+ */
+@Slf4j
+@Component
+public class WxPlatNotice {
+
+    public void  testSendNotice(List<String> openIds,String token){
+        if(CollectionUtils.isNotEmpty(openIds)){
+            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+            //鏁翠綋鍙傛暟map
+            Map<String, Object> paramMap = new HashMap<String, Object>();
+            //娑堟伅涓婚鏄剧ず鐩稿叧map
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+            Map<String, Object> const9 = new HashMap<String,Object>();
+            const9.put("value","鐢宠寰呮偍瀹℃壒");
+            Map<String, Object> thing1 = new HashMap<String,Object>();
+            thing1.put("value", "娴嬭瘯鍚嶇О");
+            Map<String, Object> car_number7 = new HashMap<String,Object>();
+            car_number7.put("value","鐨朅P12345");
+            Map<String, Object> character_string6 = new HashMap<String,Object>();
+            character_string6.put("value","1");
+            Map<String, Object> thing4 = new HashMap<String,Object>();
+            thing4.put("value","鐞嗙敱");
+            dataMap.put("const9",const9);
+            dataMap.put("thing1",thing1);
+            dataMap.put("car_number7",car_number7);
+            dataMap.put("character_string6",character_string6);
+            dataMap.put("thing4",thing4);
+            paramMap.put("data", dataMap);
+            for (String openId:openIds) {
+                paramMap.clear();
+                paramMap.put("template_id", "SPwvgtASkm1aMDBsYhX2wHKdL2JBEGPknDkgniSza2Y");
+                paramMap.put("touser", openId);
+                paramMap.put("data", dataMap);
+                String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                if(StringUtils.isBlank(response)){
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                }else{
+                    JSONObject json = JSONObject.parseObject(response);
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                }
+            }
+//            log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", msgId != null ? "鎴愬姛" : "澶辫触");
+        }
+    }
+
+    /**
+     * 浼氳瀹ら绾﹂�氱煡
+     * @param bookings
+     * @param tempId CuoDoxOl6SFwi4NhNgOQgKSJVjDD4VCIaPYlnbv_zdY
+     * @param token
+     * @param openIds
+     */
+    public void  sendMeetingBookTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
+        if(CollectionUtils.isNotEmpty(openIds)){
+            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+            //鏁翠綋鍙傛暟map
+            Map<String, Object> paramMap = new HashMap<String, Object>();
+            //娑堟伅涓婚鏄剧ず鐩稿叧map
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+            //浼氳鍚嶇О
+            Map<String, Object> thing1 = new HashMap<String,Object>();
+            thing1.put("value",bookings.getName());
+            //浼氳鏃堕棿
+            Map<String, Object> time2 = new HashMap<String,Object>();
+            time2.put("value", DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
+            //浼氳鍦扮偣
+            Map<String, Object> thing3 = new HashMap<String,Object>();
+            thing3.put("value",bookings.getRoomName());
+            //鍙戣捣浜�
+            Map<String, Object> thing6 = new HashMap<String,Object>();
+            thing6.put("value",bookings.getManagerInfo());
+
+            dataMap.put("thing1",thing1);
+            dataMap.put("time2",time2);
+            dataMap.put("thing3",thing3);
+            dataMap.put("thing6",thing6);
+            paramMap.put("data", dataMap);
+            for (String openId:openIds) {
+                paramMap.clear();
+                paramMap.put("template_id", tempId);
+                paramMap.put("touser", openId);
+                paramMap.put("data", dataMap);
+                String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                if(StringUtils.isBlank(response)){
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                }else{
+                    JSONObject json = JSONObject.parseObject(response);
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 浼氳瀹ゅ彇娑堥�氱煡
+     * @param bookings
+     * @param tempId  CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8
+     * @param token
+     * @param openIds
+     */
+    public void  sendMeetingBookCancelTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
+        if(CollectionUtils.isNotEmpty(openIds)){
+            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+            //鏁翠綋鍙傛暟map
+            Map<String, Object> paramMap = new HashMap<String, Object>();
+            //娑堟伅涓婚鏄剧ず鐩稿叧map
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+            //浼氳鍚嶇О
+            Map<String, Object> thing1 = new HashMap<String,Object>();
+            thing1.put("value",bookings.getName());
+            //浼氳鏃堕棿
+            Map<String, Object> time6 = new HashMap<String,Object>();
+            time6.put("value", DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
+            //浼氳鍦扮偣
+            Map<String, Object> thing2 = new HashMap<String,Object>();
+            thing2.put("value",bookings.getRoomName());
+            //棰勭害浜哄憳
+            Map<String, Object> thing4 = new HashMap<String,Object>();
+            thing4.put("value",bookings.getManagerInfo());
+
+            dataMap.put("thing1",thing1);
+            dataMap.put("time6",time6);
+            dataMap.put("thing2",thing2);
+            dataMap.put("thing4",thing4);
+            paramMap.put("data", dataMap);
+            for (String openId:openIds) {
+                paramMap.clear();
+                paramMap.put("template_id", tempId);
+                paramMap.put("touser", openId);
+                paramMap.put("data", dataMap);
+                String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                if(StringUtils.isBlank(response)){
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                }else{
+                    JSONObject json = JSONObject.parseObject(response);
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                }
+            }
+        }
+    }
+
+
+
+
+}
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java
index 45e30e7..53570c3 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java
@@ -70,6 +70,9 @@
     @ApiModelProperty(value = "鍙備細浜哄憳鎵嬫満鍙�")
     @TableField(exist = false)
     private String userPhone;
+    @ApiModelProperty(value = "openid")
+    @TableField(exist = false)
+    private String openid;
 
 
 
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index f9994fd..6bc33be 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -13,6 +13,7 @@
 import com.doumee.core.utils.*;
 import com.doumee.core.wx.MeetConstants;
 import com.doumee.core.wx.SendWxMessage;
+import com.doumee.core.wx.WxPlatNotice;
 import com.doumee.dao.admin.request.BusinessOverDTO;
 import com.doumee.dao.admin.request.QrOpenDoorDto;
 import com.doumee.dao.admin.response.DevWgResponseParam;
@@ -152,8 +153,8 @@
         if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
             this.sendNotice(bookings, MeetConstants.TWO);
         }
-        //鍙戦�佸井淇¤闃呴�氱煡
-//        sendWxMessage.bookingsReservation(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+        SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId());
+        this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO);
 
         return bookings.getId();
     }
@@ -382,7 +383,11 @@
         updateProjectRel(bookings, user);
         handleFile(bookings, user);
         //鍙戦�佷細璁�氱煡
-        this.sendNotice(bookings, MeetConstants.TWO);
+        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
+            this.sendNotice(bookings, MeetConstants.TWO);
+        }
+        SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId());
+        this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO);
     }
 
     @Override
@@ -447,9 +452,11 @@
         bookings.setEditor(user.getId());
         bookingsMapper.updateById(bookings);
         //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡
-        this.sendNotice(bookings, 3);
-        //鍙戦�佸井淇¤闃呴�氱煡
-        sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
+            this.sendNotice(bookings, 3);
+        }
+        SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId());
+        this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE);
 
     }
 
@@ -927,8 +934,10 @@
         String avatarPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                 +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
         userResponseList.forEach(i -> {
-            if(StringUtils.isNotBlank(i.getAvatar())){
+            if(StringUtils.isNotBlank(i.getAvatar()) && !i.getAvatar().startsWith("HKIMG") ){
                 i.setAvatar(avatarPath+i.getAvatar());
+            }else{
+                i.setAvatar(null);
             }
         });
         meetingDetailResponse.setUserResponseList(userResponseList);
@@ -1039,9 +1048,12 @@
         bookings.setEditor(businessOverDTO.getUserId());
         bookingsMapper.updateById(bookings);
         //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡
-        this.sendNotice(bookings, 3);
-        //鍙戦�佸井淇¤闃呴�氱煡
-//        sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
+            this.sendNotice(bookings, 3);
+        }
+        SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId());
+        this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE);
+
     }
 
 
@@ -1289,6 +1301,7 @@
             bookings.setEditDate(new Date());
             bookingsMapper.updateById(bookings);
             this.sendNotice(bookings, MeetConstants.ONE);
+
             //鍙戦�佸井淇¢�氱煡
 //            sendWxMessage.bookingsStart(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
         }
@@ -1365,6 +1378,44 @@
     }
 
 
+    @Async
+    public void sendWxNotice(Bookings bookings,String openid, Integer sendType) {
+        try{
+            List<UserRel> userRelList = userRelMapper.selectJoinList(UserRel.class,new MPJLambdaWrapper<UserRel>()
+                    .selectAll(UserRel.class)
+                    .selectAs(SystemUser::getRealname,UserRel::getRealName)
+                    .selectAs(SystemUser::getMobile,UserRel::getUserPhone)
+                    .selectAs(SystemUser::getOpenid,UserRel::getOpenid)
+                    .leftJoin(SystemUser.class,SystemUser::getId,UserRel::getUserId)
+                    .eq(UserRel::getObjType, MeetConstants.ONE)
+                    .eq(UserRel::getObjId, bookings.getId())
+                    .eq(UserRel::getIsdeleted, MeetConstants.ZERO)
+                    .isNotNull(SystemUser::getOpenid)
+            );
+            List<String> openIdList = userRelList.stream().map(i->i.getOpenid()).collect(Collectors.toList());
+            if(StringUtils.isNotBlank(openid)){
+                openIdList.add(openid);
+            }
+            Set<String> openIds = new HashSet<String>(openIdList);
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(openIds)){
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                if(Constants.equalsInteger(sendType,Constants.ZERO)){
+                    wxPlatNotice.sendMeetingBookTemplateNotice(bookings,"CuoDoxOl6SFwi4NhNgOQgKSJVjDD4VCIaPYlnbv_zdY",
+                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds);
+                }else{
+
+                    wxPlatNotice.sendMeetingBookCancelTemplateNotice(bookings,"CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8",
+                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds);
+                }
+            }
+        }catch (Exception e){
+
+        }
+
+
+    }
+
+
     @Override
     public List<Bookings> getMyJoinBookingMeet(Integer userId, Integer roomId, LocalDateTime startTime, LocalDateTime endTime) {
         DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
index 2ac7672..9bedaec 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
@@ -10,6 +10,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.model.VisitReason;
 import com.doumee.dao.business.model.Visits;
 import com.doumee.dao.web.reqeust.CheckVisitedDTO;
@@ -32,6 +33,7 @@
 import org.springframework.web.server.ServerWebExchange;
 
 import javax.validation.Valid;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -71,6 +73,21 @@
     }
 
 
+    @LoginNoRequired
+    @ApiOperation(value = "testSendNotice", notes = "testSendNotice")
+    @GetMapping("/testSendNotice")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "openid", value = "openid", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "token", required = true),
+    })
+    public ApiResponse wxAuthorize(@RequestParam String openid,String token) {
+        WxPlatNotice wxPlatNotice = new WxPlatNotice();
+        List<String> idList = Arrays.asList(openid.split(","));
+        wxPlatNotice.testSendNotice(idList,token);
+        return ApiResponse.success("鏌ヨ鎴愬姛");
+    }
+
+
     @ApiOperation(value = "鏌ヨ琚闂汉淇℃伅", notes = "鏌ヨ琚闂汉淇℃伅")
     @PostMapping("/getVisitedMember")
     public ApiResponse<List<MemberVO>> getVisitedMember(@Valid @RequestBody CheckVisitedDTO checkVisitedDTO) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
index 800b992..23e60ae 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
@@ -46,7 +46,7 @@
         //  瀹℃壒椹冲洖缁欑敵璇蜂汉锛氱敵璇峰凡琚┏鍥�
         String visitReportAuditFail = "visitReportAuditFail";
         // 缁欏鎵逛汉锛氱敵璇峰緟鎮ㄥ鎵�
-        String visitReportWaitAudit = "visitReportAuditSuccess";
+        String visitReportWaitAudit = "visitReportWaitAudit";
     }
 
 
@@ -103,7 +103,7 @@
         // 瀹℃壒閫氳繃缁欑敵璇蜂汉锛氱敵璇峰凡瀹℃牳閫氳繃
         String platformBookAuditSuccess = "platformBookAuditSuccess";
         //  瀹℃壒椹冲洖缁欑敵璇蜂汉锛氱敵璇峰凡琚┏鍥�
-        String platformBookAuditFail = "platformBookWaitAudit";
+        String platformBookAuditFail = "platformBookAuditFail";
         // 缁欏鎵逛汉锛氱敵璇峰緟鎮ㄥ鎵�
         String platformBookWaitAudit = "platformBookWaitAudit";
     }
@@ -136,6 +136,8 @@
         String platformJobStopErr = "platformJobStopErr";
         // 杩愯緭浠诲姟涓嬭揪 锛堢粰鍙告満锛�
         String platformJobNewJob = "platformJobNewJob";
+        // 杩愯緭浠诲姟鍙栨秷 锛堢粰鍙告満锛�
+        String platformJobCancel = "platformJobCancel";
     }
 
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
index 39e54a7..7fd38e9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -1,10 +1,16 @@
 package com.doumee.core.wx.wxPlat;
 
+import cn.emay.sdk.util.json.gson.JsonObject;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.Http;
+import com.doumee.core.utils.HttpsUtil;
+import com.doumee.dao.business.VisitsMapper;
 import com.doumee.dao.business.WxNoticeConfigMapper;
-import com.doumee.dao.business.model.Visits;
-import com.doumee.dao.business.model.WxNoticeConfig;
+import com.doumee.dao.business.model.*;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
@@ -12,10 +18,11 @@
 import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
 import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 寰俊鍏紬鍙烽�氱煡
@@ -27,94 +34,160 @@
 @Component
 public class WxPlatNotice {
 
-    /**
-     * 寰俊鍏紬鍙稟PI鐨凷ervice
-     */
-  /*  private final WxMpService wxMpService;
-
-    public WxPlatNotice(WxMpService wxMpService) {
-        this.wxMpService = wxMpService;
-    }*/
-
-
-    /**
-     * 璁垮涓氬姟閫氱煡鎺ュ彛
-     */
-    public Boolean  sendVisitAuditTemplateNotice(Visits visits,String prefix,String tempId){
-        if(StringUtils.isBlank(visits.getOpenid())){
-            return false;
-        }
-        WxMpTemplateMessage templateMessage =  WxMpTemplateMessage.builder()
-                .toUser(visits.getOpenid())
-                .templateId(tempId)
-                .url(prefix + visits.getId())
-                .build();
-
-
-        String thing1 = "寰呭鎵�";
-        if(visits.getStatus()==2){
-            thing1 = "瀹℃牳閫氳繃";
-        }else if(visits.getStatus()==3){
-            thing1 = "瀹℃牳涓嶉�氳繃";
-        }else if(visits.getStatus()==5){
-            thing1 = "璁惧鎺堟潈鎴愬姛";
-        }else if(visits.getStatus()==6){
-            thing1 = "璁惧鎺堟潈鏈垚鍔�";
-        }
-        // 娣诲姞妯℃澘鏁版嵁
-        templateMessage.addData(new WxMpTemplateData("thing1", thing1))
-                .addData(new WxMpTemplateData("thing2", visits.getName()))
-                .addData(new WxMpTemplateData("phone_number6", visits.getPhone()));
-        String msgId = null;
-/*        try {
-            // 鍙戦�佹ā鏉挎秷鎭�
-            msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
-        } catch (WxErrorException e) {
-            e.printStackTrace();
-        }*/
-        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", msgId != null ? "鎴愬姛" : "澶辫触");
-        return msgId != null;
-    }
-
-
-
-    /**
-     * 璁垮涓氬姟閫氱煡
-     */
-    public void  sendVisitTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper,Visits visits,String objCode, String prefix, String tempId, List<String> openIds){
+    public void  testSendNotice(List<String> openIds,String token){
         if(CollectionUtils.isNotEmpty(openIds)){
-           WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
-                    .eq(WxNoticeConfig::getObjCode,objCode)
-                           .eq(WxNoticeConfig::getStatus, Constants.ZERO)
-                    .last(" limit 1")
-            );
-           if(Objects.isNull(wxNoticeConfig)){
-               return;
-           }
-            WxMpTemplateMessage templateMessage =  WxMpTemplateMessage.builder()
-                    .toUser(visits.getOpenid())
-                    .templateId(tempId)
-                    .url(prefix + visits.getId())
-                    .build();
-
-            templateMessage.addData(new WxMpTemplateData("thing1", visits.getName()))
-                    .addData(new WxMpTemplateData("car_number7", StringUtils.isBlank(visits.getCarNos())?visits.getCarNos():"-"))
-                    .addData(new WxMpTemplateData("character_string6", Constants.equalsInteger(visits.getMemberNum(),Constants.ZERO)?Constants.ONE+"":visits.getMemberNum().toString()))
-                    .addData(new WxMpTemplateData("const9", wxNoticeConfig.getTitile()))
-                    .addData(new WxMpTemplateData("thing4", visits.getReason()))
-                    ;
-            String msgId = null;
-           /* try {
-                for (String openId:openIds) {
-                    templateMessage.setToUser(openId);
+            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+            //鏁翠綋鍙傛暟map
+            Map<String, Object> paramMap = new HashMap<String, Object>();
+            //娑堟伅涓婚鏄剧ず鐩稿叧map
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+            Map<String, Object> const9 = new HashMap<String,Object>();
+            const9.put("value","鐢宠寰呮偍瀹℃壒");
+            Map<String, Object> thing1 = new HashMap<String,Object>();
+            thing1.put("value", "娴嬭瘯鍚嶇О");
+            Map<String, Object> car_number7 = new HashMap<String,Object>();
+            car_number7.put("value","鐨朅P12345");
+            Map<String, Object> character_string6 = new HashMap<String,Object>();
+            character_string6.put("value","1");
+            Map<String, Object> thing4 = new HashMap<String,Object>();
+            thing4.put("value","鐞嗙敱");
+            dataMap.put("const9",const9);
+            dataMap.put("thing1",thing1);
+            dataMap.put("car_number7",car_number7);
+            dataMap.put("character_string6",character_string6);
+            dataMap.put("thing4",thing4);
+            paramMap.put("data", dataMap);
+            for (String openId:openIds) {
+                paramMap.clear();
+                paramMap.put("template_id", "SPwvgtASkm1aMDBsYhX2wHKdL2JBEGPknDkgniSza2Y");
+                paramMap.put("touser", openId);
+                paramMap.put("data", dataMap);
+                String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                if(StringUtils.isBlank(response)){
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                }else{
+                    JSONObject json = JSONObject.parseObject(response);
+                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
                 }
-                // 鍙戦�佹ā鏉挎秷鎭�
-                msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
-            } catch (WxErrorException e) {
-                e.printStackTrace();
-            }*/
-            log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", msgId != null ? "鎴愬姛" : "澶辫触");
+            }
+//            log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", msgId != null ? "鎴愬姛" : "澶辫触");
+        }
+    }
 
+    /**
+     * 璁垮鐢宠/鎶ュ涓氬姟閫氱煡
+     * @param wxNoticeConfigMapper
+     * @param visits
+     * @param objCode  visitUpload,visitAuditSuccess,visitWaitAudit锛寁isitWaitAudit,visitReportUpload锛寁isitReportAuditSuccess锛寁isitReportAuditFail, visitReportAuditSuccess
+     * @param openIds
+     */
+    public void  sendVisitTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, Visits visits, String objCode, String token, List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                Map<String, Object> const9 = new HashMap<String,Object>();
+                const9.put("value",wxNoticeConfig.getTitile());
+                Map<String, Object> thing1 = new HashMap<String,Object>();
+                thing1.put("value", visits.getName());
+                Map<String, Object> car_number7 = new HashMap<String,Object>();
+                car_number7.put("value",StringUtils.isNotBlank(visits.getCarNos())?visits.getCarNos():"-");
+                Map<String, Object> character_string6 = new HashMap<String,Object>();
+                character_string6.put("value","1");
+                Map<String, Object> thing4 = new HashMap<String,Object>();
+                thing4.put("value",visits.getReason());
+                dataMap.put("const9",const9);
+                dataMap.put("thing1",thing1);
+                dataMap.put("car_number7",car_number7);
+                dataMap.put("character_string6",character_string6);
+                dataMap.put("thing4",thing4);
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+//            log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", msgId != null ? "鎴愬姛" : "澶辫触");
+            }
+        }catch (Exception e){
+
+        }
+    }
+
+    /**
+     * 闅愭偅涓婃姤
+     * @param wxNoticeConfigMapper
+     * @param hiddenDanger
+     * @param objCode hiddenDangerUpload
+     * @param openIds
+     */
+    public void  sendHiddenDangerUploadTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, HiddenDanger hiddenDanger, String objCode,String token, List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //闅愭偅鍖哄煙
+                Map<String, Object> thing9 = new HashMap<String,Object>();
+                thing9.put("value",hiddenDanger.getAreaName());
+                //闅愭偅鍚嶇О
+                Map<String, Object> thing1 = new HashMap<String,Object>();
+                thing1.put("value", hiddenDanger.getCategoryName());
+                //鎻愭姤浜�
+                Map<String, Object> thing12 = new HashMap<String,Object>();
+                thing12.put("value",hiddenDanger.getMemberName());
+                //鎻愭姤鏃堕棿
+                Map<String, Object> time11 = new HashMap<String,Object>();
+                time11.put("value", DateUtil.getDate(hiddenDanger.getCreateDate(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss") );
+                dataMap.put("thing9",thing9);
+                dataMap.put("thing1",thing1);
+                dataMap.put("thing12",thing12);
+                dataMap.put("time11",time11);
+                paramMap.put("template_id", wxNoticeConfig.getTempId());
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
 
         }
 
@@ -122,5 +195,399 @@
 
 
 
+    /**
+     * 闅愭偅鏁存敼
+     * @param wxNoticeConfigMapper
+     * @param hiddenDanger
+     * @param objCode hiddenDangerDeal
+     * @param openIds
+     */
+    public void  sendHiddenDangerDealTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, HiddenDanger hiddenDanger, String objCode,String token, List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //闅愭偅鍖哄煙
+                Map<String, Object> thing17 = new HashMap<String,Object>();
+                thing17.put("value",hiddenDanger.getAreaName());
+                //闅愭偅鍚嶇О
+                Map<String, Object> thing3 = new HashMap<String,Object>();
+                thing3.put("value", hiddenDanger.getCategoryName());
+                //鏁存敼鏂瑰紡
+                Map<String, Object> thing13 = new HashMap<String,Object>();
+                thing13.put("value",Constants.equalsInteger(hiddenDanger.getStatus(),Constants.ONE)?"闅愭偅宸叉暣鏀�":"闅愭偅宸查��鍥�");
+                //鎻愪氦浜�
+                Map<String, Object> thing10 = new HashMap<String,Object>();
+                thing10.put("value",hiddenDanger.getCheckorName());
+                //閫氱煡鏃堕棿
+                Map<String, Object> time16 = new HashMap<String,Object>();
+                time16.put("value", DateUtil.getDate(hiddenDanger.getDealTime(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss") );
+                dataMap.put("thing17",thing17);
+                dataMap.put("thing3",thing3);
+                dataMap.put("thing13",thing13);
+                dataMap.put("thing10",thing10);
+                dataMap.put("time16",time16);
+                paramMap.put("template_id", wxNoticeConfig.getTempId());
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+
+    }
+
+    /**
+     * 鐢ㄨ溅鐢宠 瀹℃壒鎯呭喌
+     * @param wxNoticeConfigMapper
+     * @param carUseBook
+     * @param objCode  reservationSuccess锛宮eetingCancel,meetingBeginA锛宮eetingEndA
+     * @param openIds
+     * @param sendType 0=鐢宠浜猴紱1=瀹℃壒浜�
+     */
+    public void  sendCarUseBookTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, CarUseBook carUseBook, String objCode,String token,
+                                              List<String> openIds,Integer sendType){
+        try {
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //瀹℃壒杩涘害
+                Map<String, Object> thing3 = new HashMap<String,Object>();
+                if(Constants.equalsInteger(sendType,Constants.ONE)){
+                    thing3.put("value","鐢宠寰呮偍瀹℃壒");
+                }else{
+                    if(Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO)){
+                        thing3.put("value","鐢宠鎻愪氦鎴愬姛寰呭鏍�");
+                    }else if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)){
+                        thing3.put("value","鐢宠宸插鏍搁�氳繃");
+                    }else{
+                        thing3.put("value","鐢宠宸茶椹冲洖");
+                    }
+                }
+                //鐢宠浜�
+                Map<String, Object> thing1 = new HashMap<String,Object>();
+                thing1.put("value", carUseBook.getMemberName());
+                //杞︾墝鍙�
+                Map<String, Object> car_number2 = new HashMap<String,Object>();
+                car_number2.put("value",carUseBook.getCarCode());
+                //鐩殑鍦�
+                Map<String, Object> thing11 = new HashMap<String,Object>();
+                thing11.put("value",carUseBook.getAddr());
+                //鐢ㄨ溅鏃堕棿
+                Map<String, Object> time14 = new HashMap<String,Object>();
+                time14.put("value", carUseBook.getPlanUseDate());
+                dataMap.put("thing3",thing3);
+                dataMap.put("car_number2",car_number2);
+                dataMap.put("thing1",thing1);
+                dataMap.put("thing11",thing11);
+                dataMap.put("time14",time14);
+                paramMap.put("template_id", wxNoticeConfig.getTempId());
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+    }
+
+
+    /**
+     * 杞﹁締鍏ュ洯鐢宠  鐗╂祦杞�
+     * @param wxNoticeConfigMapper
+     * @param platformBooks
+     * @param objCode platformBookUpload锛宲latformBookAuditSuccess,platformBookAuditFail锛宲latformBookWaitAudit
+     * @param token
+     * @param openIds
+     * @param sendType 0=鐢宠浜猴紱1=瀹℃壒浜�
+     */
+    public void  sendPlatformBookTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformBooks platformBooks, String objCode,String token,
+                                       List<String> openIds,Integer sendType){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //瀹℃牳鐘舵��
+                Map<String, Object> const9 = new HashMap<String,Object>();
+                if(Constants.equalsInteger(sendType,Constants.ONE)){
+                    const9.put("value","鐢宠寰呮偍瀹℃壒");
+                }else{
+                    if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ZERO)){
+                        const9.put("value","鐢宠鎻愪氦鎴愬姛寰呭鏍�");
+                    }else if(Constants.equalsInteger(platformBooks.getStatus(),Constants.TWO)){
+                        const9.put("value","鐢宠宸插鏍搁�氳繃");
+                    }else{
+                        const9.put("value","鐢宠宸茶椹冲洖");
+                    }
+                }
+                //杞︾墝鍙�
+                Map<String, Object> car_number3 = new HashMap<String,Object>();
+                car_number3.put("value", platformBooks.getCarCodeFront());
+                //涓氬姟绫诲瀷
+                Map<String, Object> phrase4 = new HashMap<String,Object>();
+                phrase4.put("value", platformBooks.getInReason());
+                //鐢宠浜�
+                Map<String, Object> thing8 = new HashMap<String,Object>();
+                thing8.put("value", platformBooks.getDriverName());
+                //鏃堕棿
+                Map<String, Object> time4 = new HashMap<String,Object>();
+                time4.put("value", DateUtil.getDate(platformBooks.getArriveDate(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss") );
+                dataMap.put("const9",const9);
+                dataMap.put("car_number3",car_number3);
+                dataMap.put("phrase4",phrase4);
+                dataMap.put("thing8",thing8);
+                dataMap.put("time4",time4);
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+    }
+
+
+
+    /**
+     * Wms 浠诲姟涓嬭揪閫氱煡
+     * @param wxNoticeConfigMapper
+     * @param platformJob
+     * @param objCode   platformJobNewJob
+     * @param openIds
+     */
+    public void  sendWmsTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
+                                               List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //杩愬崟缂栧彿
+                Map<String, Object> character_string1 = new HashMap<String,Object>();
+                character_string1.put("value",platformJob.getBillCode());
+                //鍙告満
+                Map<String, Object> thing3 = new HashMap<String,Object>();
+                thing3.put("value", platformJob.getDriverName());
+                //涓嬭揪鏃堕棿
+                Map<String, Object> time4 = new HashMap<String,Object>();
+                time4.put("value", DateUtil.getDate(platformJob.getCreateDate(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss") );
+                dataMap.put("character_string1",character_string1);
+                dataMap.put("thing3",thing3);
+                dataMap.put("time4",time4);
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+
+    }
+
+    /**
+     * Wms 浠诲姟鍙栨秷閫氱煡
+     * @param wxNoticeConfigMapper
+     * @param platformJob
+     * @param objCode   platformJobNewJob
+     * @param openIds
+     */
+    public void  sendWmsCancelTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
+                                       List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //浠诲姟鍗曞彿
+                Map<String, Object> character_string1 = new HashMap<String,Object>();
+                character_string1.put("value",platformJob.getBillCode());
+                //鍙栨秷鏃堕棿
+                Map<String, Object> time6 = new HashMap<String,Object>();
+                time6.put("value", DateUtil.getDate(new Date(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss") );
+                dataMap.put("character_string1",character_string1);
+                dataMap.put("time6",time6);
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+
+    }
+
+
+    /**
+     * 鏈堝彴浣滀笟
+     * @param wxNoticeConfigMapper
+     * @param platformJob
+     * @param objCode platformJobCallIn锛宲latformJobSingIn,platformJobOverNum锛宲latformJobWorking,platformJobFinish锛宲latformJobLevelPower,platformJobMove锛宲latformJobError锛宲latformJobTimeOut,platformJobStopErr
+     * @param token
+     * @param openIds
+     */
+    public void  sendPlatformJobTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
+                                       List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //鏈堝彴閫氱煡
+                Map<String, Object> const6 = new HashMap<String,Object>();
+                const6.put("value",wxNoticeConfig.getTitile());
+                //杞︾墝鍙�
+                Map<String, Object> character_string1 = new HashMap<String,Object>();
+                character_string1.put("value",platformJob.getCarCodeFront());
+                //鏈堝彴鍙�
+                Map<String, Object> thing3 = new HashMap<String,Object>();
+                thing3.put("value", platformJob.getPlatformName());
+                //鏃堕棿
+                Map<String, Object> time4 = new HashMap<String,Object>();
+                time4.put("value", DateUtil.getDate(new Date(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss") );
+                dataMap.put("const6",const6);
+                dataMap.put("character_string1",character_string1);
+                dataMap.put("thing3",thing3);
+                dataMap.put("time4",time4);
+                paramMap.put("data", dataMap);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+
+    }
+
+
+
+
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index bbd683d..3502b26 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -15,6 +15,8 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.SmsConstants;
 import com.doumee.core.utils.Utils;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.CompanyMapper;
 import com.doumee.dao.business.dao.SmsConfigMapper;
@@ -65,6 +67,8 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
 
     @Autowired
     private ApproveTemplMapper approveTemplMapper;
@@ -484,7 +488,7 @@
         approveList.add(createUserApprove);
 
         //鏌ヨ鎵�鏈夊緟澶勭悊浜�
-
+        String token = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode();
         //瀹℃壒涓氬姟鏁版嵁
         for (int i = 0; i < approveParamList.size(); i++) {
             ApproveParam approveParam = approveParamList.get(i);
@@ -567,6 +571,7 @@
                 approve.setType(Constants.ZERO);
                 approveList.add(approve);
 
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
                 if(Constants.equalsInteger(approve.getStatus(),Constants.ONE) && StringUtils.isNotBlank(member.getPhone())){
                     //鍙戦�佺煭淇¢�氱煡
                     if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.reason)){
@@ -576,13 +581,32 @@
                                 SmsConstants.platformBookContent.platformBookWaitAudit,
                                 null,Arrays.asList(member.getPhone().split(","))
                         );
+                        //鍏紬鍙烽�氱煡
+                        if(StringUtils.isNotBlank(member.getOpenid())){
+                            wxPlatNotice.sendPlatformBookTemplateNotice(
+                                    wxNoticeConfigMapper,
+                                    platformBooksMapper.selectById(businessId),
+                                    WxPlatConstants.platformBookContent.platformBookWaitAudit,
+                                    token,
+                                    Arrays.asList(member.getOpenid().split(",")),
+                                    Constants.ONE);
+                        }
                     }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)){
                         //璁垮鐢宠
+                        //鐭俊閫氱煡
                         SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                                 emayService,smsEmailMapper,smsConfigMapper,visitsMapper,businessId,
                                 SmsConstants.visitContent.visitNotice,
                                 null,Arrays.asList(member.getPhone().split(","))
                         );
+                        //鍏紬鍙烽�氱煡
+                        if(StringUtils.isNotBlank(member.getOpenid())){
+                            wxPlatNotice.sendVisitTemplateNotice(
+                                    wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitContent.visitWaitAudit,
+                                    token,
+                                    Arrays.asList(member.getOpenid().split(","))
+                            );
+                        }
                     }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){
                         //璁垮鎶ュ
                         SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
@@ -590,6 +614,14 @@
                                 SmsConstants.visitReportingContent.visitReportingNotice,
                                 null,Arrays.asList(member.getPhone().split(","))
                         );
+                        //鍏紬鍙烽�氱煡
+                        if(StringUtils.isNotBlank(member.getOpenid())){
+                            wxPlatNotice.sendVisitTemplateNotice(
+                                    wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitReportContent.visitReportWaitAudit,
+                                    token,
+                                    Arrays.asList(member.getOpenid().split(","))
+                            );
+                        }
                     }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.useCar)){
                         //鐢ㄨ溅鐢宠
                         SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
@@ -597,6 +629,16 @@
                                 SmsConstants.carUseBookContent.carUseBookWaitAudit,
                                 null,Arrays.asList(member.getPhone().split(","))
                         );
+                        //鍏紬鍙烽�氱煡
+                        if(StringUtils.isNotBlank(member.getOpenid())){
+                            wxPlatNotice.sendCarUseBookTemplateNotice(
+                                    wxNoticeConfigMapper,
+                                    carUseBookMapper.selectById(businessId),
+                                    WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
+                                    token,
+                                    Arrays.asList(member.getOpenid().split(",")),
+                                    Constants.ONE);
+                        }
                     }
                 }
 
@@ -1502,6 +1544,7 @@
 
 
     public void dealBusinessData(ApproveDTO approveDTO,Approve approve){
+        WxPlatNotice wxPlatNotice = new WxPlatNotice();
         if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                 ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                 ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
@@ -1571,6 +1614,7 @@
                 }
             }
             //璁垮鎶ュ
+            String objCode = "";
             if(approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
                 //鍙戦�佺煭淇¢�氱煡
                 SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
@@ -1579,6 +1623,9 @@
                                 SmsConstants.visitReportingContent.visitReportingAuditFail,
                         approveDTO.getCheckInfo(),null
                 );
+                objCode =  Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitReportContent.visitReportAuditSuccess:WxPlatConstants.visitReportContent.visitReportAuditFail;
+
+
             }else{ //璁垮鐢宠
                 //鍙戦�佺煭淇¢�氱煡
                 SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
@@ -1587,15 +1634,28 @@
                                 SmsConstants.visitContent.visitAuditFail,
                         approveDTO.getCheckInfo(),null
                 );
+                objCode =  Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitContent.visitAuditSuccess:WxPlatConstants.visitContent.visitAuditFail;
+            }
+            visitsMapper.updateById(visits);
+            //鍙戦�佸井淇″叕浼楀彿
+            if(StringUtils.isNotBlank(objCode)){
+                Member member = memberMapper.selectById(visits.getCreateMemberId());
+                if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                    wxPlatNotice.sendVisitTemplateNotice(
+                            wxNoticeConfigMapper,visits, objCode,
+                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                            Arrays.asList(member.getOpenid().split(","))
+                    );
+                }
             }
 
-            visitsMapper.updateById(visits);
         }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                 Constants.approveObjectType.unCityUseCar)){
             this.updDriver(approveDTO,approve,true);
             CarUseBook carUseBook = carUseBookJoinMapper.selectById(approveDTO.getObjId());
             if(Objects.nonNull(carUseBook)){
                 Member member = memberMapper.selectById(carUseBook.getMemberId());
+                //鍙戦�侀�氱煡鐭伅
                 if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
                     SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                             emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
@@ -1603,6 +1663,14 @@
                                     SmsConstants.carUseBookContent.carUseBookAuditFail,
                             approveDTO.getCheckInfo(),Arrays.asList(member.getPhone().split(","))
                     );
+                }
+                if(StringUtils.isNotBlank(member.getOpenid())){
+                    //鍙戦�佸井淇″叕浼楀彿閫氱煡
+                    wxPlatNotice.sendCarUseBookTemplateNotice(
+                            wxNoticeConfigMapper,carUseBook,
+                            Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?WxPlatConstants.carUseBookContent.carUseBookAuditSuccess: WxPlatConstants.carUseBookContent.carUseBookAuditFail,
+                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                            Arrays.asList(member.getOpenid().split(",")),0);
                 }
             }
 
@@ -1661,7 +1729,16 @@
                     approveDTO.getCheckInfo(),null
             );
 
-            //TODO 鍙戦�佸井淇″叕浼楀彿娑堟伅
+            //鍙戦�佸井淇″叕浼楀彿娑堟伅
+            Member member = memberMapper.selectById(platformBooks.getDriverId() );
+            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                //鍙戦�佸井淇″叕浼楀彿閫氱煡
+                wxPlatNotice.sendPlatformBookTemplateNotice(
+                        wxNoticeConfigMapper,platformBooks,
+                        Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?WxPlatConstants.platformBookContent.platformBookAuditSuccess: WxPlatConstants.platformBookContent.platformBookAuditFail,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(",")),0);
+            }
 
         }else{
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 5ac6b06..b881fa4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -7,6 +7,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.*;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
@@ -16,6 +18,8 @@
 import com.doumee.dao.business.vo.ApproveDataVO;
 import com.doumee.dao.business.vo.DateIntervalVO;
 
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Notices;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.service.business.ApproveService;
 import com.doumee.service.business.CarUseBookService;
@@ -61,6 +65,9 @@
     private ApproveJoinMapper approveJoinMapper;
 
     @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
+
+    @Autowired
     private ApproveService approveService;
 
     @Autowired
@@ -78,6 +85,9 @@
 
     @Autowired
     private EmayService emayService;
+
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
 
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -132,6 +142,18 @@
         carUseBookMapper.insert(carUseBook);
         //鐢ㄨ溅鐢宠 瀹℃壒璁板綍鍒涘缓
         approveService.createApproveFlow(carUseBook.getType()==0?3:4,carUseBook.getId(),carUseBook.getMemberId());
+        //鍙戦�佸井淇″叕浼楀彿閫氱煡
+        //鍙戦�佸井淇″叕浼楀彿閫氱煡
+        WxPlatNotice wxPlatNotice = new WxPlatNotice();
+        Member member = memberMapper.selectById(carUseBook.getMemberId());
+        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+            wxPlatNotice.sendCarUseBookTemplateNotice(
+                    wxNoticeConfigMapper,carUseBook,
+                    WxPlatConstants.carUseBookContent.carUseBookUpload,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(member.getOpenid().split(",")),0);
+        }
+
         return carUseBook.getId();
     }
 
@@ -474,6 +496,15 @@
                .in(Approve::getObjType,Constants.approveObjectType.cityUseCar,Constants.approveObjectType.unCityUseCar)
                 .eq(Approve::getObjId,id)
         );
+
+        //澶勭悊寰呭姙淇℃伅
+        noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
+                .set(Notices::getStatus,Constants.ONE)
+                .eq(Notices::getType,Constants.TWO)
+                .eq(Notices::getObjId,carUseBook.getId())
+        );
+
+
         Member member = memberMapper.selectById(carUseBook.getMemberId());
         if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
             //鐢ㄨ溅鐢宠鍙栨秷
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index 31d94d1..55fbde4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -15,6 +15,8 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.SmsConstants;
 import com.doumee.core.utils.Utils;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
@@ -76,6 +78,9 @@
     @Autowired
     private EmayService emayService;
 
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
+
 
     @Override
     public Integer create(HiddenDanger hiddenDanger) {
@@ -91,6 +96,10 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         hiddenDanger.setMemberId(hiddenDanger.getLoginUserInfo().getMemberId());
+        Member createMember = memberMapper.selectById(hiddenDanger.getMemberId());
+        if(Objects.isNull(createMember)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍒涘缓浜轰俊鎭�");
+        }
         hiddenDanger.setIsdeleted(Constants.ZERO);
         hiddenDanger.setCreateDate(new Date());
         hiddenDanger.setEditDate(new Date());
@@ -181,6 +190,7 @@
         noticesJoinMapper.insert(notices);
 
 
+        WxPlatNotice wxPlatNotice = new WxPlatNotice();
         if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
             //鍙戦�佺煭淇¢�氱煡
             SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
@@ -190,7 +200,22 @@
             );
         }
 
-
+        //鎻愪氦浜虹殑寰俊鍏紬鍙烽�氱煡
+        if(Objects.nonNull(createMember)&&StringUtils.isNotBlank(createMember.getOpenid())){
+            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(
+                    wxNoticeConfigMapper,hiddenDanger,
+                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(createMember.getOpenid().split(",")));
+        }
+        //澶勭悊浜虹殑寰俊鍏紬鍙烽�氱煡
+        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
+            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(
+                    wxNoticeConfigMapper,hiddenDanger,
+                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(member.getOpenid().split(",")));
+        }
 
         return hiddenDanger.getId();
     }
@@ -244,7 +269,7 @@
                 .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId)
                 .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId)
                 .leftJoin("company t4 on t1.company_id=t4.id")
-                .leftJoin("company t5 on t3.company_id=t5.id");
+                .leftJoin("company t5 on t2.company_id=t5.id");
         queryWrapper
                 .eq(HiddenDanger::getId, id).last("limit 1");
 
@@ -326,7 +351,7 @@
                 .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId)
                 .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId)
                 .leftJoin("company t4 on t1.company_id=t4.id")
-                .leftJoin("company t5 on t3.company_id=t5.id");
+                .leftJoin("company t5 on t2.company_id=t5.id");
 
         //鏁版嵁鏉冮檺寮�濮�--------------------start----------------
         LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo();
@@ -429,10 +454,17 @@
                         Arrays.asList(member.getPhone().split(","))
                 );
             }
-
         }
-
-
+        Member createMember = memberMapper.selectById(hiddenDanger.getMemberId());
+        //澶勭悊浜虹殑寰俊鍏紬鍙烽�氱煡
+        if(Objects.nonNull(createMember)&&StringUtils.isNotBlank(createMember.getOpenid())){
+            WxPlatNotice wxPlatNotice = new WxPlatNotice();
+            wxPlatNotice.sendHiddenDangerDealTemplateNotice(
+                    wxNoticeConfigMapper,hiddenDanger,
+                    WxPlatConstants.hiddenDangerContent.hiddenDangerDeal,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(createMember.getOpenid().split(",")));
+        }
 
     }
 
@@ -592,6 +624,16 @@
                     Arrays.asList(member.getPhone().split(","))
             );
         }
+
+        //澶勭悊浜虹殑寰俊鍏紬鍙烽�氱煡
+        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
+            WxPlatNotice wxPlatNotice = new WxPlatNotice();
+            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(
+                    wxNoticeConfigMapper,hiddenDanger,
+                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(member.getOpenid().split(",")));
+        }
     }
 
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index cb86390..e6e736f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1709,12 +1709,11 @@
         String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode();
         String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code)
                 .replace("APPID", appId).replace("SECRET", appSecret);
-//        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
-        String openId = code;
-//        if(!Objects.isNull(tokenJson.get("access_token"))){
-//            openId = tokenJson.getString("openid");
-//        }
-//        String openId = "12345";
+        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
+        String openId = "";
+        if(!Objects.isNull(tokenJson.get("access_token"))){
+            openId = tokenJson.getString("openid");
+        }
         WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO();
         wxAuthorizeVO.setOpenid(openId);
         if(source==1){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index c45522e..5d0371f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -10,6 +10,8 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.SmsConstants;
 import com.doumee.core.utils.Utils;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
@@ -36,6 +38,7 @@
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -86,6 +89,9 @@
 
     @Autowired
     private EmayService emayService;
+
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
 
     @Override
     public Integer create(PlatformBooks platformBooks) {
@@ -285,6 +291,17 @@
 
         //鍒涘缓瀹℃壒娴佷俊鎭�
         approveService.createApproveForPlatfrom(approveTempl.getId(),platformBooks.getId(),platformBooks.getDriverId());
+        //鍙戦�佸叕浼楀彿閫氱煡 缁欐彁浜や汉
+        Member member = memberMapper.selectById(platformBooks.getDriverId());
+        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
+            WxPlatNotice wxPlatNotice = new WxPlatNotice();
+            wxPlatNotice.sendPlatformBookTemplateNotice(
+                    wxNoticeConfigMapper,platformBooks,
+                    WxPlatConstants.platformBookContent.platformBookUpload,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(member.getOpenid().split(",")),0);
+        }
+
         return platformBooks.getId();
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index 6c229ad..2000a83 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -17,6 +17,8 @@
 import com.doumee.core.tms.model.response.TmsBaseResponse;
 import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
 import com.doumee.core.utils.*;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
@@ -118,6 +120,10 @@
     private PlatformBroadcastLogMapper platformBroadcastLogMapper;
     @Autowired
     private PlatformWarnEventServiceImpl platformWarnEventService;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
 
     @Override
     public Integer create(PlatformJob platformJob) {
@@ -860,6 +866,20 @@
                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                 SmsConstants.platformJobContent.platformJobCallIn,null,null
         );
+        
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())) {
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformJobCallIn,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
 
         return platformJob;
     }
@@ -1058,6 +1078,21 @@
                 SmsConstants.platformJobContent.platformJobSingIn,platform.getName(),null
         );
 
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())){
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper,platformJob,
+                        WxPlatConstants.platformJobContent.platformJobSingIn,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
+
+
         //骞挎挱 led閫氱煡
         platformJob.setPlatformName(platform.getName());
         this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.CALLING.getInfo(),
@@ -1188,6 +1223,20 @@
                 SmsConstants.platformJobContent.platformJobMove,oldPlatform.getName(),platform.getName()
         );
 
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())) {
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformJobMove,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
+
         platformJob.setPlatformName(oldPlatform.getName());
         platformJob.setPlatformId(oldPlatform.getId());
         this.broadcastAndLEed(platformJob, StringUtils.isBlank(oldPlatform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getLedContent(),
@@ -1235,6 +1284,21 @@
                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                 SmsConstants.platformJobContent.platformJobOverNum,null,null
         );
+
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())){
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper,platformJob,
+                        WxPlatConstants.platformJobContent.platformJobOverNum,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
+
         platformJob.setPlatformName(platform.getName());
         this.broadcastAndLEed(platformJob, StringUtils.isBlank(platform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():platform.getLedContent(),
                 null
@@ -1281,6 +1345,20 @@
                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                 SmsConstants.platformJobContent.platformJobError,platform.getName(),null
         );
+
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())) {
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformJobError,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
 
         platformJob.setPlatformName(platform.getName());
         this.broadcastAndLEed(platformJob, StringUtils.isBlank(platform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():platform.getLedContent(),
@@ -1331,7 +1409,19 @@
                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                 SmsConstants.platformJobContent.platformJobWorking,platform.getName(),null
         );
-
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())) {
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformJobWorking,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
         //骞挎挱 led閫氱煡
         platformJob.setPlatformName(platform.getName());
         this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.WORKING.getInfo(),
@@ -1416,6 +1506,21 @@
                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                 SmsConstants.platformJobContent.platformJobFinish,platform.getName(),null
         );
+
+        //鍏紬鍙锋ā鏉挎秷鎭�
+        if(Objects.nonNull(platformJob.getDriverId())) {
+            Member member = memberMapper.selectById(platformJob.getDriverId());
+            if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobTemplateNotice(
+                        wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformJobFinish,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        Arrays.asList(member.getOpenid().split(","))
+                );
+            }
+        }
+
         //骞挎挱 led閫氱煡
         platformJob.setPlatformName(platform.getName());
         this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.DONE.getInfo(),
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index 09ac819..85180ac 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -23,6 +23,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.*;
+import com.doumee.core.wx.WXConstant;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
 import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.admin.response.InterestedListVO;
 import com.doumee.dao.admin.response.PCWorkPlatformDataVO;
@@ -129,6 +131,9 @@
 
     @Autowired
     private SmsEmailMapper smsEmailMapper;
+
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
 
     @Autowired
     private EmayService emayService;
@@ -279,10 +284,6 @@
             }else{
                 throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�");
             }
-            //鍙戦�佸井淇″叕浼楀彿閫氱煡
-            wxPlatNotice.sendVisitAuditTemplateNotice(visits,
-                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
-                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
         }else if(dataSyncConfig.getVisitorDataOrigin().equals(Constants.ZERO)){
             visits.setStatus(Constants.VisitStatus.waitCheck);
             visitsMapper.updateById(visits);
@@ -292,6 +293,17 @@
         }
         initWithVisitInfo(visits);
         updateProblemLog(visits,problemLog,member);
+
+        //鍙戦�佸井淇″叕浼楀彿閫氱煡 - 鐢宠鎻愪氦鎴愬姛寰呭鏍�
+        if(StringUtils.isNotBlank(visits.getOpenid())){
+            WxPlatNotice wxPlatNotice = new WxPlatNotice();
+            wxPlatNotice.sendVisitTemplateNotice(
+                    wxNoticeConfigMapper,visits,
+                    Constants.equalsInteger(visits.getType(),Constants.TWO)?WxPlatConstants.visitReportContent.visitReportUpload:WxPlatConstants.visitContent.visitUpload,
+                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                    Arrays.asList(visits.getOpenid().split(","))
+            );
+        }
         //鍒涘缓瀹℃壒璁板綍
         createApprove(visits,visitMember);
 
@@ -1486,11 +1498,6 @@
       if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfSuccess)){
           //濡傛灉涓嬪彂鎴愬姛锛�
           visitsMapper.updateById(visits);
-          if(Objects.isNull(visits.getParentId())){
-              wxPlatNotice.sendVisitAuditTemplateNotice(visits,
-                      systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
-                      systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
-          }
       }else{
           throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"閲嶆柊涓嬪彂浼氬け璐ワ紒");
       }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 549fa40..4f1f3ba 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -1053,11 +1053,6 @@
                     i.setEndtime(param.getEndTime());
                     i.setDoors(param.getDoors());
                     visitsMapper.updateById(i);
-                    if(Objects.isNull(i.getParentId())){
-                        wxPlatNotice.sendVisitAuditTemplateNotice(i,
-                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
-                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
-                    }
                 });
             }
         }catch (BusinessException e){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 0665993..aacfa71 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -311,11 +311,6 @@
 //                getUpdateModelByResponse(c,date,roleList,path);
                 getUpdateModelByResponseIccm(c,date,roleList,path);
                 visitsMapper.updateById(c);
-                if(Objects.isNull(c.getParentId())){
-                    wxPlatNotice.sendVisitAuditTemplateNotice(c,
-                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
-                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
-                }
             }
         }catch (Exception e){
             e.printStackTrace();
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
index 05bc494..cc451b8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -12,6 +12,8 @@
 import com.doumee.core.wms.model.response.WmsBaseDataResponse;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
 import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.SmsConfigMapper;
 import com.doumee.dao.business.dao.SmsEmailMapper;
@@ -64,6 +66,8 @@
     private EmayService emayService;
     @Autowired
     private RetentionMapper retentionMapper;
+    @Autowired
+    private WxNoticeConfigMapper wxNoticeConfigMapper;
     /**
      * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊
      * @param job 鍙傛暟
@@ -318,7 +322,22 @@
                         emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,job.getId(),
                         SmsConstants.platformJobContent.platformJobNewJob,null,null
                 );
+                //鏌ヨ鍙告満淇℃伅 鍙戦�佸叕浼楀彿閫氱煡
+                if(Objects.nonNull(job.getDriverId())){
+                    Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getPhone,job.getDriverId()));
+                    if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                        WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                        wxPlatNotice.sendWmsTemplateNotice(
+                                wxNoticeConfigMapper,job,
+                                WxPlatConstants.platformJobContent.platformJobNewJob,
+                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                                Arrays.asList(member.getOpenid().split(","))
+                        );
+                    }
+                }
             }
+
+
         }
     }
 
@@ -546,12 +565,29 @@
                             .set(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
                             .in(PlatformJob::getId,setJobIds)
                     );
+
                     for (Integer jobId:setJobIds
                     ) {
+                        //鐭俊閫氱煡
                         SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
                                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,jobId,
                                 SmsConstants.platformJobContent.platformJobStopJob,null,null
                         );
+                        //鍏紬鍙烽�氱煡鍙告満 浠诲姟鍙栨秷
+                        PlatformJob job = platformJobMapper.selectById(jobId);
+                        if(Objects.nonNull(job)){
+                             Member member = memberMapper.selectById(job.getDriverId());
+                            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                                wxPlatNotice.sendWmsCancelTemplateNotice(
+                                        wxNoticeConfigMapper,job,
+                                        WxPlatConstants.platformJobContent.platformJobCancel,
+                                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                                        Arrays.asList(member.getOpenid().split(","))
+                                );
+                            }
+                        }
+
                     }
                 }
             }
@@ -612,6 +648,21 @@
                                 emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,jobId,
                                 SmsConstants.platformJobContent.platformJobStopJob,null,null
                         );
+
+                        //鍏紬鍙烽�氱煡鍙告満 浠诲姟鍙栨秷
+                        PlatformJob job = platformJobMapper.selectById(jobId);
+                        if(Objects.nonNull(job)){
+                             Member member = memberMapper.selectById(job.getDriverId());
+                            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
+                                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                                wxPlatNotice.sendWmsCancelTemplateNotice(
+                                        wxNoticeConfigMapper,job,
+                                        WxPlatConstants.platformJobContent.platformJobCancel,
+                                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                                        Arrays.asList(member.getOpenid().split(","))
+                                );
+                            }
+                        }
                     }
                 }
             }

--
Gitblit v1.9.3