From 421bc821eb22333ac56b70a17d08d459ab9aa7cc Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Fri, 11 Jul 2025 19:27:20 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sis):=20-=20E8=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/sis/domain/SisAccessControl.java | 5 +++ .../impl/SisAccessControlServiceImpl.java | 33 ++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java index f36747a..3445a59 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java @@ -93,4 +93,9 @@ public class SisAccessControl extends TenantEntity { */ private String outCode; + /** + * 外部门编码 + */ + private String outDoorCode; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java index 302158e..cbde927 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java @@ -23,12 +23,14 @@ import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.domain.vo.SisDeviceManageVo; import org.dromara.sis.mapper.SisAccessControlMapper; import org.dromara.sis.sdk.e8.DoorDeviceService; +import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes; import org.dromara.sis.service.ISisAccessControlService; import org.dromara.sis.service.ISisDeviceBindRefService; import org.dromara.sis.service.ISisDeviceManageService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -203,7 +205,36 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { * @return Boolean */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean syncE8() { - return true; + List authDoorDeviceFindRes = doorDeviceService.getPageAuthDoorDeviceList(); + + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(true, SisAccessControl::getControlType, 2); + List sisAccessControlVos = baseMapper.selectVoList(lqw); + + // 过滤掉authDoorDeviceFindRes中与sisAccessControlVos具有相同 deviceId 和 outCode 的项 + List filter = authDoorDeviceFindRes.stream() + .filter(res -> sisAccessControlVos.stream() + .noneMatch(vo -> vo.getOutCode().equals(res.getDeviceId().toString()))) + .toList(); + + Collection sisACBos = new ArrayList<>(); + for (AuthDoorDeviceFindRes res : filter){ + SisAccessControl ac = new SisAccessControl(); + ac.setFactoryCode(res.getDeviceNo()); + ac.setAccessCode(res.getDeviceId().toString()); + ac.setOutCode(res.getDeviceId().toString()); + ac.setOutDoorCode(res.getId().toString()); + ac.setAccessType(1); + ac.setControlType(2); + ac.setAccessName(res.getName()); + ac.setBuildingId(0L); + ac.setCommunityId(0L); + ac.setAccessIp("127.0.0.1"); + ac.setAccessPort(8080); + sisACBos.add(ac); + } + return baseMapper.insertBatch(sisACBos); } }