From de6311a50b1e8451f9d6eb8d3dd9854617a19c30 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 13:16:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E7=89=A9?= =?UTF-8?q?=E4=B8=9A=EF=BC=9A/gov/org/propertymanagement/delete-batch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PropertyManagementController.java | 13 +++-- .../service/PropertyManagementService.java | 6 ++- .../impl/PropertyManagementServiceImpl.java | 49 +++++++++++++------ 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index 4c77e5472c..50767693ed 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/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 ids) { + public Result> deleteBatch(@RequestBody List ids) { if (CollectionUtils.isNotEmpty(ids)) { - propertyManagementService.deleteBatch(ids); + List failedIdList = propertyManagementService.deleteBatch(ids); + Result result = new Result>().ok(failedIdList); + result.setMsg("部门物业删除失败"); + result.setCode(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode()); + return result; } return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index ccd2b27a38..3f50a0658c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/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 ids); + List deleteBatch(List ids); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 3e34e3c845..d91fb52d38 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/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 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 originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id, staffInfoCacheResult.getAgencyId()); + // 如果存在记录,则解除物业与小区关联关系 + originNeighborHoodList.forEach(origin -> { + LambdaUpdateWrapper 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 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 ids) { + public List deleteBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { - return; + return new ArrayList<>(); } - int failedNum = NumConstant.ZERO; + List failedIdList = new ArrayList<>(); for (String id : ids) { - LambdaQueryWrapper 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; }