k94314517
2025-05-07 3927f2ad0d143a03c44114c2949a60a3bb160613
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -689,7 +689,7 @@
        if(Constants.equalsInteger(visits.getType(),Constants.ZERO)
             ||  Constants.equalsInteger(visits.getType(),Constants.ONE)){
            if(  visits.getIdcardType() == null
                    ||  StringUtils.isBlank( visits.getIdcardNo() ) || StringUtils.isBlank(visits.getFaceImg()) ){
                    || StringUtils.isBlank(visits.getFaceImg()) ){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,信息填写不正确!");
            }
        }
@@ -1814,11 +1814,7 @@
 
            //今日在园人数
            pcWorkPlatformDataVO.setTodayInParkUserNum(
                    inoutRecordMapper.selectCount(new QueryWrapper<InoutRecord>().lambda()
                            .isNotNull(InoutRecord::getMemberPhone)
                            .isNull(InoutRecord::getCarCode)
                            .apply( " DATE(TIME_INFO) = CURDATE() " ))
                    //retentionList.stream().filter(i->!Constants.equalsInteger(i.getType(),Constants.THREE)).count()
                    retentionList.stream().filter(i->!Constants.equalsInteger(i.getType(),Constants.THREE)).count()
            );
            pcWorkPlatformDataVO.setTodayInUserNum(Constants.ZERO);
@@ -1826,13 +1822,7 @@
            //在园长期相关方人数
            pcWorkPlatformDataVO.setInParkLwUserNum(
                    inoutRecordMapper.selectCount(new QueryWrapper<InoutRecord>().lambda()
                            .eq(InoutRecord::getMemberType,Constants.TWO)
                            .isNotNull(InoutRecord::getMemberPhone)
                            .isNull(InoutRecord::getCarCode)
                            .apply( " DATE(TIME_INFO) = CURDATE() " ))
//                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)
//                            && Constants.equalsInteger(i.getCompanyType(),Constants.ZERO)).count()
                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.FOUR)).count()
            );
            pcWorkPlatformDataVO.setLwUserInNum(Constants.ZERO);
            pcWorkPlatformDataVO.setLwUserOutNum(Constants.ZERO);
@@ -1840,30 +1830,18 @@
            //在园访客数量
            pcWorkPlatformDataVO.setInParkVisitUserNum(
                    inoutRecordMapper.selectCount(new QueryWrapper<InoutRecord>().lambda()
                            .eq(InoutRecord::getMemberType,Constants.ZERO)
                            .isNotNull(InoutRecord::getMemberPhone)
                            .isNull(InoutRecord::getCarCode)
                            .apply( " DATE(TIME_INFO) = CURDATE() " ))
                    //retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count()
                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count()
            );
            pcWorkPlatformDataVO.setVisitUserNum(Constants.ZERO);
            pcWorkPlatformDataVO.setSignLevelNum(Constants.ZERO);
            //在园货运车辆司机
            pcWorkPlatformDataVO.setInParkDriverUserNum(inoutRecordMapper.selectCount(new QueryWrapper<InoutRecord>().lambda()
                    .eq(InoutRecord::getMemberType,Constants.THREE)
                    .isNotNull(InoutRecord::getMemberPhone)
                    .isNull(InoutRecord::getCarCode)
                    .apply( " DATE(TIME_INFO) = CURDATE() " )));
            pcWorkPlatformDataVO.setInParkDriverUserNum(
                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.FIVE)&&Objects.isNull(i.getCompanyType())).count());
            //在园车辆
            pcWorkPlatformDataVO.setTodayInParkCarNum(
                    inoutRecordMapper.selectCount(new QueryWrapper<InoutRecord>().lambda()
                            .isNotNull(InoutRecord::getCarCode)
                            .isNull(InoutRecord::getMemberPhone)
                            .apply( " DATE(TIME_INFO) = CURDATE() " ))
                    //retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count()
                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count()
            );
            pcWorkPlatformDataVO.setTodayInCarNum(Constants.ZERO);
            pcWorkPlatformDataVO.setTodayOutCarNum(Constants.ZERO);
@@ -1889,23 +1867,35 @@
            List<InterestedListVO> lwList = new ArrayList<>();
            List<InterestedListVO> internalList = 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<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda().in(Visits::getStatus,
//                    Constants.VisitStatus.signin,Constants.VisitStatus.signout)
//                    .apply(" STARTTIME >   CURDATE() - INTERVAL 7 DAY " )
//            );
            List<InoutRecord> inoutRecordList = inoutRecordMapper.selectList(new QueryWrapper<InoutRecord>().lambda()
                    .eq(InoutRecord::getInOrOut,Constants.ZERO).eq(InoutRecord::getIsdeleted,Constants.ZERO)
                    .apply(" TIME_INFO >   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  " )
            );
//            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) {
                InterestedListVO visitVO = new InterestedListVO();
                visitVO.setName(days);
                if(CollectionUtils.isNotEmpty(visitsList)){
                if(CollectionUtils.isNotEmpty(inoutRecordList)){
                    //处理访客人员数量
                    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());
//                    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());
                    List<String> memberIds  = inoutRecordList.stream().filter(i->
                                    Objects.isNull(i.getCarCode())&&
                                    Objects.nonNull(i.getMemberPhone())&&DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM-dd").equals(days)
                            )
                            .map(i->i.getMemberPhone())
                            .collect(Collectors.toList());
                    if(CollectionUtils.isNotEmpty(memberIds)){
                        visitVO.setNum(new HashSet<String>(memberIds).size());
                    }
@@ -1917,13 +1907,19 @@
                visitVO.setName(days);
                InterestedListVO carVO = new InterestedListVO();
                carVO.setNum(Constants.ZERO);
                carVO.setName(days);
                if(CollectionUtils.isNotEmpty(carEventList)){
                if(CollectionUtils.isNotEmpty(inoutRecordList)){
                    //处理访客人员数量
                    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());
//                    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());
                    List<String> carCodeList  = inoutRecordList.stream().filter(i->
                                    Objects.isNull(i.getCarCode())&&
                                            Objects.nonNull(i.getMemberPhone())&&DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM-dd").equals(days)
                            )
                            .map(i->i.getMemberPhone())
                            .collect(Collectors.toList());
                    if(CollectionUtils.isNotEmpty(carCodeList)){
                        carVO.setNum(new HashSet<String>(carCodeList).size());
                    }
@@ -1938,11 +1934,8 @@
            pcWorkPlatformDataVO.setWeekCarList(weekCarList);
            List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
                    .eq(Company::getType,Constants.ZERO)
                    .eq(Company::getIsdeleted,Constants.ZERO)
            );
            if(CollectionUtils.isNotEmpty(companyList)){
                List<Company>  lwCompanyList  = companyList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
@@ -1950,7 +1943,8 @@
                    List<Integer> lwCompanyIds = lwCompanyList.stream().map(i->i.getId()).collect(Collectors.toList());
                    List<Retention> retentionList = retentionMapper.selectList(
                            new QueryWrapper<Retention>().lambda()
                                    .eq(Retention::getType,Constants.TWO)
                                    .eq(Retention::getIsdeleted,Constants.ZERO)
                                    .eq(Retention::getType,Constants.FOUR)
                                    .in(Retention::getCompanyId,lwCompanyIds)
                    );
                    for (Company company:lwCompanyList) {
@@ -1969,6 +1963,7 @@
                    List<Integer> internalCompanyIds = internalCompanyList.stream().map(i->i.getId()).collect(Collectors.toList());
                    List<Retention> retentionList = retentionMapper.selectList(
                            new QueryWrapper<Retention>().lambda()
                                    .eq(Retention::getIsdeleted,Constants.ZERO)
                                    .eq(Retention::getType,Constants.TWO)
                                    .in(Retention::getCompanyId,internalCompanyIds)
                    );