jiangping
2024-12-11 eb49564ab17c6695d8928d5a63a57c58b3cfd79c
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -1,20 +1,18 @@
package com.doumee.service.business.impl.thrid;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
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.cars.response.CarsDeviceDetaisResponse;
import com.doumee.core.haikang.model.param.BaseListPageRequest;
import com.doumee.core.haikang.model.param.BaseListPageResponse;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.BaseListPageRequest;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKCarOpenService;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
@@ -26,9 +24,7 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.web.reqeust.CarsJobAndContractDTO;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
import com.doumee.dao.web.response.platformReport.*;
import com.doumee.service.business.impl.PlatformJobServiceImpl;
import com.doumee.service.business.impl.VisitsServiceImpl;
@@ -36,15 +32,12 @@
import com.doumee.service.business.third.WmsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
@@ -409,6 +402,11 @@
        file.setFieldName("event_type");
        file.setFieldValue("131588");//安防告警
        file.setType("in");
        if(type == 1){
        }else  if(type ==2){
        }
        request.getFiledOptions().add(file);
        SortRequest sort = new SortRequest();
        sort.setSortField("happen_time");
@@ -1327,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());
@@ -1351,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);//获取车位数据
@@ -1374,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()