wenminjie
2026-07-24 1679e681200f426ffa10309652c0e8dc988f1ee2
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;
@@ -33,6 +35,9 @@
{
    @Autowired
    private SysVisitorRecordMapper visitorRecordMapper;
    @Autowired
    private SysVisitAreaMapper visitAreaMapper;
    @Override
    public PageInfo<SysVisitorRecordVO> pageList(SysVisitorRecordPageRequest request)
@@ -94,17 +99,44 @@
    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)
    {
        if (StringUtils.isBlank(idCard) || idCard.length() <= 10)