liujie
2026-09-11 4d15e6b553c448e2e07527e9c06aa4b5f9b099cf
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/SysApiVisitorRecordController.java
@@ -129,8 +129,8 @@
        List<AreasList> areasList = null;
        //查询地区
        if (StringUtils.isNotEmpty(record.getVisitAreaIds())) {
            String[] visitAreaIds = record.getVisitAreaIds().split(",");
        if (StringUtils.isNotEmpty(request.getVisitAreaIds())) {
            String[] visitAreaIds = request.getVisitAreaIds().split(",");
            String visitArea = Arrays.stream(visitAreaIds)
                    .map(id -> {
                        SysVisitArea area = sysVisitAreaMapper.selectById(Long.parseLong(id.trim()));
@@ -149,7 +149,7 @@
                    .map(id -> {
                        SysVisitArea area = sysVisitAreaMapper.selectById(Long.parseLong(id));
                        if (area == null) {
                            return null;
                            throw new ServiceException("访问区域不存在,请联系工作人员");
                        }
                        AreasList areas = new AreasList();
                        areas.setAreaCode(area.getAreaCode());
@@ -169,9 +169,10 @@
                record.setRemark("来访中,允许访问区域:" + visitArea);
            }
        }
// 如果 visitAreaIds 为空,但 visitAreaNames 不为空,根据名称查询填充 visitAreaIds
        else if (StringUtils.isNotEmpty(record.getVisitAreaNames())) {
            String[] visitAreaNames = record.getVisitAreaNames().split(",");
        // 如果 visitAreaIds 为空,但 visitAreaNames 不为空,根据名称查询填充 visitAreaIds
        else if (StringUtils.isNotEmpty(request.getVisitAreaNames())) {
            String[] visitAreaNames = request.getVisitAreaNames().split(",");
            // 根据区域名称查询对应的ID,构建ID字符串
            String visitAreaIdsStr = Arrays.stream(visitAreaNames)
@@ -244,8 +245,10 @@
            if (syncResult.isSuccess()) {
                logger.info("访客登记数据已同步到对端,远程ID:{}", syncResult.get("data"));
                // 可将远程ID保存到本地记录
//                record.setRemoteId(syncResult.getRemoteId());
                Object middlePlatformId = syncResult.get("data");
                if (middlePlatformId != null && StringUtils.isNotBlank(String.valueOf(middlePlatformId))) {
                    record.setMiddlePlatformId(String.valueOf(middlePlatformId));
                }
                UpdateWrapper<SysVisitorRecord> wrapper = new UpdateWrapper<>();
                wrapper.eq("record_id", record.getRecordId());  // 指定ID条件
                visitorRecordMapper.update(record, wrapper);
@@ -258,7 +261,7 @@
            }
        } catch (Exception e) {
            logger.error("访客登记同步异常", e);
            throw new ServiceException("服务器登记失败");
//            throw new ServiceException("服务器登记失败");
        }
        int rows = visitorRecordMapper.insert(record);
@@ -271,7 +274,6 @@
        return AjaxResult.error("登记失败");
    }
    @PostMapping("/idCardSingOut")
    @ApiOperation(value = "访客身份证签离", notes = "访客身份证签离")
@@ -312,18 +314,21 @@
        } else {
            record.setStatus("SIGNED_OUT");
        }
        record.setSignVerifyMethod("MANUAL");
        SysVisitorRecord visitorRecord = new SysVisitorRecord();
        BeanUtils.copyBeanProp(visitorRecord, request);
        visitorRecord.setSignVerifyMethod(record.getSignVerifyMethod());
        visitorRecord.setSignVerifyMethod(request.getSignVerifyMethod());
        visitorRecord.setStatus(record.getStatus());
        visitorRecord.setRecordId(record.getRecordId());
        visitorRecord.setSignTime(new Date());
        Date signOutTime = new Date();
        visitorRecord.setSignTime(signOutTime);
        record.setSignTime(signOutTime);
        UpdateWrapper<SysVisitorRecord> wrapperUpdate = new UpdateWrapper<>();
        wrapperUpdate.eq("record_id", visitorRecord.getRecordId());  // 指定ID条件
        sysVisitorRecordService.revokeAccess(record);
        visitorRecordMapper.update(visitorRecord, wrapperUpdate);
        sysVisitorRecordService.syncMiddlePlatformStatus(record);
        return success();
    }