From 90f0ddbff1c8d32b60b76cd0bccbf23aa287e12b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:18:11 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/excel/yt/IcPropertyManagementImportExcelData.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java index 55196ffa18..cf9ad9d66b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java @@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; +import javax.validation.constraints.NotBlank; + /** * @Description * @Author yzm @@ -14,6 +16,7 @@ public class IcPropertyManagementImportExcelData { /** * 物业名称 */ + @NotBlank(message = "物业名称必填") @ExcelProperty(value = "*物业名称") private String name; From 73a98fe99edde529a4ee11a46f0d72f7a37cacf8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:23:29 +0800 Subject: [PATCH 2/6] /gov/org/communityBuildingManager/import --- .../epmet/constants/ImportTaskConstants.java | 5 ++ .../CommunityBuildingManagerController.java | 60 ++++++++++++++++++- .../CommunityBuildingManagerService.java | 3 + .../CommunityBuildingManagerServiceImpl.java | 39 ++++++++---- 4 files changed, 96 insertions(+), 11 deletions(-) diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java index f7b664de4b..f25fd4269a 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java @@ -88,4 +88,9 @@ public interface ImportTaskConstants { * 物业表:ic_property_management */ String IC_PROPERTY_MANAGEMENT="ic_property_management"; + + /** + * 楼长单元长 + */ + String COMMUNITY_BUILDING_MANAGER="community_building_manager"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 4378e9bf8b..21f5cbfca9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -10,19 +10,26 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO; import com.epmet.dto.result.CommunityBuildingManagerDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO; import com.epmet.service.CommunityBuildingManagerService; +import com.epmet.utils.ImportTaskUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.IndexedColors; @@ -31,15 +38,19 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.URLEncoder; +import java.nio.file.Path; import java.util.Date; import java.util.List; +import java.util.UUID; /** @@ -51,7 +62,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("communityBuildingManager") -public class CommunityBuildingManagerController { +public class CommunityBuildingManagerController implements ResultDataResolver { @Autowired private CommunityBuildingManagerService communityBuildingManagerService; @@ -207,6 +218,53 @@ public class CommunityBuildingManagerController { } } + /** + * 导入excel + * + * @return + */ + @PostMapping("import") + public Result importExcel(MultipartFile file) { + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); + + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER, "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【楼长单元长导入】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); + } + + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER + "表 importExcel exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + + // 2.生成导入任务记录 + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException( + ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.COMMUNITY_BUILDING_MANAGER), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "楼长单元长导入excel错误", + "楼长单元长导入excel错误"); + + // 3.执行导入 + communityBuildingManagerService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); + return new Result(); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java index b67d4d0d35..eb32743443 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java @@ -7,6 +7,7 @@ import com.epmet.dto.result.CommunityBuildingManagerDTO; import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO; import com.epmet.entity.CommunityBuildingManagerEntity; +import java.nio.file.Path; import java.util.List; /** @@ -63,4 +64,6 @@ public interface CommunityBuildingManagerService extends BaseService ids); + + void execAsyncExcelImport(Path fileSavePath, String taskId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java index 9f8e9bbf09..817d435c9b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java @@ -22,11 +22,14 @@ import com.epmet.service.CommunityBuildingManagerService; import com.epmet.service.CustomerGridService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.nio.file.Path; import java.util.List; /** @@ -35,6 +38,7 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2023-05-06 */ +@Slf4j @Service public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl implements CommunityBuildingManagerService { @@ -67,7 +71,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl pageInfo = new PageInfo<>(resList); - return new PageData<>(resList, pageInfo.getTotal(),formDTO.getPageSize()); + return new PageData<>(resList, pageInfo.getTotal(), formDTO.getPageSize()); } /** @@ -108,7 +112,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl countQuery=new LambdaQueryWrapper<>(); - countQuery.eq(CommunityBuildingManagerEntity::getType,type) - .eq(CommunityBuildingManagerEntity::getBuildingId,buildingId) - .eq(StringUtils.isNotBlank(unitId),CommunityBuildingManagerEntity::getUnitId,unitId) - .ne(StringUtils.isNotBlank(id),CommunityBuildingManagerEntity::getId,id); - if(baseDao.selectCount(countQuery)>NumConstant.ZERO){ - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"所选楼栋(单元)已存在楼长(单元长)","所选楼栋(单元)已存在楼长(单元长)"); + LambdaQueryWrapper countQuery = new LambdaQueryWrapper<>(); + countQuery.eq(CommunityBuildingManagerEntity::getType, type) + .eq(CommunityBuildingManagerEntity::getBuildingId, buildingId) + .eq(StringUtils.isNotBlank(unitId), CommunityBuildingManagerEntity::getUnitId, unitId) + .ne(StringUtils.isNotBlank(id), CommunityBuildingManagerEntity::getId, id); + if (baseDao.selectCount(countQuery) > NumConstant.ZERO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选楼栋(单元)已存在楼长(单元长)", "所选楼栋(单元)已存在楼长(单元长)"); } } @@ -138,7 +142,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl Date: Tue, 9 May 2023 12:27:11 +0800 Subject: [PATCH 3/6] =?UTF-8?q?/gov/org/communityBuildingManager/import,?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E5=BE=85=E7=BB=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommunityBuildingManagerController.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 21f5cbfca9..01e62c31f4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -10,26 +10,20 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; -import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO; import com.epmet.dto.result.CommunityBuildingManagerDTO; -import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO; import com.epmet.service.CommunityBuildingManagerService; -import com.epmet.utils.ImportTaskUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.IndexedColors; @@ -42,15 +36,12 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.URLEncoder; -import java.nio.file.Path; import java.util.Date; import java.util.List; -import java.util.UUID; /** @@ -225,7 +216,8 @@ public class CommunityBuildingManagerController implements ResultDataResolver { */ @PostMapping("import") public Result importExcel(MultipartFile file) { - // 1.暂存文件 + return new Result(); + /*// 1.暂存文件 String originalFilename = file.getOriginalFilename(); String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); @@ -263,7 +255,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver { // 3.执行导入 communityBuildingManagerService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); - return new Result(); + return new Result();*/ } From dd8eb84ecbe9484b9776c9b90802c31bd88891c9 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:33:50 +0800 Subject: [PATCH 4/6] =?UTF-8?q?/gov/org/communityBuildingManager/import,?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E5=BE=85=E7=BB=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/CommunityBuildingManagerController.java | 2 +- .../java/com/epmet/controller/PropertyManagementController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 01e62c31f4..7c4f1fef3c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -215,7 +215,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver { * @return */ @PostMapping("import") - public Result importExcel(MultipartFile file) { + public Result importExcel(@RequestPart("file") MultipartFile file) { return new Result(); /*// 1.暂存文件 String originalFilename = file.getOriginalFilename(); 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 c3bff703b0..9adff02f7f 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 @@ -239,7 +239,7 @@ public class PropertyManagementController implements ResultDataResolver { * @return */ @PostMapping("import") - public Result importExcel(MultipartFile file) { + public Result importExcel(@RequestPart("file") MultipartFile file) { // 1.暂存文件 String originalFilename = file.getOriginalFilename(); String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); From e46992190554c6a7797bad2d7d8a1faf20034240 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:58:07 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=89=A9=E4=B8=9A=EF=BC=9A/gov/org/propertymanagement/delete-b?= =?UTF-8?q?atch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PropertyManagementController.java | 15 +++++++- .../service/PropertyManagementService.java | 12 ++++++- .../impl/PropertyManagementServiceImpl.java | 34 ++++++++++++++++--- 3 files changed, 55 insertions(+), 6 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 9adff02f7f..4c77e5472c 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 @@ -139,7 +139,20 @@ public class PropertyManagementController implements ResultDataResolver { public Result delete(@RequestBody IcPropertyManagementFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(formDTO, IcPropertyManagementFormDTO.DeleteGroup.class); - propertyManagementService.delete(formDTO); + propertyManagementService.delete(formDTO.getId()); + return new Result(); + } + + /** + * 物业批量删除 + * @param ids + * @return + */ + @PostMapping("delete-batch") + public Result deleteBatch( @RequestBody List ids) { + if (CollectionUtils.isNotEmpty(ids)) { + propertyManagementService.deleteBatch(ids); + } 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 301b730072..ccd2b27a38 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 @@ -38,7 +38,11 @@ public interface PropertyManagementService { String add(IcPropertyManagementFormDTO formDTO); void update(IcPropertyManagementFormDTO formDTO); - void delete(IcPropertyManagementFormDTO formDTO); + /** + * 物业管理批量删除 + * @param id + */ + void delete(String id); /** * 物业管理-列表查询 @@ -68,4 +72,10 @@ public interface PropertyManagementService { * @param taskId */ void execAsyncExcelImport(Path fileSavePath, String taskId); + + /** + * 物业管理批量删除 + * @param ids + */ + void 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 77f30363d4..3e34e3c845 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,19 +177,45 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 单个删除 - * @param formDTO + * @param id */ @Override @Transactional(rollbackFor = Exception.class) - public void delete(IcPropertyManagementFormDTO formDTO) { + public void delete(String id) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,formDTO.getId()); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,id); if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业存在与小区关联,无法删除","已与小区关联,无法删除"); } - icPropertyManagementDao.deleteById(formDTO.getId()); + icPropertyManagementDao.deleteById(id); } + /** + * 物业管理批量删除 + * @param ids + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(List ids) { + if (CollectionUtils.isEmpty(ids)) { + return; + } + int failedNum = NumConstant.ZERO; + for (String id : ids) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); + if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { + failedNum += 1; + } else { + icPropertyManagementDao.deleteById(id); + } + } + if (failedNum > NumConstant.ZERO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业存在与小区关联,无法删除", String.format("%s个物业已与小区关联,无法批量删除,请先解除与小区关联关系", failedNum)); + } + } + + /** * 物业管理-列表查询 * 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 6/6] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=89=A9=E4=B8=9A=EF=BC=9A/gov/org/propertymanagement/delete-b?= =?UTF-8?q?atch?= 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; }