|
|
@ -177,42 +177,59 @@ public class PropertyManagementServiceImpl implements PropertyManagementService |
|
|
|
|
|
|
|
/** |
|
|
|
* 单个删除 |
|
|
|
* |
|
|
|
* @param id |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void delete(String id) { |
|
|
|
public Boolean delete(String id) { |
|
|
|
Boolean delResFlag=true; |
|
|
|
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); |
|
|
|
// 查询当前物业,在本组织及下级范围内,管理的小区
|
|
|
|
List<IcNeighborHoodDTO> originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id, staffInfoCacheResult.getAgencyId()); |
|
|
|
// 如果存在记录,则解除物业与小区关联关系
|
|
|
|
originNeighborHoodList.forEach(origin -> { |
|
|
|
LambdaUpdateWrapper<IcNeighborHoodPropertyEntity> updateWrapper1 = new LambdaUpdateWrapper<>(); |
|
|
|
updateWrapper1.eq(IcNeighborHoodPropertyEntity::getPropertyId, id) |
|
|
|
.eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, origin.getId()) |
|
|
|
.set(IcNeighborHoodPropertyEntity::getDelFlag, NumConstant.ONE_STR) |
|
|
|
.set(IcNeighborHoodPropertyEntity::getUpdatedTime, new Date()) |
|
|
|
.set(IcNeighborHoodPropertyEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); |
|
|
|
icNeighborHoodPropertyDao.update(null, updateWrapper1); |
|
|
|
}); |
|
|
|
// 再查询是否存在其他组织下的小区,与该物业有关联,存在则不允许删除
|
|
|
|
LambdaQueryWrapper<IcNeighborHoodPropertyEntity> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); |
|
|
|
if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业存在与小区关联,无法删除","已与小区关联,无法删除"); |
|
|
|
delResFlag=false; |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前物业已与其他组织下的小区关联,无法删除", "当前物业已与其他组织下的小区关联,无法删除"); |
|
|
|
} |
|
|
|
// 删除物业表
|
|
|
|
icPropertyManagementDao.deleteById(id); |
|
|
|
return delResFlag; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 物业管理批量删除 |
|
|
|
* |
|
|
|
* @param ids |
|
|
|
* @return 返回失败的id列表 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void deleteBatch(List<String> ids) { |
|
|
|
public List<String> deleteBatch(List<String> ids) { |
|
|
|
if (CollectionUtils.isEmpty(ids)) { |
|
|
|
return; |
|
|
|
return new ArrayList<>(); |
|
|
|
} |
|
|
|
int failedNum = NumConstant.ZERO; |
|
|
|
List<String> failedIdList = new ArrayList<>(); |
|
|
|
for (String id : ids) { |
|
|
|
LambdaQueryWrapper<IcNeighborHoodPropertyEntity> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); |
|
|
|
if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { |
|
|
|
failedNum += 1; |
|
|
|
} else { |
|
|
|
icPropertyManagementDao.deleteById(id); |
|
|
|
} |
|
|
|
Boolean res = delete(id); |
|
|
|
if (!res) { |
|
|
|
failedIdList.add(id); |
|
|
|
} |
|
|
|
if (failedNum > NumConstant.ZERO) { |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业存在与小区关联,无法删除", String.format("%s个物业已与小区关联,无法批量删除,请先解除与小区关联关系", failedNum)); |
|
|
|
} |
|
|
|
return failedIdList; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|