yaowanxin
10 天以前 3df6baa96b6761673f32b8e4fc5b8d6318ea0477
仓库货架,文档借阅基础
已修改1个文件
已添加30个文件
1572 ■■■■■ 文件已修改
src/main/java/com/ruoyi/warehouse/controller/DocumentationBorrowManagementController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/controller/DocumentationController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/mapper/DocumentationBorrowManagementMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/mapper/DocumentationMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesRowcolMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/pojo/Documentation.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/pojo/DocumentationBorrowManagement.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/pojo/Warehouse.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelves.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelvesRowcol.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/DocumentationBorrowManagementService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/DocumentationService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesRowcolService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/WarehouseService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/impl/DocumentationBorrowManagementServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/impl/DocumentationServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/warehouse/DocumentationBorrowManagementMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/warehouse/DocumentationMapper.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/warehouse/WarehouseGoodsShelvesMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/warehouse/WarehouseGoodsShelvesRowcolMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/warehouse/WarehouseMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mybatis/mybatis-config.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/warehouse/controller/DocumentationBorrowManagementController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.ruoyi.warehouse.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.warehouse.pojo.DocumentationBorrowManagement;
import com.ruoyi.warehouse.pojo.Warehouse;
import com.ruoyi.warehouse.service.DocumentationBorrowManagementService;
import com.ruoyi.warehouse.service.WarehouseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@Api(tags = "文档借阅管理")
@RequestMapping("/documentationBorrowManagement")
public class DocumentationBorrowManagementController extends BaseController {
    @Autowired
    private DocumentationBorrowManagementService documentationBorrowManagementService;
    @GetMapping("/listPage")
    @ApiOperation("文档借阅管理-分页查询")
    @Log(title = "文档借阅管理-分页查询", businessType = BusinessType.OTHER)
    public AjaxResult listPage(Page page, DocumentationBorrowManagement documentationBorrowManagement) {
        IPage<DocumentationBorrowManagement> listPage = documentationBorrowManagementService.listPage(page, documentationBorrowManagement);
        return AjaxResult.success(listPage);
    }
    @PostMapping("/add")
    @ApiOperation("文档借阅管理-添加")
    @Log(title = "文档借阅管理-添加", businessType = BusinessType.INSERT)
    public AjaxResult add(@RequestBody DocumentationBorrowManagement documentationBorrowManagement) {
        documentationBorrowManagementService.save(documentationBorrowManagement);
        return AjaxResult.success();
    }
    @PostMapping("/update")
    @ApiOperation("文档借阅管理-更新")
    @Log(title = "文档借阅管理-更新", businessType = BusinessType.UPDATE)
    public AjaxResult update(@RequestBody DocumentationBorrowManagement documentationBorrowManagement) {
        documentationBorrowManagementService.updateById(documentationBorrowManagement);
        return AjaxResult.success();
    }
    @PostMapping("/delete")
    @ApiOperation("文档借阅管理-删除")
    @Log(title = "文档借阅管理-删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        documentationBorrowManagementService.removeByIds(ids);
        return AjaxResult.success();
    }
    @PostMapping("/export")
    @ApiOperation("文档信息表-导出")
    @Log(title = "文档信息表-导出", businessType = BusinessType.EXPORT)
    public void export(HttpServletResponse response) {
        documentationBorrowManagementService.export(response);
    }
}
src/main/java/com/ruoyi/warehouse/controller/DocumentationController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.ruoyi.warehouse.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.warehouse.pojo.Documentation;
import com.ruoyi.warehouse.pojo.Warehouse;
import com.ruoyi.warehouse.service.DocumentationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@RequestMapping("/documentation")
@Api(tags = "文档信息表")
public class DocumentationController extends BaseController {
    @Autowired
    private DocumentationService documentationService;
    @GetMapping("/listPage")
    @ApiOperation("文档信息表-分页查询")
    @Log(title = "文档信息表-分页查询", businessType = BusinessType.OTHER)
    public AjaxResult listPage(Page page, Documentation documentation) {
        IPage<Documentation> listPage = documentationService.listPage(page, documentation);
        return AjaxResult.success(listPage);
    }
    @GetMapping("/list")
    @ApiOperation("文档信息表")
    @Log(title = "文档信息表", businessType = BusinessType.OTHER)
    public AjaxResult list() {
        List<Documentation> list = documentationService.list();
        return AjaxResult.success(list);
    }
    @PostMapping("/add")
    @ApiOperation("文档信息表-添加")
    @Log(title = "文档信息表-添加", businessType = BusinessType.INSERT)
    public AjaxResult add(@RequestBody Documentation documentation) {
        boolean save = documentationService.save(documentation);
        return save ? AjaxResult.success("添加成功") : AjaxResult.error("添加失败");
    }
    @PostMapping("/update")
    @ApiOperation("文档信息表-更新")
    @Log(title = "文档信息表-更新", businessType = BusinessType.UPDATE)
    public AjaxResult update(@RequestBody Documentation documentation) {
        return AjaxResult.success(documentationService.updateById(documentation));
    }
    @PostMapping("/delete")
    @ApiOperation("文档信息表-删除")
    @Log(title = "文档信息表-删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("请传入要删除的ID");
        boolean remove = documentationService.removeBatchByIds(ids);
//        boolean remove = documentationService.deleteByIds(ids);
        return remove ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败");
    }
    @PostMapping("/export")
    @ApiOperation("文档信息表-导出")
    @Log(title = "文档信息表-导出", businessType = BusinessType.EXPORT)
    public void export(HttpServletResponse response) {
        documentationService.export(response);
    }
}
src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.ruoyi.warehouse.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.warehouse.pojo.Warehouse;
import com.ruoyi.warehouse.service.WarehouseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@Api(tags = "仓库")
@RequestMapping("/warehouse")
public class WarehouseController extends BaseController {
    @Autowired
    private WarehouseService warehouseService;
    @GetMapping("/listPage")
    @ApiOperation("仓库-分页查询")
    @Log(title = "仓库-分页查询", businessType = BusinessType.OTHER)
    public AjaxResult listPage(Page page, Warehouse warehouse) {
        IPage<Warehouse> listPage = warehouseService.listPage(page, warehouse);
        return AjaxResult.success(listPage);
    }
    @PostMapping("/add")
    @ApiOperation("仓库-添加")
    @Log(title = "仓库-添加", businessType = BusinessType.INSERT)
    public AjaxResult add(@RequestBody Warehouse warehouse) {
        boolean save = warehouseService.save(warehouse);
        return save ? AjaxResult.success("添加成功") : AjaxResult.error("添加失败");
    }
    @PostMapping("/update")
    @ApiOperation("仓库-更新")
    @Log(title = "仓库-更新", businessType = BusinessType.UPDATE)
    public AjaxResult update(@RequestBody Warehouse warehouse) {
        return AjaxResult.success(warehouseService.updateById(warehouse));
    }
    @DeleteMapping("/delete")
    @ApiOperation("仓库-删除")
    @Log(title = "仓库-删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("请传入要删除的ID");
        boolean remove = warehouseService.deleteByIds(ids);
        return remove ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败");
    }
}
src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.ruoyi.warehouse.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@Api(tags = "商品货架")
@RequestMapping("/warehouse/goodsShelves")
public class WarehouseGoodsShelvesController extends BaseController {
    @Autowired
    private WarehouseGoodsShelvesService warehouseGoodsShelvesService;
    @GetMapping("/listPage")
    @ApiOperation("商品货架-分页查询")
    @Log(title = "商品货架-分页查询", businessType = BusinessType.OTHER)
    public AjaxResult listPage(Page page, WarehouseGoodsShelves warehouseGoodsShelves) {
        IPage<WarehouseGoodsShelves> listPage = warehouseGoodsShelvesService.listPage(page, warehouseGoodsShelves);
        return AjaxResult.success(listPage);
    }
    @PostMapping("/add")
    @ApiOperation("商品货架-添加")
    @Log(title = "商品货架-添加", businessType = BusinessType.INSERT)
    public AjaxResult add(@RequestBody WarehouseGoodsShelves warehouseGoodsShelves) {
        boolean save = warehouseGoodsShelvesService.add(warehouseGoodsShelves);
        return save ? AjaxResult.success("添加成功") : AjaxResult.error("添加失败");
    }
    @PostMapping("/update")
    @ApiOperation("商品货架-更新")
    @Log(title = "商品货架-更新", businessType = BusinessType.UPDATE)
    public AjaxResult update(@RequestBody WarehouseGoodsShelves warehouseGoodsShelves) {
        boolean update = warehouseGoodsShelvesService.updateRowcolById(warehouseGoodsShelves);
        return update ? AjaxResult.success("更新成功") : AjaxResult.error("更新失败");
    }
    @DeleteMapping("/delete")
    @ApiOperation("商品货架-删除")
    @Log(title = "商品货架-删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("请传入要删除的ID");
        boolean remove = warehouseGoodsShelvesService.deleteByIds(ids);
        return remove ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败");
    }
}
src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.ruoyi.warehouse.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
import com.ruoyi.warehouse.service.WarehouseGoodsShelvesRowcolService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@Api(tags = "商品货架行列")
@RequestMapping("/warehouse/goodsShelvesRowcol")
public class WarehouseGoodsShelvesRowcolController extends BaseController {
    @Autowired
    private WarehouseGoodsShelvesRowcolService warehouseGoodsShelvesRowcolService;
    @Autowired
    private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
    @GetMapping("/listPage")
    @ApiOperation("商品货架行列-分页查询")
    @Log(title = "商品货架行列-分页查询", businessType = BusinessType.OTHER)
    public AjaxResult listPage(Page page, WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
        IPage<WarehouseGoodsShelvesRowcol> listPage = warehouseGoodsShelvesRowcolService.listPage(page, warehouseGoodsShelvesRowcol);
        return AjaxResult.success(listPage);
    }
    @PostMapping("/add")
    @ApiOperation("商品货架行列-添加")
    @Log(title = "商品货架行列-添加", businessType = BusinessType.INSERT)
    public AjaxResult add(@RequestBody WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
        boolean save = warehouseGoodsShelvesRowcolService.save(warehouseGoodsShelvesRowcol);
        return save ? AjaxResult.success("添加成功") : AjaxResult.error("添加失败");
    }
    @PostMapping("/update")
    @ApiOperation("商品货架行列-更新")
    @Log(title = "商品货架行列-更新", businessType = BusinessType.UPDATE)
    public AjaxResult update(@RequestBody WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
        boolean up = warehouseGoodsShelvesRowcolService.updateById(warehouseGoodsShelvesRowcol);
        return up ? AjaxResult.success("更新成功") : AjaxResult.error("更新失败");
    }
    @PostMapping("/delete")
    @ApiOperation("商品货架行列-删除")
    @Log(title = "商品货架行列-删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("请传入要删除的ID");
        boolean remove = warehouseGoodsShelvesRowcolService.deleteByIds(ids);
        return remove ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败");
    }
}
src/main/java/com/ruoyi/warehouse/mapper/DocumentationBorrowManagementMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.warehouse.mapper;
import com.ruoyi.warehouse.pojo.DocumentationBorrowManagement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€documentation_borrow_management(文档借阅-归还表)】的数据库操作Mapper
* @createDate 2025-08-14 15:55:45
* @Entity com.ruoyi.warehouse.pojo.DocumentationBorrowManagement
*/
@Mapper
public interface DocumentationBorrowManagementMapper extends BaseMapper<DocumentationBorrowManagement> {
}
src/main/java/com/ruoyi/warehouse/mapper/DocumentationMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.ruoyi.warehouse.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
import com.ruoyi.warehouse.pojo.Documentation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€documentation(文档信息表)】的数据库操作Mapper
* @createDate 2025-08-14 14:05:49
* @Entity com.ruoyi.warehouse.pojo.Documentation
*/
@Mapper
public interface DocumentationMapper extends BaseMapper<Documentation> {
    IPage<Documentation> listPage(Page page,@Param("documentation") Documentation documentation);
    List<Documentation> list();
}
src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.warehouse.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
*
* @description é’ˆå¯¹è¡¨ã€warehouse_goods_shelves(仓库货架表)】的数据库操作Mapper
* @createDate 2025-08-13 11:49:02
* @Entity warehouse.pojo.WarehouseGoodsShelves
*/
@Mapper
public interface WarehouseGoodsShelvesMapper extends BaseMapper<WarehouseGoodsShelves> {
    IPage<WarehouseGoodsShelves> listPage(Page page,@Param("warehouseGoodsShelves") WarehouseGoodsShelves warehouseGoodsShelves);
}
src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesRowcolMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.warehouse.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse_goods_shelves_rowcol(仓库货架层,列表)】的数据库操作Mapper
* @createDate 2025-08-13 11:49:02
* @Entity warehouse.pojo.WarehouseGoodsShelvesRowcol
*/
@Mapper
public interface WarehouseGoodsShelvesRowcolMapper extends BaseMapper<WarehouseGoodsShelvesRowcol> {
    IPage<WarehouseGoodsShelvesRowcol> listPage(Page page,@Param("warehouseGoodsShelvesRowcol") WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol);
}
src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.warehouse.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.warehouse.pojo.Warehouse;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse(仓库表)】的数据库操作Mapper
* @createDate 2025-08-13 11:49:02
* @Entity warehouse.pojo.Warehouse
*/
@Mapper
public interface WarehouseMapper extends BaseMapper<Warehouse> {
    IPage<Warehouse> listPage(Page page,@Param("warehouse") Warehouse warehouse);
}
src/main/java/com/ruoyi/warehouse/pojo/Documentation.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
package com.ruoyi.warehouse.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * æ–‡æ¡£ä¿¡æ¯è¡¨
 * @TableName documentation
 */
@TableName(value ="documentation")
@Data
@ApiModel(value = "文档信息表")
public class Documentation implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * ç±»åˆ«åç§°
     */
    private String categoryName;
    /**
     * æ–‡æ¡£åç§°
     */
    private String docName;
    /**
     * æ–‡æ¡£ç¼–号
     */
    private Long docNumber;
    /**
     * å¹´ä»½
     */
    private Long year;
    /**
     * è´£ä»»äºº
     */
    private String responsiblePerson;
    /**
     * æ–‡æ¡£æ”¾ç½®ä½ç½®
     */
    private Long warehouseGoodsShelvesRowcolId;
    /**
     * æ–‡æ¡£æ—¥æœŸ
     */
    private LocalDateTime docDate;
    /**
     * ä¿ç®¡æœŸé™
     */
    private Long retentionPeriod;
    /**
     * ä¿å¯†çº§åˆ«
     */
    private String securityLevel;
    /**
     * ä»½æ•°
     */
    private Long copyCount;
    /**
     * é¡µæ•°
     */
    private Long pageCount;
    /**
     * æ–‡æ¡£ç±»åˆ«
     */
    private String docCategory;
    /**
     * æ–‡æ¡£ç§ç±»
     */
    private String docType;
    /**
     * ç´§æ€¥ç¨‹åº¦
     */
    private String urgencyLevel;
    /**
     * æ–‡æ¡£çŠ¶æ€
     */
    private String docStatus;
    /**
     * å¤‡æ³¨
     */
    private String remark;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private LocalDateTime createTime;
    /**
     * åˆ›å»ºç”¨æˆ·
     */
    private Long createUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    private LocalDateTime updateTime;
    /**
     * ä¿®æ”¹ç”¨æˆ·
     */
    private Long updateUser;
    /**
     * ç§Ÿæˆ·ID
     */
    private Long tenantId;
    private static final long serialVersionUID = 1L;
}
src/main/java/com/ruoyi/warehouse/pojo/DocumentationBorrowManagement.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.ruoyi.warehouse.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * æ–‡æ¡£å€Ÿé˜…-归还表
 * @TableName documentation_borrow_management
 */
@TableName(value ="documentation_borrow_management")
@Data
@ApiModel(value = "文档借阅-归还表")
public class DocumentationBorrowManagement implements Serializable {
    /**
     * ä¸»é”®
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * æ–‡æ¡£id
     */
    private Long documentationId;
    /**
     * å€Ÿé˜…人id
     */
    private Long borrowerId;
    /**
     * å€Ÿé˜…目的
     */
    private String borrowPurpose;
    /**
     * å€Ÿé˜…日期
     */
    private LocalDateTime borrowDate;
    /**
     * åº”归还日期
     */
    private LocalDateTime dueReturnDate;
    /**
     * å®žé™…归还日期
     */
    private LocalDateTime returnDate;
    /**
     * å€Ÿé˜…状态
     */
    private String borrowStatus;
    /**
     * å¤‡æ³¨
     */
    private String remark;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private LocalDateTime createTime;
    /**
     * åˆ›å»ºç”¨æˆ·
     */
    private Long createUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    private LocalDateTime updateTime;
    /**
     * ä¿®æ”¹ç”¨æˆ·
     */
    private Long updateUser;
    /**
     * ç§Ÿæˆ·id
     */
    private Long tenantId;
    private static final long serialVersionUID = 1L;
}
src/main/java/com/ruoyi/warehouse/pojo/Warehouse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.ruoyi.warehouse.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ä»“库表
 * @TableName warehouse
 */
@TableName(value ="warehouse")
@Data
@ApiModel
public class Warehouse implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * ä»“库名称
     */
    private String warehouseName;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private LocalDateTime createTime;
    /**
     * åˆ›å»ºç”¨æˆ·
     */
    private Long createUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    private LocalDateTime updateTime;
    /**
     * ä¿®æ”¹ç”¨æˆ·
     */
    private Long updateUser;
    /**
     * ç§Ÿæˆ·ID
     */
    private Long tenantId;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelves.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package com.ruoyi.warehouse.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ä»“库货架表
 * @TableName warehouse_goods_shelves
 */
@TableName(value ="warehouse_goods_shelves")
@Data
@ApiModel
public class WarehouseGoodsShelves implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * è´§æž¶åç§°
     */
    private String goodsShelvesName;
    /**
     * å±‚æ•°
     */
    private Long storey;
    /**
     * åˆ—æ•°
     */
    private Long arrange;
    /**
     * ä»“库id
     */
    private Long warehouseId;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private LocalDateTime createTime;
    /**
     * åˆ›å»ºç”¨æˆ·
     */
    private Long createUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    private LocalDateTime updateTime;
    /**
     * ä¿®æ”¹ç”¨æˆ·
     */
    private Long updateUser;
    /**
     * ç§Ÿæˆ·ID
     */
    private Long tenantId;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelvesRowcol.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package com.ruoyi.warehouse.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ä»“库货架层,列表
 * @TableName warehouse_goods_shelves_rowcol
 */
@TableName(value ="warehouse_goods_shelves_rowcol")
@Data
@ApiModel(value = "仓库货架层,列表")
public class WarehouseGoodsShelvesRowcol implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * æ–‡æ¡£id
     */
    private Long documentationId;
    /**
     * å±‚æ•°
     */
    private Long storey;
    /**
     * åˆ—æ•°
     */
    private Long arrange;
    /**
     * è´§æž¶id
     */
    private Long warehouseGoodsShelvesId;
    /**
     * ä»“库id
     */
    private Long warehouseId;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private LocalDateTime createTime;
    /**
     * åˆ›å»ºç”¨æˆ·
     */
    private Long createUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    private LocalDateTime updateTime;
    /**
     * ä¿®æ”¹ç”¨æˆ·
     */
    private Long updateUser;
    /**
     * ç§Ÿæˆ·ID
     */
    private Long tenantId;
    /**
     * å¤‡æ³¨
     */
    private String remark;
}
src/main/java/com/ruoyi/warehouse/service/DocumentationBorrowManagementService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.warehouse.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.warehouse.pojo.DocumentationBorrowManagement;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletResponse;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€documentation_borrow_management(文档借阅-归还表)】的数据库操作Service
* @createDate 2025-08-14 15:55:45
*/
public interface DocumentationBorrowManagementService extends IService<DocumentationBorrowManagement> {
    IPage<DocumentationBorrowManagement> listPage(Page page, DocumentationBorrowManagement documentationBorrowManagement);
    void export(HttpServletResponse response);
}
src/main/java/com/ruoyi/warehouse/service/DocumentationService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.warehouse.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.warehouse.pojo.Documentation;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletResponse;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€documentation(文档信息表)】的数据库操作Service
* @createDate 2025-08-14 14:05:49
*/
public interface DocumentationService extends IService<Documentation> {
    IPage<Documentation> listPage(Page page, Documentation documentation);
    void export(HttpServletResponse response);
}
src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesRowcolService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.warehouse.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse_goods_shelves_rowcol(仓库货架层,列表)】的数据库操作Service
* @createDate 2025-08-13 11:49:02
*/
public interface WarehouseGoodsShelvesRowcolService extends IService<WarehouseGoodsShelvesRowcol> {
    IPage<WarehouseGoodsShelvesRowcol> listPage(Page page, WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol);
    boolean deleteByIds(List<Long> ids);
//    boolean add(WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol);
}
src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.warehouse.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse_goods_shelves(仓库货架表)】的数据库操作Service
* @createDate 2025-08-13 11:49:02
*/
public interface WarehouseGoodsShelvesService extends IService<WarehouseGoodsShelves> {
    IPage<WarehouseGoodsShelves> listPage(Page page,WarehouseGoodsShelves warehouseGoodsShelves);
    boolean add(WarehouseGoodsShelves warehouseGoodsShelves);
    boolean updateRowcolById(WarehouseGoodsShelves warehouseGoodsShelves);
    boolean deleteByIds(List<Long> ids);
}
src/main/java/com/ruoyi/warehouse/service/WarehouseService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.warehouse.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.warehouse.pojo.Warehouse;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse(仓库表)】的数据库操作Service
* @createDate 2025-08-13 11:49:02
*/
public interface WarehouseService extends IService<Warehouse> {
    IPage<Warehouse> listPage(Page page, Warehouse warehouse);
    boolean deleteByIds(List<Long> ids);
}
src/main/java/com/ruoyi/warehouse/service/impl/DocumentationBorrowManagementServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.ruoyi.warehouse.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
import com.ruoyi.warehouse.pojo.DocumentationBorrowManagement;
import com.ruoyi.warehouse.service.DocumentationBorrowManagementService;
import com.ruoyi.warehouse.mapper.DocumentationBorrowManagementMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€documentation_borrow_management(文档借阅-归还表)】的数据库操作Service实现
* @createDate 2025-08-14 15:55:45
*/
@Service
public class DocumentationBorrowManagementServiceImpl extends ServiceImpl<DocumentationBorrowManagementMapper, DocumentationBorrowManagement>
    implements DocumentationBorrowManagementService{
    @Autowired
    private DocumentationBorrowManagementMapper documentationBorrowManagementMapper;
    @Override
    public IPage<DocumentationBorrowManagement> listPage(Page page, DocumentationBorrowManagement documentationBorrowManagement) {
        return null;
    }
    @Override
    public void export(HttpServletResponse response) {
//        List<DocumentationBorrowManagement> list =documentationBorrowManagementMapper.list();
//        ExcelUtil<DocumentationBorrowManagement> util = new ExcelUtil<>(DocumentationBorrowManagement.class);
//        util.exportExcel(response, list, "文档借阅-归还记录");
    }
}
src/main/java/com/ruoyi/warehouse/service/impl/DocumentationServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.ruoyi.warehouse.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.warehouse.pojo.Documentation;
import com.ruoyi.warehouse.service.DocumentationService;
import com.ruoyi.warehouse.mapper.DocumentationMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€documentation(文档信息表)】的数据库操作Service实现
* @createDate 2025-08-14 14:05:49
*/
@Service
public class DocumentationServiceImpl extends ServiceImpl<DocumentationMapper, Documentation>
    implements DocumentationService{
    @Autowired
    private DocumentationMapper documentationMapper;
    @Override
    public IPage<Documentation> listPage(Page page, Documentation documentation) {
        return documentationMapper.listPage(page, documentation);
    }
    @Override
    public void export(HttpServletResponse response) {
        List<Documentation> list =documentationMapper.list();
        ExcelUtil<Documentation> util = new ExcelUtil<>(Documentation.class);
        util.exportExcel(response, list, "文档信息表");
    }
}
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package com.ruoyi.warehouse.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
import com.ruoyi.warehouse.service.WarehouseGoodsShelvesRowcolService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse_goods_shelves_rowcol(仓库货架层,列表)】的数据库操作Service实现
* @createDate 2025-08-13 11:49:02
*/
@Service
@Slf4j
public class WarehouseGoodsShelvesRowcolServiceImpl extends ServiceImpl<WarehouseGoodsShelvesRowcolMapper, WarehouseGoodsShelvesRowcol>
    implements WarehouseGoodsShelvesRowcolService {
    @Autowired
    private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
    @Override
    public IPage<WarehouseGoodsShelvesRowcol> listPage(Page page, WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
        IPage<WarehouseGoodsShelvesRowcol> list = warehouseGoodsShelvesRowcolMapper.listPage(page, warehouseGoodsShelvesRowcol);
        return list;
    }
    @Override
    public boolean deleteByIds(List<Long> ids) {
        for (int i = 0; i < ids.size(); i++) {
            Long id = ids.get(i);
            WarehouseGoodsShelvesRowcol rowcol = warehouseGoodsShelvesRowcolMapper.selectById(id);
            if(rowcol.getDocumentationId()!=null && rowcol.getDocumentationId()!=0){
                log.error("货架上有商品,不能删除");
                return false;
            }
        }
        int i = warehouseGoodsShelvesRowcolMapper.deleteBatchIds(ids);
        if(i!=ids.size()){
            log.error("删除失败");
            return false;
        }
        return true;
    }
//    @Override
//    public boolean add(WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
//        for (int i = 0; i < warehouseGoodsShelvesRowcol.getRow(); i++) {
//            for (int j = 0; j < warehouseGoodsShelvesRowcol.getCol(); j++) {
//                WarehouseGoodsShelvesRowcol rowcol = new WarehouseGoodsShelvesRowcol();
//                rowcol.setRow((long) i);
//                rowcol.setCol((long) j);
//                rowcol.setWarehouseGoodsShelvesId(warehouseGoodsShelvesRowcol.getWarehouseGoodsShelvesId());
//                rowcol.setWarehouseId(warehouseGoodsShelvesRowcol.getWarehouseId());
//                rowcol.setCreateUser(warehouseGoodsShelvesRowcol.getCreateUser());
//                rowcol.setCreateTime(warehouseGoodsShelvesRowcol.getCreateTime());
//                warehouseGoodsShelvesRowcolMapper.insert(rowcol);
//            }
//        }
//        return true;
//    }
}
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,219 @@
package com.ruoyi.warehouse.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesMapper;
import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
import com.ruoyi.warehouse.service.WarehouseGoodsShelvesRowcolService;
import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService;
import lombok.extern.slf4j.Slf4j;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse_goods_shelves(仓库货架表)】的数据库操作Service实现
* @createDate 2025-08-13 11:49:02
*/
@Service
@Slf4j
public class WarehouseGoodsShelvesServiceImpl extends ServiceImpl<WarehouseGoodsShelvesMapper, WarehouseGoodsShelves>
    implements WarehouseGoodsShelvesService {
    @Autowired
    private WarehouseGoodsShelvesRowcolService warehouseGoodsShelvesRowcolService;
    @Autowired
    private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
    @Autowired
    private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper;
    @Override
    public IPage<WarehouseGoodsShelves> listPage(Page page, WarehouseGoodsShelves warehouseGoodsShelves) {
        return warehouseGoodsShelvesMapper.listPage(page,warehouseGoodsShelves);
    }
    @Override
    public boolean add(WarehouseGoodsShelves warehouseGoodsShelves) {
        int insert = warehouseGoodsShelvesMapper.insert(warehouseGoodsShelves);
        if (insert <= 0) {
            log.error("货架主记录添加失败");
            return false;
        }
        Long shelvesId = warehouseGoodsShelves.getId();
        Long warehouseId = warehouseGoodsShelves.getWarehouseId();
        Long createUser = warehouseGoodsShelves.getCreateUser();
        Long updateUser = warehouseGoodsShelves.getUpdateUser();
        // 3. æ‰¹é‡åˆ›å»ºè¡Œåˆ—记录
        List<WarehouseGoodsShelvesRowcol> rowcolList = new ArrayList<>();
        for (long i = 1; i <= warehouseGoodsShelves.getStorey(); i++) {
            for (long j = 1; j <= warehouseGoodsShelves.getArrange(); j++) {
                WarehouseGoodsShelvesRowcol rowcol = new WarehouseGoodsShelvesRowcol();
                rowcol.setStorey(i);
                rowcol.setArrange(j);
                rowcol.setWarehouseGoodsShelvesId(shelvesId);
                rowcol.setWarehouseId(warehouseId);
                rowcol.setCreateUser(createUser);
                rowcol.setUpdateUser(updateUser);
                rowcolList.add(rowcol);
            }
        }
        // 4. æ‰¹é‡æ’入行列记录
        if (!rowcolList.isEmpty()) {
            try {
                // ä½¿ç”¨æ‰¹é‡æ’入方法替代循环单条插入
                boolean saveBatch = warehouseGoodsShelvesRowcolService.saveBatch(rowcolList);
                if (!saveBatch) {
                    log.warn("货架[{}]的行列记录部分添加失败", shelvesId);
                }
            } catch (Exception e) {
                log.error("货架[{}]的行列记录批量添加失败", shelvesId, e);
                // æŠ›å‡ºå¼‚常触发事务回滚
                throw e;
            }
        }
        log.info("货架[{}]添加成功,层数:{},排数:{}",
                shelvesId,
                warehouseGoodsShelves.getStorey(),
                warehouseGoodsShelves.getArrange());
        return true;
    }
    /**
     * æ ¹æ®ID更新货架及其行列信息
     * @param warehouseGoodsShelves è´§æž¶ä¿¡æ¯
     * @return æ˜¯å¦æ›´æ–°æˆåŠŸ
     */
    @Override
    public boolean updateRowcolById(WarehouseGoodsShelves warehouseGoodsShelves) {
        // æå–关键ID,减少重复调用
        Long shelvesId = warehouseGoodsShelves.getId();
        Long warehouseId = warehouseGoodsShelves.getWarehouseId();
        // å…ˆæ›´æ–°è´§æž¶ä¸»ä¿¡æ¯
        boolean isShelvesUpdated = updateById(warehouseGoodsShelves);
        if (!isShelvesUpdated) {
            log.warn("货架[{}]主信息更新失败", shelvesId);
            return false;
        }
        // æž„建查询条件:查询该货架下的所有行列记录
        WarehouseGoodsShelvesRowcol queryRowcol = new WarehouseGoodsShelvesRowcol();
        queryRowcol.setWarehouseGoodsShelvesId(shelvesId);
        queryRowcol.setWarehouseId(warehouseId);
        IPage<WarehouseGoodsShelvesRowcol> rowcolPage = warehouseGoodsShelvesRowcolService.listPage(new Page<>(), queryRowcol);
        List<WarehouseGoodsShelvesRowcol> oldRowcolList = rowcolPage.getRecords();
        // å¦‚果没有旧的行列记录,直接添加新记录
        if (oldRowcolList.isEmpty()) {
            add(warehouseGoodsShelves);
            return true;
        }
        // æ£€æŸ¥è´§æž¶ä¸Šæ˜¯å¦æœ‰å•†å“ï¼ˆæœ‰å•†å“åˆ™ä¸å…è®¸æ›´æ–°ï¼‰
        boolean hasGoodsOnShelves = oldRowcolList.stream()
                .anyMatch(rowcol -> rowcol.getDocumentationId() != null);
        if (hasGoodsOnShelves) {
            log.error("货架[{}]上存在商品,不允许更新行列信息", shelvesId);
            return false;
        }
        // æå–旧行列记录的ID集合,用于删除操作
        List<Long> oldRowcolIds = oldRowcolList.stream()
                .map(WarehouseGoodsShelvesRowcol::getId)
                .collect(Collectors.toList());
        // åˆ é™¤æ—§çš„行列记录
        boolean isOldRowcolRemoved = warehouseGoodsShelvesRowcolService.removeByIds(oldRowcolIds);
        if (!isOldRowcolRemoved) {
            log.error("货架[{}]的旧行列记录删除失败", shelvesId);
            return false;
        }
        // æ·»åŠ æ–°çš„è¡Œåˆ—è®°å½•
        add(warehouseGoodsShelves);
        log.info("货架[{}]的行列信息更新成功", shelvesId);
        return true;
    }
    /**
     * æ‰¹é‡åˆ é™¤è´§æž¶åŠå…¶å…³è”的行列记录
     * @param ids è´§æž¶ID列表
     * @return æ˜¯å¦åˆ é™¤æˆåŠŸ
     */
    @Override
    public boolean deleteByIds(List<Long> ids) {
        // 1. å…ˆæŸ¥è¯¢æ‰€æœ‰è¦åˆ é™¤çš„货架信息
        List<WarehouseGoodsShelves> shelvesList = warehouseGoodsShelvesMapper.selectBatchIds(ids);
        if (CollectionUtils.isEmpty(shelvesList)) {
            log.info("未查询到需删除的货架,ID列表:{}", ids);
            return true; // æ— æ•°æ®å¯åˆ ï¼Œè§†ä¸ºæˆåŠŸ
        }
        // 2. æ£€æŸ¥æ‰€æœ‰è´§æž¶æ˜¯å¦å­˜åœ¨å•†å“ï¼ˆæœ‰å•†å“åˆ™ä¸å…è®¸åˆ é™¤ï¼‰
        for (WarehouseGoodsShelves shelves : shelvesList) {
            Long shelvesId = shelves.getId();
            Long warehouseId = shelves.getWarehouseId();
            // æž„建查询条件:查询当前货架的所有行列记录
            Wrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>()
                    .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId)
                    .eq(WarehouseGoodsShelvesRowcol::getWarehouseId, warehouseId);
            // æŸ¥è¯¢è¡Œåˆ—记录(仅需判断是否有商品,无需分页)
            List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolService.list(queryWrapper);
            // æ£€æŸ¥æ˜¯å¦æœ‰å•†å“
            boolean hasGoods = rowcolList.stream()
                    .anyMatch(rowcol -> rowcol.getDocumentationId() != null && rowcol.getDocumentationId()!=0);
            if (hasGoods) {
                log.error("货架[ID:{}]上存在商品,禁止删除", shelvesId);
                return false; // ä»»ä¸€è´§æž¶æœ‰å•†å“åˆ™ç»ˆæ­¢åˆ é™¤
            }
        }
        // 3. å…ˆåˆ é™¤è´§æž¶ä¸»è®°å½•
        boolean isShelvesDeleted = removeByIds(ids);
        if (!isShelvesDeleted) {
            log.error("货架主记录删除失败,ID列表:{}", ids);
            return false;
        }
        // 4. æ‰¹é‡åˆ é™¤æ‰€æœ‰å…³è”的行列记录
        List<Long> allShelvesIds = shelvesList.stream()
                .map(WarehouseGoodsShelves::getId)
                .collect(Collectors.toList());
        // æž„建批量删除条件
        Wrapper<WarehouseGoodsShelvesRowcol> deleteWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>()
                .in(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, allShelvesIds);
        boolean isRowcolDeleted = warehouseGoodsShelvesRowcolService.remove(deleteWrapper);
        if (!isRowcolDeleted) {
            log.warn("货架关联的行列记录删除失败,货架ID列表:{}", allShelvesIds);
            // æ­¤å¤„可根据业务需求决定是否回滚货架删除操作
        }
        log.info("货架批量删除成功,ID列表:{}", ids);
        return true;
    }
}
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.ruoyi.warehouse.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.warehouse.mapper.WarehouseMapper;
import com.ruoyi.warehouse.pojo.Warehouse;
import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService;
import com.ruoyi.warehouse.service.WarehouseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 86151
* @description é’ˆå¯¹è¡¨ã€warehouse(仓库表)】的数据库操作Service实现
* @createDate 2025-08-13 11:49:02
*/
@Service
@Slf4j
public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse>
    implements WarehouseService {
    @Autowired
    private WarehouseMapper warehouseMapper;
    @Autowired
    private WarehouseGoodsShelvesService warehouseGoodsShelvesService;
    @Override
    public IPage<Warehouse> listPage(Page page, Warehouse warehouse) {
        return warehouseMapper.listPage(page, warehouse);
    }
    @Override
    public boolean deleteByIds(List<Long> ids) {
        for (Long id : ids) {
            WarehouseGoodsShelves shelves = new WarehouseGoodsShelves();
            shelves.setWarehouseId(id);
            IPage<WarehouseGoodsShelves> page = warehouseGoodsShelvesService.listPage(new Page<>(), shelves);
            if(page.getRecords().size()>0){
                log.error("仓库下有货架,不能删除");
                return false;
            }
        }
        return true;
    }
}
src/main/resources/mapper/warehouse/DocumentationBorrowManagementMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.warehouse.mapper.DocumentationBorrowManagementMapper">
    <resultMap id="BaseResultMap" type="com.ruoyi.warehouse.pojo.DocumentationBorrowManagement">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="documentationId" column="documentation_id" jdbcType="BIGINT"/>
            <result property="borrowerId" column="borrower_id" jdbcType="BIGINT"/>
            <result property="borrowPurpose" column="borrow_purpose" jdbcType="VARCHAR"/>
            <result property="borrowDate" column="borrow_date" jdbcType="TIMESTAMP"/>
            <result property="dueReturnDate" column="due_return_date" jdbcType="TIMESTAMP"/>
            <result property="returnDate" column="return_date" jdbcType="TIMESTAMP"/>
            <result property="borrowStatus" column="borrow_status" jdbcType="VARCHAR"/>
            <result property="remark" column="remark" jdbcType="VARCHAR"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="createUser" column="create_user" jdbcType="BIGINT"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
            <result property="updateUser" column="update_user" jdbcType="BIGINT"/>
            <result property="tenantId" column="tenant_id" jdbcType="BIGINT"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,documentation_id,borrower_id,
        borrow_purpose,borrow_date,due_return_date,
        return_date,borrow_status,remark,
        create_time,create_user,update_time,
        update_user,tenant_id
    </sql>
</mapper>
src/main/resources/mapper/warehouse/DocumentationMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.warehouse.mapper.DocumentationMapper">
    <resultMap id="BaseResultMap" type="com.ruoyi.warehouse.pojo.Documentation">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="categoryName" column="category_name" jdbcType="VARCHAR"/>
            <result property="docName" column="doc_name" jdbcType="VARCHAR"/>
            <result property="docNumber" column="doc_number" jdbcType="BIGINT"/>
            <result property="year" column="year" jdbcType="BIGINT"/>
            <result property="responsiblePerson" column="responsible_person" jdbcType="VARCHAR"/>
            <result property="warehouseGoodsShelvesRowcolId" column="warehouse_goods_shelves_rowcol_id" jdbcType="BIGINT"/>
            <result property="docDate" column="doc_date" jdbcType="TIMESTAMP"/>
            <result property="retentionPeriod" column="retention_period" jdbcType="BIGINT"/>
            <result property="securityLevel" column="security_level" jdbcType="VARCHAR"/>
            <result property="copyCount" column="copy_count" jdbcType="BIGINT"/>
            <result property="pageCount" column="page_count" jdbcType="BIGINT"/>
            <result property="docCategory" column="doc_category" jdbcType="VARCHAR"/>
            <result property="docType" column="doc_type" jdbcType="VARCHAR"/>
            <result property="urgencyLevel" column="urgency_level" jdbcType="VARCHAR"/>
            <result property="docStatus" column="doc_status" jdbcType="VARCHAR"/>
            <result property="remark" column="remark" jdbcType="VARCHAR"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="createUser" column="create_user" jdbcType="VARCHAR"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
            <result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
            <result property="tenantId" column="tenant_id" jdbcType="BIGINT"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,category_name,doc_name,
        doc_number,year,responsible_person,
        warehouse_goods_shelves_rowcol_id,doc_date,retention_period,
        security_level,copy_count,page_count,
        doc_category,doc_type,urgency_level,
        doc_status,remark,create_time,
        create_user,update_time,update_user,
        tenant_id
    </sql>
    <select id="listPage" resultType="com.ruoyi.warehouse.pojo.Documentation">
        select * from documentation
        where 1=1
        <if test="documentation.categoryName != null">
            and category_name = #{documentation.categoryName}
        </if>
        <if test="documentation.docName != null">
            and doc_name = #{documentation.docName}
        </if>
        <if test="documentation.docNumber != null">
            and doc_number = #{documentation.docNumber}
        </if>
        <if test="documentation.warehouse_goods_shelves_rowcol_id != null">
            and warehouse_goods_shelves_rowcol_id = #{documentation.warehouseGoodsShelvesRowcolId}
        </if>
    </select>
    <select id="list" resultType="com.ruoyi.warehouse.pojo.Documentation">
        select * from documentation t1
              left join warehouse_goods_shelves_rowcol t2 on t1.warehouse_goods_shelves_rowcol_id = t2.id
              left join warehouse_goods_shelves t3 on t2.warehouse_goods_shelves_id = t3.id
              left join warehouse t4 on t2.warehouse_id = t4.id
    </select>
</mapper>
src/main/resources/mapper/warehouse/WarehouseGoodsShelvesMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesMapper">
    <select id="listPage" resultType="com.ruoyi.warehouse.pojo.WarehouseGoodsShelves">
        select * from warehouse_goods_shelves
        <where>
            1=1
            <if test="goodsShelvesName != null and goodsShelvesName != ''">
                and goods_shelves_name like concat('%',#{goodsShelvesName},'%')
            </if>
            <if test="warehouseId != null">
                and warehouse_id = #{warehouseId}
            </if>
        </where>
    </select>
</mapper>
src/main/resources/mapper/warehouse/WarehouseGoodsShelvesRowcolMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper">
    <select id="listPage" resultType="com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol">
        select * from warehouse_goods_shelves_rowcol
        <where>
            1=1
            <if test="storey != null">
                and storey = #{storey}
            </if>
            <if test="arrange != null">
                and arrange = #{arrange}
            </if>
            <if test="warehouseGoodsShelvesId != null">
                and warehouse_goods_shelves_id = #{warehouseGoodsShelvesId}
            </if>
            <if test="warehouseId != null">
                and warehouse_id = #{warehouseId}
            </if>
        </where>
    </select>
</mapper>
src/main/resources/mapper/warehouse/WarehouseMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.warehouse.mapper.WarehouseMapper">
    <select id="listPage" resultType="com.ruoyi.warehouse.pojo.Warehouse">
        select * from warehouse
        <where>
            1=1
            <if test="warehouseName != null">
                and warehouse_name like concat('%',#{warehouseName},'%')
            </if>
        </where>
    </select>
</mapper>
src/main/resources/mybatis/mybatis-config.xml
@@ -12,7 +12,8 @@
        <!-- é…ç½®é»˜è®¤çš„æ‰§è¡Œå™¨.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
        <setting name="defaultExecutorType"      value="SIMPLE" />
        <!-- æŒ‡å®š MyBatis æ‰€ç”¨æ—¥å¿—的具体实现 -->
        <setting name="logImpl"                  value="SLF4J"  />
<!--        <setting name="logImpl"                  value="SLF4J"  />-->
        <setting name="logImpl"                  value="org.apache.ibatis.logging.stdout.StdOutImpl"  />
        <!-- ä½¿ç”¨é©¼å³°å‘½åæ³•转换字段 -->
        <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
    </settings>