@ -94,11 +94,11 @@ public class BuildingServiceImpl implements BuildingService {
@Transactional ( rollbackFor = Exception . class )
public void addBuilding ( String customerId , IcBulidingAddFormDTO formDTO ) {
//同一小区下不能存在楼栋名字一样的
Integer count = icBuildingDao . checkBuildName ( formDTO . getNeighborHoodId ( ) , formDTO . getBuildingName ( ) , null ) ;
Integer count = icBuildingDao . checkBuildName ( formDTO . getNeighborHoodId ( ) , formDTO . getBuildingName ( ) , null ) ;
if ( null ! = count & & count > 0 ) {
throw new RenException ( EpmetErrorCode . BUILDING_NAME_EXITED . getCode ( ) , EpmetErrorCode . BUILDING_NAME_EXITED . getMsg ( ) ) ;
throw new RenException ( EpmetErrorCode . BUILDING_NAME_EXITED . getCode ( ) , EpmetErrorCode . BUILDING_NAME_EXITED . getMsg ( ) ) ;
}
IcBuildingDTO icBuildingDTO = ConvertUtils . sourceToTarget ( formDTO , IcBuildingDTO . class ) ;
IcBuildingDTO icBuildingDTO = ConvertUtils . sourceToTarget ( formDTO , IcBuildingDTO . class ) ;
icBuildingDTO . setCustomerId ( customerId ) ;
IcBuildingEntity entity = ConvertUtils . sourceToTarget ( icBuildingDTO , IcBuildingEntity . class ) ;
icBuildingDao . insert ( entity ) ;
@ -106,12 +106,12 @@ public class BuildingServiceImpl implements BuildingService {
//设置楼宇单元
Integer totalUnitNum = formDTO . getTotalUnitNum ( ) ;
List < IcBuildingUnitEntity > unitList = new ArrayList < > ( ) ;
for ( int i = 0 ; i < totalUnitNum ; i + + ) {
IcBuildingUnitEntity icBuildingUnit = new IcBuildingUnitEntity ( ) ;
for ( int i = 0 ; i < totalUnitNum ; i + + ) {
IcBuildingUnitEntity icBuildingUnit = new IcBuildingUnitEntity ( ) ;
icBuildingUnit . setCustomerId ( customerId ) ;
icBuildingUnit . setBuildingId ( entity . getId ( ) ) ;
icBuildingUnit . setUnitName ( ( i + 1 ) + "单元" ) ;
icBuildingUnit . setUnitNum ( String . valueOf ( i + 1 ) ) ;
icBuildingUnit . setUnitName ( ( i + 1 ) + "单元" ) ;
icBuildingUnit . setUnitNum ( String . valueOf ( i + 1 ) ) ;
unitList . add ( icBuildingUnit ) ;
}
icBuildingUnitService . insertBatch ( unitList , NumConstant . ONE_HUNDRED ) ;
@ -121,8 +121,8 @@ public class BuildingServiceImpl implements BuildingService {
@Override
public List < BuildingTreeLevelDTO > treeList ( String customerId , String staffId ) {
CustomerStaffInfoCacheResult agency = CustomerStaffRedis . getStaffInfo ( customerId , staffId ) ;
if ( null = = agency | | StringUtils . isBlank ( agency . getAgencyId ( ) ) ) {
log . error ( "com.epmet.service.impl.BuildingServiceImpl.treeList,没有找到工作人员所属的机关信息,用户Id:{}" , staffId ) ;
if ( null = = agency | | StringUtils . isBlank ( agency . getAgencyId ( ) ) ) {
log . error ( "com.epmet.service.impl.BuildingServiceImpl.treeList,没有找到工作人员所属的机关信息,用户Id:{}" , staffId ) ;
return new ArrayList < > ( ) ;
}
@ -133,7 +133,7 @@ public class BuildingServiceImpl implements BuildingService {
List < CustomerAgencyEntity > customerAgencyList = icBuildingDao . selectAgencyChildrenList ( agency . getAgencyId ( ) ) ;
customerAgencyList . add ( customerAgency ) ;
if ( CollectionUtils . isEmpty ( customerAgencyList ) ) {
if ( CollectionUtils . isEmpty ( customerAgencyList ) ) {
return new ArrayList < > ( ) ;
}
@ -152,14 +152,13 @@ public class BuildingServiceImpl implements BuildingService {
} ) . collect ( Collectors . toList ( ) ) ;
//2.获取组织所在网格
List < String > agencyIdList = customerAgencyList . stream ( ) . map ( BaseEpmetEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
// agencyIdList.add(customerAgency.getId());
List < CustomerGridEntity > customerGridList = customerGridDao . selectList ( new QueryWrapper < CustomerGridEntity > ( ) . lambda ( ) . in ( CustomerGridEntity : : getPid , agencyIdList ) ) ;
if ( CollectionUtils . isEmpty ( customerGridList ) ) {
return covertToTree ( customerAgency , agencyList ) ;
if ( CollectionUtils . isEmpty ( customerGridList ) ) {
return covertToTree ( customerAgency , agencyList ) ;
}
List < BuildingTreeLevelDTO > gridList = customerGridList . stream ( ) . map ( item - > {
@ -181,11 +180,11 @@ public class BuildingServiceImpl implements BuildingService {
List < String > gridIdList = customerGridList . stream ( ) . map ( BaseEpmetEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < IcNeighborHoodEntity > queryWrapper = new QueryWrapper < IcNeighborHoodEntity > ( ) . lambda ( )
. in ( IcNeighborHoodEntity : : getGridId , gridIdList )
. last ( "ORDER BY CAST(NEIGHBOR_HOOD_NAME AS SIGNED), CONVERT(NEIGHBOR_HOOD_NAME using gbk)" ) ;
. orderByAsc ( IcNeighborHoodEntity : : getCreatedTime ) ;
List < IcNeighborHoodEntity > icNeighborHoodList = icNeighborHoodDao . selectList ( queryWrapper ) ;
if ( CollectionUtils . isEmpty ( icNeighborHoodList ) ) {
if ( CollectionUtils . isEmpty ( icNeighborHoodList ) ) {
agencyList . addAll ( gridList ) ;
return covertToTree ( customerAgency , agencyList ) ;
return covertToTree ( customerAgency , agencyList ) ;
}
List < BuildingTreeLevelDTO > neighbourHoodList = icNeighborHoodList . stream ( ) . map ( item - > {
BuildingTreeLevelDTO buildingTreeLevelDTO = new BuildingTreeLevelDTO ( ) ;
@ -205,14 +204,13 @@ public class BuildingServiceImpl implements BuildingService {
List < String > neighborHoodIdList = icNeighborHoodList . stream ( ) . map ( BaseEpmetEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < IcBuildingEntity > buildingQueryWrapper = new QueryWrapper < IcBuildingEntity > ( ) . lambda ( )
. in ( IcBuildingEntity : : getNeighborHoodId , neighborHoodIdList )
. last ( "ORDER BY CAST(BUILDING_NAME AS SIGNED), CONVERT(BUILDING_NAME using gbk)" ) ;
//.orderByAsc(IcBuildingEntity::getCreatedTime,IcBuildingEntity::getBuildingName);
. orderByAsc ( IcBuildingEntity : : getCreatedTime , IcBuildingEntity : : getBuildingName ) ;
List < IcBuildingEntity > icBuildingList = icBuildingDao . selectList ( buildingQueryWrapper ) ;
if ( CollectionUtils . isEmpty ( neighborHoodIdList ) ) {
if ( CollectionUtils . isEmpty ( neighborHoodIdList ) ) {
agencyList . addAll ( gridList ) ;
agencyList . addAll ( neighbourHoodList ) ;
return covertToTree ( customerAgency , agencyList ) ;
return covertToTree ( customerAgency , agencyList ) ;
}
//获取楼里已经有多少个房屋
LambdaQueryWrapper < IcHouseEntity > icHouseEntityWrapper = new QueryWrapper < IcHouseEntity > ( ) . lambda ( )
@ -246,10 +244,10 @@ public class BuildingServiceImpl implements BuildingService {
// .in(IcHouseEntity::getBuildingId, item.getId());
// int count= icHouseDao.selectCount(icHouseEntityWrapper);
int count = buildingHouseCountMap . getOrDefault ( item . getId ( ) , NumConstant . ZERO_L ) . intValue ( ) ;
if ( NumConstant . ZERO = = total ) {
buildingTreeLevelDTO . setShowNum ( String . format ( "%s/%s" , count , count ) ) ;
} else {
buildingTreeLevelDTO . setShowNum ( String . format ( "%s/%s" , count , total ) ) ;
if ( NumConstant . ZERO = = total ) {
buildingTreeLevelDTO . setShowNum ( String . format ( "%s/%s" , count , count ) ) ;
} else {
buildingTreeLevelDTO . setShowNum ( String . format ( "%s/%s" , count , total ) ) ;
}
return buildingTreeLevelDTO ;
} ) . collect ( Collectors . toList ( ) ) ;
@ -257,7 +255,7 @@ public class BuildingServiceImpl implements BuildingService {
agencyList . addAll ( gridList ) ;
agencyList . addAll ( neighbourHoodList ) ;
agencyList . addAll ( buildingList ) ;
return covertToTree ( customerAgency , agencyList ) ;
return covertToTree ( customerAgency , agencyList ) ;
}
@ -265,15 +263,15 @@ public class BuildingServiceImpl implements BuildingService {
public List < String > treeIds ( String customerId , String staffId ) {
List < String > result = new ArrayList < > ( ) ;
CustomerStaffInfoCacheResult agency = CustomerStaffRedis . getStaffInfo ( customerId , staffId ) ;
if ( null = = agency | | StringUtils . isBlank ( agency . getAgencyId ( ) ) ) {
log . error ( "com.epmet.service.impl.BuildingServiceImpl.treeIds,没有找到工作人员所属的机关信息,用户Id:{}" , staffId ) ;
if ( null = = agency | | StringUtils . isBlank ( agency . getAgencyId ( ) ) ) {
log . error ( "com.epmet.service.impl.BuildingServiceImpl.treeIds,没有找到工作人员所属的机关信息,用户Id:{}" , staffId ) ;
return new ArrayList < > ( ) ;
}
//1.获取所在组织及下级组织
CustomerAgencyEntity customerAgency = customerAgencyDao . selectById ( agency . getAgencyId ( ) ) ;
List < CustomerAgencyEntity > customerAgencyList = icBuildingDao . selectAgencyChildrenList ( agency . getAgencyId ( ) ) ;
customerAgencyList . add ( customerAgency ) ;
if ( CollectionUtils . isEmpty ( customerAgencyList ) ) {
if ( CollectionUtils . isEmpty ( customerAgencyList ) ) {
return new ArrayList < > ( ) ;
}
result . addAll ( customerAgencyList . stream ( ) . map ( m - > m . getId ( ) ) . collect ( Collectors . toList ( ) ) ) ;
@ -293,128 +291,41 @@ public class BuildingServiceImpl implements BuildingService {
//2.获取组织所在网格
List < String > agencyIdList = customerAgencyList . stream ( ) . map ( BaseEpmetEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
List < CustomerGridEntity > customerGridList = customerGridDao . selectList ( new QueryWrapper < CustomerGridEntity > ( ) . lambda ( ) . in ( CustomerGridEntity : : getPid , agencyIdList ) ) ;
if ( CollectionUtils . isEmpty ( customerGridList ) ) {
if ( CollectionUtils . isEmpty ( customerGridList ) ) {
return result ;
}
result . addAll ( customerGridList . stream ( ) . map ( m - > m . getId ( ) ) . collect ( Collectors . toList ( ) ) ) ;
return result ;
}
@Override
@Transactional ( rollbackFor = Exception . class )
public List < Integer > importExcel ( String customerId , List < IcBuildingExcel > list , String staffId , List < Integer > numList ) {
//2021.11.9 需求变更 当前工作人员只能导致自己所属组织下数据,网格名对应不上的数据舍弃【注:需求就这样】 sun
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis . getStaffInfo ( customerId , staffId ) ;
//组织名称不一样的数据舍弃
Iterator < IcBuildingExcel > iterator = list . iterator ( ) ;
while ( iterator . hasNext ( ) ) {
IcBuildingExcel obj = iterator . next ( ) ;
if ( ! obj . getAgencyName ( ) . trim ( ) . equals ( staffInfoCache . getAgencyName ( ) ) ) {
numList . add ( obj . getRowNum ( ) ) ;
iterator . remove ( ) ;
}
}
//用于存储匹配不上的数据给前端的提示 如南宁社区不存在
//StringBuffer str = new StringBuffer("");
//end sun
//导入
if ( CollectionUtils . isEmpty ( list ) ) {
return numList ;
}
//查询所有组织和网格根据名字
//获取所有小区 list 根据组织和网格
Set < String > neighborNameList = list . stream ( ) . map ( item - > item . getNeighborHoodName ( ) ) . collect ( Collectors . toSet ( ) ) ;
Set < String > agencyNameList = list . stream ( ) . map ( item - > item . getAgencyName ( ) ) . collect ( Collectors . toSet ( ) ) ;
Set < String > gridNameList = list . stream ( ) . map ( item - > item . getGridName ( ) ) . collect ( Collectors . toSet ( ) ) ;
List < IcNeighborHoodEntity > neighborHoodList = icNeighborHoodDao . selectListByName ( customerId , new ArrayList < String > ( neighborNameList ) , new ArrayList < String > ( agencyNameList ) , new ArrayList < String > ( gridNameList ) ) ;
// List<IcNeighborHoodEntity> neighborHoodList = icNeighborHoodDao.selectList(new QueryWrapper<IcNeighborHoodEntity>().lambda().in(IcNeighborHoodEntity::getNeighborHoodName, neighborNameList));
Map < String , IcNeighborHoodEntity > neighborHoodMap = neighborHoodList . stream ( ) . collect ( Collectors . toMap ( IcNeighborHoodEntity : : getNeighborHoodName , Function . identity ( ) , ( key1 , key2 ) - > key1 ) ) ;
//2.获取小区数据
//封装数据
List < IcBuildingEntity > buildingEntityList = new ArrayList < > ( ) ;
List < IcBuildingUnitEntity > icBuildingUnitEntityList = new ArrayList < > ( ) ;
Iterator < IcBuildingExcel > iterator1 = list . iterator ( ) ;
while ( iterator1 . hasNext ( ) ) {
IcBuildingExcel icBuildingExcel = iterator1 . next ( ) ;
IcBuildingEntity entity = new IcBuildingEntity ( ) ;
String uuid = UUID . randomUUID ( ) . toString ( ) . replace ( "-" , "" ) ;
entity . setId ( uuid ) ;
entity . setCustomerId ( customerId ) ;
entity . setNeighborHoodId ( Optional . ofNullable ( neighborHoodMap . get ( icBuildingExcel . getNeighborHoodName ( ) ) ) . map ( u - > u . getId ( ) ) . orElse ( "" ) ) ; //neighborHoodMap.get(icBuildingExcel.getNeighborHoodName()).getId()
if ( "" . equals ( entity . getNeighborHoodId ( ) ) ) {
//str.append("".equals(str) ? icBuildingExcel.getNeighborHoodName() : str.append("、").append(icBuildingExcel.getNeighborHoodName()));
numList . add ( icBuildingExcel . getRowNum ( ) ) ;
iterator1 . remove ( ) ;
continue ;
}
entity . setBuildingName ( icBuildingExcel . getBuildingName ( ) ) ;
entity . setType ( BuildingTypeEnums . getKeyByValue ( icBuildingExcel . getType ( ) ) ) ;
entity . setSort ( 0 ) ;
entity . setTotalUnitNum ( icBuildingExcel . getTotalUnitNum ( ) ) ;
entity . setTotalFloorNum ( icBuildingExcel . getTotalFloorNum ( ) ) ;
entity . setTotalHouseNum ( icBuildingExcel . getTotalHouseNum ( ) ) ;
buildingEntityList . add ( entity ) ;
Integer totalUnitNum = icBuildingExcel . getTotalUnitNum ( ) ;
//设置楼宇单元
List < IcBuildingUnitEntity > unitList = new ArrayList < > ( ) ;
for ( int i = 0 ; i < totalUnitNum ; i + + ) {
IcBuildingUnitEntity icBuildingUnit = new IcBuildingUnitEntity ( ) ;
icBuildingUnit . setBuildingId ( uuid ) ;
icBuildingUnit . setCustomerId ( customerId ) ;
icBuildingUnit . setUnitName ( ( i + 1 ) + "单元" ) ;
icBuildingUnit . setUnitNum ( String . valueOf ( i + 1 ) ) ;
unitList . add ( icBuildingUnit ) ;
}
//同一小区下不能存在楼栋名字一样的
Integer count = icBuildingDao . checkBuildName ( entity . getNeighborHoodId ( ) , entity . getBuildingName ( ) , null ) ;
if ( null ! = count & & count > 0 ) {
//throw new RenException(EpmetErrorCode.BUILDING_NAME_EXITED.getCode(),EpmetErrorCode.BUILDING_NAME_EXITED.getMsg());
log . error ( EpmetErrorCode . BUILDING_NAME_EXITED . getMsg ( ) ) ;
numList . add ( icBuildingExcel . getRowNum ( ) ) ;
iterator1 . remove ( ) ;
continue ;
}
icBuildingUnitEntityList . addAll ( unitList ) ;
}
//3.保存
//4.新增单元
icBuildingService . insertBatch ( buildingEntityList ) ;
icBuildingUnitService . insertBatch ( icBuildingUnitEntityList ) ;
return numList ;
}
@Override
public PageData < IcBuildingListResultDTO > listBuilding ( IcBuildingListFormDTO formDTO ) {
PageInfo < IcBuildingListResultDTO > pageInfo = PageHelper . startPage ( formDTO . getPageNo ( ) , formDTO . getPageSize ( ) , formDTO . getIsPage ( ) ) . doSelectPageInfo ( ( ) - > icBuildingDao . searchBuildingByPage ( formDTO ) ) ;
List < IcBuildingListResultDTO > records = pageInfo . getList ( ) ;
records . forEach ( item - > item . setBuildingType ( BuildingTypeEnums . getTypeValue ( item . getBuildingTypeKey ( ) ) ) ) ;
return new PageData < > ( pageInfo . getList ( ) , pageInfo . getTotal ( ) ) ;
records . forEach ( item - > item . setBuildingType ( BuildingTypeEnums . getTypeValue ( item . getBuildingTypeKey ( ) ) ) ) ;
return new PageData < > ( pageInfo . getList ( ) , pageInfo . getTotal ( ) ) ;
}
@Override
public void exportBuildinginfo ( IcHouseListFormDTO formDTO , HttpServletResponse response ) throws Exception {
public void exportBuildinginfo ( IcHouseListFormDTO formDTO , HttpServletResponse response ) throws Exception {
//如果类型是building 查楼栋
//导出楼栋
List < IcBuildingExcel > icBuildingExcels = searchAllBuilding ( formDTO ) ;
TemplateExportParams templatePath = new TemplateExportParams ( "excel/building_export.xlsx" ) ;
Map < String , Object > map = new HashMap < > ( ) ;
map . put ( "maplist" , icBuildingExcels ) ;
ExcelPoiUtils . exportExcel ( templatePath , map , "楼栋信息录入表" , response ) ;
return ;
Map < String , Object > map = new HashMap < > ( ) ;
map . put ( "maplist" , icBuildingExcels ) ;
ExcelPoiUtils . exportExcel ( templatePath , map , "楼栋信息录入表" , response ) ;
return ;
}
@Override
public List < BuildingResultDTO > buildingListByIds ( List < String > buildingIdList ) {
return icBuildingDao . buildingListByIds ( buildingIdList ) ;
}
@Override
public BuildingResultPagedDTO buildinglistbyidsPage ( List < String > buildingIdList , Integer pageNo , Integer pageSize ) {
IPage < IcBuildingEntity > page = new Page < IcBuildingEntity > ( pageNo , pageSize ) ;
public BuildingResultPagedDTO buildinglistbyidsPage ( List < String > buildingIdList , Integer pageNo , Integer pageSize ) {
IPage < IcBuildingEntity > page = new Page < IcBuildingEntity > ( pageNo , pageSize ) ;
IPage < BuildingResultDTO > buildingResultDTOIPage = icBuildingDao . buildingListByIds ( page , buildingIdList ) ;
BuildingResultPagedDTO result = new BuildingResultPagedDTO ( ) ;
result . setTotal ( Long . valueOf ( buildingResultDTOIPage . getTotal ( ) ) . intValue ( ) ) ;
@ -424,29 +335,29 @@ public class BuildingServiceImpl implements BuildingService {
}
/ * *
* @param formDTO
* @param inputStream
* @Description 楼宇导入
* 根据左侧树选中的层级 , 可导入对应数据 :
* 根据左侧树选中的层级 , 可导入对应数据 :
* 1 . 选中社区可导入该社区下所有小区信息 、 楼宇信息 、 房屋信息 ( 没有匹配的小区 、 楼宇均新增 , 网格没有对应的不新增 ) ;
* 2 . 选中网格可导入该网格下所有小区信息 、 楼宇信息 、 房屋信息 ( 没有匹配的小区 、 楼宇均新增 ) ;
* 3 . 选中小区可导入该小区下所有楼宇信息 、 房屋信息 ( 没有匹配的楼宇均新增 ) ;
* 4 . 选中楼宇可导入该楼宇下所有房屋信息 。
* @param formDTO
* @param inputStream
* @author zxc
* @date 2022 / 2 / 13 10 : 15 上午
* /
@Override
public Result buildingImportExcel ( ImportInfoFormDTO formDTO , InputStream inputStream , Result < ImportTaskCommonResultDTO > importTask ) {
public Result buildingImportExcel ( ImportInfoFormDTO formDTO , InputStream inputStream , Result < ImportTaskCommonResultDTO > importTask ) {
executorService . submit ( ( ) - > {
ExcelReader excelReader = null ;
try {
excelReader = EasyExcel . read ( inputStream ) . build ( ) ;
// 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener
ReadSheet readSheet = EasyExcel . readSheet ( 0 ) . head ( BuildingInfoModel . class )
. registerReadListener ( new ImportBuildingInfoListener ( formDTO , icHouseRedis , icBuildingDao , neighborHoodService , epmetCommonServiceOpenFeignClient , importTask . getData ( ) . getTaskId ( ) ) )
. registerReadListener ( new ImportBuildingInfoListener ( formDTO , icHouseRedis , icBuildingDao , neighborHoodService , epmetCommonServiceOpenFeignClient , importTask . getData ( ) . getTaskId ( ) ) )
. build ( ) ;
excelReader . read ( readSheet ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
ImportTaskCommonFormDTO input = new ImportTaskCommonFormDTO ( ) ;
input . setOperatorId ( formDTO . getUserId ( ) ) ;
input . setTaskId ( importTask . getData ( ) . getTaskId ( ) ) ;
@ -462,32 +373,18 @@ public class BuildingServiceImpl implements BuildingService {
}
private List < IcBuildingExcel > searchAllBuilding ( IcHouseListFormDTO formDTO ) {
// QueryWrapper<IcNeighborHoodEntity> neighborHoodEntityQueryWrapper = new QueryWrapper<>();
// neighborHoodEntityQueryWrapper.lambda()
// .eq(!StringUtils.isEmpty(formDTO.getAgencyId()),IcNeighborHoodEntity::getAgencyId,formDTO.getAgencyId())
// .eq(!StringUtils.isEmpty(formDTO.getGridId()),IcNeighborHoodEntity::getId,formDTO.getGridId())
// .eq(!StringUtils.isEmpty(formDTO.getNeighborHoodId()),IcNeighborHoodEntity::getId,formDTO.getNeighborHoodId())
// .like(!StringUtils.isEmpty(formDTO.getNeighborHoodName()),IcNeighborHoodEntity::getNeighborHoodName,formDTO.getNeighborHoodName());
// IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class);
// QueryWrapper<IcBuildingEntity> buildingEntityQueryWrapper = new QueryWrapper<>();
// buildingEntityQueryWrapper.lambda()
// .eq(!StringUtils.isEmpty(formDTO.getBuildingId()),IcBuildingEntity::getId,formDTO.getBuildingId())
// .like(!StringUtils.isEmpty(formDTO.getBuildingName()),IcBuildingEntity::getBuildingName,formDTO.getBuildingName());
// buildingEntityQueryWrapper.eq("a.DEL_FLAG","0");
IcBuildingEntity building = ConvertUtils . sourceToTarget ( formDTO , IcBuildingEntity . class ) ;
building . setDelFlag ( "0" ) ;
IcHouseEntity house = ConvertUtils . sourceToTarget ( formDTO , IcHouseEntity . class ) ;
List < IcBuildingExcel > icBuildingExcels = icBuildingDao . searchAllBuilding ( building , house ) ;
icBuildingExcels . forEach ( item - > {
icBuildingExcels . forEach ( item - > {
item . setType ( BuildingTypeEnums . getTypeValue ( item . getType ( ) ) ) ;
} ) ;
return icBuildingExcels ;
}
private List < BuildingTreeLevelDTO > covertToTree ( CustomerAgencyEntity customerAgency , List < BuildingTreeLevelDTO > agencyList ) {
private List < BuildingTreeLevelDTO > covertToTree ( CustomerAgencyEntity customerAgency , List < BuildingTreeLevelDTO > agencyList ) {
BuildingTreeLevelDTO buildingTreeLevelDTO = new BuildingTreeLevelDTO ( ) ;
buildingTreeLevelDTO . setId ( customerAgency . getId ( ) ) ;
buildingTreeLevelDTO . setLabel ( customerAgency . getOrganizationName ( ) ) ;
@ -495,7 +392,7 @@ public class BuildingServiceImpl implements BuildingService {
buildingTreeLevelDTO . setLongitude ( customerAgency . getLongitude ( ) ) ;
buildingTreeLevelDTO . setLatitude ( customerAgency . getLatitude ( ) ) ;
buildingTreeLevelDTO . setChildren ( new ArrayList < > ( ) ) ;
recursionCovertToTree ( buildingTreeLevelDTO , agencyList ) ;
recursionCovertToTree ( buildingTreeLevelDTO , agencyList ) ;
List < BuildingTreeLevelDTO > result = new ArrayList < > ( ) ;
result . add ( buildingTreeLevelDTO ) ;
return result ;
@ -505,20 +402,20 @@ public class BuildingServiceImpl implements BuildingService {
//获取子节点
List < BuildingTreeLevelDTO > subList = customerAgencyList . stream ( ) . filter ( item - > item . getPId ( ) . equals ( parent . getId ( ) ) ) . collect ( Collectors . toList ( ) ) ;
for ( BuildingTreeLevelDTO agencyEntity : subList ) {
recursionCovertToTree ( agencyEntity , customerAgencyList ) ;
for ( BuildingTreeLevelDTO agencyEntity : subList ) {
recursionCovertToTree ( agencyEntity , customerAgencyList ) ;
}
parent . setChildren ( subList ) ;
if ( ! "building" . equals ( parent . getLevel ( ) ) ) {
if ( ! "building" . equals ( parent . getLevel ( ) ) ) {
parent . setShowNum ( CollectionUtils . isEmpty ( subList ) ? NumConstant . ZERO_STR : String . valueOf ( subList . size ( ) ) ) ;
}
parent . setShowName ( String . format ( "%s(%s)" , parent . getLabel ( ) , parent . getShowNum ( ) ) ) ;
parent . setShowName ( String . format ( "%s(%s)" , parent . getLabel ( ) , parent . getShowNum ( ) ) ) ;
}
/ * *
* 更新
*
* @param customerId
* @param formDTO
* /
@ -526,37 +423,33 @@ public class BuildingServiceImpl implements BuildingService {
@Transactional ( rollbackFor = Exception . class )
public void updateBuilding ( String customerId , IcBulidingAddFormDTO formDTO ) {
//同一小区下不能存在楼栋名字一样的
Integer count = icBuildingDao . checkBuildName ( formDTO . getNeighborHoodId ( ) , formDTO . getBuildingName ( ) , formDTO . getBuildingId ( ) ) ;
Integer count = icBuildingDao . checkBuildName ( formDTO . getNeighborHoodId ( ) , formDTO . getBuildingName ( ) , formDTO . getBuildingId ( ) ) ;
if ( null ! = count & & count > 0 ) {
throw new RenException ( EpmetErrorCode . BUILDING_NAME_EXITED . getCode ( ) , EpmetErrorCode . BUILDING_NAME_EXITED . getMsg ( ) ) ;
throw new RenException ( EpmetErrorCode . BUILDING_NAME_EXITED . getCode ( ) , EpmetErrorCode . BUILDING_NAME_EXITED . getMsg ( ) ) ;
}
IcBuildingDTO icBuilding = icBuildingService . get ( formDTO . getBuildingId ( ) ) ;
IcBuildingDTO icBuilding = icBuildingService . get ( formDTO . getBuildingId ( ) ) ;
if ( ! icBuilding . getNeighborHoodId ( ) . equals ( formDTO . getNeighborHoodId ( ) ) ) {
if ( ! icBuilding . getNeighborHoodId ( ) . equals ( formDTO . getNeighborHoodId ( ) ) ) {
//更新对应房屋小区id
List < IcHouseEntity > icHouseEntities = icHouseDao . selectList ( new QueryWrapper < IcHouseEntity > ( ) . lambda ( ) . eq ( IcHouseEntity : : getBuildingId , formDTO . getBuildingId ( ) ) ) ;
if ( ! CollectionUtils . isEmpty ( icHouseEntities ) ) {
if ( ! CollectionUtils . isEmpty ( icHouseEntities ) ) {
//
throw new RenException ( EpmetErrorCode . ORG_EDIT_FAILED . getCode ( ) , "楼栋单元下存在房屋,无法更新" ) ;
// icHouseEntities.forEach(item->{
// item.setNeighborHoodId(formDTO.getNeighborHoodId());
// });
// icHouseService.updateBatchById(icHouseEntities);
throw new RenException ( EpmetErrorCode . ORG_EDIT_FAILED . getCode ( ) , "楼栋单元下存在房屋,无法更新" ) ;
}
}
IcBuildingDTO icBuildingDTO = ConvertUtils . sourceToTarget ( formDTO , IcBuildingDTO . class ) ;
IcBuildingDTO icBuildingDTO = ConvertUtils . sourceToTarget ( formDTO , IcBuildingDTO . class ) ;
icBuildingDTO . setId ( formDTO . getBuildingId ( ) ) ;
icBuildingDTO . setCustomerId ( customerId ) ;
icBuildingService . update ( icBuildingDTO ) ;
//更新楼宇单元
//如果楼宇单元大于之前的楼宇单元,新增单元
Integer nowUnit = formDTO . getTotalUnitNum ( ) ;
Integer nowUnit = formDTO . getTotalUnitNum ( ) ;
Integer unit = icBuilding . getTotalUnitNum ( ) ;
if ( nowUnit < unit ) {
if ( nowUnit < unit ) {
//如果小于,判断是否存在房屋,如果存在就提示不能更改
throw new EpmetException ( EpmetErrorCode . ORG_EDIT_FAILED . getCode ( ) , EpmetErrorCode . ORG_EDIT_FAILED . getMsg ( ) , "暂不支持单元号减小" ) ;
} else {
throw new EpmetException ( EpmetErrorCode . ORG_EDIT_FAILED . getCode ( ) , EpmetErrorCode . ORG_EDIT_FAILED . getMsg ( ) , "暂不支持单元号减小" ) ;
} else {
//新增单元
List < OptionResultDTO > units = icBuildingUnitService . getUnitOptions ( icBuilding . getId ( ) ) ;
Map < String , String > unitMap = units . stream ( ) . collect ( Collectors . toMap ( OptionResultDTO : : getCode , OptionResultDTO : : getLabel ) ) ;
@ -589,6 +482,7 @@ public class BuildingServiceImpl implements BuildingService {
/ * *
* 删除
*
* @param buildingId
* /
@Override
@ -596,13 +490,13 @@ public class BuildingServiceImpl implements BuildingService {
public void delBuilding ( String buildingId ) {
//如果存在房屋,无法删除
List < IcHouseEntity > icHouseEntities = icHouseDao . selectList ( new QueryWrapper < IcHouseEntity > ( ) . lambda ( ) . eq ( IcHouseEntity : : getBuildingId , buildingId ) ) ;
if ( ! CollectionUtils . isEmpty ( icHouseEntities ) ) {
throw new RenException ( EpmetErrorCode . ORG_DEL_FAILED . getCode ( ) , "楼栋单元下存在房屋,无法删除" ) ;
if ( ! CollectionUtils . isEmpty ( icHouseEntities ) ) {
throw new RenException ( EpmetErrorCode . ORG_DEL_FAILED . getCode ( ) , "楼栋单元下存在房屋,无法删除" ) ;
}
//删除楼宇
icBuildingService . deleteById ( buildingId ) ;
//删除楼宇单元
icBuildingUnitDao . delete ( new QueryWrapper < IcBuildingUnitEntity > ( ) . lambda ( ) . eq ( IcBuildingUnitEntity : : getBuildingId , buildingId ) ) ;
icBuildingUnitDao . delete ( new QueryWrapper < IcBuildingUnitEntity > ( ) . lambda ( ) . eq ( IcBuildingUnitEntity : : getBuildingId , buildingId ) ) ;
}