Browse Source

批量删除物业:/gov/org/propertymanagement/delete-batch

master
yinzuomei 2 years ago
parent
commit
de6311a50b
  1. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java
  2. 6
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java
  3. 49
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java

@ -144,14 +144,19 @@ public class PropertyManagementController implements ResultDataResolver {
}
/**
* 物业批量删除
* 物业管理-批量删除
*
* @param ids
* @return
* @return 返回失败的id列表
*/
@PostMapping("delete-batch")
public Result deleteBatch( @RequestBody List<String> ids) {
public Result<List<String>> deleteBatch(@RequestBody List<String> ids) {
if (CollectionUtils.isNotEmpty(ids)) {
propertyManagementService.deleteBatch(ids);
List<String> failedIdList = propertyManagementService.deleteBatch(ids);
Result result = new Result<List<String>>().ok(failedIdList);
result.setMsg("部门物业删除失败");
result.setCode(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode());
return result;
}
return new Result();
}

6
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java

@ -42,7 +42,7 @@ public interface PropertyManagementService {
* 物业管理批量删除
* @param id
*/
void delete(String id);
Boolean delete(String id);
/**
* 物业管理-列表查询
@ -75,7 +75,9 @@ public interface PropertyManagementService {
/**
* 物业管理批量删除
*
* @param ids
* @return 返回失败的id列表
*/
void deleteBatch(List<String> ids);
List<String> deleteBatch(List<String> ids);
}

49
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java

@ -177,42 +177,59 @@ public class PropertyManagementServiceImpl implements PropertyManagementService
/**
* 单个删除
*
* @param id
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String id) {
LambdaQueryWrapper<IcNeighborHoodPropertyEntity> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,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;
}

Loading…
Cancel
Save