k94314517
2024-12-05 b7210488b6129ceb614e559d0240bf3ed3321dea
代码初始化
已添加1个文件
已修改15个文件
1297 ■■■■ 文件已修改
server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java 645 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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","皖AP12345");
            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"));
                }
            }
        }
    }
}
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;
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");
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) {
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";
    }
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 {
    /**
     * å¾®ä¿¡å…¬ä¼—号API的Service
     */
  /*  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","皖AP12345");
            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,visitWaitAudit,visitReportUpload,visitReportAuditSuccess,visitReportAuditFail, 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å¹´MM月dd日 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å¹´MM月dd日 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,meetingCancel,meetingBeginA,meetingEndA
     * @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,platformBookAuditSuccess,platformBookAuditFail,platformBookWaitAudit
     * @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å¹´MM月dd日 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å¹´MM月dd日 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å¹´MM月dd日 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,platformJobSingIn,platformJobOverNum,platformJobWorking,platformJobFinish,platformJobLevelPower,platformJobMove,platformJobError,platformJobTimeOut,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å¹´MM月dd日 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){
        }
    }
}
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);
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())){
            //用车申请取消
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(",")));
        }
    }
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){
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();
    }
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(),
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(),"重新下发会失败!");
      }
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){
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();
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(","))
                                );
                            }
                        }
                    }
                }
            }