liukangdong
2024-12-11 8bd6e0f1c84f2bc5bf2b9555d1c5fb388565db6c
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已修改20个文件
574 ■■■■■ 文件已修改
server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
@@ -2,6 +2,7 @@
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.HttpsUtil;
@@ -70,8 +71,12 @@
     * @param token
     * @param openIds
     */
    public void  sendMeetingBookTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
    public void  sendMeetingBookTemplateNotice(SystemDictDataBiz systemDictDataBiz,Bookings bookings,String tempId, String token, Set<String> openIds){
        if(CollectionUtils.isNotEmpty(openIds)){
            String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                    Constants.WxUrlParams.MEETING,bookings.getId().toString());
            String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
            //整体参数map
            Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -97,6 +102,7 @@
            paramMap.put("data", dataMap);
            for (String openId:openIds) {
                paramMap.clear();
                paramMap.put("url", jumpUrl);
                paramMap.put("template_id", tempId);
                paramMap.put("touser", openId);
                paramMap.put("data", dataMap);
@@ -119,8 +125,13 @@
     * @param token
     * @param openIds
     */
    public void  sendMeetingBookCancelTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
    public void  sendMeetingBookCancelTemplateNotice(SystemDictDataBiz systemDictDataBiz,Bookings bookings, String tempId, String token, Set<String> openIds){
        if(CollectionUtils.isNotEmpty(openIds)){
            String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                    Constants.WxUrlParams.MEETING,bookings.getId().toString());
            String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
            //整体参数map
            Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -131,7 +142,7 @@
            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") );
            time6.put("value", DateUtil.getFomartDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
            //会议地点
            Map<String, Object> thing2 = new HashMap<String,Object>();
            thing2.put("value",bookings.getRoomName());
@@ -143,9 +154,10 @@
            dataMap.put("time6",time6);
            dataMap.put("thing2",thing2);
            dataMap.put("thing4",thing4);
            paramMap.put("data", dataMap);
            for (String openId:openIds) {
                paramMap.clear();
                paramMap.put("url", jumpUrl);
                paramMap.put("data", dataMap);
                paramMap.put("template_id", tempId);
                paramMap.put("touser", openId);
                paramMap.put("data", dataMap);
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -452,11 +452,13 @@
        bookings.setEditDate(new Date());
        bookings.setEditor(user.getId());
        bookingsMapper.updateById(bookings);
        SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator());
        bookings.setManagerInfo(systemUser.getRealname());
        //取消会议 发送取消通知
        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);
    }
@@ -1053,12 +1055,12 @@
        }
        bookingsMapper.updateById(bookings);
        //取消会议 发送取消通知
        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
            this.sendNotice(bookings, 3);
        }
        SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId());
//        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
//            this.sendNotice(bookings, 3);
//        }
        SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator());
        bookings.setManagerInfo(systemUser.getRealname());
        this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE);
    }
@@ -1338,6 +1340,10 @@
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.MEETING_START;
        if (sendType.equals(MeetConstants.THREE)){
            noticeObjectType = Constants.NoticeObjectType.MEETING_CACEL;
            smsConfig   = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
                            SmsConstants.meetingContent.meetingBookCancel)
                    .eq(SmsConfig::getIsdeleted,Constants.ZERO)
                    .last(" limit 1 "));
        }else   if (sendType.equals(MeetConstants.TWO)){
            noticeObjectType = Constants.NoticeObjectType.MEETING_BOOK_SUCCESS;
            smsConfig   = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
@@ -1406,11 +1412,10 @@
            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",
                    wxPlatNotice.sendMeetingBookTemplateNotice(systemDictDataBiz,bookings,"CuoDoxOl6SFwi4NhNgOQgKSJVjDD4VCIaPYlnbv_zdY",
                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds);
                }else{
                    wxPlatNotice.sendMeetingBookCancelTemplateNotice(bookings,"CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8",
                    wxPlatNotice.sendMeetingBookCancelTemplateNotice(systemDictDataBiz,bookings,"CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8",
                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds);
                }
            }
server/system_gateway/src/main/resources/application.yml
@@ -71,7 +71,7 @@
  jwt:
    enabled: true   #是否开启JWT登录认证功能
    secret: fjkfaf;afa  # JWT私钥,用于校验JWT令牌的合法性
    expiration: 36000000 #JWT令牌的有效期,用于校验JWT令牌的合法性
    expiration: 1800000 #JWT令牌的有效期,用于校验JWT令牌的合法性
    header: JWTHeaderName #HTTP请求的Header名称,该Header作为参数传递JWT令牌
    userParamName: username  #用户登录认证用户名参数名称
    pwdParamName: password  #用户登录认证密码参数名称
server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: dev
    active: pro
  application:
    name: system_gateway
  # 安全配置
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -15,6 +15,7 @@
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -211,7 +212,13 @@
     * @return
     */
    public static String getWxUrl(String code, WxUrlParams paramCode, String ywid) {
        return  code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid);
        String url = code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid);
        try {
            url = URLEncoder.encode(code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid),"UTF-8");
        }catch (Exception e){
        }
        return url;
    }
    public interface VisitIccmStatus{
@@ -1162,8 +1169,8 @@
    }
    public  enum WxUrlParams {
        BISCREEN_CODE(0,2, "0", "门口大屏二维码"),
        MEETING_CODE(1,0, "1","会议室大屏"),
        BISCREEN_CODE(0,0, "0", "门口大屏二维码"),
        MEETING_CODE(1,2, "1","会议室大屏"),
        VISIT_RECORD_VISIT(2,1, "2","访客记录-访客"),
        VISIT_RECORD_USER(3,2, "2","访客记录-员工"),
        VISIT_REPORT_RECORD_USER(5,2, "3","访客报备记录-员工"),
@@ -1173,11 +1180,10 @@
        PLATFORM_BOOK_DRIVER(9,0, "7","物流车预约-司机"),
        PLATFORM_BOOK(10,2, "7","物流车预约-员工"),
        PLATFORM_JOB_DRIVER(11,0, "8","月台作业-司机"),
        PLATFORM_JOB_BOOK(12,2, "8","月台作业-员工"),
        ;
        // 成员变量
        private int key;
        private int type;//用户类型 0员工 1司机
        private int type;//用户类型 0司机 1访客 2员工
        private String yw;//业务类型
        private String info;//说明
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
@@ -135,6 +135,8 @@
    public interface meetingContent{
        // meetingBookJoinUser    会议室申请(通知参会人)
        String meetingBookJoinUser = "meetingBookJoinUser";
        // meetingBookJoinUser    会议取消(通知会议创建人)
        String meetingBookCancel = "meetingBookCancel";
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
@@ -129,8 +129,8 @@
    @LoginNoRequired
    @ApiOperation("获取监控流播放地址")
    @GetMapping("/getCarmeraPreviemUrl")
    public ApiResponse<String> getCarmeraPreviemUrl(CarmeraListVO param) {
    @PostMapping("/getCarmeraPreviemUrl")
    public ApiResponse<String> getCarmeraPreviemUrl(@RequestBody CarmeraListVO param) {
        return ApiResponse.success(boardService.getCarmeraPreviemUrl(param));
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
@@ -7,6 +7,11 @@
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.FacePictureCheckRequest;
import com.doumee.core.haikang.model.param.respose.FacePictureCheckResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.FtpUtil;
@@ -149,7 +154,7 @@
    @ApiOperation(value = "上传文件到FTP")
    @RequestMapping(method= RequestMethod.POST,value="/upload")
    @ResponseBody
    public void upload(HttpServletRequest request, HttpServletResponse response, String folder) throws Exception {
    public void upload(HttpServletRequest request, HttpServletResponse response, String folder,Integer isFace) throws Exception {
//        folder = systemDictDataBiz.queryByCode(Constants.FTP,folder).getCode();
        Date d1 = new Date();
        log.error("总得上传文件成功=============开始========="+DateUtil.getPlusTime2(d1));
@@ -186,6 +191,38 @@
                    String fileName = folder+"/"+fName;
                    boolean r = ftp.uploadInputstream(is,fileName);
                    if(r){
                        if(Constants.equalsInteger(isFace,Constants.ZERO)){
                            //验证人脸评分
                            //人脸评分
                            FacePictureCheckRequest param = new FacePictureCheckRequest();
                            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode();
                            param.setFacePicUrl(prefixUrl + fileName);
                            BaseResponse<FacePictureCheckResponse> responseBaseResponse = HKService.facePictureCheck(param);
                            if(responseBaseResponse == null || !StringUtils.equals(responseBaseResponse.getCode(), HKConstants.RESPONSE_SUCCEE)){
                                context.put("code", 0);
                                context.put("message", "对不起,人脸评分获取数据失败~");
                                context.put("errno",0);
                                writerJson(response, context);
                                return;
                            }
                            FacePictureCheckResponse facePictureCheckResponse = responseBaseResponse.getData();
                            if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){
                                context.put("code", 0);
                                context.put("message", "对不起,人脸评分获取数据失败~");
                                context.put("errno",0);
                                writerJson(response, context);
                                return;
                            }
                            if(!facePictureCheckResponse.getCheckResult()){
                                context.put("code", 0);
                                context.put("message", facePictureCheckResponse.getStatusMessage());
                                context.put("errno",0);
                                writerJson(response, context);
                                return;
                            }
                        }
                        context.put("success", true);
                        context.put("code", 200);
                        context.put("errno",0);
server/visits/dmvisit_admin/src/main/resources/application.yml
@@ -78,7 +78,7 @@
  jwt:
    enabled: true   #是否开启JWT登录认证功能
    secret: fjkfaf;afa  # JWT私钥,用于校验JWT令牌的合法性
    expiration: 36000000 #JWT令牌的有效期,用于校验JWT令牌的合法性
    expiration: 1800000 #JWT令牌的有效期,用于校验JWT令牌的合法性
    header: JWTHeaderName #HTTP请求的Header名称,该Header作为参数传递JWT令牌
    userParamName: username  #用户登录认证用户名参数名称
    pwdParamName: password  #用户登录认证密码参数名称
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -81,7 +81,7 @@
     * @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){
    public void  sendVisitTemplateNotice(SystemDictDataBiz systemDictDataBiz,WxNoticeConfigMapper wxNoticeConfigMapper, Visits visits, String objCode, String token, List<String> openIds){
        try{
            if(CollectionUtils.isNotEmpty(openIds)){
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda()
@@ -93,6 +93,19 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                Constants.WxUrlParams wxUrlParams =  Constants.WxUrlParams.VISIT_REPORT_RECORD_USER;
                if(!Constants.equalsInteger(visits.getType(),Constants.TWO)){
                    if(objCode.equals(WxPlatConstants.visitContent.visitUpload)){
                        wxUrlParams = Constants.WxUrlParams.VISIT_RECORD_VISIT;
                    }else{
                        wxUrlParams = Constants.WxUrlParams.VISIT_RECORD_USER;
                    }
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        wxUrlParams
                        ,visits.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -116,6 +129,7 @@
                paramMap.put("data", dataMap);
                for (String openId:openIds) {
                    paramMap.clear();
                    paramMap.put("url", jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
@@ -141,10 +155,10 @@
     * @param objCode hiddenDangerUpload
     * @param openIds
     */
    public void  sendHiddenDangerUploadTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, HiddenDanger hiddenDanger, String objCode,String token, List<String> openIds){
    public void  sendHiddenDangerUploadTemplateNotice(SystemDictDataBiz systemDictDataBiz,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)
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.hiddenDanger)
                        .eq(WxNoticeConfig::getObjCode,objCode)
                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
                        .last(" limit 1")
@@ -152,6 +166,10 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        Constants.WxUrlParams.HIDDEN_DANGER,hiddenDanger.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -168,18 +186,19 @@
                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") );
                time11.put("value", DateUtil.getFomartDate(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("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("url", jumpUrl);
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
                    log.warn("·==++--·推送微信模板信息跳转地址:{}", jumpUrl);
                    if(StringUtils.isBlank(response)){
                        log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败");
                    }else{
@@ -203,10 +222,10 @@
     * @param objCode hiddenDangerDeal
     * @param openIds
     */
    public void  sendHiddenDangerDealTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, HiddenDanger hiddenDanger, String objCode,String token, List<String> openIds){
    public void  sendHiddenDangerDealTemplateNotice(SystemDictDataBiz systemDictDataBiz,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)
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.hiddenDanger)
                        .eq(WxNoticeConfig::getObjCode,objCode)
                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
                        .last(" limit 1")
@@ -214,6 +233,10 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        Constants.WxUrlParams.HIDDEN_DANGER,hiddenDanger.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -233,19 +256,20 @@
                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") );
                time16.put("value", DateUtil.getFomartDate(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("url", jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
                    log.warn("·==++--·推送微信模板信息跳转地址:{}", jumpUrl);
                    if(StringUtils.isBlank(response)){
                        log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败");
                    }else{
@@ -268,7 +292,7 @@
     * @param openIds
     * @param sendType 0=申请人;1=审批人
     */
    public void  sendCarUseBookTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, CarUseBook carUseBook, String objCode,String token,
    public void  sendCarUseBookTemplateNotice(SystemDictDataBiz systemDictDataBiz,WxNoticeConfigMapper wxNoticeConfigMapper, CarUseBook carUseBook, String objCode,String token,
                                              List<String> openIds,Integer sendType){
        try {
            if(CollectionUtils.isNotEmpty(openIds)){
@@ -280,6 +304,10 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        Constants.WxUrlParams.CAR_USE,carUseBook.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -320,6 +348,7 @@
                paramMap.put("data", dataMap);
                for (String openId:openIds) {
                    paramMap.clear();
                    paramMap.put("url", jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
@@ -347,11 +376,11 @@
     * @param openIds
     * @param sendType 0=申请人;1=审批人
     */
    public void  sendPlatformBookTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformBooks platformBooks, String objCode,String token,
    public void  sendPlatformBookTemplateNotice(SystemDictDataBiz systemDictDataBiz,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)
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.platformBook)
                        .eq(WxNoticeConfig::getObjCode,objCode)
                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
                        .last(" limit 1")
@@ -359,6 +388,14 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                Constants.WxUrlParams  wxUrlParams = Constants.WxUrlParams.PLATFORM_BOOK_DRIVER;
                if(!objCode.equals(WxPlatConstants.platformBookContent.platformBookUpload)){
                    wxUrlParams = Constants.WxUrlParams.PLATFORM_BOOK;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        wxUrlParams,platformBooks.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -374,7 +411,7 @@
                    }else if(Constants.equalsInteger(platformBooks.getStatus(),Constants.TWO)){
                        const9.put("value","申请已审核通过");
                    }else{
                        const9.put("value","申请已被驳回");
                        const9.put("value","申请未通过");
                    }
                }
                //车牌号
@@ -388,15 +425,15 @@
                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") );
                time4.put("value", DateUtil.getFomartDate(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);
                dataMap.put("time2",time4);
                for (String openId:openIds) {
                    paramMap.clear();
                    paramMap.put("url", jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
@@ -423,7 +460,7 @@
     * @param objCode   platformJobNewJob
     * @param openIds
     */
    public void  sendWmsTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
    public void  sendWmsTemplateNotice(SystemDictDataBiz systemDictDataBiz, WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
                                               List<String> openIds){
        try{
            if(CollectionUtils.isNotEmpty(openIds)){
@@ -435,6 +472,11 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        Constants.WxUrlParams.PLATFORM_JOB_DRIVER,platformJob.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -448,13 +490,14 @@
                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") );
                time4.put("value", DateUtil.getFomartDate(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("url",jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
@@ -480,7 +523,7 @@
     * @param objCode   platformJobNewJob
     * @param openIds
     */
    public void  sendWmsCancelTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
    public void  sendWmsCancelTemplateNotice(SystemDictDataBiz systemDictDataBiz,WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
                                       List<String> openIds){
        try{
            if(CollectionUtils.isNotEmpty(openIds)){
@@ -492,6 +535,11 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        Constants.WxUrlParams.PLATFORM_JOB_DRIVER,platformJob.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -502,12 +550,13 @@
                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") );
                time6.put("value", DateUtil.getFomartDate(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("url",jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
@@ -535,11 +584,11 @@
     * @param token
     * @param openIds
     */
    public void  sendPlatformJobTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
    public void  sendPlatformJobTemplateNotice(SystemDictDataBiz systemDictDataBiz,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)
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.platformJob)
                        .eq(WxNoticeConfig::getObjCode,objCode)
                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
                        .last(" limit 1")
@@ -547,6 +596,11 @@
                if(Objects.isNull(wxNoticeConfig)){
                    return;
                }
                String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                        Constants.WxUrlParams.PLATFORM_JOB_DRIVER,platformJob.getId().toString());
                String jumpUrl = systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode().replace( "${param}", url);
                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
                //整体参数map
                Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -563,14 +617,14 @@
                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") );
                time4.put("value", DateUtil.getFomartDate(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("url",jumpUrl);
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -592,13 +592,13 @@
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getOpenid())){
                            wxPlatNotice.sendPlatformBookTemplateNotice(
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            wxPlatNotice.sendPlatformBookTemplateNotice(systemDictDataBiz,
                                    wxNoticeConfigMapper,
                                    platformBooksMapper.selectById(businessId),
                                    WxPlatConstants.platformBookContent.platformBookWaitAudit,
                                    token,
                                    Arrays.asList(member.getOpenid().split(",")),
                                    Arrays.asList(member.getSystemOpenid().split(",")),
                                    Constants.ONE);
                        }
                    }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)){
@@ -611,7 +611,7 @@
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            wxPlatNotice.sendVisitTemplateNotice(
                            wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                                    wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitContent.visitWaitAudit,
                                    token,
                                    Arrays.asList(member.getSystemOpenid().split(","))
@@ -626,7 +626,7 @@
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            wxPlatNotice.sendVisitTemplateNotice(
                            wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                                    wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitReportContent.visitReportWaitAudit,
                                    token,
                                    Arrays.asList(member.getSystemOpenid().split(","))
@@ -646,7 +646,7 @@
                                SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                                if(Objects.nonNull(systemUser)){
                                    carUseBook.setMemberName(systemUser.getRealname());
                                    wxPlatNotice.sendCarUseBookTemplateNotice(
                                    wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                                            wxNoticeConfigMapper,
                                            carUseBookMapper.selectById(businessId),
                                            WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
@@ -1434,8 +1434,16 @@
                    SmsConstants.platformBookContent.platformBookWaitAudit,
                    approveDTO.getCheckInfo(),memberPhone
            );
            //TODO 发送下级的待审批的通知
            //公众号通知
            if(CollectionUtils.isNotEmpty(openIdList)){
                wxPlatNotice.sendPlatformBookTemplateNotice(systemDictDataBiz,
                        wxNoticeConfigMapper,
                        platformBooksMapper.selectById(approveDTO.getObjId()),
                        WxPlatConstants.platformBookContent.platformBookWaitAudit,
                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                        openIdList,
                        Constants.ONE);
            }
        } else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)
                || approveDTO.getObjType().equals(Constants.approveObjectType.unCityUseCar)){
@@ -1454,7 +1462,7 @@
                    if(Objects.nonNull(systemUser)){
                        carUseBook.setMemberName(systemUser.getRealname());
                        //发送微信公众号通知
                        wxPlatNotice.sendCarUseBookTemplateNotice(
                        wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                                wxNoticeConfigMapper,carUseBook,
                                WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
@@ -1480,7 +1488,7 @@
                    );
                    //公众号通知
                    if(CollectionUtils.isNotEmpty(openIdList)){
                        wxPlatNotice.sendVisitTemplateNotice(
                        wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                                wxNoticeConfigMapper,visitsMapper.selectById(approveDTO.getObjId()),
                                approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)?WxPlatConstants.visitReportContent.visitReportWaitAudit:WxPlatConstants.visitContent.visitWaitAudit,
                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
@@ -1731,7 +1739,7 @@
            //发送微信公众号
            if(StringUtils.isNotBlank(objCode)){
                if(Objects.nonNull(visits) && StringUtils.isNotBlank(visits.getOpenid())){
                    wxPlatNotice.sendVisitTemplateNotice(
                    wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                            wxNoticeConfigMapper,visits, objCode,
                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                            Arrays.asList(visits.getOpenid().split(","))
@@ -1757,7 +1765,7 @@
                if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
                    carUseBook.setMemberName(systemUser.getRealname());
                    //发送微信公众号通知
                    wxPlatNotice.sendCarUseBookTemplateNotice(
                    wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                            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(),
@@ -1821,14 +1829,18 @@
            );
            //发送微信公众号消息
            Member member = memberMapper.selectById(platformBooks.getDriverId() );
            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
            SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                    .eq(SystemUser::getDeleted, Constants.ZERO)
                    .eq(SystemUser::getType, Constants.ZERO)
                    .eq(SystemUser::getMobile,platformBooks.getDriverPhone())
                    .last(" limit 1 "));
            if(Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())){
                //发送微信公众号通知
                wxPlatNotice.sendPlatformBookTemplateNotice(
                wxPlatNotice.sendPlatformBookTemplateNotice(systemDictDataBiz,
                        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);
                        Arrays.asList(driver.getOpenid().split(",")),0);
            }
        }else{
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -153,7 +153,7 @@
        SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
        if(Objects.nonNull(systemUser) && StringUtils.isNotBlank(systemUser.getOpenid())){
            carUseBook.setMemberName(systemUser.getRealname());
            wxPlatNotice.sendCarUseBookTemplateNotice(
            wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                    wxNoticeConfigMapper,carUseBook,
                    WxPlatConstants.carUseBookContent.carUseBookUpload,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
@@ -522,7 +522,7 @@
            if(StringUtils.isNotBlank(systemUser.getOpenid())){
                carUseBook.setMemberName(systemUser.getRealname());
                WxPlatNotice wxPlatNotice = new WxPlatNotice();
                wxPlatNotice.sendCarUseBookTemplateNotice(
                wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                        wxNoticeConfigMapper,
                        carUseBook,
                        WxPlatConstants.carUseBookContent.carUseBookCancel,
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerLogServiceImpl.java
@@ -134,7 +134,7 @@
                newBean.setTitle("隐患处理");
                newBean.setAvatar("-");
                SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId()));
                SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId()).last(" limit 1 "));
                if(Objects.nonNull(systemUser)){
                    newBean.setCreateUserName(systemUser.getRealname());
                    newBean.setAvatar(systemUser.getAvatar());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -23,9 +23,11 @@
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.Notices;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.HiddenDangerService;
import com.doumee.service.business.third.EmayService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -54,6 +56,9 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private MemberMapper memberMapper;
@@ -112,6 +117,7 @@
        if(Objects.isNull(hiddenDangerCate)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患类型");
        }
        hiddenDanger.setCategoryName(hiddenDangerCate.getName());
        hiddenDanger.setCreator(hiddenDanger.getLoginUserInfo().getId());
        hiddenDanger.setAreaName(hiddenDangerParam.getName());
        hiddenDanger.setStatus(Constants.ZERO);
@@ -190,7 +196,6 @@
        noticesJoinMapper.insert(notices);
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
            //发送短信通知
            SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
@@ -200,23 +205,33 @@
            );
        }
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        SystemUser systemUser = systemUserMapper.selectById(hiddenDanger.getLoginUserInfo().getId());
        hiddenDanger.setMemberName(systemUser.getRealname());
        //提交人的微信公众号通知
        if(Objects.nonNull(createMember)&&StringUtils.isNotBlank(createMember.getOpenid())){
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(
        if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz,
                    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(",")));
                    Arrays.asList(systemUser.getOpenid().split(",")));
        }
        SystemUser checkUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted, Constants.ZERO)
                .eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId())
                .last(" limit 1 "));
        //处理人的微信公众号通知
        if(Objects.nonNull(checkUser)&&StringUtils.isNotBlank(checkUser.getOpenid())){
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz,
                    wxNoticeConfigMapper,hiddenDanger,
                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                    Arrays.asList(checkUser.getOpenid().split(",")));
        }
        return hiddenDanger.getId();
    }
@@ -422,6 +437,12 @@
        hiddenDanger.setEditDate(new Date());
        hiddenDanger.setCheckDate(hiddenDanger.getEditDate());
        hiddenDangerMapper.updateById(hiddenDanger);
        HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId());
        HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(model.getCateId());
        if(Objects.isNull(hiddenDangerCate)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患类型");
        }
        model.setCategoryName(hiddenDangerCate.getName());
        //存储 操作日志
        HiddenDangerLog hiddenDangerLog = new HiddenDangerLog();
        hiddenDangerLog.setIsdeleted(Constants.ZERO);
@@ -444,26 +465,29 @@
                .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId())
        );
        SystemUser memberUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted, Constants.ZERO)
                .eq(SystemUser::getMemberId,model.getMemberId()));
        if(Constants.equalsInteger(hiddenDanger.getStatus(),Constants.ONE)){
            Member member = memberMapper.selectById(hiddenDanger.getMemberId());
            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
            if(Objects.nonNull(memberUser) && StringUtils.isNotBlank(memberUser.getMobile())){
                //发送短信通知
                SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
                        emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(),
                        SmsConstants.hiddenDangerContent.hiddenDangerDealOver,
                        Arrays.asList(member.getPhone().split(","))
                        Arrays.asList(memberUser.getMobile().split(","))
                );
            }
        }
        Member createMember = memberMapper.selectById(hiddenDanger.getMemberId());
        model.setCheckorName(hiddenDanger.getLoginUserInfo().getRealname());
        model.setMemberName(memberUser.getRealname());
        //处理人的微信公众号通知
        if(Objects.nonNull(createMember)&&StringUtils.isNotBlank(createMember.getOpenid())){
        if(Objects.nonNull(memberUser)&&StringUtils.isNotBlank(memberUser.getOpenid())){
            WxPlatNotice wxPlatNotice = new WxPlatNotice();
            wxPlatNotice.sendHiddenDangerDealTemplateNotice(
                    wxNoticeConfigMapper,hiddenDanger,
            wxPlatNotice.sendHiddenDangerDealTemplateNotice(systemDictDataBiz,
                    wxNoticeConfigMapper,model,
                    WxPlatConstants.hiddenDangerContent.hiddenDangerDeal,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                    Arrays.asList(createMember.getOpenid().split(",")));
                    Arrays.asList(memberUser.getOpenid().split(",")));
        }
    }
@@ -577,6 +601,11 @@
        if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ONE,member.getIsdeleted())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,转交人信息不存在,请刷新页面重试!");
        }
        HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(model.getCateId());
        if(Objects.isNull(hiddenDangerCate)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患类型");
        }
        hiddenDanger.setCategoryName(hiddenDangerCate.getName());
        hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId());
        hiddenDanger.setEditDate(new Date());
        hiddenDangerMapper.updateById(hiddenDanger);
@@ -615,24 +644,33 @@
            noticesJoinMapper.updateById(notices);
        }
        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
        SystemUser memberUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted, Constants.ZERO)
                .eq(SystemUser::getMemberId,model.getMemberId()));
        if(Objects.isNull(memberUser)||StringUtils.isBlank(memberUser.getRealname())){
          return;
        }
        hiddenDanger.setMemberName(memberUser.getRealname());
        SystemUser checkUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted, Constants.ZERO)
                .eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId()));
        if(Objects.nonNull(checkUser) && StringUtils.isNotBlank(checkUser.getMobile())){
            //发送短信通知
            SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(),
                    SmsConstants.hiddenDangerContent.hiddenDangerDealUser,
                    Arrays.asList(member.getPhone().split(","))
                    Arrays.asList(checkUser.getMobile().split(","))
            );
        }
        //处理人的微信公众号通知
        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
        if(Objects.nonNull(checkUser)&&StringUtils.isNotBlank(checkUser.getOpenid())){
            WxPlatNotice wxPlatNotice = new WxPlatNotice();
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(
            wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz,
                    wxNoticeConfigMapper,hiddenDanger,
                    WxPlatConstants.hiddenDangerContent.hiddenDangerUpload,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                    Arrays.asList(member.getOpenid().split(",")));
                    Arrays.asList(checkUser.getOpenid().split(",")));
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2108,7 +2108,6 @@
        )>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"手机号已注册!");
        };
        smsEmailService.validateCode(registerDriverDTO.getValidCode(),registerDriverDTO.getPhone());
        String salt = RandomStringUtils.randomAlphabetic(6);
       ;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -19,7 +19,9 @@
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
import com.doumee.dao.web.reqeust.RevokeDTO;
@@ -68,6 +70,9 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private ApproveService approveService;
@@ -292,16 +297,20 @@
        //创建审批流信息
        approveService.createApproveForPlatfrom(approveTempl.getId(),platformBooks.getId(),platformBooks.getDriverId());
        //发送公众号通知 给提交人
        Member member = memberMapper.selectById(platformBooks.getDriverId());
        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
        SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted, Constants.ZERO)
                .eq(SystemUser::getType, Constants.ZERO)
                .eq(SystemUser::getMobile,platformBooks.getDriverPhone())
                .last(" limit 1 "));
        if(Objects.nonNull(driver)&&StringUtils.isNotBlank(driver.getOpenid())){
            WxPlatNotice wxPlatNotice = new WxPlatNotice();
            wxPlatNotice.sendPlatformBookTemplateNotice(
            wxPlatNotice.sendPlatformBookTemplateNotice(systemDictDataBiz,
                    wxNoticeConfigMapper,platformBooks,
                    WxPlatConstants.platformBookContent.platformBookUpload,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                    Arrays.asList(member.getOpenid().split(",")),0);
                    Arrays.asList(driver.getOpenid().split(",")),0);
        }
        return platformBooks.getId();
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -29,6 +29,7 @@
import com.doumee.dao.openapi.request.*;
import com.doumee.dao.openapi.response.*;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
@@ -129,6 +130,8 @@
    private MemberMapper memberMapper;
    @Autowired
    private WxNoticeConfigMapper wxNoticeConfigMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Override
    public Integer create(PlatformJob platformJob) {
@@ -874,19 +877,26 @@
        
        //公众号模板消息
        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(","))
                );
            }
          this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobCallIn,platformJob);
        }
        return platformJob;
    }
    public void sendWxNotice(String objCode,PlatformJob platformJob){
        SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted, Constants.ZERO)
                .eq(SystemUser::getType, Constants.ZERO)
                .eq(SystemUser::getMobile,platformJob.getDrivierPhone())
                .last(" limit 1 "));
        if (Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())) {
            WxPlatNotice wxPlatNotice = new WxPlatNotice();
            wxPlatNotice.sendPlatformJobTemplateNotice(systemDictDataBiz,
                    wxNoticeConfigMapper, platformJob,
                    objCode,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                    Arrays.asList(driver.getOpenid().split(","))
            );
        }
    }
    private Logger logger = LoggerFactory.getLogger(PlatformJobServiceImpl.class);
@@ -1084,17 +1094,8 @@
        );
        //公众号模板消息
        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(","))
                );
            }
        if(Objects.nonNull(platformJob.getDriverId())){
            this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobSingIn,platformJob);
        }
@@ -1229,17 +1230,8 @@
        );
        //公众号模板消息
        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(","))
                );
            }
        if(Objects.nonNull(platformJob.getDriverId())) {
            this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobMove,platformJob);
        }
        platformJob.setPlatformName(oldPlatform.getName());
@@ -1292,16 +1284,7 @@
        //公众号模板消息
        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(","))
                );
            }
            this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobOverNum,platformJob);
        }
        platformJob.setPlatformName(platform.getName());
@@ -1353,16 +1336,7 @@
        //公众号模板消息
        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(","))
                );
            }
            this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobError,platformJob);
        }
        platformJob.setPlatformName(platform.getName());
@@ -1416,16 +1390,7 @@
        );
        //公众号模板消息
        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(","))
                );
            }
            this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobWorking,platformJob);
        }
        //广播 led通知
        platformJob.setPlatformName(platform.getName());
@@ -1435,7 +1400,8 @@
        return platformJob;
    }
    @Override
    public PlatformJob getLastWaitJob(String uuid, LoginUserInfo loginUser){
        String u = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.BIGSCREEN_UUID);
        if(!StringUtils.equals(u,uuid)){
@@ -1449,6 +1415,7 @@
                .last(" limit 1 ") );
            return platformJob;
    }
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public PlatformJob finishWork(JobOperateDTO jobOperateDTO){
@@ -1523,16 +1490,7 @@
        //公众号模板消息
        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(","))
                );
            }
            this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobFinish,platformJob);
        }
        //广播 led通知
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -297,7 +297,7 @@
        //发送微信公众号通知 - 申请提交成功待审核
        if(StringUtils.isNotBlank(visits.getOpenid())){
            WxPlatNotice wxPlatNotice = new WxPlatNotice();
            wxPlatNotice.sendVisitTemplateNotice(
            wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                    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(),
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -402,6 +402,11 @@
        file.setFieldName("event_type");
        file.setFieldValue("131588");//安防告警
        file.setType("in");
        if(type == 1){
        }else  if(type == 1){
        }
        request.getFiledOptions().add(file);
        SortRequest sort = new SortRequest();
        sort.setSortField("happen_time");
@@ -1320,14 +1325,17 @@
        VisitDataVO result = new VisitDataVO();
        result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                .eq(Visits::getIsdeleted,Constants.ZERO)
                .apply("to_days(create_date)=to_days(now()")
                .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//待访问
        result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                .eq(Visits::getIsdeleted,Constants.ZERO)
                .apply("to_days(create_date)=to_days(now()")
                .in(Visits::getStatus,Constants.VisitStatus.signout,Constants.VisitStatus.signin )));//已登记
        result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                .eq(Visits::getIsdeleted,Constants.ZERO)
                .apply("to_days(create_date)=to_days(now()")
                .in(Visits::getStatus,Constants.VisitStatus.signout )));//已签离
        PageWrap<Visits> pageWrap = new PageWrap<>();
        /*PageWrap<Visits> pageWrap = new PageWrap<>();
        pageWrap.setCapacity(10);
        pageWrap.setPage(1);
        pageWrap.setModel(new Visits());
@@ -1344,14 +1352,38 @@
                list.add(data);
            }
            result.setRetentionNum(visitsPageData.getTotal());
        }*/
        String code= systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_WARNING).getCode();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName);
        queryWrapper.select("TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) AS timeOut");
        queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment);
        queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
        queryWrapper.leftJoin(" member m on m.id= t.MEMBER_ID");
        queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.signin);
        queryWrapper.apply(" TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) <= "+code+"  ");
        queryWrapper.ne("m.type ",Constants.TWO);
        queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO);
        queryWrapper.orderByDesc(Visits::getEditDate);
        List<Visits> vr = visitsJoinMapper.selectList(queryWrapper);
        result.setVisitRetentionDataList(new ArrayList<>());//访客滞留数据集合
        if(vr!=null&&vr!=null){
            vr.stream().forEach(s ->{
                VisitRetentionDataVO t = new VisitRetentionDataVO();
                t.setName(s.getName());
                t.setCompanyName(s.getCompanyName());
                t.setTimeOutMinute(s.getTimeOut());
                result.getVisitRetentionDataList().add(t);
            });
        }
        result.setVisitRetentionDataList(list);//访客滞留数据集合
        return result;
    }
    @Override
    public  SecurityBoardVO centerSecurityData(){
        SecurityBoardVO data = new SecurityBoardVO();
        getParkingCarsNum(data);//获取车位数据
@@ -1367,9 +1399,13 @@
                (int) retentionList.stream().filter(i->!Constants.equalsInteger(i.getType(),Constants.THREE)).count()
        );
        //在园长期相关方人数
        data.setInternalTotal(
        data.setRelatedTotal(
                (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO) && Constants.equalsInteger(i.getCompanyType(),Constants.ZERO)).count()
        );
        //在园内部员工人数
        data.setInternalTotal(
                (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO) && Constants.equalsInteger(i.getCompanyType(),Constants.ONE)).count()
        );
        //在园访客数量
        data.setVisitTotal(
                (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count()
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -19,6 +19,8 @@
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.impl.SmsEmailServiceImpl;
import com.doumee.service.business.third.EmayService;
import com.doumee.service.business.third.WmsService;
@@ -50,6 +52,8 @@
    private CarsMapper carsMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
@@ -315,7 +319,6 @@
    private void startEndNoticeToDriver(List<PlatformJob> jobList) {
        for(PlatformJob job : jobList){
            //-----TODO-----------任康,发送司机公众号和
            //短信通知
            if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())){
                SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
@@ -324,14 +327,19 @@
                );
                //查询司机信息 发送公众号通知
                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())){
                    //发送公众号通知 给提交人
                    SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                            .eq(SystemUser::getDeleted, Constants.ZERO)
                            .eq(SystemUser::getType, Constants.ZERO)
                            .eq(SystemUser::getMobile,job.getDrivierPhone())
                            .last(" limit 1 "));
                    if(Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())){
                        WxPlatNotice wxPlatNotice = new WxPlatNotice();
                        wxPlatNotice.sendWmsTemplateNotice(
                        wxPlatNotice.sendWmsTemplateNotice(systemDictDataBiz,
                                wxNoticeConfigMapper,job,
                                WxPlatConstants.platformJobContent.platformJobNewJob,
                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                                Arrays.asList(member.getOpenid().split(","))
                                Arrays.asList(driver.getOpenid().split(","))
                        );
                    }
                }
@@ -576,14 +584,20 @@
                        //公众号通知司机 任务取消
                        PlatformJob job = platformJobMapper.selectById(jobId);
                        if(Objects.nonNull(job)){
                             Member member = memberMapper.selectById(job.getDriverId());
                            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
                            //发送公众号通知 给提交人
                            SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                                    .eq(SystemUser::getDeleted, Constants.ZERO)
                                    .eq(SystemUser::getType, Constants.ZERO)
                                    .eq(SystemUser::getMobile,job.getDrivierPhone())
                                    .last(" limit 1 "));
                            if(Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())){
                                WxPlatNotice wxPlatNotice = new WxPlatNotice();
                                wxPlatNotice.sendWmsCancelTemplateNotice(
                                wxPlatNotice.sendWmsCancelTemplateNotice(systemDictDataBiz,
                                        wxNoticeConfigMapper,job,
                                        WxPlatConstants.platformJobContent.platformJobCancel,
                                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                                        Arrays.asList(member.getOpenid().split(","))
                                        Arrays.asList(driver.getOpenid().split(","))
                                );
                            }
                        }
@@ -651,15 +665,19 @@
                        //公众号通知司机 任务取消
                        PlatformJob job = platformJobMapper.selectById(jobId);
                        if(Objects.nonNull(job)){
                             Member member = memberMapper.selectById(job.getDriverId());
                            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
                        if(Objects.nonNull(job)){  //发送公众号通知 给提交人
                            SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                                    .eq(SystemUser::getDeleted, Constants.ZERO)
                                    .eq(SystemUser::getType, Constants.ZERO)
                                    .eq(SystemUser::getMobile,job.getDrivierPhone())
                                    .last(" limit 1 "));
                            if(Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())){
                                WxPlatNotice wxPlatNotice = new WxPlatNotice();
                                wxPlatNotice.sendWmsCancelTemplateNotice(
                                wxPlatNotice.sendWmsCancelTemplateNotice(systemDictDataBiz,
                                        wxNoticeConfigMapper,job,
                                        WxPlatConstants.platformJobContent.platformJobCancel,
                                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                                        Arrays.asList(member.getOpenid().split(","))
                                        Arrays.asList(driver.getOpenid().split(","))
                                );
                            }
                        }