refactor(sis): - E8同步
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run

This commit is contained in:
zcxlsm 2025-07-11 19:27:20 +08:00
parent 13eee82adc
commit 421bc821eb
2 changed files with 37 additions and 1 deletions

View File

@ -93,4 +93,9 @@ public class SisAccessControl extends TenantEntity {
*/
private String outCode;
/**
* 外部门编码
*/
private String outDoorCode;
}

View File

@ -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> authDoorDeviceFindRes = doorDeviceService.getPageAuthDoorDeviceList();
LambdaQueryWrapper<SisAccessControl> lqw = Wrappers.lambdaQuery();
lqw.eq(true, SisAccessControl::getControlType, 2);
List<SisAccessControlVo> sisAccessControlVos = baseMapper.selectVoList(lqw);
// 过滤掉authDoorDeviceFindRes中与sisAccessControlVos具有相同 deviceId outCode 的项
List<AuthDoorDeviceFindRes> filter = authDoorDeviceFindRes.stream()
.filter(res -> sisAccessControlVos.stream()
.noneMatch(vo -> vo.getOutCode().equals(res.getDeviceId().toString())))
.toList();
Collection<SisAccessControl> 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);
}
}