jiangping
2024-07-30 eea92f23bf8ead897f346ae6ccc8603ac039e566
server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java
@@ -1,6 +1,15 @@
package com.doumee.service.impl;
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.param.BaseListPageResponse;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.AcsDeviceStatusListRequest;
import com.doumee.core.haikang.model.param.request.TempCarInRecordListRequest;
import com.doumee.core.haikang.model.param.respose.AscDeviceStatusInfoResponse;
import com.doumee.core.haikang.model.param.respose.TempCarInRecordInfoResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.VisitEventMapper;
@@ -38,28 +47,52 @@
    public   CountDataResponse countData(BaseRequest param){
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.select("count(1) as applyTotalNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status not in(5,6,8)) as applyPassNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (5)) as visitInNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (6,8)) as visitOutNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status not in(0)) as applyPassNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status not in(0,4)) as visitorNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (1,3,6)) as visitInNum");
        queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (2,5)) as visitOutNum");
        queryWrapper.select("(select count(1) from car_event where TO_DAYS(create_date)=TO_DAYS(now()) and inout_type=0 and event_type="+ HKConstants.EventTypes.PARK_PASS_IN.getKey() +") as carInNum");
        queryWrapper.select("(select count(1) from car_event where TO_DAYS(create_date)=TO_DAYS(now()) and (inout_type !=0 ) and event_type="+ HKConstants.EventTypes.PARK_PASS_OUT.getKey() +") as carOutNum");
        queryWrapper.eq(Visits::getIsdeleted, Constants.ZERO );
        queryWrapper.apply("TO_DAYS(starttime)=TO_DAYS(now())" );
        queryWrapper.last("limit 1");
        CountDataResponse vModel =visitsMapper.selectJoinOne(CountDataResponse.class,queryWrapper);
        vModel.setVisitorNum(vModel.getVisitInNum()+vModel.getVisitOutNum());//今日访客总数
//        vModel.setVisitorNum(vModel.getVisitInNum()+vModel.getVisitOutNum());//今日访客总数
        MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
        wrapper.select("count(1) as memberCarNum");
        wrapper.exists("select b.id from cars b where b.code=t.plate_nos" );
        wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
        wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now()) and inout_type=0 and event_type="+ HKConstants.EventTypes.PARK_PASS_IN.getKey() );
        wrapper.last("limit 1");
        CountDataResponse cModel =carEventMapper.selectJoinOne(CountDataResponse.class,wrapper);
        vModel.setMemberCarNum(vModel.getMemberCarNum());//今日员工车辆进场数
        vModel.setVisitCarNum(vModel.getCarInNum() - vModel.getMemberCarNum());//今日预约车辆进场数
        vModel.setMemberCarNum(Constants.formatIntegerNum(cModel.getMemberCarNum()));//今日员工车辆进场数
        vModel.setVisitCarNum(vModel.getCarInNum() - cModel.getMemberCarNum());//今日预约车辆进场数
        vModel.setCarNum(getCarInRecordCount());
        return vModel;
    }
    public int getCarInRecordCount(){
        try {
            List<TempCarInRecordInfoResponse> allDoorList = new ArrayList<>();
            Date date =DateUtil.getDateFromString(DateUtil.getShortTime(new Date()) +" 00:00:00");
            int curPage = 1;
            //分页遍历循环查询所有门禁设备数据
            TempCarInRecordListRequest param = new TempCarInRecordListRequest();
            param.setStartTime(DateUtil.getISO8601Timestamp2(date));
            param.setPageNo(curPage);
            param.setPageSize(1);
            BaseResponse<BaseListPageResponse<TempCarInRecordInfoResponse>> response = HKService.tempCarInRecords(param);
            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,海康同步数据失败~");
            }
            BaseListPageResponse r = response.getData();
            return  r.getTotal();
        }catch (Exception e){
        }
        return  0;
    }
    @Override
    public    List<CarsDataListResponse> carsDataList(BaseRequest param){
        List<CarsDataListResponse> list = new ArrayList<>();
@@ -97,6 +130,8 @@
        List<VisitDataListResponse> list = new ArrayList<>();
        MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>();
        wrapper.selectAll(VisitEvent.class) ;
        //只查询通行记录
        wrapper.eq(VisitEvent::getEventType,HKConstants.EventTypes.VISIT_SIGN_ICCM_PASS.getKey() );
        wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
        wrapper.last("limit 50");
        wrapper.orderByDesc(VisitEvent::getStartTime);
@@ -222,7 +257,7 @@
        MPJLambdaWrapper<Visits> wrapper = new MPJLambdaWrapper<>();
        wrapper.select("count(id) as num, starttime");
        wrapper.apply("TO_DAYS(starttime)+"+days+" >= TO_DAYS(now()) " );
        wrapper.in(Visits::getStatus,  5,6,7);
        wrapper.in(Visits::getStatus,  1,2,3,5,6);
        wrapper.groupBy("TO_DAYS(starttime)");
        wrapper.orderByDesc(CarEvent::getCreateDate);
        List<Visits> result =visitsMapper.selectJoinList(Visits.class,wrapper);