jiangping
2025-02-26 4e2e52b766d87fc528d02bdebc1757c3dda8c596
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -9,14 +9,18 @@
import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest;
import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Constants;
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.MemberMapper;
import com.doumee.dao.business.dao.SmsConfigMapper;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.dto.ApproveDTO;
import com.doumee.dao.business.join.ApproveJoinMapper;
@@ -24,6 +28,8 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.NoticesDTO;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.system.model.Notices;
@@ -64,6 +70,8 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private WxNoticeConfigMapper wxNoticeConfigMapper;
    @Autowired
    private ApproveTemplMapper approveTemplMapper;
@@ -79,15 +87,16 @@
    @Autowired
    private CarUseBookMapper carUseBookMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private CarDriverMapper carDriverMapper;
    @Autowired
    private VisitsMapper visitsMapper;
    @Autowired
    private VisitsJoinMapper visitsJoinMapper;
    private VisitsJoinMapper visitsMapper;
    @Autowired
    private CarUseBookJoinMapper carUseBookJoinMapper;
@@ -103,44 +112,32 @@
    private PlatformReasonMapper platformReasonMapper;
    @Autowired
    private PlatformGroupMapper platformGroupMapper;
    @Autowired
    private ParksMapper parksMapper;
    @Autowired
    private ParkBookMapper parkBookMapper;
    @Autowired
    private VisitParkMapper visitParkMapper;
    @Autowired
    private SmsConfigMapper smsConfigMapper;
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private EmayService emayService;
    @Override
    public Integer create(Approve approve) {
        approveMapper.insert(approve);
        return approve.getId();
    }
    @Override
    public void deleteById(Integer id) {
        approveMapper.deleteById(id);
    }
    @Override
    public void delete(Approve approve) {
        UpdateWrapper<Approve> deleteWrapper = new UpdateWrapper<>(approve);
        approveMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
@@ -367,10 +364,11 @@
     * @param tempType 模板类型  0非施工人员访客申请 1施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约
     * @param businessId 业务主键 根据 tempType
     * @param createMemberId 提交流程人员
     * @param applyMember 申请人对象(如果为空,默认为提交人)
     */
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void createApproveFlow(Integer tempType,Integer businessId,Integer createMemberId){
    public void createApproveFlow(Integer tempType,Integer businessId,Integer createMemberId,Member applyMember){
        //查询处理模板
        ApproveTempl approveTempl = approveTemplMapper.selectOne(new QueryWrapper<ApproveTempl>().lambda()
                .eq(ApproveTempl::getType,tempType)
@@ -397,18 +395,15 @@
        }
        List<ApproveParam> approveCopyList = approveParamAllList.stream().filter(i->i.getType().equals(Constants.ONE)).collect(Collectors.toList());
        Member createMember = memberMapper.selectById(createMemberId);
        Member createMember =    memberMapper.selectById(createMemberId);
        if(Objects.isNull(createMember)|| Objects.isNull(createMember.getCompanyId())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"申请人组织信息异常");
        }
        List<Approve> approveList = new ArrayList<>();
        this.organizeApproveData(approveTempl,approveParamList,createMember,businessId,approveList);
        this.organizeApproveData(approveTempl,approveParamList,createMember,applyMember,businessId,approveList);
        if(CollectionUtils.isEmpty(approveList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误");
        }
        //处理抄送数据
        if(CollectionUtils.isNotEmpty(approveCopyList)){
            this.organizeApproveCopyData(approveTempl,approveCopyList,businessId,approveList);
@@ -420,7 +415,7 @@
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void createApproveForPlatfrom(Integer tempId,Integer businessId,Integer createMemberId){
    public void createApproveForPlatfrom(Integer tempId,Integer businessId,Integer createMemberId ){
        //查询处理模板
        ApproveTempl approveTempl = approveTemplMapper.selectById(tempId);
        if(Objects.isNull(approveTempl)){
@@ -449,7 +444,7 @@
        }
        List<Approve> approveList = new ArrayList<>();
        this.organizeApproveData(approveTempl,approveParamList,createMember,businessId,approveList);
        this.organizeApproveData(approveTempl,approveParamList,createMember,null,businessId,approveList);
        if(CollectionUtils.isEmpty(approveList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误");
@@ -471,15 +466,18 @@
     * @param businessId
     * @param approveList
     */
    public void organizeApproveData(ApproveTempl approveTempl,List<ApproveParam> approveParamList,Member createMember,Integer businessId,List<Approve> approveList){
    public void organizeApproveData(ApproveTempl approveTempl,List<ApproveParam> approveParamList,Member createMember,Member applyMember,Integer businessId,List<Approve> approveList){
        if(applyMember ==null){
            applyMember = createMember;
        }
        //创建默认人信息
        Approve createUserApprove = new Approve();
        createUserApprove.setRemark("发起申请");
        createUserApprove.setCreateDate(new Date());
        createUserApprove.setIsdeleted(Constants.ZERO);
        createUserApprove.setTemplatId(approveTempl.getId());
        createUserApprove.setChekorId(createMember.getId());
        createUserApprove.setChekorId(applyMember.getId());
        createUserApprove.setCheckDate(createUserApprove.getCreateDate());
        createUserApprove.setStatus(Constants.approveStatus.pass);
        createUserApprove.setTitle("发起申请");
@@ -495,12 +493,18 @@
        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);
            List<Integer> ids = this.getApproveUserIds(approveParam,createMember);
            List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().in(Member::getId,ids));
            List<Member> memberList = memberMapper.selectJoinList(Member.class,
                    new MPJLambdaWrapper<Member>()
                            .selectAll(Member.class)
                            .selectAs(SystemUser::getOpenid,Member::getSystemOpenid)
                            .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId)
                            .in(Member::getId,ids)
            );
            List<String> memberNameList =memberList.stream().map(m->m.getName()).collect(Collectors.toList());
            String memberNames = String.join(",",memberNameList);
            Integer noticeType = Constants.approveTypeToNoticeType(approveTempl.getType());
@@ -578,6 +582,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)){
@@ -587,13 +592,32 @@
                                SmsConstants.platformBookContent.platformBookWaitAudit,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            wxPlatNotice.sendPlatformBookTemplateNotice(systemDictDataBiz,
                                    wxNoticeConfigMapper,
                                    platformBooksMapper.selectById(businessId),
                                    WxPlatConstants.platformBookContent.platformBookWaitAudit,
                                    token,
                                    Arrays.asList(member.getSystemOpenid().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.getSystemOpenid())){
                            wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                                    wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitContent.visitWaitAudit,
                                    token,
                                    Arrays.asList(member.getSystemOpenid().split(","))
                            );
                        }
                    }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){
                        //访客报备
                        SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
@@ -601,6 +625,14 @@
                                SmsConstants.visitReportingContent.visitReportingNotice,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                                    wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitReportContent.visitReportWaitAudit,
                                    token,
                                    Arrays.asList(member.getSystemOpenid().split(","))
                            );
                        }
                    }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.useCar)){
                        //用车申请
                        SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
@@ -608,6 +640,23 @@
                                SmsConstants.carUseBookContent.carUseBookWaitAudit,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            CarUseBook carUseBook = carUseBookMapper.selectById(businessId);
                            if(Objects.nonNull(carUseBook)){
                                SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                                if(Objects.nonNull(systemUser)){
                                    carUseBook.setMemberName(systemUser.getRealname());
                                    wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                                            wxNoticeConfigMapper,
                                            carUseBookMapper.selectById(businessId),
                                            WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
                                            token,
                                            Arrays.asList(member.getSystemOpenid().split(",")),
                                            Constants.ONE);
                                }
                            }
                        }
                    }
                }
@@ -623,7 +672,7 @@
        if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)
                || Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){
            //访客记录与访客报备
            Visits visits = visitsJoinMapper.selectJoinOne(Visits.class,
            Visits visits = visitsMapper.selectJoinOne(Visits.class,
                    new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
                            .selectAs(Member::getName,Visits::getReceptMemberName)
                            .selectAs(Company::getName,Visits::getReceptMemberDepartment)
@@ -1150,6 +1199,7 @@
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void approved(ApproveDTO approveDTO){
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        if(Objects.isNull(approveDTO)
        || Objects.isNull(approveDTO.getObjId())
                || Objects.isNull(approveDTO.getObjType())
@@ -1255,7 +1305,7 @@
                        .set(Notices::getInfo,"已拒绝")
                        .eq(Notices::getObjId,notices.getObjId())
                        .eq(Notices::getObjType,notices.getObjType())
                        .eq(Notices::getReaded,Constants.ZERO)
//                        .eq(Notices::getReaded,Constants.ZERO)
                        .ne(Notices::getId,notices.getId())
                );
            }
@@ -1289,7 +1339,9 @@
                        new MPJLambdaWrapper<Approve>()
                                .selectAll(Approve.class)
                                .selectAs(Member::getPhone,Approve::getMemberPhone)
                                .selectAs(SystemUser::getOpenid,Approve::getSystemOpenid)
                                .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                                .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId)
                                .eq(Approve::getStatus,Constants.approveStatus.wait)
                                .eq(Approve::getObjId,approve.getObjId())
                                .eq(Approve::getObjType,approve.getObjType())
@@ -1305,41 +1357,17 @@
                        .eq(Approve::getObjType,approve.getObjType())
                        .eq(Approve::getLevel,(approve.getLevel()+1))
                );
                //发送短信通知  下级审批人
                List<String> memberPhone = waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getMemberPhone())).map(i->i.getMemberPhone()).collect(Collectors.toList());
                //物流车预约
                if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
                    SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,approveDTO.getObjId(),
                            SmsConstants.platformBookContent.platformBookWaitAudit,
                            approveDTO.getCheckInfo(),memberPhone
                    );
                }
                List<String> openIdList =waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getSystemOpenid())).map(i->i.getSystemOpenid()).collect(Collectors.toList());
                else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)
                || approveDTO.getObjType().equals(Constants.approveObjectType.unCityUseCar)){
                    SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                            SmsConstants.hiddenDangerContent.hiddenDangerDealUser,
                            approveDTO.getCheckInfo(),memberPhone);
                }
                this.sendNextLvSms(approve,approveDTO,memberPhone,openIdList);
                //访客申请/报备
                if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
                    Visits visits = visitsMapper.selectById(approve.getObjId());
                    if(Objects.nonNull(visits)){
                        if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                             visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                        }
                    }
                }
                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                        Constants.approveObjectType.unCityUseCar)){
                    this.updDriver(approveDTO,approve,false);
                }
//                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
//                        Constants.approveObjectType.unCityUseCar)){
//                    this.updDriver(approveDTO,approve,false);
//                }
            }else if(approve.getApproveType().equals(Constants.ONE)){
                //会签 且终审
                //无他人审批的情况 则修改数据状态
@@ -1348,6 +1376,20 @@
                }else{
                    if(Constants.equalsInteger(approveList.size(),Constants.ZERO)&&Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){
                        /**开启下一级别的数据为待审核**/
                        List<Approve> waitAuditList = approveJoinMapper.selectJoinList(Approve.class,
                                new MPJLambdaWrapper<Approve>()
                                        .selectAll(Approve.class)
                                        .selectAs(Member::getPhone,Approve::getMemberPhone)
                                        .selectAs(SystemUser::getOpenid,Approve::getSystemOpenid)
                                        .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                                        .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId)
                                        .eq(Approve::getStatus,Constants.approveStatus.wait)
                                        .eq(Approve::getObjId,approve.getObjId())
                                        .eq(Approve::getObjType,approve.getObjType())
                                        .eq(Approve::getLevel,(approve.getLevel()+1)));
                        approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                                .lambda()
                                .set(Approve::getStatus,Constants.approveStatus.auditIng)
@@ -1358,11 +1400,19 @@
                                .eq(Approve::getObjType,approve.getObjType())
                                .eq(Approve::getLevel,(approve.getLevel()+1))
                        );
                        //发送短信通知  下级审批人
                        List<String> memberPhone = waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getMemberPhone())).map(i->i.getMemberPhone()).collect(Collectors.toList());
                        List<String> openIdList =waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getSystemOpenid())).map(i->i.getSystemOpenid()).collect(Collectors.toList());
                        this.sendNextLvSms(approve,approveDTO,memberPhone,openIdList);
                    }
                    if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                            Constants.approveObjectType.unCityUseCar)){
                        this.updDriver(approveDTO,approve,false);
                    }
//                    if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
//                            Constants.approveObjectType.unCityUseCar)){
//                        this.updDriver(approveDTO,approve,false);
//                    }
                }
            }
            this.passNextNotices(dealBusinessBean,notices,approve,approveList,approveCopyList,approveDTO);
@@ -1372,6 +1422,86 @@
            this.dealBusinessData(approveDTO,approve);
        }
    }
    public void sendNextLvSms(Approve approve ,ApproveDTO approveDTO , List<String> memberPhone ,List<String> openIdList){
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        //物流车预约
        if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
            SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,approveDTO.getObjId(),
                    SmsConstants.platformBookContent.platformBookWaitAudit,
                    approveDTO.getCheckInfo(),memberPhone
            );
            //公众号通知
            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)){
            this.updDriver(approveDTO,approve,false);
            SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                    SmsConstants.carUseBookContent.carUseBookWaitAudit,
                    approveDTO.getCheckInfo(),memberPhone);
            //发送公众号通知
            if(CollectionUtils.isNotEmpty(openIdList)){
                CarUseBook carUseBook = carUseBookMapper.selectById(approve.getObjId());
                if(Objects.nonNull(carUseBook)){
                    SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                    if(Objects.nonNull(systemUser)){
                        carUseBook.setMemberName(systemUser.getRealname());
                        //发送微信公众号通知
                        wxPlatNotice.sendCarUseBookTemplateNotice(systemDictDataBiz,
                                wxNoticeConfigMapper,carUseBook,
                                WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                                openIdList,1);
                    }
                }
            }
        }else
            //访客申请/报备
            if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                    ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                    ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
                Visits visits = visitsMapper.selectById(approve.getObjId());
                if(Objects.nonNull(visits)){
                    if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                        visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                    }
                    SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,visitsMapper,approveDTO.getObjId(),
                            approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)?
                                    SmsConstants.visitReportingContent.visitReportingNotice:SmsConstants.visitContent.visitNotice,
                            null,memberPhone
                    );
                    //公众号通知
                    if(CollectionUtils.isNotEmpty(openIdList)){
                        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(),
                                openIdList
                        );
                    }
                }
            }
    }
    /**
     * 处理待办信息
@@ -1513,6 +1643,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)){
@@ -1582,6 +1713,7 @@
                }
            }
            //访客报备
            String objCode = "";
            if(approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
                //发送短信通知
                SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
@@ -1590,6 +1722,9 @@
                                SmsConstants.visitReportingContent.visitReportingAuditFail,
                        approveDTO.getCheckInfo(),null
                );
                objCode =  Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?
                        WxPlatConstants.visitReportContent.visitReportAuditSuccess:WxPlatConstants.visitReportContent.visitReportAuditFail;
            }else{ //访客申请
                //发送短信通知
                SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
@@ -1598,22 +1733,51 @@
                                SmsConstants.visitContent.visitAuditFail,
                        approveDTO.getCheckInfo(),null
                );
                if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)){
                    SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
                                    SmsConstants.visitContent.visitAuditSuccessToVisiter,
                            approveDTO.getCheckInfo(),null
                    );
                }
                objCode =  Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitContent.visitAuditSuccess:
                        WxPlatConstants.visitContent.visitAuditFail;
            }
            visitsMapper.updateById(visits);
            //发送微信公众号
            if(StringUtils.isNotBlank(objCode)){
                if(Objects.nonNull(visits) && StringUtils.isNotBlank(visits.getOpenid())){
                    wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz,
                            wxNoticeConfigMapper,visits, objCode,
                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                            Arrays.asList(visits.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())){
                SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                //发送通知短息
                if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getMobile())){
                    SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                            Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?SmsConstants.carUseBookContent.carUseBookAuditSuccess:
                                    SmsConstants.carUseBookContent.carUseBookAuditFail,
                            approveDTO.getCheckInfo(),Arrays.asList(member.getPhone().split(","))
                            approveDTO.getCheckInfo(),Arrays.asList(systemUser.getMobile().split(","))
                    );
                }
                if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
                    carUseBook.setMemberName(systemUser.getRealname());
                    //发送微信公众号通知
                    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(),
                            Arrays.asList(systemUser.getOpenid().split(",")),0);
                }
            }
@@ -1672,7 +1836,20 @@
                    approveDTO.getCheckInfo(),null
            );
            //TODO 发送微信公众号消息
            //发送微信公众号消息
            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(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(driver.getOpenid().split(",")),0);
            }
        }else{
            throw new BusinessException(ResponseStatus.BAD_REQUEST);