From 3ee306e4a8db75680960f5eb4eec9fb7d05b5f29 Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期五, 24 七月 2026 16:21:54 +0800
Subject: [PATCH] Merge branch 'master' into electron_dev

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java
index 98fe869..3d3f1fc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java
+++ b/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;
+    }
 }

--
Gitblit v1.7.1