| | |
| | | //海康人员编码 |
| | | String userNo = request.getData().getExtEventPersonNo(); |
| | | if(StringUtils.isNotBlank(userNo)){ |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,userNo).last("limit 1")); |
| | | if(member !=null){ |
| | | Member member = memberMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() |
| | | .selectAll(Member.class) |
| | | .selectAs(Member::getCompanyType,Company::getType) |
| | | .leftJoin(Company.class,Company::getId,Member::getCompanyId) |
| | | .eq(Member::getHkId,userNo) |
| | | .last("limit 1")); |
| | | //如果人员信息存在,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件) |
| | | Device d = deviceMapper.selectOne(new QueryWrapper<Device>().lambda() |
| | | .eq(Device::getDoorId,request.getSrcIndex()) |
| | | .eq(Device::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1" )); |
| | | if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){ |
| | | //如果是进门,录入人员的在场数据记录 |
| | | inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);//入场人次 |
| | | }else{ |
| | | inoutDayCount.setOutMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutMemberNum())+1);//离场人次 |
| | | } |
| | | if(member !=null){ |
| | | delRetentionLis.add(member.getId()); |
| | | if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){ |
| | | //如果是进门,录入人员的在场数据记录 |
| | | retentionList.add(getRetentionModelByRequest(member,request)); |
| | | inoutDayCount.setInMemberNum(1);//入场人次 |
| | | if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ |
| | | inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//内部人员入场人次 |
| | | }else{ |
| | | inoutDayCount.setOutMemberNum(1);//离场人次 |
| | | inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//相关方入场人次 |
| | | } |
| | | }else{ |
| | | if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ |
| | | inoutDayCount.setOutSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutSelfMemberNum())+1);//内部人员出场人次 |
| | | }else{ |
| | | inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//相关方出场人次 |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | List<CarEvent> list = new ArrayList<>(); |
| | | List<Retention> retentionList = new ArrayList<>(); |
| | | List<String> delRetentionList = new ArrayList<>(); |
| | | InoutDayCount inoutDayCount = new InoutDayCount(); |
| | | for(EventParkInfoRequest request : events){ |
| | | if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){ |
| | | continue; |
| | | } |
| | | //封装事件信息表对象 |
| | | list.add(getParkEventModelByRequest(request,delRetentionList,retentionList)); |
| | | list.add(getParkEventModelByRequest(request,delRetentionList,retentionList,inoutDayCount)); |
| | | } |
| | | if(list.size()>0){ |
| | | //插入门禁记录 |
| | |
| | | //再插入最新的在厂人员 |
| | | retentionMapper.insert(retentionList); |
| | | } |
| | | dealInoutDayCountBiz(inoutDayCount); |
| | | log.info("【海康停车场事件推送】========成功======="); |
| | | }catch (Exception e){ |
| | | |
| | |
| | | * @param request |
| | | * @return |
| | | */ |
| | | private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList ) { |
| | | private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList,InoutDayCount inoutDayCount ) { |
| | | CarEvent event = new CarEvent(); |
| | | event.setIsdeleted(Constants.ZERO); |
| | | event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); |