zjk
2026-07-24 3ee306e4a8db75680960f5eb4eec9fb7d05b5f29
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java
@@ -7,6 +7,8 @@
import com.ruoyi.system.dto.SysVisitorRecordDeleteRequest;
import com.ruoyi.system.dto.SysVisitorRecordDetailRequest;
import com.ruoyi.system.dto.SysVisitorRecordPageRequest;
import com.ruoyi.system.domain.SysVisitArea;
import com.ruoyi.system.mapper.SysVisitAreaMapper;
import com.ruoyi.system.mapper.SysVisitorRecordMapper;
import com.ruoyi.system.service.ISysVisitorRecordService;
import com.ruoyi.system.vo.SysVisitorRecordDetailVO;
@@ -34,24 +36,25 @@
    @Autowired
    private SysVisitorRecordMapper visitorRecordMapper;
    @Autowired
    private SysVisitAreaMapper visitAreaMapper;
    @Override
    public PageInfo<SysVisitorRecordVO> pageList(SysVisitorRecordPageRequest request)
    {
        refreshVisitorStatus();
        SysVisitorRecordPageRequest query = request == null ? new SysVisitorRecordPageRequest() : request;
        query.setIntervieweeName(StringUtils.trim(query.getIntervieweeName()));
        query.setIntervieweeKeyword(StringUtils.trim(query.getIntervieweeKeyword()));
        query.setIntervieweeDept(StringUtils.trim(query.getIntervieweeDept()));
        query.setVisitAreaKeyword(StringUtils.trim(query.getVisitAreaKeyword()));
        query.setStatus(StringUtils.trim(query.getStatus()));
        query.setVisitorName(StringUtils.trim(query.getVisitorName()));
        query.setVisitorKeyword(StringUtils.trim(query.getVisitorKeyword()));
        query.setVisitReason(StringUtils.trim(query.getVisitReason()));
        query.setRegisterType(StringUtils.trim(query.getRegisterType()));
        SysVisitorRecordPageRequest query = normalizeQuery(request);
        PageInfo<SysVisitorRecordVO> pageInfo = new PageInfo<SysVisitorRecordVO>(query.getPageNum(), query.getPageSize());
        List<SysVisitorRecordVO> list = visitorRecordMapper.pageList(query, pageInfo);
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public List<SysVisitorRecordVO> list(SysVisitorRecordPageRequest request)
    {
        refreshVisitorStatus();
        return visitorRecordMapper.list(normalizeQuery(request));
    }
    @Override
@@ -96,15 +99,42 @@
    private void fillDetailDisplayFields(SysVisitorRecordDetailVO detail)
    {
        List<String> visitAreaNames = resolveVisitAreaNames(detail);
        detail.setIdCardMask(maskIdCard(detail.getIdCard()));
        detail.setRegisterTypeName(registerTypeName(detail.getRegisterType()));
        detail.setStatusName(statusName(detail.getStatus()));
        detail.setReceiverVerifyMethodName(verifyMethodName(detail.getReceiverVerifyMethod()));
        detail.setSignVerifyMethodName(verifyMethodName(detail.getSignVerifyMethod()));
        detail.setVisitAreaNameList(splitNames(detail.getVisitAreaNames()));
        detail.setVisitAreaNameList(visitAreaNames);
        detail.setVisitAreaNames(String.join(",", visitAreaNames));
        detail.setValidTimeText(validTimeText(detail.getValidStartTime(), detail.getValidEndTime()));
        detail.setRegisterCollectTime(detail.getRegisterTime());
        detail.setSignCollectTime(detail.getSignTime());
    }
    private List<String> resolveVisitAreaNames(SysVisitorRecordDetailVO detail)
    {
        List<String> names = splitNames(detail.getVisitAreaNames());
        if (!names.isEmpty() || StringUtils.isBlank(detail.getVisitAreaIds()))
        {
            return names;
        }
        for (String areaIdText : detail.getVisitAreaIds().split(","))
        {
            try
            {
                SysVisitArea area = visitAreaMapper.selectById(Long.valueOf(StringUtils.trim(areaIdText)));
                if (area != null && StringUtils.isNotBlank(area.getAreaName()))
                {
                    names.add(area.getAreaName());
                }
            }
            catch (NumberFormatException ignored)
            {
                continue;
            }
        }
        return names;
    }
    private String maskIdCard(String idCard)
@@ -259,4 +289,19 @@
        }
        return recordId;
    }
    private SysVisitorRecordPageRequest normalizeQuery(SysVisitorRecordPageRequest request)
    {
        SysVisitorRecordPageRequest query = request == null ? new SysVisitorRecordPageRequest() : request;
        query.setIntervieweeName(StringUtils.trim(query.getIntervieweeName()));
        query.setIntervieweeKeyword(StringUtils.trim(query.getIntervieweeKeyword()));
        query.setIntervieweeDept(StringUtils.trim(query.getIntervieweeDept()));
        query.setVisitAreaKeyword(StringUtils.trim(query.getVisitAreaKeyword()));
        query.setStatus(StringUtils.trim(query.getStatus()));
        query.setVisitorName(StringUtils.trim(query.getVisitorName()));
        query.setVisitorKeyword(StringUtils.trim(query.getVisitorKeyword()));
        query.setVisitReason(StringUtils.trim(query.getVisitReason()));
        query.setRegisterType(StringUtils.trim(query.getRegisterType()));
        return query;
    }
}