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 * @param ids
* @return * @return 返回失败的id列表
*/ */
@PostMapping("delete-batch") @PostMapping("delete-batch")
public Result deleteBatch( @RequestBody List<String> ids) { public Result<List<String>> deleteBatch(@RequestBody List<String> ids) {
if (CollectionUtils.isNotEmpty(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(); 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 * @param id
*/ */
void delete(String id); Boolean delete(String id);
/** /**
* 物业管理-列表查询 * 物业管理-列表查询
@ -75,7 +75,9 @@ public interface PropertyManagementService {
/** /**
* 物业管理批量删除 * 物业管理批量删除
*
* @param ids * @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 * @param id
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delete(String id) { public Boolean delete(String id) {
LambdaQueryWrapper<IcNeighborHoodPropertyEntity> queryWrapper=new LambdaQueryWrapper<>(); Boolean delResFlag=true;
queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,id); 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) { 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); icPropertyManagementDao.deleteById(id);
return delResFlag;
} }
/** /**
* 物业管理批量删除 * 物业管理批量删除
*
* @param ids * @param ids
* @return 返回失败的id列表
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteBatch(List<String> ids) { public List<String> deleteBatch(List<String> ids) {
if (CollectionUtils.isEmpty(ids)) { if (CollectionUtils.isEmpty(ids)) {
return; return new ArrayList<>();
} }
int failedNum = NumConstant.ZERO; List<String> failedIdList = new ArrayList<>();
for (String id : ids) { for (String id : ids) {
LambdaQueryWrapper<IcNeighborHoodPropertyEntity> queryWrapper = new LambdaQueryWrapper<>(); Boolean res = delete(id);
queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); if (!res) {
if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { failedIdList.add(id);
failedNum += 1;
} else {
icPropertyManagementDao.deleteById(id);
} }
} }
if (failedNum > NumConstant.ZERO) { return failedIdList;
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业存在与小区关联,无法删除", String.format("%s个物业已与小区关联,无法批量删除,请先解除与小区关联关系", failedNum));
}
} }

Loading…
Cancel
Save