瀏覽代碼

小区添加下拉接口
楼宇添加下拉接口
楼宇修改查询接口

JX.Li 1 年之前
父節點
當前提交
51dad3a170

+ 15 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZAreaController.java

@@ -5,8 +5,10 @@ import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
 import lombok.RequiredArgsConstructor;
+
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
+
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -40,6 +42,17 @@ public class ZAreaController extends BaseController {
     private final IZAreaService iZAreaService;
 
     /**
+     * 小区下拉
+     *
+     * @return
+     */
+    @GetMapping("/getAreaList")
+    public R getArea(String district) {
+        return R.ok(iZAreaService.getArea(district));
+    }
+
+
+    /**
      * 查询小区管理列表
      */
     @SaCheckPermission("zdsz:area:list")
@@ -66,8 +79,7 @@ public class ZAreaController extends BaseController {
      */
     @SaCheckPermission("zdsz:area:query")
     @GetMapping("/{id}")
-    public R<ZAreaVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable String id) {
+    public R<ZAreaVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable String id) {
         return R.ok(iZAreaService.queryById(id));
     }
 
@@ -101,8 +113,7 @@ 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<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) {
         return toAjax(iZAreaService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
 }

+ 10 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZBuildingController.java

@@ -40,12 +40,21 @@ public class ZBuildingController extends BaseController {
     private final IZBuildingService iZBuildingService;
 
     /**
+     * 小区下拉
+     * @return
+     */
+    @GetMapping("/getBuildingList")
+    public R getBuildingList(String areaId) {
+        return R.ok(iZBuildingService.getBuildingList(areaId));
+    }
+
+    /**
      * 查询楼栋管理列表
      */
     @SaCheckPermission("zdsz:building:list")
     @GetMapping("/list")
     public TableDataInfo<ZBuildingVo> list(ZBuildingBo bo, PageQuery pageQuery) {
-        return iZBuildingService.queryPageList(bo, pageQuery);
+        return iZBuildingService.getPageList(bo, pageQuery);
     }
 
     /**

+ 156 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java

@@ -0,0 +1,156 @@
+package com.ruoyi.common.core.page;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 分页 Page 增强对象
+ *
+ * @param <T> 数据库实体
+ * @param <K> vo实体
+ * @author Lion Li
+ */
+@Data
+@Accessors(chain = true)
+public class PagePlus<T,K> implements IPage<T> {
+
+    /**
+     * domain实体列表
+     */
+    private List<T> records = Collections.emptyList();
+
+    /**
+     * vo实体列表
+     */
+    private List<K> recordsVo = Collections.emptyList();
+
+    /**
+     * 总数
+     */
+    private long total = 0L;
+
+    /**
+     * 页长度
+     */
+    private long size = 10L;
+
+    /**
+     * 当前页
+     */
+    private long current = 1L;
+
+    /**
+     * 排序字段信息
+     */
+    private List<OrderItem> orders = new ArrayList<>();
+
+    /**
+     * 自动优化 COUNT SQL
+     */
+    private boolean optimizeCountSql = true;
+
+    /**
+     * 是否进行 count 查询
+     */
+    private boolean isSearchCount = true;
+
+    /**
+     * 是否命中count缓存
+     */
+    private boolean hitCount = false;
+
+    /**
+     * countId
+     */
+    private String countId;
+
+    /**
+     * 最大limit
+     */
+    private Long maxLimit;
+
+    public PagePlus() {
+    }
+
+    public PagePlus(long current, long size) {
+        this(current, size, 0L);
+    }
+
+    public PagePlus(long current, long size, long total) {
+        this(current, size, total, true);
+    }
+
+    public PagePlus(long current, long size, boolean isSearchCount) {
+        this(current, size, 0L, isSearchCount);
+    }
+
+    public PagePlus(long current, long size, long total, boolean isSearchCount) {
+        if (current > 1L) {
+            this.current = current;
+        }
+        this.size = size;
+        this.total = total;
+        this.isSearchCount = isSearchCount;
+    }
+
+    @Override
+    public String countId() {
+        return this.getCountId();
+    }
+
+    @Override
+    public Long maxLimit() {
+        return this.getMaxLimit();
+    }
+
+    public PagePlus<T, K> addOrder(OrderItem... items) {
+        this.orders.addAll(Arrays.asList(items));
+        return this;
+    }
+
+    public PagePlus<T, K> addOrder(List<OrderItem> items) {
+        this.orders.addAll(items);
+        return this;
+    }
+
+    @Override
+    public List<OrderItem> orders() {
+        return this.getOrders();
+    }
+
+    @Override
+    public boolean optimizeCountSql() {
+        return this.optimizeCountSql;
+    }
+
+	@Override
+	public long getPages() {
+		// 解决 github issues/3208
+		return IPage.super.getPages();
+	}
+
+	public static <T,K> PagePlus<T,K> of(long current, long size) {
+		return of(current, size, 0);
+	}
+
+	public static <T,K> PagePlus<T,K> of(long current, long size, long total) {
+		return of(current, size, total, true);
+	}
+
+	public static <T,K> PagePlus<T,K> of(long current, long size, boolean searchCount) {
+		return of(current, size, 0, searchCount);
+	}
+
+	public static <T,K> PagePlus<T,K> of(long current, long size, long total, boolean searchCount) {
+		return new PagePlus<>(current, size, total, searchCount);
+	}
+
+}
+

+ 147 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java

@@ -0,0 +1,147 @@
+package com.ruoyi.common.utils;
+
+import cn.hutool.http.HttpStatus;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.sql.SqlUtil;
+
+import java.util.List;
+
+/**
+ * 分页工具
+ *
+ * @author Lion Li
+ */
+public class PageUtils {
+
+    /**
+     * 当前记录起始索引
+     */
+    public static final String PAGE_NUM = "pageNum";
+
+    /**
+     * 每页显示记录数
+     */
+    public static final String PAGE_SIZE = "pageSize";
+
+    /**
+     * 排序列
+     */
+    public static final String ORDER_BY_COLUMN = "orderByColumn";
+
+    /**
+     * 排序的方向 "desc" 或者 "asc".
+     */
+    public static final String IS_ASC = "isAsc";
+
+    /**
+     * 当前记录起始索引 默认值
+     */
+    public static final int DEFAULT_PAGE_NUM = 1;
+
+    /**
+     * 每页显示记录数 默认值 默认查全部
+     */
+    public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
+
+    /**
+     * 构建 plus 分页对象
+     *
+     * @param <T> domain 实体
+     * @param <K> vo 实体
+     * @return 分页对象
+     */
+    public static <T, K> PagePlus<T, K> buildPagePlus() {
+        Integer pageNum = ServletUtils.getParameterToInt(PAGE_NUM, DEFAULT_PAGE_NUM);
+        Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE);
+        String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN);
+        String isAsc = ServletUtils.getParameter(IS_ASC);
+        if (pageNum <= 0) {
+            pageNum = DEFAULT_PAGE_NUM;
+        }
+        PagePlus<T, K> page = new PagePlus<>(pageNum, pageSize);
+        OrderItem orderItem = buildOrderItem(orderByColumn, isAsc);
+        page.addOrder(orderItem);
+        return page;
+    }
+
+    public static <T> Page<T> buildPage() {
+        return buildPage(null, null);
+    }
+
+    /**
+     * 构建 MP 普通分页对象
+     *
+     * @param <T> domain 实体
+     * @return 分页对象
+     */
+    public static <T> Page<T> buildPage(String defaultOrderByColumn, String defaultIsAsc) {
+        Integer pageNum = ServletUtils.getParameterToInt(PAGE_NUM, DEFAULT_PAGE_NUM);
+        Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE);
+        String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN, defaultOrderByColumn);
+        String isAsc = ServletUtils.getParameter(IS_ASC, defaultIsAsc);
+        if (pageNum <= 0) {
+            pageNum = DEFAULT_PAGE_NUM;
+        }
+        Page<T> page = new Page<>(pageNum, pageSize);
+        OrderItem orderItem = buildOrderItem(orderByColumn, isAsc);
+        page.addOrder(orderItem);
+        return page;
+    }
+
+    private static OrderItem buildOrderItem(String orderByColumn, String isAsc) {
+        // 兼容前端排序类型
+        if ("ascending".equals(isAsc)) {
+            isAsc = "asc";
+        } else if ("descending".equals(isAsc)) {
+            isAsc = "desc";
+        }
+        if (StringUtils.isNotBlank(orderByColumn)) {
+            String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
+            orderBy = StringUtils.toUnderScoreCase(orderBy);
+            if ("asc".equals(isAsc)) {
+                return OrderItem.asc(orderBy);
+            } else if ("desc".equals(isAsc)) {
+                return OrderItem.desc(orderBy);
+            }
+        }
+        return null;
+    }
+
+    public static <T, K> TableDataInfo<K> buildDataInfo(PagePlus<T, K> page) {
+        TableDataInfo<K> rspData = new TableDataInfo<>();
+        rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setMsg("查询成功");
+        rspData.setRows(page.getRecordsVo());
+        rspData.setTotal(page.getTotal());
+        return rspData;
+    }
+
+    public static <T> TableDataInfo<T> buildDataInfo(Page<T> page) {
+        TableDataInfo<T> rspData = new TableDataInfo<>();
+        rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setMsg("查询成功");
+        rspData.setRows(page.getRecords());
+        rspData.setTotal(page.getTotal());
+        return rspData;
+    }
+
+    public static <T> TableDataInfo<T> buildDataInfo(List<T> list) {
+        TableDataInfo<T> rspData = new TableDataInfo<>();
+        rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(list.size());
+        return rspData;
+    }
+
+    public static <T> TableDataInfo<T> buildDataInfo() {
+        TableDataInfo<T> rspData = new TableDataInfo<>();
+        rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setMsg("查询成功");
+        return rspData;
+    }
+
+}

+ 0 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZBuildingBo.java

@@ -42,7 +42,6 @@ public class ZBuildingBo extends BaseEntity {
     /**
      * 备注
      */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 

+ 1 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZBuildingVo.java

@@ -32,6 +32,7 @@ public class ZBuildingVo implements Serializable {
      */
     @ExcelProperty(value = "")
     private String areaId;
+    private String areaName;
 
     /**
      * 

+ 3 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZAreaMapper.java

@@ -4,6 +4,8 @@ import com.ruoyi.zdsz.domain.ZArea;
 import com.ruoyi.zdsz.domain.vo.ZAreaVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 
+import java.util.List;
+
 /**
  * 小区管理Mapper接口
  *
@@ -11,5 +13,5 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  * @date 2023-12-27
  */
 public interface ZAreaMapper extends BaseMapperPlus<ZAreaMapper, ZArea, ZAreaVo> {
-
+    List<ZAreaVo> getArea(String district);
 }

+ 9 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZBuildingMapper.java

@@ -1,8 +1,14 @@
 package com.ruoyi.zdsz.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.zdsz.domain.ZBuilding;
+import com.ruoyi.zdsz.domain.bo.ZBuildingBo;
+import com.ruoyi.zdsz.domain.vo.ZAreaVo;
 import com.ruoyi.zdsz.domain.vo.ZBuildingVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 楼栋管理Mapper接口
@@ -11,5 +17,8 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  * @date 2023-12-27
  */
 public interface ZBuildingMapper extends BaseMapperPlus<ZBuildingMapper, ZBuilding, ZBuildingVo> {
+    Page<ZBuildingVo> getPageList(@Param("p") ZBuildingBo bo, Page<?> page);
+
+    List<ZBuildingVo> getBuildingList(String areaId);
 
 }

+ 1 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZAreaService.java

@@ -21,6 +21,7 @@ public interface IZAreaService {
      * 查询小区管理
      */
     ZAreaVo queryById(String id);
+    List<ZAreaVo> getArea(String district);
 
     /**
      * 查询小区管理列表

+ 4 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZBuildingService.java

@@ -1,6 +1,7 @@
 package com.ruoyi.zdsz.service;
 
 import com.ruoyi.zdsz.domain.ZBuilding;
+import com.ruoyi.zdsz.domain.vo.ZAreaVo;
 import com.ruoyi.zdsz.domain.vo.ZBuildingVo;
 import com.ruoyi.zdsz.domain.bo.ZBuildingBo;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -17,6 +18,8 @@ import java.util.List;
  */
 public interface IZBuildingService {
 
+    List<ZBuildingVo> getBuildingList(String areaId);
+
     /**
      * 查询楼栋管理
      */
@@ -25,7 +28,7 @@ public interface IZBuildingService {
     /**
      * 查询楼栋管理列表
      */
-    TableDataInfo<ZBuildingVo> queryPageList(ZBuildingBo bo, PageQuery pageQuery);
+    TableDataInfo<ZBuildingVo> getPageList(ZBuildingBo bo, PageQuery pageQuery);
 
     /**
      * 查询楼栋管理列表

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

@@ -32,10 +32,18 @@ public class ZAreaServiceImpl implements IZAreaService {
     private final ZAreaMapper baseMapper;
 
     /**
+     * 小区下拉
+     */
+    @Override
+    public List<ZAreaVo> getArea(String district) {
+        return baseMapper.getArea(district);
+    }
+
+    /**
      * 查询小区管理
      */
     @Override
-    public ZAreaVo queryById(String id){
+    public ZAreaVo queryById(String id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -98,7 +106,7 @@ public class ZAreaServiceImpl implements IZAreaService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(ZArea entity){
+    private void validEntityBeforeSave(ZArea entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -107,7 +115,7 @@ public class ZAreaServiceImpl implements IZAreaService {
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteBatchIds(ids) > 0;

+ 17 - 8
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.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.domain.PageQuery;
@@ -32,21 +33,29 @@ public class ZBuildingServiceImpl implements IZBuildingService {
     private final ZBuildingMapper baseMapper;
 
     /**
-     * 查询楼栋管理
-     */
+     * 楼宇下拉
+     * */
     @Override
-    public ZBuildingVo queryById(String id){
-        return baseMapper.selectVoById(id);
+    public List<ZBuildingVo> getBuildingList(String areaId) {
+        return baseMapper.getBuildingList(areaId);
     }
 
     /**
      * 查询楼栋管理列表
      */
     @Override
-    public TableDataInfo<ZBuildingVo> queryPageList(ZBuildingBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<ZBuilding> lqw = buildQueryWrapper(bo);
-        Page<ZBuildingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
+    public TableDataInfo<ZBuildingVo> getPageList(ZBuildingBo bo, PageQuery pageQuery) {
+        Page<ZBuildingBo> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());
+        Page<ZBuildingVo> list = baseMapper.getPageList(bo,page);
+        return PageUtils.buildDataInfo(list);
+    }
+
+    /**
+     * 查询楼栋管理
+     */
+    @Override
+    public ZBuildingVo queryById(String id){
+        return baseMapper.selectVoById(id);
     }
 
     /**

+ 9 - 1
ruoyi-zdsz/src/main/resources/mapper/zdsz/zdsz/ZAreaMapper.xml

@@ -20,6 +20,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
-
+    <select id="getArea" resultType="com.ruoyi.zdsz.domain.vo.ZAreaVo">
+        select id   as id,
+               name as name
+        from z_area
+        where del_flag = '0'
+        <if test="district != null district != ''">
+            and a.district = #{district}
+        </if>
+    </select>
 
 </mapper>

+ 25 - 0
ruoyi-zdsz/src/main/resources/mapper/zdsz/zdsz/ZBuildingMapper.xml

@@ -16,5 +16,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime" column="update_time"/>
     </resultMap>
 
+    <select id="getBuildingList" resultType="com.ruoyi.zdsz.domain.vo.ZBuildingVo">
+        select id   as id,
+               name as name
+        from z_building
+        where del_flag = '0'
+        <if test="areaId != null areaId != ''">
+            and a.area_id = #{areaId}
+        </if>
+    </select>
+
+    <select id="getPageList" resultType="com.ruoyi.zdsz.domain.vo.ZBuildingVo">
+        select a.id as id,
+        a.name as name,
+        (select b.name from z_area b where b.id = a.area_id) as areaName
+        from z_building a
+        <where>
+            a.del_flag = '0'
+            <if test="p.name != null  and p.name != ''">
+                and a.name LIKE CONCAT('%',#{p.name},'%')
+            </if>
+            <if test="p.areaId != null  and p.areaId != ''">
+                and a.area_id = #{p.areaId}
+            </if>
+        </where>
+    </select>
 
 </mapper>