| | |
| | | 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; |
| | |
| | | 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(create_date)=TO_DAYS(now()) and status not in(1,4,9)) as applyPassNum"); |
| | | queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=TO_DAYS(now()) and status=8) as visitInNum"); |
| | | queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=TO_DAYS(now()) and status=6) as visitOutNum"); |
| | | 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 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=1 and event_type="+ HKConstants.EventTypes.PARK_PASS_OUT.getKey() +") as carOutNum"); |
| | | 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(create_date)=TO_DAYS(now())" ); |
| | | 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());//今日访客总数 |
| | |
| | | wrapper.last("limit 1"); |
| | | CountDataResponse cModel =carEventMapper.selectJoinOne(CountDataResponse.class,wrapper); |
| | | vModel.setMemberCarNum(vModel.getMemberCarNum());//今日员工车辆进场数 |
| | | vModel.setMemberCarNum(vModel.getCarInNum() - vModel.getMemberCarNum());//今日预约车辆进场数 |
| | | vModel.setVisitCarNum(vModel.getCarInNum() - vModel.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<>(); |
| | |
| | | model.setCreateDate(event.getCreateDate()); |
| | | model.setCompanyName(event.getCompanyName()); |
| | | model.setMemberName(event.getMemberName()); |
| | | model.setType(event.getMemberType()); |
| | | model.setType(Constants.formatIntegerNum(event.getMemberType()) !=2?1:2); |
| | | model.setVisitCompanyName(event.getVisitCompanyName()); |
| | | list.add(model); |
| | | } |
| | |
| | | MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>(); |
| | | wrapper.selectAll(VisitEvent.class) ; |
| | | wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" ); |
| | | wrapper.in(CarEvent::getEventType, Arrays.asList(new Integer[]{HKConstants.EventTypes.PARK_PASS_IN.getKey(),HKConstants.EventTypes.PARK_PASS_OUT.getKey()})); |
| | | wrapper.last("limit 50"); |
| | | wrapper.orderByDesc(VisitEvent::getCreateDate); |
| | | wrapper.orderByDesc(VisitEvent::getStartTime); |
| | | List<VisitEvent> result =visitEventMapper.selectList( wrapper); |
| | | if(result!=null){ |
| | | for(VisitEvent event :result){ |
| | |
| | | MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>(); |
| | | wrapper.select("count(id) as num, create_date"); |
| | | wrapper.apply("TO_DAYS(create_date)+"+days+" >= TO_DAYS(now()) " ); |
| | | wrapper.eq(CarEvent::getEventType, HKConstants.EventTypes.PARK_LINE_IN.getKey()); |
| | | wrapper.in(CarEvent::getEventType, HKConstants.EventTypes.PARK_PASS_IN.getKey(), HKConstants.EventTypes.PARK_PASS_OUT.getKey()); |
| | | wrapper.groupBy("TO_DAYS(create_date)"); |
| | | wrapper.orderByDesc(CarEvent::getCreateDate); |
| | | List<CarEvent> result =carEventMapper.selectJoinList(CarEvent.class,wrapper); |
| | |
| | | } |
| | | private List<VisitEvent> getVisitEventListByDays(int days) { |
| | | MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>(); |
| | | wrapper.select("count(id) as num, create_date"); |
| | | wrapper.apply("TO_DAYS(create_date)+"+days+" >= TO_DAYS(now()) " ); |
| | | wrapper.select("count(id) as num, starttime"); |
| | | wrapper.apply("TO_DAYS(starttime)+"+days+" >= TO_DAYS(now()) " ); |
| | | wrapper.eq(VisitEvent::getEventType, HKConstants.EventTypes.VISIT_SIGN_IN.getKey()); |
| | | wrapper.groupBy("TO_DAYS(create_date)"); |
| | | wrapper.groupBy("TO_DAYS(starttime)"); |
| | | wrapper.orderByDesc(CarEvent::getCreateDate); |
| | | List<VisitEvent> result =visitEventMapper.selectJoinList(VisitEvent.class,wrapper); |
| | | return result; |
| | | } |
| | | private List<Visits> getVisitListByDays(int days) { |
| | | 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.groupBy("TO_DAYS(starttime)"); |
| | | wrapper.orderByDesc(CarEvent::getCreateDate); |
| | | List<Visits> result =visitsMapper.selectJoinList(Visits.class,wrapper); |
| | | return result; |
| | | } |
| | | @Override |
| | |
| | | } |
| | | return 0; |
| | | } |
| | | private Integer getVisistNumByDate(String s, List<VisitEvent> result) { |
| | | private Integer getVisistEventNumByDate(String s, List<VisitEvent> result) { |
| | | for(VisitEvent event:result){ |
| | | if(StringUtils.equals(s,DateUtil.formatDate(event.getCreateDate(),"MM.dd"))){ |
| | | return event.getNum(); |
| | | } |
| | | } |
| | | return 0; |
| | | } |
| | | private Integer getVisistNumByDate(String s, List<Visits> result) { |
| | | for(Visits event:result){ |
| | | if(StringUtils.equals(s,DateUtil.formatDate(event.getStarttime(),"MM.dd"))){ |
| | | return event.getNum(); |
| | | } |
| | | } |
| | |
| | | times.add(DateUtil.formatDate(DateUtil.dateDayAdd(new Date(), -(days-i)+1),"MM.dd")); |
| | | numList.add(0); |
| | | } |
| | | List<VisitEvent> result = getVisitEventListByDays(days); |
| | | List<Visits> result = getVisitListByDays(days); |
| | | if(result!=null&& result.size()>0){ |
| | | for (int i = 0; i < days; i++) { |
| | | numList.set(i,getVisistNumByDate(times.get(i),result)); |