6f75f9dd08088b3d2a6ff341fff32f28009a6967..c4c647e3521d61cc21ccc2e8d920856f36bf7a1a
2026-07-24 liujie
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/fangkeji
c4c647 对比 | 目录
2026-07-24 liujie
update
7a201e 对比 | 目录
5个文件已修改
54 ■■■■■ 已修改文件
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysVisitAreaMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitAreaServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVisitorRecordServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysVisitAreaMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/visitor-admin/record/detail.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
}
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);
    }
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)
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',
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)
      }