From 3df6baa96b6761673f32b8e4fc5b8d6318ea0477 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 14 八月 2025 16:38:31 +0800
Subject: [PATCH] 仓库货架,文档借阅基础

---
 src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesRowcolService.java            |   24 
 src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesMapper.java                    |   23 
 src/main/java/com/ruoyi/warehouse/pojo/Warehouse.java                                        |   60 ++
 src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelves.java                            |   74 ++
 src/main/java/com/ruoyi/warehouse/service/impl/DocumentationServiceImpl.java                 |   41 +
 src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java            |   54 ++
 src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java                                |   24 
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java         |  219 ++++++++
 src/main/java/com/ruoyi/warehouse/pojo/DocumentationBorrowManagement.java                    |   94 +++
 src/main/java/com/ruoyi/warehouse/service/DocumentationService.java                          |   21 
 src/main/java/com/ruoyi/warehouse/pojo/Documentation.java                                    |  134 ++++
 src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java      |   60 ++
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java   |   74 ++
 src/main/java/com/ruoyi/warehouse/mapper/DocumentationBorrowManagementMapper.java            |   20 
 src/main/java/com/ruoyi/warehouse/controller/DocumentationController.java                    |   71 ++
 src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java                        |   58 ++
 src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelvesRowcol.java                      |   81 +++
 src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesService.java                  |   25 
 src/main/java/com/ruoyi/warehouse/mapper/DocumentationMapper.java                            |   29 +
 src/main/resources/mapper/warehouse/WarehouseMapper.xml                                      |   17 
 src/main/resources/mybatis/mybatis-config.xml                                                |    3 
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java                     |   54 ++
 src/main/java/com/ruoyi/warehouse/service/WarehouseService.java                              |   21 
 src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesRowcolMapper.java              |   24 
 src/main/resources/mapper/warehouse/DocumentationMapper.xml                                  |   64 ++
 src/main/java/com/ruoyi/warehouse/service/impl/DocumentationBorrowManagementServiceImpl.java |   43 +
 src/main/resources/mapper/warehouse/WarehouseGoodsShelvesRowcolMapper.xml                    |   27 +
 src/main/resources/mapper/warehouse/WarehouseGoodsShelvesMapper.xml                          |   19 
 src/main/java/com/ruoyi/warehouse/service/DocumentationBorrowManagementService.java          |   20 
 src/main/java/com/ruoyi/warehouse/controller/DocumentationBorrowManagementController.java    |   63 ++
 src/main/resources/mapper/warehouse/DocumentationBorrowManagementMapper.xml                  |   31 +
 31 files changed, 1,571 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/warehouse/controller/DocumentationBorrowManagementController.java b/src/main/java/com/ruoyi/warehouse/controller/DocumentationBorrowManagementController.java
new file mode 100644
index 0000000..652794f
--- /dev/null
+++ b/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);
+    }
+}
diff --git a/src/main/java/com/ruoyi/warehouse/controller/DocumentationController.java b/src/main/java/com/ruoyi/warehouse/controller/DocumentationController.java
new file mode 100644
index 0000000..e70cce9
--- /dev/null
+++ b/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("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        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);
+    }
+}
diff --git a/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java b/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java
new file mode 100644
index 0000000..a7281f0
--- /dev/null
+++ b/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("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        boolean remove = warehouseService.deleteByIds(ids);
+        return remove ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+    }
+}
diff --git a/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java b/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java
new file mode 100644
index 0000000..5229292
--- /dev/null
+++ b/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("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        boolean remove = warehouseGoodsShelvesService.deleteByIds(ids);
+        return remove ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+    }
+}
diff --git a/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java b/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java
new file mode 100644
index 0000000..a0c7479
--- /dev/null
+++ b/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("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        boolean remove = warehouseGoodsShelvesRowcolService.deleteByIds(ids);
+        return remove ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/warehouse/mapper/DocumentationBorrowManagementMapper.java b/src/main/java/com/ruoyi/warehouse/mapper/DocumentationBorrowManagementMapper.java
new file mode 100644
index 0000000..c724342
--- /dev/null
+++ b/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 閽堝琛ㄣ�恉ocumentation_borrow_management(鏂囨。鍊熼槄-褰掕繕琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2025-08-14 15:55:45
+* @Entity com.ruoyi.warehouse.pojo.DocumentationBorrowManagement
+*/
+@Mapper
+public interface DocumentationBorrowManagementMapper extends BaseMapper<DocumentationBorrowManagement> {
+
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/mapper/DocumentationMapper.java b/src/main/java/com/ruoyi/warehouse/mapper/DocumentationMapper.java
new file mode 100644
index 0000000..c87d9f0
--- /dev/null
+++ b/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 閽堝琛ㄣ�恉ocumentation(鏂囨。淇℃伅琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @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();
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesMapper.java b/src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesMapper.java
new file mode 100644
index 0000000..9ed16cb
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse_goods_shelves(浠撳簱璐ф灦琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @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);
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesRowcolMapper.java b/src/main/java/com/ruoyi/warehouse/mapper/WarehouseGoodsShelvesRowcolMapper.java
new file mode 100644
index 0000000..2df6b17
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse_goods_shelves_rowcol(浠撳簱璐ф灦灞傦紝鍒楄〃)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @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);
+
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java b/src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java
new file mode 100644
index 0000000..0e247ec
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse(浠撳簱琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @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);
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/pojo/Documentation.java b/src/main/java/com/ruoyi/warehouse/pojo/Documentation.java
new file mode 100644
index 0000000..cc3ea71
--- /dev/null
+++ b/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;
+
+    /**
+     * 璐d换浜�
+     */
+    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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/warehouse/pojo/DocumentationBorrowManagement.java b/src/main/java/com/ruoyi/warehouse/pojo/DocumentationBorrowManagement.java
new file mode 100644
index 0000000..96e7394
--- /dev/null
+++ b/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;
+
+    /**
+     * 鍊熼槄浜篿d
+     */
+    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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/warehouse/pojo/Warehouse.java b/src/main/java/com/ruoyi/warehouse/pojo/Warehouse.java
new file mode 100644
index 0000000..df26b72
--- /dev/null
+++ b/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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelves.java b/src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelves.java
new file mode 100644
index 0000000..d39f59d
--- /dev/null
+++ b/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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelvesRowcol.java b/src/main/java/com/ruoyi/warehouse/pojo/WarehouseGoodsShelvesRowcol.java
new file mode 100644
index 0000000..da8df11
--- /dev/null
+++ b/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;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/warehouse/service/DocumentationBorrowManagementService.java b/src/main/java/com/ruoyi/warehouse/service/DocumentationBorrowManagementService.java
new file mode 100644
index 0000000..e87fd87
--- /dev/null
+++ b/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 閽堝琛ㄣ�恉ocumentation_borrow_management(鏂囨。鍊熼槄-褰掕繕琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2025-08-14 15:55:45
+*/
+public interface DocumentationBorrowManagementService extends IService<DocumentationBorrowManagement> {
+
+    IPage<DocumentationBorrowManagement> listPage(Page page, DocumentationBorrowManagement documentationBorrowManagement);
+
+    void export(HttpServletResponse response);
+}
diff --git a/src/main/java/com/ruoyi/warehouse/service/DocumentationService.java b/src/main/java/com/ruoyi/warehouse/service/DocumentationService.java
new file mode 100644
index 0000000..4583482
--- /dev/null
+++ b/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 閽堝琛ㄣ�恉ocumentation(鏂囨。淇℃伅琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2025-08-14 14:05:49
+*/
+public interface DocumentationService extends IService<Documentation> {
+
+    IPage<Documentation> listPage(Page page, Documentation documentation);
+
+    void export(HttpServletResponse response);
+
+}
diff --git a/src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesRowcolService.java b/src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesRowcolService.java
new file mode 100644
index 0000000..44405ee
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse_goods_shelves_rowcol(浠撳簱璐ф灦灞傦紝鍒楄〃)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @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);
+
+}
diff --git a/src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesService.java b/src/main/java/com/ruoyi/warehouse/service/WarehouseGoodsShelvesService.java
new file mode 100644
index 0000000..c80a59d
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse_goods_shelves(浠撳簱璐ф灦琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @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);
+}
diff --git a/src/main/java/com/ruoyi/warehouse/service/WarehouseService.java b/src/main/java/com/ruoyi/warehouse/service/WarehouseService.java
new file mode 100644
index 0000000..5981162
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse(浠撳簱琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @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);
+}
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/DocumentationBorrowManagementServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/DocumentationBorrowManagementServiceImpl.java
new file mode 100644
index 0000000..2f793a1
--- /dev/null
+++ b/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 閽堝琛ㄣ�恉ocumentation_borrow_management(鏂囨。鍊熼槄-褰掕繕琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @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, "鏂囨。鍊熼槄-褰掕繕璁板綍");
+    }
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/DocumentationServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/DocumentationServiceImpl.java
new file mode 100644
index 0000000..195bfce
--- /dev/null
+++ b/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 閽堝琛ㄣ�恉ocumentation(鏂囨。淇℃伅琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @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, "鏂囨。淇℃伅琛�");
+    }
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java
new file mode 100644
index 0000000..3a0f3cc
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse_goods_shelves_rowcol(浠撳簱璐ф灦灞傦紝鍒楄〃)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @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;
+//    }
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java
new file mode 100644
index 0000000..fd5594b
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse_goods_shelves(浠撳簱璐ф灦琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @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("璐ф灦鎵归噺鍒犻櫎鎴愬姛锛孖D鍒楄〃锛歿}", ids);
+        return true;
+    }
+
+}
+
+
+
+
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
new file mode 100644
index 0000000..bcc475a
--- /dev/null
+++ b/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 閽堝琛ㄣ�恮arehouse(浠撳簱琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @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;
+    }
+}
+
+
+
+
diff --git a/src/main/resources/mapper/warehouse/DocumentationBorrowManagementMapper.xml b/src/main/resources/mapper/warehouse/DocumentationBorrowManagementMapper.xml
new file mode 100644
index 0000000..cec396b
--- /dev/null
+++ b/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>
diff --git a/src/main/resources/mapper/warehouse/DocumentationMapper.xml b/src/main/resources/mapper/warehouse/DocumentationMapper.xml
new file mode 100644
index 0000000..1d015bb
--- /dev/null
+++ b/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>
diff --git a/src/main/resources/mapper/warehouse/WarehouseGoodsShelvesMapper.xml b/src/main/resources/mapper/warehouse/WarehouseGoodsShelvesMapper.xml
new file mode 100644
index 0000000..b186579
--- /dev/null
+++ b/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>
diff --git a/src/main/resources/mapper/warehouse/WarehouseGoodsShelvesRowcolMapper.xml b/src/main/resources/mapper/warehouse/WarehouseGoodsShelvesRowcolMapper.xml
new file mode 100644
index 0000000..f3f4d90
--- /dev/null
+++ b/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>
diff --git a/src/main/resources/mapper/warehouse/WarehouseMapper.xml b/src/main/resources/mapper/warehouse/WarehouseMapper.xml
new file mode 100644
index 0000000..ac9cbc6
--- /dev/null
+++ b/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>
diff --git a/src/main/resources/mybatis/mybatis-config.xml b/src/main/resources/mybatis/mybatis-config.xml
index 4b8c496..ec5fa1a 100644
--- a/src/main/resources/mybatis/mybatis-config.xml
+++ b/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>

--
Gitblit v1.9.3