瀏覽代碼

小区与房间有关联就不能删

qinhouyu 1 年之前
父節點
當前提交
483a43e246

+ 22 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZAreaController.java

@@ -4,8 +4,10 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import com.ruoyi.zdsz.service.*;
 import lombok.RequiredArgsConstructor;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
 
@@ -24,7 +26,6 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.zdsz.domain.vo.ZAreaVo;
 import com.ruoyi.zdsz.domain.bo.ZAreaBo;
-import com.ruoyi.zdsz.service.IZAreaService;
 import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
@@ -40,7 +41,12 @@ import com.ruoyi.common.core.page.TableDataInfo;
 public class ZAreaController extends BaseController {
 
     private final IZAreaService iZAreaService;
-
+    @Resource
+    private IZBuildingService buildingService;
+    @Resource
+    private IZEngineeringCivilService civilService;
+    @Resource
+    private IZEngineeringMaterialsResetsService materialsResetsService;
     /**
      * 小区下拉
      *
@@ -113,7 +119,20 @@ public class ZAreaController extends BaseController {
     @SaCheckPermission("zdsz:area:remove")
     @Log(title = "小区管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) {
+    public R remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) {
+        //是否需要校验
+        int i = buildingService.getBuildingListByAreaId(Arrays.asList(ids));
+        if (i>0){
+            return R.fail("小区已关联楼栋不能删除!");
+        }
+        int j = civilService.getCivilByAreaId(Arrays.asList(ids));
+        if (j>0){
+            return R.fail("小区已关联民用工程不能删除!");
+        }
+        int k = materialsResetsService.getMaterialByAreaId(Arrays.asList(ids));
+        if (k>0){
+            return R.fail("小区已关联用料统计不能删除!");
+        }
         return toAjax(iZAreaService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
 }

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZHouseController.java

@@ -4,7 +4,10 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import com.ruoyi.zdsz.service.IZEngineeringCivilService;
 import lombok.RequiredArgsConstructor;
+
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
@@ -39,6 +42,9 @@ public class ZHouseController extends BaseController {
 
     private final IZHouseService iZHouseService;
 
+    @Resource
+    private IZEngineeringCivilService civilService;
+
     /**
      * 查询房间管理列表
      */
@@ -103,6 +109,11 @@ public class ZHouseController extends BaseController {
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
                           @PathVariable String[] ids) {
+        //是否需要校验
+        int i = civilService.getCivilByhouseId(Arrays.asList(ids));
+        if (i>0) {
+            return R.fail("房间已关联民用工程不能删除!");
+        }
         return toAjax(iZHouseService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
 }

+ 3 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZBuildingService.java

@@ -20,6 +20,9 @@ public interface IZBuildingService {
 
     List<ZBuildingVo> getBuildingList(String areaId);
 
+
+    int getBuildingListByAreaId(Collection<String> ids);
+
     /**
      * 查询楼栋管理
      */

+ 4 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringCivilService.java

@@ -46,4 +46,8 @@ public interface IZEngineeringCivilService {
      * 校验并批量删除民用工程信息
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    int getCivilByAreaId(Collection<String> list);
+
+    int getCivilByhouseId(Collection<String> list);
 }

+ 2 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringMaterialsResetsService.java

@@ -46,4 +46,6 @@ public interface IZEngineeringMaterialsResetsService {
      * 校验并批量删除工程用料预设信息
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    int getMaterialByAreaId(Collection<String> list);
 }

+ 3 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZAreaServiceImpl.java

@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zdsz.service.IZBuildingService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -34,6 +35,7 @@ public class ZAreaServiceImpl implements IZAreaService {
     @Resource
     private ZAreaMapper baseMapper;
 
+
     /**
      * 小区下拉
      */
@@ -120,7 +122,7 @@ public class ZAreaServiceImpl implements IZAreaService {
     @Override
     public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
         if (isValid) {
-            //TODO 做一些业务上的校验,判断是否需要校验
+
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }

+ 9 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZBuildingServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -16,6 +17,7 @@ import com.ruoyi.zdsz.domain.ZBuilding;
 import com.ruoyi.zdsz.mapper.ZBuildingMapper;
 import com.ruoyi.zdsz.service.IZBuildingService;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -40,6 +42,13 @@ public class ZBuildingServiceImpl implements IZBuildingService {
         return baseMapper.getBuildingList(areaId);
     }
 
+    @Override
+    public int getBuildingListByAreaId(Collection<String> ids) {
+        LambdaQueryWrapper<ZBuilding> lqw = Wrappers.lambdaQuery();
+        lqw.in(!ids.isEmpty(), ZBuilding::getAreaId, ids);
+        return baseMapper.selectVoList(lqw).size();
+    }
+
     /**
      * 查询楼栋管理列表
      */

+ 15 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringCivilServiceImpl.java

@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zdsz.domain.ZBuilding;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
@@ -115,4 +116,18 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    @Override
+    public int getCivilByAreaId(Collection<String> ids) {
+        LambdaQueryWrapper<ZEngineeringCivil> lqw = Wrappers.lambdaQuery();
+        lqw.in(!ids.isEmpty(), ZEngineeringCivil::getAreaId, ids);
+        return baseMapper.selectVoList(lqw).size();
+    }
+
+    @Override
+    public int getCivilByhouseId(Collection<String> ids) {
+        LambdaQueryWrapper<ZEngineeringCivil> lqw = Wrappers.lambdaQuery();
+        lqw.in(!ids.isEmpty(), ZEngineeringCivil::getHouseId, ids);
+        return baseMapper.selectVoList(lqw).size();
+    }
 }

+ 9 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringMaterialsResetsServiceImpl.java

@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zdsz.domain.ZEngineeringMaterial;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringMaterialsResetsBo;
@@ -110,4 +111,12 @@ public class ZEngineeringMaterialsResetsServiceImpl implements IZEngineeringMate
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+
+    @Override
+    public int getMaterialByAreaId(Collection<String> ids) {
+        LambdaQueryWrapper<ZEngineeringMaterialsResets> lqw = Wrappers.lambdaQuery();
+        lqw.in(!ids.isEmpty(), ZEngineeringMaterialsResets::getAreaId, ids);
+        return baseMapper.selectVoList(lqw).size();
+    }
 }

+ 20 - 20
ruoyi-zdsz/src/main/resources/mapper/zdsz/zdsz/ZHouseMapper.xml

@@ -20,27 +20,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="getPageList" resultType="com.ruoyi.zdsz.domain.vo.ZHouseVo">
         SELECT
-            zh.*,zt.name unitName,zb.name buildingName,za.name areaName
+            zh.*,
+            zt.NAME AS unitName,
+            zb.NAME AS buildingName,
+            za.NAME AS areaName
         FROM
-            (
-                select a.* from z_house as a
-                <where>
-                    a.del_flag = '0'
-                    <if test="p.areaId != null  and p.areaId != ''">
-                        and a.area_id = #{p.areaId}
-                    </if>
-                    <if test="p.buildingId != null  and p.buildingId != ''">
-                        and a.building_id = #{p.buildingId}
-                    </if>
-                    <if test="p.unitId != null  and p.unitId != ''">
-                        and a.unit_id = #{p.unitId}
-                    </if>
-                </where>
-
-        ) as zh
-                LEFT JOIN z_unit as zt on zh.unit_id = zt.id
-                LEFT JOIN z_building as zb on zt.building_id = zb.id
-                LEFT JOIN z_area as za on zb.area_id = za.id
+            z_house AS zh
+                LEFT JOIN z_unit AS zt ON zh.unit_id = zt.id
+                LEFT JOIN z_building AS zb ON zt.building_id = zb.id
+                LEFT JOIN z_area AS za ON zb.area_id = za.id
+        <where>
+            zh.del_flag = '0'
+            <if test="p.areaId != null  and p.areaId != ''">
+                and zh.area_id = #{p.areaId}
+            </if>
+            <if test="p.buildingId != null  and p.buildingId != ''">
+                and zh.building_id = #{p.buildingId}
+            </if>
+            <if test="p.unitId != null  and p.unitId != ''">
+                and zh.unit_id = #{p.unitId}
+            </if>
+        </where>
     </select>
 
 </mapper>