| | |
| | | */ |
| | | package org.springblade.modules.doorplateAddress.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springblade.common.node.TreeNode; |
| | | import org.springblade.common.utils.NodeTreeUtil; |
| | |
| | | import org.springblade.modules.doorplateAddress.mapper.DoorplateAddressMapper; |
| | | import org.springblade.modules.doorplateAddress.service.IDoorplateAddressService; |
| | | import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO; |
| | | import org.springblade.modules.doorplateAddress.vo.FuncNode; |
| | | import org.springblade.modules.house.service.IHouseRentalService; |
| | | import org.springblade.modules.house.service.IHouseholdLabelService; |
| | | import org.springblade.modules.house.service.IHouseholdService; |
| | | import org.springblade.modules.house.vo.HouseRentalVO; |
| | | import org.springblade.modules.place.service.IPlaceService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 门牌地址表(总台账数据) 服务实现类 |
| | |
| | | @Autowired |
| | | private IHouseholdService householdService; |
| | | |
| | | @Autowired |
| | | private IHouseRentalService houseRentalService; |
| | | |
| | | |
| | | @Override |
| | | public IPage<DoorplateAddressVO> selectDoorplateAddressPage(IPage<DoorplateAddressVO> page, DoorplateAddressVO doorplateAddress) { |
| | |
| | | |
| | | /** |
| | | * 根据角色获取功能集合数据 |
| | | * @param type 1:查区域 2:查场所 3:查房屋 |
| | | * @param roleName |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Object getFuncList(String roleName) { |
| | | public Object getFuncList(Integer type,String roleName) { |
| | | List<TreeNode> list = new ArrayList<>(); |
| | | if (null!=roleName && !roleName.equals("")) { |
| | | if (null!=type) { |
| | | // 如果是网格管理员,系统管理员 |
| | | if (roleName.equals("网格管理员") || roleName.equals("系统管理员")){ |
| | | if (type==1){ |
| | | // 查询街道 |
| | | List<TreeNode> townList = baseMapper.getRegionListByGrouyTwon(); |
| | | // 查询社区 |
| | |
| | | return townList; |
| | | } |
| | | // 如果是场所负责人 |
| | | if (roleName.equals("场所负责人")){ |
| | | if (type==2){ |
| | | // 查询场所集合信息 |
| | | list = placeService.selectPlaceNodeList(AuthUtil.getUserId()); |
| | | // 返回 |
| | | return list; |
| | | } |
| | | // 如果是居民 |
| | | if (roleName.equals("居民")){ |
| | | if (type==3){ |
| | | // 查询房屋集合信息 |
| | | list = householdService.selectHouseNodeList(AuthUtil.getUserId()); |
| | | // 返回 |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 获取楼盘相关集合数据 |
| | | * @param name 名称 |
| | | * @param code 编号 |
| | | * @param type 类型 1:社区 2:小区 3:楼栋 4:户室 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Object getHousesList(String name, String code, Integer type) { |
| | | List<TreeNode> list = new ArrayList<>(); |
| | | // 查小区,场所 |
| | | if (type==1){ |
| | | // 根据社区名称查询小区集合 |
| | | list = baseMapper.getDistrictList(name,code); |
| | | } |
| | | // 查楼栋,场所 |
| | | if (type==2){ |
| | | // 根据社区名称查询楼栋集合 |
| | | list = baseMapper.getBuildingList(name,code); |
| | | } |
| | | // 查户室 |
| | | if (type==3){ |
| | | // 查询户室及住户相关信息,单元中包含住户 |
| | | return getUnitHouseholdList(name,code); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 查询户室及住户相关信息,单元中包含住户 |
| | | * @param name |
| | | * @param code |
| | | * @return |
| | | */ |
| | | private List<FuncNode> getUnitHouseholdList(String name, String code) { |
| | | List<FuncNode> list = new ArrayList<>(); |
| | | // 查询户室及住户相关信息,单元中包含住户 |
| | | List<FuncNode> funcNodes = baseMapper.getUnitHouseholdList(name,code); |
| | | // 处理,先按单元分组,再按楼层分组 |
| | | if (funcNodes.size()>0){ |
| | | Map<String, List<FuncNode>> listMap = funcNodes.stream().collect(Collectors.groupingBy(FuncNode::getFloor)); |
| | | List<FuncNode> funcNodeList = new ArrayList<>(); |
| | | listMap.forEach((s, temps) -> { |
| | | FuncNode funcNode = new FuncNode(); |
| | | funcNode.setFloor(s); |
| | | funcNode.setChildren(temps); |
| | | funcNodeList.add(funcNode); |
| | | }); |
| | | FuncNode funcNode = new FuncNode(); |
| | | funcNode.setUnitName("一单元"); |
| | | funcNode.setChildren(funcNodeList); |
| | | list.add(funcNode); |
| | | } |
| | | // 返回 |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 查询房屋及出租详情信息 |
| | | * @param code 门牌地址编号 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Object getHouseRentInfo(String code) { |
| | | // 先查询门牌信息 |
| | | DoorplateAddressVO doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code); |
| | | // 查询房屋出租情况 |
| | | List<HouseRentalVO> houseRentalVOS = houseRentalService.getHouseRentalListByCode(code); |
| | | // 设置数据 |
| | | doorplateAddressDetailVO.setHouseRentalList(houseRentalVOS); |
| | | // 返回 |
| | | return doorplateAddressDetailVO; |
| | | } |
| | | } |