| | |
| | | if(delRetentionLis.size()>0){ |
| | | //先删除原有的在场人员(内部人员) |
| | | retentionMapper.delete(new UpdateWrapper<Retention>().lambda() |
| | | .eq(Retention::getType,Constants.memberType.internal) |
| | | // .eq(Retention::getType,Constants.memberType.internal) |
| | | .in(Retention::getMemberId,delRetentionLis)); |
| | | } |
| | | if(retentionList.size()>0){ |
| | |
| | | delRetentionLis.add(member.getId()); |
| | | if( Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){ |
| | | //如果是进门,录入人员的在场数据记录 |
| | | retentionList.add(getRetentionModelByRequest(member,request)); |
| | | if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ |
| | | record.setMemberType(Constants.RetentionMemberType.internalMember); |
| | | inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//内部人员入场人次 |
| | |
| | | record.setMemberType(Constants.RetentionMemberType.relMember); |
| | | inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//相关方入场人次 |
| | | } |
| | | retentionList.add(getRetentionModelByRequest(member,request,record.getMemberType())); |
| | | }else{ |
| | | if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ |
| | | record.setMemberType(Constants.RetentionMemberType.internalMember); |
| | |
| | | inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//相关方出场人次 |
| | | } |
| | | } |
| | | } |
| | | if(record.getMemberType()!=null){ |
| | | inoutRecordList.add(record); |
| | | if(record.getMemberType()!=null){ |
| | | inoutRecordList.add(record); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * @param request |
| | | * @return |
| | | */ |
| | | private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) { |
| | | private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request,int memberType) { |
| | | Retention retention = new Retention(); |
| | | retention.setIsdeleted(Constants.ZERO); |
| | | retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); |
| | |
| | | retention.setIdcardDecode(member.getIdcardDecode()); |
| | | retention.setName(member.getName()); |
| | | retention.setBirthday(member.getBirthday()); |
| | | retention.setType(member.getType()); |
| | | retention.setType(memberType); |
| | | retention.setCompanyId(member.getCompanyId()); |
| | | retention.setCompanyName(member.getCompanyName()); |
| | | retention.setEventCode(request.getData().getExtEventCode()+""); |
| | |
| | | updateVistis.setOutInfo("访客正常签离"); |
| | | } |
| | | delRetentionLis.add(visits.getMemberId()); |
| | | }else{ |
| | | //如果人员信息存在,切是访客通行,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件) |
| | | }else if(!(request.getData().getParamValues()!=null |
| | | && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos()) |
| | | && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex()))){ |
| | | //只处理访客门禁通行通行, |
| | | //如果人员信息存在,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件) |
| | | delRetentionLis.add(visits.getMemberId()); |
| | | InoutRecord record = new InoutRecord(); |
| | | record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)? |
| | |
| | | record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); |
| | | record.setTimeInfo(Utils.Date.getStart(record.getCreateDate())); |
| | | record.setType(Constants.ONE);//人员 |
| | | record.setMemberType(Constants.ZERO); |
| | | record.setMemberType(Constants.RetentionMemberType.fk); |
| | | record.setIsdeleted(Constants.ZERO); |
| | | record.setMemberName(visits.getName()); |
| | | record.setObjId(visits.getId()); |
| | |
| | | record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)? |
| | | request.getData().getParamValues().getSrcName():request.getSrcName()); |
| | | //如果是访客通行 |
| | | if(request.getData()!=null&&request.getData().getParamValues()!=null && |
| | | StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ |
| | | //如果是访客登记,录入人员的在场数据记录 |
| | | if(request.getData()!=null |
| | | &&request.getData().getParamValues()!=null |
| | | &&StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ |
| | | //如果是访客进入,录入人员的在场数据记录 |
| | | Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()); |
| | | r.setCarNo(request.getData().getParamValues().getPlateNos()); |
| | | r.setAccessType(request.getData().getParamValues().getAccessType()); |
| | |
| | | r.setDeviceIndex(request.getData().getParamValues().getSrcIndex()); |
| | | retentionList.add(r); |
| | | inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1); |
| | | record.setInOrOut(Constants.ZERO);//进入园区 |
| | | } |
| | | if(request.getData()!=null&&request.getData().getParamValues()!=null && |
| | | !StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ |
| | | inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1); |
| | | record.setInOrOut(Constants.ONE); |
| | | record.setInOrOut(Constants.ONE);//离园 |
| | | } |
| | | if(StringUtils.isNotBlank(record.getCarCode()) |
| | | &&request.getData().getParamValues()!=null |
| | | && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())){ |
| | | if( request.getData().getParamValues()!=null |
| | | && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos()) |
| | | && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())) { |
| | | //如果是停车场事件,记录车辆类型 |
| | | Category category = null; |
| | | if(StringUtils.isNotBlank(record.getCarCode())){ |
| | | record.setCarCode(request.getData().getParamValues().getPlateNos()); |
| | | if (StringUtils.isNotBlank(record.getCarCode())) { |
| | | category = categoryMapper.selectJoinOne(Category.class, new MPJLambdaWrapper<Category>() |
| | | .selectAll(Category.class) |
| | | .select("t4.name",Category::getParentName) |
| | | .select("t4.name", Category::getParentName) |
| | | .leftJoin("category t4 on t.parent_id=t4.id") |
| | | .eq(Category::getIsdeleted,Constants.ZERO) |
| | | .eq(Category::getBizType,Constants.RetentionCarType.fkCar) |
| | | .eq(Category::getIsdeleted, Constants.ZERO) |
| | | .eq(Category::getBizType, Constants.RetentionCarType.fkCar) |
| | | .last("limit 1")); |
| | | if(category ==null){ |
| | | if (category == null) { |
| | | category = new Category(); |
| | | category.setName("访客车辆"); |
| | | } |
| | | category.setParentName(StringUtils.defaultString(category.getParentName(),"访客车辆")); |
| | | category.setParentName(StringUtils.defaultString(category.getParentName(), "访客车辆")); |
| | | } |
| | | record.setCarBizType(Constants.RetentionCarType.fkCar); |
| | | record.setCategoryId(category.getId()); |
| | | record.setCarCode(request.getData().getVisitorInformationList().get(0).getPlateNo()); |
| | | record.setDeviceName(request.getData().getParamValues().getGateName()); |
| | | record.setCategoryName(category.getName()); |
| | | record.setCategoryParentId(category.getParentId()); |
| | | record.setCategoryParentName(category.getParentName()); |
| | | if(Constants.equalsInteger(record.getInOrOut(),Constants.ONE)){ |
| | | if (Constants.equalsInteger(record.getInOrOut(), Constants.ONE)) { |
| | | record.setRemark("访客跟随车辆离园并自动签离"); |
| | | try { |
| | | //访客申请自动签离 |
| | | visitsService.visitLevelForCarOut(visits); |
| | | }catch (Exception e){ |
| | | log.error("访客跟随车辆出园自动签离失败:==========="+e.getMessage()); |
| | | } catch (Exception e) { |
| | | log.error("访客跟随车辆出园自动签离失败:===========" + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | inoutRecordList.add(record); |
| | | inoutRecordList.add(record);//进出记录 |
| | | } |
| | | updateVistis.setEditDate(new Date()); |
| | | //更新访客来访或者签离时间信息 |
| | |
| | | String result = null; |
| | | log.info("【海康停车场事件推送】========开始=========:\n"+JSONObject.toJSONString(param)); |
| | | try { |
| | | if(param == null || param.getParams() == null || param.getParams().getEvents()==null){ |
| | | if(param == null |
| | | || param.getParams() == null |
| | | || param.getParams().getEvents()==null){ |
| | | return null; |
| | | } |
| | | //门禁事件集合 |
| | |
| | | List<CarEvent> list = new ArrayList<>(); |
| | | List<Retention> retentionList = new ArrayList<>(); |
| | | List<String> delRetentionList = new ArrayList<>(); |
| | | List<Integer> delMemberRetentionList = new ArrayList<>(); |
| | | List<Retention> delMemberRetentionList = new ArrayList<>(); |
| | | InoutDayCount inoutDayCount = new InoutDayCount(); |
| | | List<InoutRecord> inoutRecordList = new ArrayList<>(); |
| | | for(EventParkInfoRequest request : events){ |
| | |
| | | carEventMapper.insert(list); |
| | | } |
| | | if(delRetentionList.size()>0){ |
| | | //先删除原有的在场人员(内部人员) |
| | | //先删除原有的在场车辆人员(内部人员) |
| | | retentionMapper.delete(new UpdateWrapper<Retention>().lambda() |
| | | .eq(Retention::getType,Constants.THREE) |
| | | .in(Retention::getCarNo,delRetentionList)); |
| | | } |
| | | if(delMemberRetentionList.size()>0){ |
| | | //先删除原有的在场人员(内部人员、相关方和访客) |
| | | retentionMapper.delete(new UpdateWrapper<Retention>().lambda() |
| | | .in(Retention::getType,Constants.RetentionMemberType.internalMember |
| | | ,Constants.RetentionMemberType.relMember |
| | | ,Constants.RetentionMemberType.fk) |
| | | .in(Retention::getMemberId,delMemberRetentionList)); |
| | | List<Integer> memberList = new ArrayList<>(); |
| | | for(Retention m :delMemberRetentionList){ |
| | | if(m.getMemberId()!=null){ |
| | | //跟随车辆入场的member存在的数据立场 |
| | | retentionMapper.delete(new UpdateWrapper<Retention>().lambda() |
| | | .in(Retention::getType,Constants.RetentionMemberType.internalMember |
| | | ,Constants.RetentionMemberType.relMember |
| | | ,Constants.RetentionMemberType.fk |
| | | ,Constants.RetentionMemberType.driver) |
| | | .eq(Retention::getMemberId,m.getMemberId())); |
| | | }else if(m.getCarNo()!=null){ |
| | | //跟随车辆入场的用户信息 |
| | | retentionMapper.delete(new UpdateWrapper<Retention>().lambda() |
| | | .in(Retention::getType,Constants.RetentionMemberType.internalMember |
| | | ,Constants.RetentionMemberType.relMember |
| | | ,Constants.RetentionMemberType.fk |
| | | ,Constants.RetentionMemberType.driver) |
| | | .eq(Retention::getCarNo,m.getCarNo())); |
| | | } |
| | | } |
| | | |
| | | } |
| | | if(retentionList.size()>0){ |
| | | //再插入最新的在厂人员 |
| | |
| | | private CarEvent getParkEventModelByRequest(EventParkInfoRequest request |
| | | , List<String> delRetentionList |
| | | , List<Retention> retentionList |
| | | , List<Integer> delMemberRetentionList |
| | | , List<Retention> delMemberRetentionList |
| | | , InoutDayCount inoutDayCount |
| | | , List<InoutRecord> inoutRecordList) { |
| | | CarEvent event =initCarEventModelByRequest(request); |
| | |
| | | carrecord.setCategoryParentId(category.getParentId()); |
| | | } |
| | | } |
| | | //处理自有车自动签到业务 |
| | | dealSelTruckAutoSignBiz(request,event); |
| | | if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){ |
| | | //处理自有车自动签到业务 |
| | | dealSelTruckAutoSignBiz(request,event); |
| | | //如果是入厂放行 |
| | | delRetentionList.add(event.getPlateNos()); |
| | | delMemberRetentionList.add(event.getMemberId()); |
| | | Retention dm = new Retention(); |
| | | dm.setMemberId(event.getMemberId()); |
| | | dm.setPhone(carrecord.getMemberPhone()); |
| | | dm.setCarNo(event.getPlateNos()); |
| | | delMemberRetentionList.add(dm); |
| | | retentionList.add(getRetentionModelByParkRequest(request,event,carrecord));//在厂车辆信息 |
| | | inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1); |
| | | carrecord.setInOrOut(Constants.ZERO); |
| | | }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){ |
| | | //如果是出场放行 |
| | | delRetentionList.add(event.getPlateNos()); |
| | | delMemberRetentionList.add(event.getMemberId()); |
| | | Retention dm = new Retention(); |
| | | dm.setMemberId(event.getMemberId()); |
| | | dm.setPhone(carrecord.getMemberPhone()); |
| | | dm.setCarNo(event.getPlateNos()); |
| | | delMemberRetentionList.add(dm); |
| | | inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1); |
| | | carrecord.setInOrOut(Constants.ONE); |
| | | } |
| | |
| | | event.setCarType(Constants.RetentionCarType.fkCar); |
| | | int index =0; |
| | | carrecord.setCarBizType(Constants.RetentionCarType.fkCar); |
| | | if(1==2){ |
| | | Category category =findCategoryByBizType(Constants.RetentionCarType.fkCar,"访客车辆","访客车辆",categoryList); |
| | | carrecord.setCategoryId(category.getId()); |
| | | carrecord.setCategoryName(StringUtils.defaultString(category.getName(),"访客车辆")); |
| | | carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"访客车辆")); |
| | | carrecord.setCategoryParentId(category.getParentId()); |
| | | for(Visits v :visitsList){ |
| | | delMemberRetentionList.add(event.getMemberId()); |
| | | Category category =findCategoryByBizType(Constants.RetentionCarType.fkCar,"访客车辆","访客车辆",categoryList); |
| | | carrecord.setCategoryId(category.getId()); |
| | | carrecord.setCategoryName(StringUtils.defaultString(category.getName(),"访客车辆")); |
| | | carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"访客车辆")); |
| | | carrecord.setCategoryParentId(category.getParentId()); |
| | | for(Visits v :visitsList){ |
| | | // if(v.getEndtime()!=null && v.getEndtime().getTime() < System.currentTimeMillis()){ |
| | | Retention dm = new Retention(); |
| | | dm.setMemberId(event.getMemberId()); |
| | | dm.setPhone(carrecord.getMemberPhone()); |
| | | dm.setCarNo(event.getPlateNos()); |
| | | delMemberRetentionList.add(dm); |
| | | // delMemberRetentionList.add(event.getMemberId()); |
| | | InoutRecord copyObj = new InoutRecord(); |
| | | BeanUtils.copyProperties(carrecord,copyObj); |
| | | copyObj.setMemberId(v.getMemberId()); |
| | |
| | | inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1); |
| | | } |
| | | } |
| | | } |
| | | // } |
| | | } |
| | | } |
| | | if(isCarInOrOutEvent(request) && event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){ |
| | |
| | | Category category = new Category(); |
| | | category.setName(tempname); |
| | | category.setParentName(pName); |
| | | return null; |
| | | return category; |
| | | } |
| | | |
| | | private void dealSelTruckAutoSignBiz(EventParkInfoRequest request, CarEvent event) { |
| | |
| | | .in(PlatformJob::getStatus, |
| | | Constants.PlatformJobStatus.IN_WAIT.getKey(), |
| | | Constants.PlatformJobStatus.CALLED.getKey(), |
| | | Constants.PlatformJobStatus.WAIT_CALL.getKey(), |
| | | Constants.PlatformJobStatus.WORKING.getKey(), |
| | | Constants.PlatformJobStatus.TRANSFERING.getKey(), |
| | | Constants.PlatformJobStatus.OVER_NUMBER.getKey(), |
| | | Constants.PlatformJobStatus.EXCEPTION.getKey() |
| | | ) |
| | | )==Constants.ZERO){//如果没进行中任务 |
| | |
| | | retention.setMemberId(inoutRecord.getMemberId()); |
| | | retention.setDeviceName(request.getSrcName()); |
| | | retention.setDeviceIndex(request.getSrcIndex()); |
| | | retention.setRemark("跟随车辆入园区"); |
| | | retention.setCarNo(inoutRecord.getCarCode()); |
| | | retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName()); |
| | | retention.setRemark("跟随车辆【"+inoutRecord.getCarCode()+"】入园区"); |
| | | return retention; |
| | | } |
| | | private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event ,InoutRecord carrecord ) { |
| | |
| | | retention.setCategoryName(carrecord.getCategoryName()); |
| | | retention.setCategoryParentId(carrecord.getCategoryParentId()); |
| | | retention.setCategoryParentName(carrecord.getCategoryParentName()); |
| | | retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName()); |
| | | // retention.setDeviceName(request.getSrcName()); |
| | | // retention.setDeviceIndex(request.getSrcIndex()); |
| | | |