feat(property):

- 新增查询所有楼层和根据单元ID查询楼层的功能
- 在新增楼层时增加同一单元楼层重复校验
This commit is contained in:
zcxlsm 2025-07-16 10:12:24 +08:00
parent 2c794447d8
commit ed97e7cefb
4 changed files with 56 additions and 5 deletions

View File

@ -20,5 +20,11 @@ public interface RemoteFloorService {
*/
List<TreeNode<Long>> queryTreeList();
/**
* 根据单元ID查询楼层
*
* @param unitId 单元ID
* @return 楼层
*/
List<RemoteFloorVo> queryByUnitId(Long unitId);
}

View File

@ -101,4 +101,16 @@ public class RemoteFloorServiceImpl implements RemoteFloorService {
treeList.addAll(l4);
return treeList;
}
/**
* 根据单元ID查询楼层
*
* @param unitId 单元ID
* @return 楼层
*/
@Override
public List<RemoteFloorVo> queryByUnitId(Long unitId){
List<TbFloorVo> tbFloorVo = floorService.queryByUnitId(unitId);
return MapstructUtils.convert(tbFloorVo, RemoteFloorVo.class);
}
}

View File

@ -1,5 +1,6 @@
package org.dromara.property.service;
import org.dromara.property.api.domain.vo.RemoteFloorVo;
import org.dromara.property.domain.TbFloor;
import org.dromara.property.domain.vo.TbFloorVo;
import org.dromara.property.domain.bo.TbFloorBo;
@ -67,7 +68,18 @@ public interface ITbFloorService {
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 查询所有楼层
*
* @return 楼层列表
*/
List<TbFloorVo> queryAll();
/**
* 根据单元ID查询楼层
*
* @param unitId 单元ID
* @return 楼层
*/
List<TbFloorVo> queryByUnitId(Long unitId);
}

View File

@ -18,6 +18,7 @@ import org.dromara.property.mapper.TbFloorMapper;
import org.dromara.property.service.ITbFloorService;
import org.dromara.property.service.ITbUnitService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
@ -94,18 +95,25 @@ public class TbFloorServiceImpl implements ITbFloorService {
* @return 是否新增成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(TbFloorBo bo) {
// 验证单元是否存在
TbUnitVo tbUnitVo = tbUnitService.queryById(bo.getUnitId());
Assert.notNull(tbUnitVo, "单元:{},不存在。", bo.getUnitId());
// 验证同一单元楼层是否已经存在
LambdaQueryWrapper<TbFloor> lqw = Wrappers.lambdaQuery();
lqw.eq(TbFloor::getUnitId, bo.getUnitId())
.eq(TbFloor::getFloorNumber, bo.getFloorNumber());
boolean numberExists = baseMapper.selectCount(lqw) > 0;
Assert.isFalse(numberExists, "单元:{},楼层:{}已存在。", bo.getUnitId(), bo.getFloorNumber());
TbFloor add = MapstructUtils.convert(bo, TbFloor.class);
add.setCommunityId(tbUnitVo.getCommunityId());
add.setBuildingId(tbUnitVo.getBuildingId());
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
Assert.isTrue(flag, "新增楼层失败");
return flag;
}
@ -148,4 +156,17 @@ public class TbFloorServiceImpl implements ITbFloorService {
public List<TbFloorVo> queryAll() {
return baseMapper.selectVoList();
}
/**
* 根据单元ID查询楼层
*
* @param unitId 单元ID
* @return 楼层
*/
@Override
public List<TbFloorVo> queryByUnitId(Long unitId){
LambdaQueryWrapper<TbFloor> lqw = Wrappers.lambdaQuery();
lqw.eq(TbFloor::getUnitId, unitId);
return baseMapper.selectVoList(lqw);
}
}