| | |
| | | |
| | | // 1. 参数校验 |
| | | if (!StringUtils.hasText(request.getIdCard())) { |
| | | log.warn("身份证号为空,已跳过,设备编号: {}", request.getDeviceNo()); |
| | | log.warn("身份证号为空,已跳过,访问人姓名: {}", request.getVisitorName()); |
| | | errorCount++; |
| | | continue; |
| | | } |
| | |
| | | String uniqueKey = generateUniqueKey(request); |
| | | String redisKey = "offline:signin:" + uniqueKey; |
| | | if (Boolean.TRUE.equals(redisTemplate.hasKey(redisKey))) { |
| | | log.warn("签到数据重复,已跳过, 设备编号: {}, 身份证号: {}, 登记时间: {}", |
| | | request.getDeviceNo(), request.getIdCard(), request.getRegisterTime()); |
| | | log.warn("签到数据重复,已跳过, 身份证号: {}, 登记时间: {}", |
| | | request.getIdCard(), request.getRegisterTime()); |
| | | skipCount++; |
| | | continue; |
| | | } |
| | |
| | | BeanUtils.copyProperties(request, record); |
| | | record.setRegisterTime(registerTime); |
| | | record.setRegisterSource("访客机"); |
| | | record.setRegisterType("ONSITE"); |
| | | // record.setRegisterType("ONSITE"); |
| | | record.setCreateTime(new Date()); |
| | | record.setDelFlag("0"); |
| | | record.setRegisterNo(generateRegisterNo()); |
| | |
| | | // 4. 如果有未关联的签离数据,直接关联 |
| | | if (signoutTemp != null) { |
| | | // 设置签离信息 |
| | | |
| | | |
| | | |
| | | record.setSignTime(signoutTemp.getSignTime()); |
| | | record.setSignReceiverName(signoutTemp.getSignReceiverName()); |
| | |
| | | */ |
| | | private String generateUniqueKey(ApiVisitorRecordSinginRequest request) { |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append(request.getDeviceNo()).append(":"); |
| | | // sb.append(request.getDeviceNo()).append(":"); |
| | | sb.append(request.getIdCard()).append(":"); |
| | | sb.append(request.getRegisterTime() != null ? |
| | | request.getRegisterTime().getTime() : System.currentTimeMillis()); |