jiangping
2024-10-22 168c5450e3493852059da54d698d08c2269b91fc
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -131,6 +131,8 @@
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private InoutDayCountMapper inoutDayCountMapper;
    @Autowired
    private CarEventMapper carEventMapper;
    @Autowired
    private SmsConfigMapper smsConfigMapper;
@@ -1596,23 +1598,48 @@
            List<InterestedListVO> weekVisitList = new ArrayList<>();
            List<InterestedListVO> weekCarList = new ArrayList<>();
            List<InterestedListVO> lwList = new ArrayList<>();
            //查询七天前的访客记录数量
            List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda().in(Visits::getStatus,
                    Constants.VisitStatus.signin,Constants.VisitStatus.signout)
                    .apply(" STARTTIME >   CURDATE() - INTERVAL 7 DAY " )
            );
            List<CarEvent> carEventList = carEventMapper.selectList(new QueryWrapper<CarEvent>().lambda()
                    .in(CarEvent::getEventType,"771760131","771760130")
                    .apply(" STR_TO_DATE(happen_time, '%Y-%m-%dT%H:%i:%s') > CURDATE() - INTERVAL 7 DAY  " )
            );
            for (String days:weekDays) {
                InoutDayCount inoutDayCount = inoutDayCountMapper.selectOne(new QueryWrapper<InoutDayCount>()
                        .lambda()
                        .apply(" DATE(TIME_INFO) = '"+days+"' ")
                        .last("  limit 1  ")
                );
                InterestedListVO visitVO = new InterestedListVO();
                visitVO.setName(days);
                if(CollectionUtils.isNotEmpty(visitsList)){
                    //处理访客人员数量
                    List<Visits> daysList = visitsList.stream().filter(i->Objects.nonNull(i.getStarttime())&&DateUtil.dateToString(i.getStarttime(),"yyyy-MM-dd").equals(days)).collect(Collectors.toList());
                    List<String> memberIds = daysList.stream().map(i->i.getMemberId().toString()).collect(Collectors.toList());
                    if(CollectionUtils.isNotEmpty(memberIds)){
                        visitVO.setNum(new HashSet<String>(memberIds).size());
                    }
                }
                if(Objects.isNull(visitVO.getNum())){
                    visitVO.setNum(Constants.ZERO);
                }
                visitVO.setName(days);
                InterestedListVO carVO = new InterestedListVO();
                carVO.setName(days);
                if(Objects.isNull(inoutDayCount)){
                if(CollectionUtils.isNotEmpty(carEventList)){
                    //处理访客人员数量
                    List<CarEvent> daysList = carEventList.stream().filter(i->StringUtils.isNotBlank(i.getHappenTime()) && i.getHappenTime().substring(0,10).equals(days)).collect(Collectors.toList());
                    List<String> carCodeList = daysList.stream().map(i->i.getPlateNos()).collect(Collectors.toList());
                    if(CollectionUtils.isNotEmpty(carCodeList)){
                        carVO.setNum(new HashSet<String>(carCodeList).size());
                    }
                }
                if(Objects.isNull(carVO.getNum())){
                    visitVO.setNum(Constants.ZERO);
                    carVO.setNum(Constants.ZERO);
                }else{
                    visitVO.setNum(inoutDayCount.getInVisitorNum());
                    carVO.setNum(inoutDayCount.getInCarNum());
                }
                weekVisitList.add(visitVO);
                weekCarList.add(carVO);
@@ -1667,7 +1694,6 @@
            queryWrapper.selectAll(Visits.class);
            queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName);
            queryWrapper.select("TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) AS timeOut");
            queryWrapper.selectAs(Member::getType,Visits::getMemberType);
            queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment);
            queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
            queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);