refactor(sis): 冗余数据方便查询
This commit is contained in:
parent
c488f666d2
commit
82740b7d62
@ -1,35 +0,0 @@
|
|||||||
package org.dromara.sis.dubbo;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
|
||||||
import org.dromara.sis.api.RemotePrecautionary;
|
|
||||||
import org.dromara.sis.api.domain.RemotePrecautionaryVo;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@DubboService
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class RemotePrecautionaryImpl implements RemotePrecautionary {
|
|
||||||
private final PrecautionaryMapper precautionaryMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<RemotePrecautionaryVo> getList() {
|
|
||||||
Page<Precautionary> Page = new Page<>(1, 10);
|
|
||||||
QueryWrapper<Precautionary> wrapper = new QueryWrapper<>();
|
|
||||||
wrapper.orderByAsc("time");
|
|
||||||
return precautionaryMapper.selectVoPage(Page, wrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map count() {
|
|
||||||
List<Precautionary> precautionaries = precautionaryMapper.selectList();
|
|
||||||
Stream<Long> longStream = precautionaries.stream().map(Precautionary::getType);
|
|
||||||
return Map.of();
|
|
||||||
}
|
|
||||||
}
|
|
@ -75,4 +75,12 @@ public interface ISisElevatorFloorChannelRefService {
|
|||||||
* @return 是否添加成功
|
* @return 是否添加成功
|
||||||
*/
|
*/
|
||||||
Boolean batchInsert(Long elevatorId, Collection<SisElevatorFloorChannelRef> bo);
|
Boolean batchInsert(Long elevatorId, Collection<SisElevatorFloorChannelRef> bo);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过楼层id,查询通道信息
|
||||||
|
*
|
||||||
|
* @param floorIds 楼层ids
|
||||||
|
*/
|
||||||
|
List<SisElevatorFloorChannelRefVo> queryByFloorIds(Collection<Long> floorIds);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.sis.service.impl;
|
package org.dromara.sis.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
@ -32,7 +33,7 @@ import java.util.Collection;
|
|||||||
* 权限组⇄设备关联Service业务层处理
|
* 权限组⇄设备关联Service业务层处理
|
||||||
*
|
*
|
||||||
* @author lsm
|
* @author lsm
|
||||||
* @date 2025-07-23
|
* @since 2025-07-23
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@ -109,9 +110,6 @@ public class SisAuthGroupRefServiceImpl implements ISisAuthGroupRefService {
|
|||||||
// 删除权限组⇄设备关联关系
|
// 删除权限组⇄设备关联关系
|
||||||
this.deleteByGroupId(authGroupId);
|
this.deleteByGroupId(authGroupId);
|
||||||
|
|
||||||
// 电梯设备
|
|
||||||
List<SisElevatorInfoVo> eleVoList = elevatorInfoService.queryListByIds(eleIds);
|
|
||||||
|
|
||||||
log.info("开始写入授权组门禁,acIds:{}", acIds);
|
log.info("开始写入授权组门禁,acIds:{}", acIds);
|
||||||
boolean check = false;
|
boolean check = false;
|
||||||
for (Long ac : acIds) {
|
for (Long ac : acIds) {
|
||||||
@ -124,30 +122,34 @@ public class SisAuthGroupRefServiceImpl implements ISisAuthGroupRefService {
|
|||||||
}
|
}
|
||||||
log.info("写入授权组门禁完成");
|
log.info("写入授权组门禁完成");
|
||||||
|
|
||||||
log.info("开始写入授权组电梯,eleIds:{}", eleIds);
|
if (CollUtil.isNotEmpty(eleIds)) {
|
||||||
for (SisElevatorInfoVo ele : eleVoList) {
|
// 电梯设备
|
||||||
SisAuthGroupRef groupRef = new SisAuthGroupRef();
|
List<SisElevatorInfoVo> eleVoList = elevatorInfoService.queryListByIds(eleIds);
|
||||||
groupRef.setAuthGroupId(authGroupId);
|
|
||||||
groupRef.setDeviceType(2L);
|
|
||||||
groupRef.setDeviceId(ele.getElevatorId());
|
|
||||||
check = baseMapper.insert(groupRef) > 0;
|
|
||||||
Assert.isTrue(check, "写入授权组电梯失败!");
|
|
||||||
|
|
||||||
log.info("开始写入授权组电梯楼层,floorIds:{}", floorIds);
|
log.info("开始写入授权组电梯,eleIds:{}", eleIds);
|
||||||
// 获取该电梯所在单元的楼层信息
|
for (SisElevatorInfoVo ele : eleVoList) {
|
||||||
List<RemoteFloorVo> floorVoList = remoteFloorService.queryByBuildingId(ele.getBuildingId());
|
SisAuthGroupRef groupRef = new SisAuthGroupRef();
|
||||||
// 该单元所有楼层id
|
groupRef.setAuthGroupId(authGroupId);
|
||||||
List<Long> allFloors = floorVoList.stream().map(RemoteFloorVo::getId).toList();
|
groupRef.setDeviceType(2L);
|
||||||
// 对比找出授权楼层id
|
groupRef.setDeviceId(ele.getElevatorId());
|
||||||
List<Long> authFloors = floorIds.stream().filter(allFloors::contains).toList();
|
check = baseMapper.insert(groupRef) > 0;
|
||||||
SisElevatorFloorRefBo refBo = new SisElevatorFloorRefBo();
|
Assert.isTrue(check, "写入授权组电梯失败!");
|
||||||
refBo.setAuthGroupId(authGroupId);
|
|
||||||
refBo.setElevatorId(ele.getElevatorId());
|
log.info("开始写入授权组电梯楼层,floorIds:{}", floorIds);
|
||||||
refBo.setFloorIds(authFloors);
|
// 获取该电梯所在单元的楼层信息
|
||||||
sisElevatorFloorRefService.insertByBo(refBo);
|
List<RemoteFloorVo> floorVoList = remoteFloorService.queryByBuildingId(ele.getBuildingId());
|
||||||
|
// 该单元所有楼层id
|
||||||
|
List<Long> allFloors = floorVoList.stream().map(RemoteFloorVo::getId).toList();
|
||||||
|
// 对比找出授权楼层id
|
||||||
|
List<Long> authFloors = floorIds.stream().filter(allFloors::contains).toList();
|
||||||
|
SisElevatorFloorRefBo refBo = new SisElevatorFloorRefBo();
|
||||||
|
refBo.setAuthGroupId(authGroupId);
|
||||||
|
refBo.setElevatorId(ele.getElevatorId());
|
||||||
|
refBo.setFloorIds(authFloors);
|
||||||
|
sisElevatorFloorRefService.insertByBo(refBo);
|
||||||
|
}
|
||||||
|
log.info("写入授权组电梯完成");
|
||||||
}
|
}
|
||||||
log.info("写入授权组电梯完成");
|
|
||||||
|
|
||||||
return check;
|
return check;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +122,7 @@ public class SisAuthGroupServiceImpl implements ISisAuthGroupService {
|
|||||||
Assert.isTrue(flag, "修改授权组失败");
|
Assert.isTrue(flag, "修改授权组失败");
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
|
assert update != null;
|
||||||
flag = sisAuthGroupRefService.insertByBo(update.getId(), bo.getAcIds(), bo.getEleIds(), bo.getFloorIds());
|
flag = sisAuthGroupRefService.insertByBo(update.getId(), bo.getAcIds(), bo.getEleIds(), bo.getFloorIds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -320,6 +320,10 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SisAuthRecordVo checkAuth(Long personId) {
|
public SisAuthRecordVo checkAuth(Long personId) {
|
||||||
|
List<SisAuthRecordVo> authVoList = baseMapper.checkAuth(personId);
|
||||||
|
if (CollUtil.isEmpty(authVoList)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return baseMapper.checkAuth(personId).get(0);
|
return baseMapper.checkAuth(personId).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ package org.dromara.sis.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -26,7 +25,7 @@ import java.util.Collection;
|
|||||||
* 电梯⇄楼层⇄通道关联Service业务层处理
|
* 电梯⇄楼层⇄通道关联Service业务层处理
|
||||||
*
|
*
|
||||||
* @author lsm
|
* @author lsm
|
||||||
* @date 2025-08-04
|
* @since 2025-08-04
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -155,4 +154,16 @@ public class SisElevatorFloorChannelRefServiceImpl implements ISisElevatorFloorC
|
|||||||
Assert.isTrue(flag, "批量增加电梯⇄楼层⇄通道关联信息失败");
|
Assert.isTrue(flag, "批量增加电梯⇄楼层⇄通道关联信息失败");
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过楼层id,查询通道信息
|
||||||
|
*
|
||||||
|
* @param floorIds 楼层ids
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<SisElevatorFloorChannelRefVo> queryByFloorIds(Collection<Long> floorIds){
|
||||||
|
LambdaQueryWrapper<SisElevatorFloorChannelRef> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.in(SisElevatorFloorChannelRef::getFloorId, floorIds);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.sis.domain.SisElevatorFloorChannelRef;
|
import org.dromara.sis.domain.SisElevatorFloorChannelRef;
|
||||||
|
import org.dromara.sis.domain.vo.SisElevatorFloorChannelRefVo;
|
||||||
|
import org.dromara.sis.service.ISisElevatorFloorChannelRefService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.sis.domain.bo.SisElevatorFloorRefBo;
|
import org.dromara.sis.domain.bo.SisElevatorFloorRefBo;
|
||||||
import org.dromara.sis.domain.vo.SisElevatorFloorRefVo;
|
import org.dromara.sis.domain.vo.SisElevatorFloorRefVo;
|
||||||
@ -18,6 +20,7 @@ import org.dromara.sis.mapper.SisElevatorFloorRefMapper;
|
|||||||
import org.dromara.sis.service.ISisElevatorFloorRefService;
|
import org.dromara.sis.service.ISisElevatorFloorRefService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -36,6 +39,7 @@ import java.util.stream.Collectors;
|
|||||||
public class SisElevatorFloorRefServiceImpl implements ISisElevatorFloorRefService {
|
public class SisElevatorFloorRefServiceImpl implements ISisElevatorFloorRefService {
|
||||||
|
|
||||||
private final SisElevatorFloorRefMapper baseMapper;
|
private final SisElevatorFloorRefMapper baseMapper;
|
||||||
|
private final ISisElevatorFloorChannelRefService sisElevatorFloorChannelRefService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询电梯⇄楼层关联
|
* 查询电梯⇄楼层关联
|
||||||
@ -96,15 +100,33 @@ public class SisElevatorFloorRefServiceImpl implements ISisElevatorFloorRefServi
|
|||||||
Collection<Long> ids = list.stream().map(SisElevatorFloorRefVo::getId).toList();
|
Collection<Long> ids = list.stream().map(SisElevatorFloorRefVo::getId).toList();
|
||||||
baseMapper.deleteByIds(ids);
|
baseMapper.deleteByIds(ids);
|
||||||
|
|
||||||
boolean flag = false;
|
// 通道关系
|
||||||
for (Long num : bo.getFloorIds()){
|
List<SisElevatorFloorChannelRefVo> channelInfo = sisElevatorFloorChannelRefService.queryByFloorIds(bo.getFloorIds());
|
||||||
|
|
||||||
|
// 创建Map提高查找效率,避免在循环中重复流操作
|
||||||
|
Map<Long, SisElevatorFloorChannelRefVo> channelInfoMap = channelInfo.stream()
|
||||||
|
.collect(Collectors.toMap(SisElevatorFloorChannelRefVo::getFloorId, Function.identity()));
|
||||||
|
|
||||||
|
List<SisElevatorFloorRef> refInfo = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Long num : bo.getFloorIds()) {
|
||||||
SisElevatorFloorRef add = new SisElevatorFloorRef();
|
SisElevatorFloorRef add = new SisElevatorFloorRef();
|
||||||
add.setFloorId(num);
|
add.setFloorId(num);
|
||||||
add.setAuthGroupId(bo.getAuthGroupId());
|
add.setAuthGroupId(bo.getAuthGroupId());
|
||||||
add.setElevatorId(bo.getElevatorId());
|
add.setElevatorId(bo.getElevatorId());
|
||||||
flag = baseMapper.insert(add) > 0;
|
|
||||||
Assert.isTrue(flag, "新增电梯⇄楼层关联关系失败");
|
// 存在通道关系同时写入
|
||||||
|
SisElevatorFloorChannelRefVo channelRef = channelInfoMap.get(num);
|
||||||
|
if (channelRef != null) {
|
||||||
|
add.setOutChannel(channelRef.getOutChannel());
|
||||||
|
add.setInChannel(channelRef.getInChannel());
|
||||||
|
}
|
||||||
|
|
||||||
|
refInfo.add(add);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean flag = baseMapper.insertBatch(refInfo);
|
||||||
|
Assert.isTrue(flag, "电梯楼层关联关系写入失败!");
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,10 +180,10 @@ public class SisElevatorFloorRefServiceImpl implements ISisElevatorFloorRefServi
|
|||||||
/**
|
/**
|
||||||
* 批量更新电梯⇄楼层通道关联信息
|
* 批量更新电梯⇄楼层通道关联信息
|
||||||
*
|
*
|
||||||
* @param info 通道信息
|
* @param info 通道信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean batchUpdateChannel(Collection<SisElevatorFloorChannelRef> info){
|
public Boolean batchUpdateChannel(Collection<SisElevatorFloorChannelRef> info) {
|
||||||
LambdaQueryWrapper<SisElevatorFloorRef> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SisElevatorFloorRef> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.in(SisElevatorFloorRef::getFloorId, info.stream().map(SisElevatorFloorChannelRef::getFloorId).toList());
|
lqw.in(SisElevatorFloorRef::getFloorId, info.stream().map(SisElevatorFloorChannelRef::getFloorId).toList());
|
||||||
List<SisElevatorFloorRef> list = baseMapper.selectList(lqw);
|
List<SisElevatorFloorRef> list = baseMapper.selectList(lqw);
|
||||||
|
Loading…
Reference in New Issue
Block a user