From 7a201eec2a4284743386cc0c2d03eefa9e7cd1d7 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 24 七月 2026 16:00:44 +0800
Subject: [PATCH] update
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitAreaServiceImpl.java | 4 ++++
ruoyi-ui/src/views/visitor-admin/record/detail.vue | 4 +++-
ruoyi-system/src/main/resources/mapper/system/SysVisitAreaMapper.xml | 10 ++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysVisitAreaMapper.java | 2 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java | 34 +++++++++++++++++++++++++++++++++-
5 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysVisitAreaMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysVisitAreaMapper.java
index bbe754a..199d57c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysVisitAreaMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysVisitAreaMapper.java
@@ -35,5 +35,7 @@
public int updateChildrenAncestors(@Param("areaId") Long areaId, @Param("oldAncestors") String oldAncestors,
@Param("newAncestors") String newAncestors);
+ public int countChildrenByParentIds(@Param("parentIds") List<Long> parentIds);
+
public int deleteByIds(@Param("areaIds") List<Long> areaIds, @Param("updateBy") String updateBy);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitAreaServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitAreaServiceImpl.java
index 810c3fa..493f77f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitAreaServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitAreaServiceImpl.java
@@ -138,6 +138,10 @@
{
getRequiredAreaId(areaId);
}
+ if (visitAreaMapper.countChildrenByParentIds(request.getAreaIds()) > 0)
+ {
+ throw new ServiceException("存在下级区域");
+ }
return visitAreaMapper.deleteByIds(request.getAreaIds(), username);
}
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 26dc617..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;
@@ -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)
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysVisitAreaMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysVisitAreaMapper.xml
index 0ff1cf3..8931ba5 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysVisitAreaMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysVisitAreaMapper.xml
@@ -147,6 +147,16 @@
and find_in_set(#{areaId}, ancestors)
</update>
+ <select id="countChildrenByParentIds" resultType="int">
+ select count(1)
+ from t_visit_area
+ where del_flag = '0'
+ and parent_id in
+ <foreach collection="parentIds" item="parentId" open="(" separator="," close=")">
+ #{parentId}
+ </foreach>
+ </select>
+
<update id="deleteByIds">
update t_visit_area
set del_flag = '1',
diff --git a/ruoyi-ui/src/views/visitor-admin/record/detail.vue b/ruoyi-ui/src/views/visitor-admin/record/detail.vue
index c1f0881..ddb220a 100644
--- a/ruoyi-ui/src/views/visitor-admin/record/detail.vue
+++ b/ruoyi-ui/src/views/visitor-admin/record/detail.vue
@@ -125,7 +125,9 @@
computed: {
// 目的:把详情访问区域拆成标签数组,适配中英文逗号和数组格式。
visitAreaTags() {
- const value = this.detail.visitAreaNames
+ const value = this.detail.visitAreaNameList && this.detail.visitAreaNameList.length
+ ? this.detail.visitAreaNameList
+ : this.detail.visitAreaNames
if (Array.isArray(value)) {
return value.map(item => String(item || '').trim()).filter(Boolean)
}
--
Gitblit v1.7.1