Jelajahi Sumber

feat(property): 添加设备和房屋信息的批量删除功能

- 在 ADeviceInfoService 和 ASimplifiedHouseInfoService 接口中添加了 removeBatchId 方法
- 实现了批量删除设备信息和房屋信息的功能,包括相关联的维修记录、租户、合同等
- 优化了 EEnterpriseBasicInfoController 中的 API 文档注释
林仔 10 bulan lalu
induk
melakukan
293a7a4510

+ 8 - 10
src/main/java/com/zksy/controller/info/EEnterpriseBasicInfoController.java

@@ -1,8 +1,6 @@
 package com.zksy.controller.info;
 
-import com.zksy.info.domain.EDepartmentEmployeeStats;
 import com.zksy.info.domain.EEnterpriseBasicInfo;
-import com.zksy.info.service.EDepartmentEmployeeStatsService;
 import com.zksy.info.service.EEnterpriseBasicInfoService;
 import com.zksy.utils.AjaxResult;
 import com.zksy.utils.ExcelExportUtil;
@@ -26,38 +24,38 @@ import java.util.Arrays;
  */
 @RestController
 @RequestMapping("/eenterpriseBasicInfo")
-@Api(tags = "企业信息信息",description = "企业信息信息desc")
+@Api(tags = "企业信息",description = "企业信息desc")
 public class EEnterpriseBasicInfoController {
     @Autowired
     private EEnterpriseBasicInfoService service;
     @GetMapping("/findByPage")
-    @ApiOperation(value = "企业信息信息查询分页")
+    @ApiOperation(value = "企业信息查询分页")
     public AjaxResult findByPage(long pageNum, long pageSize, String enterpriseName,String unifiedSocialCreditCode,String isAboveDesignatedSize,String isHighTech){
         return AjaxResult.success(service.findByPage(pageNum, pageSize, enterpriseName, unifiedSocialCreditCode, isAboveDesignatedSize, isHighTech));
     }
     @GetMapping("/getEEnterpriseBasicInfoList")
-    @ApiOperation(value = "企业信息信息查询")
+    @ApiOperation(value = "企业信息查询")
     public AjaxResult getEEnterpriseBasicInfoList(String enterpriseName,String unifiedSocialCreditCode,String isAboveDesignatedSize,String isHighTech){
         return AjaxResult.success(service.getEEnterpriseBasicInfoList(enterpriseName, unifiedSocialCreditCode, isAboveDesignatedSize, isHighTech));
     }
     @GetMapping("/getById/{id}")
-    @ApiOperation(value = "根据Id查询企业信息信息")
+    @ApiOperation(value = "根据Id查询企业信息")
     public AjaxResult getById(@PathVariable String id){
         return AjaxResult.success(service.getById(id));
     }
     @PostMapping("/save")
-    @ApiOperation(value = "企业信息信息保存")
+    @ApiOperation(value = "企业信息保存")
     public AjaxResult save(@RequestBody EEnterpriseBasicInfo entity) {
         return service.save(entity) ? AjaxResult.success(entity): AjaxResult.error("保存失败");
     }
     @PostMapping("/update")
-    @ApiOperation(value = "企业信息信息修改")
+    @ApiOperation(value = "企业信息修改")
     public AjaxResult update(@RequestBody EEnterpriseBasicInfo entity) {
         entity.setUpdateTime(LocalDateTime.now());
         return service.updateById(entity) ? AjaxResult.success(entity): AjaxResult.error("修改失败");
     }
     @PostMapping("/deleteBatch")
-    @ApiOperation(value = "企业信息信息删除")
+    @ApiOperation(value = "企业信息删除")
     public AjaxResult delete(@RequestBody String[] ids) {
         return service.removeBatchByIds(Arrays.asList(ids)) ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败");
     }
@@ -69,7 +67,7 @@ public class EEnterpriseBasicInfoController {
     @GetMapping("/exportData")
     @ApiOperation(value = "导出数据")
     public void exportData(HttpServletResponse response,String enterpriseName,String unifiedSocialCreditCode,String isAboveDesignatedSize,String isHighTech) {
-        ExcelExportUtil.exportExcel(response,service.getEEnterpriseBasicInfoList(enterpriseName, unifiedSocialCreditCode, isAboveDesignatedSize, isHighTech), EEnterpriseBasicInfo.class, "企业信息信息","企业信息信息");
+        ExcelExportUtil.exportExcel(response,service.getEEnterpriseBasicInfoList(enterpriseName, unifiedSocialCreditCode, isAboveDesignatedSize, isHighTech), EEnterpriseBasicInfo.class, "企业信息","企业信息");
     }
 
 }

+ 1 - 0
src/main/java/com/zksy/property/service/ADeviceInfoService.java

@@ -16,4 +16,5 @@ public interface ADeviceInfoService extends IService<ADeviceInfo> {
     List<ADeviceInfo> getADeviceInfoList(String deviceName,String deviceType,String deviceNumber);
 
     List<ADeviceInfo> getBySimplifiedHouseId(String simplifiedHouseId);
+    boolean removeBatchId(String[] ids);
 }

+ 3 - 2
src/main/java/com/zksy/property/service/ASimplifiedHouseInfoService.java

@@ -1,11 +1,10 @@
 package com.zksy.property.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.controller.property.dto.ASimplifiedHouseInfoDto;
 import com.zksy.controller.property.vo.ASimplifiedHouseInfoVo;
 import com.zksy.property.domain.ASimplifiedHouseInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.zksy.property.domain.ASimplifiedHouseInfo;
 import com.zksy.property.domain.vo.HouseInfoVo;
 
 import java.util.List;
@@ -21,4 +20,6 @@ public interface ASimplifiedHouseInfoService extends IService<ASimplifiedHouseIn
     List<ASimplifiedHouseInfoVo> getList(ASimplifiedHouseInfoDto entity);
 
     HouseInfoVo getHouseDetailInfo(String simplifiedHouseId);
+
+    boolean removeBatchId(String[] ids);
 }

+ 24 - 0
src/main/java/com/zksy/property/service/impl/ADeviceInfoServiceImpl.java

@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.property.domain.ADeviceInfo;
+import com.zksy.property.domain.AMaintenanceRecords;
 import com.zksy.property.mapper.ADeviceInfoMapper;
 import com.zksy.property.service.ADeviceInfoService;
+import com.zksy.property.service.AMaintenanceRecordsService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -18,6 +22,8 @@ import java.util.List;
 @Service
 public class ADeviceInfoServiceImpl extends ServiceImpl<ADeviceInfoMapper, ADeviceInfo>
     implements ADeviceInfoService{
+    @Autowired
+    private AMaintenanceRecordsService aMaintenanceRecordsService;
 
     @Override
     public Page<ADeviceInfo> findByPage(long pageNum, long pageSize, String deviceName, String deviceType, String deviceNumber) {
@@ -46,6 +52,24 @@ public class ADeviceInfoServiceImpl extends ServiceImpl<ADeviceInfoMapper, ADevi
         queryWrapper.eq(ADeviceInfo::getSimplifiedHouseId,simplifiedHouseId);
         return this.list(queryWrapper);
     }
+
+    @Override
+    @Transactional
+    public boolean removeBatchId(String[] ids) {
+        for (String id : ids) {
+            //维修
+            List<AMaintenanceRecords> maintenanceRecords = aMaintenanceRecordsService.getByDeviceId(id);
+            if(maintenanceRecords != null && maintenanceRecords.size() > 0){
+                //删除维修记录
+                aMaintenanceRecordsService.removeBatchByIds(List.of(maintenanceRecords.stream().map(AMaintenanceRecords::getId).toArray(String[]::new)));
+            }
+            ADeviceInfo deviceInfo = this.getById(id);
+            if(deviceInfo != null){
+                this.removeById(id);
+            }
+        }
+        return false;
+    }
 }
 
 

+ 43 - 4
src/main/java/com/zksy/property/service/impl/ASimplifiedHouseInfoServiceImpl.java

@@ -3,17 +3,16 @@ package com.zksy.property.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zksy.property.domain.*;
-import com.zksy.property.domain.vo.HouseInfoVo;
 import com.zksy.controller.property.dto.ASimplifiedHouseInfoDto;
 import com.zksy.controller.property.vo.ASimplifiedHouseInfoVo;
-import com.zksy.property.domain.ASimplifiedHouseInfo;
-import com.zksy.property.service.ASimplifiedHouseInfoService;
+import com.zksy.property.domain.*;
+import com.zksy.property.domain.vo.HouseInfoVo;
 import com.zksy.property.mapper.ASimplifiedHouseInfoMapper;
 import com.zksy.property.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
@@ -96,6 +95,46 @@ public class ASimplifiedHouseInfoServiceImpl extends ServiceImpl<ASimplifiedHous
         return vo;
     }
 
+    @Override
+    @Transactional
+    public boolean removeBatchId(String[] ids) {
+        try {
+            for (String id : ids) {
+                //设备
+                List<ADeviceInfo> deviceInfos = aDeviceInfoService.getBySimplifiedHouseId(id);
+                if(deviceInfos != null && deviceInfos.size() > 0){
+                    throw new RuntimeException("该房屋已绑定设备,请先删除设备");
+                }
+                //租户
+                ATenantInfo tenantInfos = aTenantInfoService.getBySimplifiedHouseId(id);
+                if(tenantInfos != null){
+                    throw new RuntimeException("该房屋已绑定租户,请先删除租户");
+                }
+                //合同
+                AContractInfo contractInfo = aContractInfoService.getBySimplifiedHouseId(id);
+                if(contractInfo != null){
+                    throw new RuntimeException("该房屋已绑定合同,请先删除合同");
+                }
+                //房屋详细信息
+                AHouseInfoDetail houseInfoDetail = aHouseInfoDetailService.getBySimplifiedHouseId(id);
+                if(houseInfoDetail != null){
+                    boolean remove = aHouseInfoDetailService.removeById(houseInfoDetail.getId());
+                    if (!remove) {
+                        throw new RuntimeException("删除失败");
+                    }
+                }
+                boolean remove = this.removeById(id);
+                if (!remove) {
+                    throw new RuntimeException("删除失败");
+                }
+                return true;
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return false;
+    }
+
     // 构建房屋详细信息
     private HouseInfoVo.HouseInfo buildHouseInfo(ASimplifiedHouseInfo houseInfo, AHouseInfoDetail detail) {
         HouseInfoVo.HouseInfo info = new HouseInfoVo.HouseInfo();