liukangdong
2024-12-11 499fe8b9c0ab0d9eaa578f25cc734136026fa175
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -27,6 +27,7 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
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;
@@ -84,6 +85,9 @@
    @Autowired
    private CarUseBookMapper carUseBookMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private CarDriverMapper carDriverMapper;
@@ -637,6 +641,11 @@
                        );
                        //公众号通知
                        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(
                                    wxNoticeConfigMapper,
                                    carUseBookMapper.selectById(businessId),
@@ -644,6 +653,8 @@
                                    token,
                                    Arrays.asList(member.getSystemOpenid().split(",")),
                                    Constants.ONE);
                                }
                            }
                        }
                    }
                }
@@ -1187,6 +1198,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())
@@ -1326,7 +1338,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())
@@ -1342,41 +1356,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)){
                //会签 且终审
                //无他人审批的情况 则修改数据状态
@@ -1385,6 +1375,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)
@@ -1395,11 +1399,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);
@@ -1409,6 +1421,78 @@
            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
            );
            //TODO 发送下级的待审批的通知
        } 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(
                                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(
                                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
                        );
                    }
                }
            }
    }
    /**
     * 处理待办信息
@@ -1660,23 +1744,24 @@
            this.updDriver(approveDTO,approve,true);
            CarUseBook carUseBook = carUseBookJoinMapper.selectById(approveDTO.getObjId());
            if(Objects.nonNull(carUseBook)){
                Member member = memberMapper.selectById(carUseBook.getMemberId());
                SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                //发送通知短息
                if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
                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(StringUtils.isNotBlank(member.getOpenid())){
                if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
                    carUseBook.setMemberName(systemUser.getRealname());
                    //发送微信公众号通知
                    wxPlatNotice.sendCarUseBookTemplateNotice(
                            wxNoticeConfigMapper,carUseBook,
                            Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?WxPlatConstants.carUseBookContent.carUseBookAuditSuccess: WxPlatConstants.carUseBookContent.carUseBookAuditFail,
                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                            Arrays.asList(member.getOpenid().split(",")),0);
                            Arrays.asList(systemUser.getOpenid().split(",")),0);
                }
            }