From f135716c0df75eeb080eb4c3a606987176da5e92 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 28 七月 2025 20:45:39 +0800
Subject: [PATCH] 工装管理基础代码

---
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveMapper.java                               |   17 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolsMapper.java                                     |   17 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolsService.java                                  |   14 
 src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingInventoryChangeController.java    |  177 ++
 src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapService.java                              |   34 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveDetailMapper.xml                      |   18 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktaking.java                                 |   78 +
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolInventoryMapper.java                             |   17 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingMapper.xml                        |    5 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveDetailService.java                      |   22 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolInventoryService.java                          |   14 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingService.java                        |   34 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolReceiveDetail.java                               |   65 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolHistoryServiceImpl.java                    |   19 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundInventoryServiceImpl.java           |   19 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundInventoryMapper.xml                   |    5 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingDetail.java                           |   69 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundDetailServiceImpl.java              |   44 
 src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundController.java                       |  316 ++++
 src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveService.java                            |   34 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapMapper.java                                 |   17 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingInventoryChangeService.java         |   14 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingDetailServiceImpl.java          |   27 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapDetailService.java                        |   22 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundDetail.java                               |   77 +
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolsServiceImpl.java                          |   19 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveDetailMapper.java                         |   32 
 src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingController.java                   |  304 ++++
 src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundService.java                            |   37 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolScrapDetail.java                                 |   53 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInventoryMapper.xml                          |    5 
 src/main/java/org/jeecg/modules/tms/controller/TmsToolReceiveController.java                       |  304 ++++
 src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundInventory.java                            |   55 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundDetailMapper.java                         |   40 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundServiceImpl.java                    |   81 +
 src/main/java/org/jeecg/modules/tms/entity/TmsToolInventory.java                                   |   71 
 src/main/java/org/jeecg/modules/tms/entity/TmsTools.java                                           |  101 +
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundMapper.xml                            |    5 
 src/main/java/org/jeecg/modules/tms/vo/TmsToolInboundRequest.java                                  |   66 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundInventoryMapper.java                      |   17 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveServiceImpl.java                    |   46 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapDetailMapper.xml                        |   18 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInventoryServiceImpl.java                  |   19 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolHistory.java                                     |   91 +
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingServiceImpl.java                |   46 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingDetailService.java                  |   22 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingInventoryChangeServiceImpl.java |   19 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingDetailMapper.xml                  |   18 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundMapper.java                               |   17 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolsMapper.xml                                  |    5 
 src/main/java/org/jeecg/modules/tms/vo/TmsToolScrapPage.java                                       |   87 +
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapMapper.xml                              |    5 
 src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundInventoryController.java              |  177 ++
 src/main/java/org/jeecg/modules/tms/entity/TmsToolInbound.java                                     |   88 +
 src/main/java/org/jeecg/modules/tms/entity/TmsToolScrap.java                                       |   88 +
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveDetailServiceImpl.java              |   27 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapServiceImpl.java                      |   46 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolHistoryMapper.java                               |   17 
 src/main/java/org/jeecg/modules/tms/entity/TmsToolReceive.java                                     |  116 +
 src/main/java/org/jeecg/modules/tms/controller/TmsToolHistoryController.java                       |  177 ++
 src/main/java/org/jeecg/modules/tms/controller/TmsToolScrapController.java                         |  304 ++++
 src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingInventoryChange.java                  |   67 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingMapper.java                           |   17 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapDetailMapper.java                           |   32 
 db/双林新火炬MES数据库设计.pdma.json                                                                         |    6 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingInventoryChangeMapper.xml         |    5 
 src/main/java/org/jeecg/modules/tms/controller/TmsToolInventoryController.java                     |  177 ++
 src/main/java/org/jeecg/modules/tms/controller/TmsToolsController.java                             |  160 ++
 src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundInventoryService.java                   |   14 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundDetailMapper.xml                      |   29 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundDetailService.java                      |   28 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingInventoryChangeMapper.java            |   17 
 src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingDetailMapper.java                     |   32 
 src/main/java/org/jeecg/modules/tms/service/ITmsToolHistoryService.java                            |   14 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolHistoryMapper.xml                            |    5 
 src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapDetailServiceImpl.java                |   27 
 src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveMapper.xml                            |    5 
 77 files changed, 4,430 insertions(+), 3 deletions(-)

diff --git "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
index 5313a1a..fe14689 100644
--- "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
+++ "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
@@ -2,9 +2,9 @@
   "name": "鍙屾灄鏂扮伀鐐琈ES鏁版嵁搴撹璁�",
   "describe": "鎻忚堪鍙岃柂鏂扮伀鐐琈ES鏁版嵁搴撹璁¤鎯�",
   "avatar": "",
-  "version": "4.9.2",
+  "version": "4.9.4",
   "createdTime": "2025-3-10 16:38:19",
-  "updatedTime": "2025-7-1 14:46:42",
+  "updatedTime": "2025-7-28 09:40:53",
   "dbConns": [],
   "profile": {
     "default": {
@@ -632,7 +632,7 @@
       "#DDE5FF"
     ],
     "DDLToggleCase": "L",
-    "menuWidth": "376px"
+    "menuWidth": "364px"
   },
   "entities": [
     {
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolHistoryController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolHistoryController.java
new file mode 100644
index 0000000..d8b2d38
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolHistoryController.java
@@ -0,0 +1,177 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolHistory;
+import org.jeecg.modules.tms.service.ITmsToolHistoryService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 宸ヨ灞ュ巻
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ灞ュ巻")
+@RestController
+@RequestMapping("/tms/tmsToolHistory")
+@Slf4j
+public class TmsToolHistoryController extends JeecgController<TmsToolHistory, ITmsToolHistoryService> {
+	@Autowired
+	private ITmsToolHistoryService tmsToolHistoryService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param tmsToolHistory
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ灞ュ巻-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ灞ュ巻-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ灞ュ巻-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolHistory>> queryPageList(TmsToolHistory tmsToolHistory,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolHistory> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolHistory, req.getParameterMap());
+		Page<TmsToolHistory> page = new Page<TmsToolHistory>(pageNo, pageSize);
+		IPage<TmsToolHistory> pageList = tmsToolHistoryService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param tmsToolHistory
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ灞ュ巻-娣诲姞")
+	@ApiOperation(value="宸ヨ灞ュ巻-娣诲姞", notes="宸ヨ灞ュ巻-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_history:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody TmsToolHistory tmsToolHistory) {
+		tmsToolHistoryService.save(tmsToolHistory);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param tmsToolHistory
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ灞ュ巻-缂栬緫")
+	@ApiOperation(value="宸ヨ灞ュ巻-缂栬緫", notes="宸ヨ灞ュ巻-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_history:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody TmsToolHistory tmsToolHistory) {
+		tmsToolHistoryService.updateById(tmsToolHistory);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ灞ュ巻-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ灞ュ巻-閫氳繃id鍒犻櫎", notes="宸ヨ灞ュ巻-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_history:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		tmsToolHistoryService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ灞ュ巻-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ灞ュ巻-鎵归噺鍒犻櫎", notes="宸ヨ灞ュ巻-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_history:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.tmsToolHistoryService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ灞ュ巻-閫氳繃id鏌ヨ")
+	@ApiOperation(value="宸ヨ灞ュ巻-閫氳繃id鏌ヨ", notes="宸ヨ灞ュ巻-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<TmsToolHistory> queryById(@RequestParam(name="id",required=true) String id) {
+		TmsToolHistory tmsToolHistory = tmsToolHistoryService.getById(id);
+		if(tmsToolHistory==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(tmsToolHistory);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param tmsToolHistory
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_history:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolHistory tmsToolHistory) {
+        return super.exportXls(request, tmsToolHistory, TmsToolHistory.class, "宸ヨ灞ュ巻");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tool_history:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolHistory.class);
+    }
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundController.java
new file mode 100644
index 0000000..8d9bb68
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundController.java
@@ -0,0 +1,316 @@
+package org.jeecg.modules.tms.controller;
+
+import org.jeecg.common.system.query.QueryGenerator;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.tms.vo.TmsToolInboundRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolInboundDetail;
+import org.jeecg.modules.tms.entity.TmsToolInbound;
+import org.jeecg.modules.tms.service.ITmsToolInboundService;
+import org.jeecg.modules.tms.service.ITmsToolInboundDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+ /**
+ * @Description: 宸ヨ鍏ュ簱
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ鍏ュ簱")
+@RestController
+@RequestMapping("/tms/tmsToolInbound")
+@Slf4j
+public class TmsToolInboundController extends JeecgController<TmsToolInbound, ITmsToolInboundService> {
+
+	@Autowired
+	private ITmsToolInboundService tmsToolInboundService;
+
+	@Autowired
+	private ITmsToolInboundDetailService tmsToolInboundDetailService;
+
+
+	/*---------------------------------涓昏〃澶勭悊-begin-------------------------------------*/
+
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 * @param tmsToolInbound
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鍏ュ簱-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ鍏ュ簱-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ鍏ュ簱-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolInbound>> queryPageList(TmsToolInbound tmsToolInbound,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolInbound> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolInbound, req.getParameterMap());
+		Page<TmsToolInbound> page = new Page<TmsToolInbound>(pageNo, pageSize);
+		IPage<TmsToolInbound> pageList = tmsToolInboundService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+     *   娣诲姞
+     * @param tmsToolInbound
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鍏ュ簱-娣诲姞")
+    @ApiOperation(value="宸ヨ鍏ュ簱-娣诲姞", notes="宸ヨ鍏ュ簱-娣诲姞")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound:add")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody TmsToolInboundRequest tmsToolInboundRequest) {
+        try {
+            tmsToolInboundService.add(tmsToolInboundRequest);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     *  缂栬緫
+     * @param tmsToolInbound
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鍏ュ簱-缂栬緫")
+    @ApiOperation(value="宸ヨ鍏ュ簱-缂栬緫", notes="宸ヨ鍏ュ簱-缂栬緫")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound:edit")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+    public Result<String> edit(@RequestBody TmsToolInboundRequest tmsToolInboundRequest) {
+        try {
+            tmsToolInboundService.update(tmsToolInboundRequest);
+        } catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鍏ュ簱-閫氳繃id鍒犻櫎")
+    @ApiOperation(value="宸ヨ鍏ュ簱-閫氳繃id鍒犻櫎", notes="宸ヨ鍏ュ簱-閫氳繃id鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+        tmsToolInboundService.delMain(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鍏ュ簱-鎵归噺鍒犻櫎")
+    @ApiOperation(value="宸ヨ鍏ュ簱-鎵归噺鍒犻櫎", notes="宸ヨ鍏ュ簱-鎵归噺鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+        this.tmsToolInboundService.delBatchMain(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolInbound tmsToolInbound) {
+        return super.exportXls(request, tmsToolInbound, TmsToolInbound.class, "宸ヨ鍏ュ簱");
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolInbound.class);
+    }
+	/*---------------------------------涓昏〃澶勭悊-end-------------------------------------*/
+	
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ鍏ュ簱鏄庣粏-begin----------------------------------------------*/
+	/**
+	 * 閫氳繃涓昏〃ID鏌ヨ
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鍏ュ簱鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@ApiOperation(value="宸ヨ鍏ュ簱鏄庣粏-閫氳繃涓昏〃ID鏌ヨ", notes="宸ヨ鍏ュ簱鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@GetMapping(value = "/listTmsToolInboundDetailByMainId")
+    public Result<IPage<TmsToolInboundDetail>> listTmsToolInboundDetailByMainId(TmsToolInboundDetail tmsToolInboundDetail,
+                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                    HttpServletRequest req) {
+		Map<String, String[]> parameterMap = req.getParameterMap();
+		QueryWrapper<TmsToolInboundDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolInboundDetail, parameterMap);
+        Page<TmsToolInboundDetail> page = new Page<TmsToolInboundDetail>(pageNo, pageSize);
+        IPage<TmsToolInboundDetail> pageList = tmsToolInboundDetailService.queryPageList(page, parameterMap);
+        return Result.OK(pageList);
+    }
+
+	/**
+	 * 娣诲姞
+	 * @param tmsToolInboundDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱鏄庣粏-娣诲姞")
+	@ApiOperation(value="宸ヨ鍏ュ簱鏄庣粏-娣诲姞", notes="宸ヨ鍏ュ簱鏄庣粏-娣诲姞")
+	@PostMapping(value = "/addTmsToolInboundDetail")
+	public Result<String> addTmsToolInboundDetail(@RequestBody TmsToolInboundDetail tmsToolInboundDetail) {
+		tmsToolInboundDetailService.save(tmsToolInboundDetail);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+
+    /**
+	 * 缂栬緫
+	 * @param tmsToolInboundDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱鏄庣粏-缂栬緫")
+	@ApiOperation(value="宸ヨ鍏ュ簱鏄庣粏-缂栬緫", notes="宸ヨ鍏ュ簱鏄庣粏-缂栬緫")
+	@RequestMapping(value = "/editTmsToolInboundDetail", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> editTmsToolInboundDetail(@RequestBody TmsToolInboundDetail tmsToolInboundDetail) {
+		tmsToolInboundDetailService.updateById(tmsToolInboundDetail);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱鏄庣粏-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ鍏ュ簱鏄庣粏-閫氳繃id鍒犻櫎", notes="宸ヨ鍏ュ簱鏄庣粏-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/deleteTmsToolInboundDetail")
+	public Result<String> deleteTmsToolInboundDetail(@RequestParam(name="id",required=true) String id) {
+		tmsToolInboundDetailService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+
+	/**
+	 * 鎵归噺鍒犻櫎
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱鏄庣粏-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ鍏ュ簱鏄庣粏-鎵归噺鍒犻櫎", notes="宸ヨ鍏ュ簱鏄庣粏-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatchTmsToolInboundDetail")
+	public Result<String> deleteBatchTmsToolInboundDetail(@RequestParam(name="ids",required=true) String ids) {
+	    this.tmsToolInboundDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    @RequestMapping(value = "/exportTmsToolInboundDetail")
+    public ModelAndView exportTmsToolInboundDetail(HttpServletRequest request, TmsToolInboundDetail tmsToolInboundDetail) {
+		 // Step.1 缁勮鏌ヨ鏉′欢
+		 QueryWrapper<TmsToolInboundDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolInboundDetail, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // Step.2 鑾峰彇瀵煎嚭鏁版嵁
+		 List<TmsToolInboundDetail> pageList = tmsToolInboundDetailService.list(queryWrapper);
+		 List<TmsToolInboundDetail> exportList = null;
+
+		 // 杩囨护閫変腑鏁版嵁
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+		 } else {
+			 exportList = pageList;
+		 }
+
+		 // Step.3 AutoPoi 瀵煎嚭Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //姝ゅ璁剧疆鐨刦ilename鏃犳晥,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "宸ヨ鍏ュ簱鏄庣粏");
+		 mv.addObject(NormalExcelConstants.CLASS, TmsToolInboundDetail.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("宸ヨ鍏ュ簱鏄庣粏鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), "宸ヨ鍏ュ簱鏄庣粏"));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    @RequestMapping(value = "/importTmsToolInboundDetail/{mainId}")
+    public Result<?> importTmsToolInboundDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
+		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+       // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+			 MultipartFile file = entity.getValue();
+			 ImportParams params = new ImportParams();
+			 params.setTitleRows(2);
+			 params.setHeadRows(1);
+			 params.setNeedSave(true);
+			 try {
+				 List<TmsToolInboundDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), TmsToolInboundDetail.class, params);
+				 for (TmsToolInboundDetail temp : list) {
+                    temp.setOrderId(mainId);
+				 }
+				 long start = System.currentTimeMillis();
+				 tmsToolInboundDetailService.saveBatch(list);
+				 log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣");
+				 return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size());
+			 } catch (Exception e) {
+				 log.error(e.getMessage(), e);
+				 return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage());
+			 } finally {
+				 try {
+					 file.getInputStream().close();
+				 } catch (IOException e) {
+					 e.printStackTrace();
+				 }
+			 }
+		 }
+		 return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+    }
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ鍏ュ簱鏄庣粏-end----------------------------------------------*/
+
+
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundInventoryController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundInventoryController.java
new file mode 100644
index 0000000..4cb3ad1
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolInboundInventoryController.java
@@ -0,0 +1,177 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolInboundInventory;
+import org.jeecg.modules.tms.service.ITmsToolInboundInventoryService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 宸ヨ鍏ュ簱搴撳瓨鍏崇郴
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ鍏ュ簱搴撳瓨鍏崇郴")
+@RestController
+@RequestMapping("/tms/tmsToolInboundInventory")
+@Slf4j
+public class TmsToolInboundInventoryController extends JeecgController<TmsToolInboundInventory, ITmsToolInboundInventoryService> {
+	@Autowired
+	private ITmsToolInboundInventoryService tmsToolInboundInventoryService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param tmsToolInboundInventory
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鍏ュ簱搴撳瓨鍏崇郴-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolInboundInventory>> queryPageList(TmsToolInboundInventory tmsToolInboundInventory,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolInboundInventory> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolInboundInventory, req.getParameterMap());
+		Page<TmsToolInboundInventory> page = new Page<TmsToolInboundInventory>(pageNo, pageSize);
+		IPage<TmsToolInboundInventory> pageList = tmsToolInboundInventoryService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param tmsToolInboundInventory
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱搴撳瓨鍏崇郴-娣诲姞")
+	@ApiOperation(value="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-娣诲姞", notes="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inbound_inventory:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody TmsToolInboundInventory tmsToolInboundInventory) {
+		tmsToolInboundInventoryService.save(tmsToolInboundInventory);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param tmsToolInboundInventory
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱搴撳瓨鍏崇郴-缂栬緫")
+	@ApiOperation(value="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-缂栬緫", notes="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inbound_inventory:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody TmsToolInboundInventory tmsToolInboundInventory) {
+		tmsToolInboundInventoryService.updateById(tmsToolInboundInventory);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱搴撳瓨鍏崇郴-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-閫氳繃id鍒犻櫎", notes="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inbound_inventory:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		tmsToolInboundInventoryService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鍏ュ簱搴撳瓨鍏崇郴-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-鎵归噺鍒犻櫎", notes="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inbound_inventory:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.tmsToolInboundInventoryService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鍏ュ簱搴撳瓨鍏崇郴-閫氳繃id鏌ヨ")
+	@ApiOperation(value="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-閫氳繃id鏌ヨ", notes="宸ヨ鍏ュ簱搴撳瓨鍏崇郴-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<TmsToolInboundInventory> queryById(@RequestParam(name="id",required=true) String id) {
+		TmsToolInboundInventory tmsToolInboundInventory = tmsToolInboundInventoryService.getById(id);
+		if(tmsToolInboundInventory==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(tmsToolInboundInventory);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param tmsToolInboundInventory
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inbound_inventory:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolInboundInventory tmsToolInboundInventory) {
+        return super.exportXls(request, tmsToolInboundInventory, TmsToolInboundInventory.class, "宸ヨ鍏ュ簱搴撳瓨鍏崇郴");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tool_inbound_inventory:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolInboundInventory.class);
+    }
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolInventoryController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolInventoryController.java
new file mode 100644
index 0000000..3ebba38
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolInventoryController.java
@@ -0,0 +1,177 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolInventory;
+import org.jeecg.modules.tms.service.ITmsToolInventoryService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 宸ヨ搴撳瓨
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ搴撳瓨")
+@RestController
+@RequestMapping("/tms/tmsToolInventory")
+@Slf4j
+public class TmsToolInventoryController extends JeecgController<TmsToolInventory, ITmsToolInventoryService> {
+	@Autowired
+	private ITmsToolInventoryService tmsToolInventoryService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param tmsToolInventory
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ搴撳瓨-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ搴撳瓨-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ搴撳瓨-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolInventory>> queryPageList(TmsToolInventory tmsToolInventory,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolInventory> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolInventory, req.getParameterMap());
+		Page<TmsToolInventory> page = new Page<TmsToolInventory>(pageNo, pageSize);
+		IPage<TmsToolInventory> pageList = tmsToolInventoryService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param tmsToolInventory
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ搴撳瓨-娣诲姞")
+	@ApiOperation(value="宸ヨ搴撳瓨-娣诲姞", notes="宸ヨ搴撳瓨-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inventory:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody TmsToolInventory tmsToolInventory) {
+		tmsToolInventoryService.save(tmsToolInventory);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param tmsToolInventory
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ搴撳瓨-缂栬緫")
+	@ApiOperation(value="宸ヨ搴撳瓨-缂栬緫", notes="宸ヨ搴撳瓨-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inventory:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody TmsToolInventory tmsToolInventory) {
+		tmsToolInventoryService.updateById(tmsToolInventory);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ搴撳瓨-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ搴撳瓨-閫氳繃id鍒犻櫎", notes="宸ヨ搴撳瓨-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inventory:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		tmsToolInventoryService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ搴撳瓨-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ搴撳瓨-鎵归噺鍒犻櫎", notes="宸ヨ搴撳瓨-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_inventory:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.tmsToolInventoryService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ搴撳瓨-閫氳繃id鏌ヨ")
+	@ApiOperation(value="宸ヨ搴撳瓨-閫氳繃id鏌ヨ", notes="宸ヨ搴撳瓨-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<TmsToolInventory> queryById(@RequestParam(name="id",required=true) String id) {
+		TmsToolInventory tmsToolInventory = tmsToolInventoryService.getById(id);
+		if(tmsToolInventory==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(tmsToolInventory);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param tmsToolInventory
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_inventory:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolInventory tmsToolInventory) {
+        return super.exportXls(request, tmsToolInventory, TmsToolInventory.class, "宸ヨ搴撳瓨");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tool_inventory:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolInventory.class);
+    }
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolReceiveController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolReceiveController.java
new file mode 100644
index 0000000..8f803c6
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolReceiveController.java
@@ -0,0 +1,304 @@
+package org.jeecg.modules.tms.controller;
+
+import org.jeecg.common.system.query.QueryGenerator;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.api.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.web.servlet.ModelAndView;
+import java.util.Arrays;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolReceiveDetail;
+import org.jeecg.modules.tms.entity.TmsToolReceive;
+import org.jeecg.modules.tms.service.ITmsToolReceiveService;
+import org.jeecg.modules.tms.service.ITmsToolReceiveDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+ /**
+ * @Description: 宸ヨ棰嗙敤
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ棰嗙敤")
+@RestController
+@RequestMapping("/tms/tmsToolReceive")
+@Slf4j
+public class TmsToolReceiveController extends JeecgController<TmsToolReceive, ITmsToolReceiveService> {
+
+	@Autowired
+	private ITmsToolReceiveService tmsToolReceiveService;
+
+	@Autowired
+	private ITmsToolReceiveDetailService tmsToolReceiveDetailService;
+
+
+	/*---------------------------------涓昏〃澶勭悊-begin-------------------------------------*/
+
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 * @param tmsToolReceive
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ棰嗙敤-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ棰嗙敤-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ棰嗙敤-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolReceive>> queryPageList(TmsToolReceive tmsToolReceive,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolReceive> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolReceive, req.getParameterMap());
+		Page<TmsToolReceive> page = new Page<TmsToolReceive>(pageNo, pageSize);
+		IPage<TmsToolReceive> pageList = tmsToolReceiveService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+     *   娣诲姞
+     * @param tmsToolReceive
+     * @return
+     */
+    @AutoLog(value = "宸ヨ棰嗙敤-娣诲姞")
+    @ApiOperation(value="宸ヨ棰嗙敤-娣诲姞", notes="宸ヨ棰嗙敤-娣诲姞")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_receive:add")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody TmsToolReceive tmsToolReceive) {
+        tmsToolReceiveService.save(tmsToolReceive);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     *  缂栬緫
+     * @param tmsToolReceive
+     * @return
+     */
+    @AutoLog(value = "宸ヨ棰嗙敤-缂栬緫")
+    @ApiOperation(value="宸ヨ棰嗙敤-缂栬緫", notes="宸ヨ棰嗙敤-缂栬緫")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_receive:edit")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+    public Result<String> edit(@RequestBody TmsToolReceive tmsToolReceive) {
+        tmsToolReceiveService.updateById(tmsToolReceive);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "宸ヨ棰嗙敤-閫氳繃id鍒犻櫎")
+    @ApiOperation(value="宸ヨ棰嗙敤-閫氳繃id鍒犻櫎", notes="宸ヨ棰嗙敤-閫氳繃id鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_receive:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+        tmsToolReceiveService.delMain(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "宸ヨ棰嗙敤-鎵归噺鍒犻櫎")
+    @ApiOperation(value="宸ヨ棰嗙敤-鎵归噺鍒犻櫎", notes="宸ヨ棰嗙敤-鎵归噺鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_receive:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+        this.tmsToolReceiveService.delBatchMain(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_receive:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolReceive tmsToolReceive) {
+        return super.exportXls(request, tmsToolReceive, TmsToolReceive.class, "宸ヨ棰嗙敤");
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_receive:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolReceive.class);
+    }
+	/*---------------------------------涓昏〃澶勭悊-end-------------------------------------*/
+	
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ棰嗙敤鏄庣粏-begin----------------------------------------------*/
+	/**
+	 * 閫氳繃涓昏〃ID鏌ヨ
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ棰嗙敤鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@ApiOperation(value="宸ヨ棰嗙敤鏄庣粏-閫氳繃涓昏〃ID鏌ヨ", notes="宸ヨ棰嗙敤鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@GetMapping(value = "/listTmsToolReceiveDetailByMainId")
+    public Result<IPage<TmsToolReceiveDetail>> listTmsToolReceiveDetailByMainId(TmsToolReceiveDetail tmsToolReceiveDetail,
+                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                    HttpServletRequest req) {
+        QueryWrapper<TmsToolReceiveDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolReceiveDetail, req.getParameterMap());
+        Page<TmsToolReceiveDetail> page = new Page<TmsToolReceiveDetail>(pageNo, pageSize);
+        IPage<TmsToolReceiveDetail> pageList = tmsToolReceiveDetailService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+	/**
+	 * 娣诲姞
+	 * @param tmsToolReceiveDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ棰嗙敤鏄庣粏-娣诲姞")
+	@ApiOperation(value="宸ヨ棰嗙敤鏄庣粏-娣诲姞", notes="宸ヨ棰嗙敤鏄庣粏-娣诲姞")
+	@PostMapping(value = "/addTmsToolReceiveDetail")
+	public Result<String> addTmsToolReceiveDetail(@RequestBody TmsToolReceiveDetail tmsToolReceiveDetail) {
+		tmsToolReceiveDetailService.save(tmsToolReceiveDetail);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+
+    /**
+	 * 缂栬緫
+	 * @param tmsToolReceiveDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ棰嗙敤鏄庣粏-缂栬緫")
+	@ApiOperation(value="宸ヨ棰嗙敤鏄庣粏-缂栬緫", notes="宸ヨ棰嗙敤鏄庣粏-缂栬緫")
+	@RequestMapping(value = "/editTmsToolReceiveDetail", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> editTmsToolReceiveDetail(@RequestBody TmsToolReceiveDetail tmsToolReceiveDetail) {
+		tmsToolReceiveDetailService.updateById(tmsToolReceiveDetail);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ棰嗙敤鏄庣粏-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ棰嗙敤鏄庣粏-閫氳繃id鍒犻櫎", notes="宸ヨ棰嗙敤鏄庣粏-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/deleteTmsToolReceiveDetail")
+	public Result<String> deleteTmsToolReceiveDetail(@RequestParam(name="id",required=true) String id) {
+		tmsToolReceiveDetailService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+
+	/**
+	 * 鎵归噺鍒犻櫎
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ棰嗙敤鏄庣粏-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ棰嗙敤鏄庣粏-鎵归噺鍒犻櫎", notes="宸ヨ棰嗙敤鏄庣粏-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatchTmsToolReceiveDetail")
+	public Result<String> deleteBatchTmsToolReceiveDetail(@RequestParam(name="ids",required=true) String ids) {
+	    this.tmsToolReceiveDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    @RequestMapping(value = "/exportTmsToolReceiveDetail")
+    public ModelAndView exportTmsToolReceiveDetail(HttpServletRequest request, TmsToolReceiveDetail tmsToolReceiveDetail) {
+		 // Step.1 缁勮鏌ヨ鏉′欢
+		 QueryWrapper<TmsToolReceiveDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolReceiveDetail, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // Step.2 鑾峰彇瀵煎嚭鏁版嵁
+		 List<TmsToolReceiveDetail> pageList = tmsToolReceiveDetailService.list(queryWrapper);
+		 List<TmsToolReceiveDetail> exportList = null;
+
+		 // 杩囨护閫変腑鏁版嵁
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+		 } else {
+			 exportList = pageList;
+		 }
+
+		 // Step.3 AutoPoi 瀵煎嚭Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //姝ゅ璁剧疆鐨刦ilename鏃犳晥,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "宸ヨ棰嗙敤鏄庣粏");
+		 mv.addObject(NormalExcelConstants.CLASS, TmsToolReceiveDetail.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("宸ヨ棰嗙敤鏄庣粏鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), "宸ヨ棰嗙敤鏄庣粏"));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    @RequestMapping(value = "/importTmsToolReceiveDetail/{mainId}")
+    public Result<?> importTmsToolReceiveDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
+		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+       // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+			 MultipartFile file = entity.getValue();
+			 ImportParams params = new ImportParams();
+			 params.setTitleRows(2);
+			 params.setHeadRows(1);
+			 params.setNeedSave(true);
+			 try {
+				 List<TmsToolReceiveDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), TmsToolReceiveDetail.class, params);
+				 for (TmsToolReceiveDetail temp : list) {
+                    temp.setOrderId(mainId);
+				 }
+				 long start = System.currentTimeMillis();
+				 tmsToolReceiveDetailService.saveBatch(list);
+				 log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣");
+				 return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size());
+			 } catch (Exception e) {
+				 log.error(e.getMessage(), e);
+				 return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage());
+			 } finally {
+				 try {
+					 file.getInputStream().close();
+				 } catch (IOException e) {
+					 e.printStackTrace();
+				 }
+			 }
+		 }
+		 return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+    }
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ棰嗙敤鏄庣粏-end----------------------------------------------*/
+
+
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolScrapController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolScrapController.java
new file mode 100644
index 0000000..77d8353
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolScrapController.java
@@ -0,0 +1,304 @@
+package org.jeecg.modules.tms.controller;
+
+import org.jeecg.common.system.query.QueryGenerator;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.api.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.web.servlet.ModelAndView;
+import java.util.Arrays;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import org.jeecg.modules.tms.entity.TmsToolScrap;
+import org.jeecg.modules.tms.service.ITmsToolScrapService;
+import org.jeecg.modules.tms.service.ITmsToolScrapDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+ /**
+ * @Description: 宸ヨ鎶ュ簾
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ鎶ュ簾")
+@RestController
+@RequestMapping("/tms/tmsToolScrap")
+@Slf4j
+public class TmsToolScrapController extends JeecgController<TmsToolScrap, ITmsToolScrapService> {
+
+	@Autowired
+	private ITmsToolScrapService tmsToolScrapService;
+
+	@Autowired
+	private ITmsToolScrapDetailService tmsToolScrapDetailService;
+
+
+	/*---------------------------------涓昏〃澶勭悊-begin-------------------------------------*/
+
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 * @param tmsToolScrap
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鎶ュ簾-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ鎶ュ簾-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ鎶ュ簾-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolScrap>> queryPageList(TmsToolScrap tmsToolScrap,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolScrap> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolScrap, req.getParameterMap());
+		Page<TmsToolScrap> page = new Page<TmsToolScrap>(pageNo, pageSize);
+		IPage<TmsToolScrap> pageList = tmsToolScrapService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+     *   娣诲姞
+     * @param tmsToolScrap
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鎶ュ簾-娣诲姞")
+    @ApiOperation(value="宸ヨ鎶ュ簾-娣诲姞", notes="宸ヨ鎶ュ簾-娣诲姞")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_scrap:add")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody TmsToolScrap tmsToolScrap) {
+        tmsToolScrapService.save(tmsToolScrap);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     *  缂栬緫
+     * @param tmsToolScrap
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鎶ュ簾-缂栬緫")
+    @ApiOperation(value="宸ヨ鎶ュ簾-缂栬緫", notes="宸ヨ鎶ュ簾-缂栬緫")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_scrap:edit")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+    public Result<String> edit(@RequestBody TmsToolScrap tmsToolScrap) {
+        tmsToolScrapService.updateById(tmsToolScrap);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鎶ュ簾-閫氳繃id鍒犻櫎")
+    @ApiOperation(value="宸ヨ鎶ュ簾-閫氳繃id鍒犻櫎", notes="宸ヨ鎶ュ簾-閫氳繃id鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_scrap:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+        tmsToolScrapService.delMain(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鎶ュ簾-鎵归噺鍒犻櫎")
+    @ApiOperation(value="宸ヨ鎶ュ簾-鎵归噺鍒犻櫎", notes="宸ヨ鎶ュ簾-鎵归噺鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_scrap:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+        this.tmsToolScrapService.delBatchMain(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_scrap:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolScrap tmsToolScrap) {
+        return super.exportXls(request, tmsToolScrap, TmsToolScrap.class, "宸ヨ鎶ュ簾");
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_scrap:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolScrap.class);
+    }
+	/*---------------------------------涓昏〃澶勭悊-end-------------------------------------*/
+	
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ鎶ュ簾鏄庣粏-begin----------------------------------------------*/
+	/**
+	 * 閫氳繃涓昏〃ID鏌ヨ
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鎶ュ簾鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@ApiOperation(value="宸ヨ鎶ュ簾鏄庣粏-閫氳繃涓昏〃ID鏌ヨ", notes="宸ヨ鎶ュ簾鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@GetMapping(value = "/listTmsToolScrapDetailByMainId")
+    public Result<IPage<TmsToolScrapDetail>> listTmsToolScrapDetailByMainId(TmsToolScrapDetail tmsToolScrapDetail,
+                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                    HttpServletRequest req) {
+        QueryWrapper<TmsToolScrapDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolScrapDetail, req.getParameterMap());
+        Page<TmsToolScrapDetail> page = new Page<TmsToolScrapDetail>(pageNo, pageSize);
+        IPage<TmsToolScrapDetail> pageList = tmsToolScrapDetailService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+	/**
+	 * 娣诲姞
+	 * @param tmsToolScrapDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鎶ュ簾鏄庣粏-娣诲姞")
+	@ApiOperation(value="宸ヨ鎶ュ簾鏄庣粏-娣诲姞", notes="宸ヨ鎶ュ簾鏄庣粏-娣诲姞")
+	@PostMapping(value = "/addTmsToolScrapDetail")
+	public Result<String> addTmsToolScrapDetail(@RequestBody TmsToolScrapDetail tmsToolScrapDetail) {
+		tmsToolScrapDetailService.save(tmsToolScrapDetail);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+
+    /**
+	 * 缂栬緫
+	 * @param tmsToolScrapDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鎶ュ簾鏄庣粏-缂栬緫")
+	@ApiOperation(value="宸ヨ鎶ュ簾鏄庣粏-缂栬緫", notes="宸ヨ鎶ュ簾鏄庣粏-缂栬緫")
+	@RequestMapping(value = "/editTmsToolScrapDetail", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> editTmsToolScrapDetail(@RequestBody TmsToolScrapDetail tmsToolScrapDetail) {
+		tmsToolScrapDetailService.updateById(tmsToolScrapDetail);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鎶ュ簾鏄庣粏-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ鎶ュ簾鏄庣粏-閫氳繃id鍒犻櫎", notes="宸ヨ鎶ュ簾鏄庣粏-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/deleteTmsToolScrapDetail")
+	public Result<String> deleteTmsToolScrapDetail(@RequestParam(name="id",required=true) String id) {
+		tmsToolScrapDetailService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+
+	/**
+	 * 鎵归噺鍒犻櫎
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鎶ュ簾鏄庣粏-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ鎶ュ簾鏄庣粏-鎵归噺鍒犻櫎", notes="宸ヨ鎶ュ簾鏄庣粏-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatchTmsToolScrapDetail")
+	public Result<String> deleteBatchTmsToolScrapDetail(@RequestParam(name="ids",required=true) String ids) {
+	    this.tmsToolScrapDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    @RequestMapping(value = "/exportTmsToolScrapDetail")
+    public ModelAndView exportTmsToolScrapDetail(HttpServletRequest request, TmsToolScrapDetail tmsToolScrapDetail) {
+		 // Step.1 缁勮鏌ヨ鏉′欢
+		 QueryWrapper<TmsToolScrapDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolScrapDetail, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // Step.2 鑾峰彇瀵煎嚭鏁版嵁
+		 List<TmsToolScrapDetail> pageList = tmsToolScrapDetailService.list(queryWrapper);
+		 List<TmsToolScrapDetail> exportList = null;
+
+		 // 杩囨护閫変腑鏁版嵁
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+		 } else {
+			 exportList = pageList;
+		 }
+
+		 // Step.3 AutoPoi 瀵煎嚭Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //姝ゅ璁剧疆鐨刦ilename鏃犳晥,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "宸ヨ鎶ュ簾鏄庣粏");
+		 mv.addObject(NormalExcelConstants.CLASS, TmsToolScrapDetail.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("宸ヨ鎶ュ簾鏄庣粏鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), "宸ヨ鎶ュ簾鏄庣粏"));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    @RequestMapping(value = "/importTmsToolScrapDetail/{mainId}")
+    public Result<?> importTmsToolScrapDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
+		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+       // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+			 MultipartFile file = entity.getValue();
+			 ImportParams params = new ImportParams();
+			 params.setTitleRows(2);
+			 params.setHeadRows(1);
+			 params.setNeedSave(true);
+			 try {
+				 List<TmsToolScrapDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), TmsToolScrapDetail.class, params);
+				 for (TmsToolScrapDetail temp : list) {
+                    temp.setOrderId(mainId);
+				 }
+				 long start = System.currentTimeMillis();
+				 tmsToolScrapDetailService.saveBatch(list);
+				 log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣");
+				 return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size());
+			 } catch (Exception e) {
+				 log.error(e.getMessage(), e);
+				 return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage());
+			 } finally {
+				 try {
+					 file.getInputStream().close();
+				 } catch (IOException e) {
+					 e.printStackTrace();
+				 }
+			 }
+		 }
+		 return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+    }
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ鎶ュ簾鏄庣粏-end----------------------------------------------*/
+
+
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingController.java
new file mode 100644
index 0000000..c072004
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingController.java
@@ -0,0 +1,304 @@
+package org.jeecg.modules.tms.controller;
+
+import org.jeecg.common.system.query.QueryGenerator;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.api.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.web.servlet.ModelAndView;
+import java.util.Arrays;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolStocktakingDetail;
+import org.jeecg.modules.tms.entity.TmsToolStocktaking;
+import org.jeecg.modules.tms.service.ITmsToolStocktakingService;
+import org.jeecg.modules.tms.service.ITmsToolStocktakingDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+ /**
+ * @Description: 宸ヨ鐩樼偣
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ鐩樼偣")
+@RestController
+@RequestMapping("/tms/tmsToolStocktaking")
+@Slf4j
+public class TmsToolStocktakingController extends JeecgController<TmsToolStocktaking, ITmsToolStocktakingService> {
+
+	@Autowired
+	private ITmsToolStocktakingService tmsToolStocktakingService;
+
+	@Autowired
+	private ITmsToolStocktakingDetailService tmsToolStocktakingDetailService;
+
+
+	/*---------------------------------涓昏〃澶勭悊-begin-------------------------------------*/
+
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 * @param tmsToolStocktaking
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鐩樼偣-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ鐩樼偣-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ鐩樼偣-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolStocktaking>> queryPageList(TmsToolStocktaking tmsToolStocktaking,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolStocktaking> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolStocktaking, req.getParameterMap());
+		Page<TmsToolStocktaking> page = new Page<TmsToolStocktaking>(pageNo, pageSize);
+		IPage<TmsToolStocktaking> pageList = tmsToolStocktakingService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+     *   娣诲姞
+     * @param tmsToolStocktaking
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鐩樼偣-娣诲姞")
+    @ApiOperation(value="宸ヨ鐩樼偣-娣诲姞", notes="宸ヨ鐩樼偣-娣诲姞")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking:add")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody TmsToolStocktaking tmsToolStocktaking) {
+        tmsToolStocktakingService.save(tmsToolStocktaking);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     *  缂栬緫
+     * @param tmsToolStocktaking
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鐩樼偣-缂栬緫")
+    @ApiOperation(value="宸ヨ鐩樼偣-缂栬緫", notes="宸ヨ鐩樼偣-缂栬緫")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking:edit")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+    public Result<String> edit(@RequestBody TmsToolStocktaking tmsToolStocktaking) {
+        tmsToolStocktakingService.updateById(tmsToolStocktaking);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鐩樼偣-閫氳繃id鍒犻櫎")
+    @ApiOperation(value="宸ヨ鐩樼偣-閫氳繃id鍒犻櫎", notes="宸ヨ鐩樼偣-閫氳繃id鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+        tmsToolStocktakingService.delMain(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "宸ヨ鐩樼偣-鎵归噺鍒犻櫎")
+    @ApiOperation(value="宸ヨ鐩樼偣-鎵归噺鍒犻櫎", notes="宸ヨ鐩樼偣-鎵归噺鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+        this.tmsToolStocktakingService.delBatchMain(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolStocktaking tmsToolStocktaking) {
+        return super.exportXls(request, tmsToolStocktaking, TmsToolStocktaking.class, "宸ヨ鐩樼偣");
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolStocktaking.class);
+    }
+	/*---------------------------------涓昏〃澶勭悊-end-------------------------------------*/
+	
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ鐩樼偣鏄庣粏-begin----------------------------------------------*/
+	/**
+	 * 閫氳繃涓昏〃ID鏌ヨ
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ鐩樼偣鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@ApiOperation(value="宸ヨ鐩樼偣鏄庣粏-閫氳繃涓昏〃ID鏌ヨ", notes="宸ヨ鐩樼偣鏄庣粏-閫氳繃涓昏〃ID鏌ヨ")
+	@GetMapping(value = "/listTmsToolStocktakingDetailByMainId")
+    public Result<IPage<TmsToolStocktakingDetail>> listTmsToolStocktakingDetailByMainId(TmsToolStocktakingDetail tmsToolStocktakingDetail,
+                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                    HttpServletRequest req) {
+        QueryWrapper<TmsToolStocktakingDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolStocktakingDetail, req.getParameterMap());
+        Page<TmsToolStocktakingDetail> page = new Page<TmsToolStocktakingDetail>(pageNo, pageSize);
+        IPage<TmsToolStocktakingDetail> pageList = tmsToolStocktakingDetailService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+	/**
+	 * 娣诲姞
+	 * @param tmsToolStocktakingDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鐩樼偣鏄庣粏-娣诲姞")
+	@ApiOperation(value="宸ヨ鐩樼偣鏄庣粏-娣诲姞", notes="宸ヨ鐩樼偣鏄庣粏-娣诲姞")
+	@PostMapping(value = "/addTmsToolStocktakingDetail")
+	public Result<String> addTmsToolStocktakingDetail(@RequestBody TmsToolStocktakingDetail tmsToolStocktakingDetail) {
+		tmsToolStocktakingDetailService.save(tmsToolStocktakingDetail);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+
+    /**
+	 * 缂栬緫
+	 * @param tmsToolStocktakingDetail
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鐩樼偣鏄庣粏-缂栬緫")
+	@ApiOperation(value="宸ヨ鐩樼偣鏄庣粏-缂栬緫", notes="宸ヨ鐩樼偣鏄庣粏-缂栬緫")
+	@RequestMapping(value = "/editTmsToolStocktakingDetail", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> editTmsToolStocktakingDetail(@RequestBody TmsToolStocktakingDetail tmsToolStocktakingDetail) {
+		tmsToolStocktakingDetailService.updateById(tmsToolStocktakingDetail);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鐩樼偣鏄庣粏-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ鐩樼偣鏄庣粏-閫氳繃id鍒犻櫎", notes="宸ヨ鐩樼偣鏄庣粏-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/deleteTmsToolStocktakingDetail")
+	public Result<String> deleteTmsToolStocktakingDetail(@RequestParam(name="id",required=true) String id) {
+		tmsToolStocktakingDetailService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+
+	/**
+	 * 鎵归噺鍒犻櫎
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ鐩樼偣鏄庣粏-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ鐩樼偣鏄庣粏-鎵归噺鍒犻櫎", notes="宸ヨ鐩樼偣鏄庣粏-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatchTmsToolStocktakingDetail")
+	public Result<String> deleteBatchTmsToolStocktakingDetail(@RequestParam(name="ids",required=true) String ids) {
+	    this.tmsToolStocktakingDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+
+    /**
+     * 瀵煎嚭
+     * @return
+     */
+    @RequestMapping(value = "/exportTmsToolStocktakingDetail")
+    public ModelAndView exportTmsToolStocktakingDetail(HttpServletRequest request, TmsToolStocktakingDetail tmsToolStocktakingDetail) {
+		 // Step.1 缁勮鏌ヨ鏉′欢
+		 QueryWrapper<TmsToolStocktakingDetail> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolStocktakingDetail, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // Step.2 鑾峰彇瀵煎嚭鏁版嵁
+		 List<TmsToolStocktakingDetail> pageList = tmsToolStocktakingDetailService.list(queryWrapper);
+		 List<TmsToolStocktakingDetail> exportList = null;
+
+		 // 杩囨护閫変腑鏁版嵁
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+		 } else {
+			 exportList = pageList;
+		 }
+
+		 // Step.3 AutoPoi 瀵煎嚭Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //姝ゅ璁剧疆鐨刦ilename鏃犳晥,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "宸ヨ鐩樼偣鏄庣粏");
+		 mv.addObject(NormalExcelConstants.CLASS, TmsToolStocktakingDetail.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("宸ヨ鐩樼偣鏄庣粏鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), "宸ヨ鐩樼偣鏄庣粏"));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+    }
+
+    /**
+     * 瀵煎叆
+     * @return
+     */
+    @RequestMapping(value = "/importTmsToolStocktakingDetail/{mainId}")
+    public Result<?> importTmsToolStocktakingDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
+		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+       // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+			 MultipartFile file = entity.getValue();
+			 ImportParams params = new ImportParams();
+			 params.setTitleRows(2);
+			 params.setHeadRows(1);
+			 params.setNeedSave(true);
+			 try {
+				 List<TmsToolStocktakingDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), TmsToolStocktakingDetail.class, params);
+				 for (TmsToolStocktakingDetail temp : list) {
+                    temp.setOrderId(mainId);
+				 }
+				 long start = System.currentTimeMillis();
+				 tmsToolStocktakingDetailService.saveBatch(list);
+				 log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣");
+				 return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size());
+			 } catch (Exception e) {
+				 log.error(e.getMessage(), e);
+				 return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage());
+			 } finally {
+				 try {
+					 file.getInputStream().close();
+				 } catch (IOException e) {
+					 e.printStackTrace();
+				 }
+			 }
+		 }
+		 return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+    }
+
+    /*--------------------------------瀛愯〃澶勭悊-宸ヨ鐩樼偣鏄庣粏-end----------------------------------------------*/
+
+
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingInventoryChangeController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingInventoryChangeController.java
new file mode 100644
index 0000000..621ca07
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolStocktakingInventoryChangeController.java
@@ -0,0 +1,177 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.TmsToolStocktakingInventoryChange;
+import org.jeecg.modules.tms.service.ITmsToolStocktakingInventoryChangeService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 鐩樼偣搴撳瓨鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="鐩樼偣搴撳瓨鍙樻洿")
+@RestController
+@RequestMapping("/tms/tmsToolStocktakingInventoryChange")
+@Slf4j
+public class TmsToolStocktakingInventoryChangeController extends JeecgController<TmsToolStocktakingInventoryChange, ITmsToolStocktakingInventoryChangeService> {
+	@Autowired
+	private ITmsToolStocktakingInventoryChangeService tmsToolStocktakingInventoryChangeService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param tmsToolStocktakingInventoryChange
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "鐩樼偣搴撳瓨鍙樻洿-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="鐩樼偣搴撳瓨鍙樻洿-鍒嗛〉鍒楄〃鏌ヨ", notes="鐩樼偣搴撳瓨鍙樻洿-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsToolStocktakingInventoryChange>> queryPageList(TmsToolStocktakingInventoryChange tmsToolStocktakingInventoryChange,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsToolStocktakingInventoryChange> queryWrapper = QueryGenerator.initQueryWrapper(tmsToolStocktakingInventoryChange, req.getParameterMap());
+		Page<TmsToolStocktakingInventoryChange> page = new Page<TmsToolStocktakingInventoryChange>(pageNo, pageSize);
+		IPage<TmsToolStocktakingInventoryChange> pageList = tmsToolStocktakingInventoryChangeService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param tmsToolStocktakingInventoryChange
+	 * @return
+	 */
+	@AutoLog(value = "鐩樼偣搴撳瓨鍙樻洿-娣诲姞")
+	@ApiOperation(value="鐩樼偣搴撳瓨鍙樻洿-娣诲姞", notes="鐩樼偣搴撳瓨鍙樻洿-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking_inventory_change:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody TmsToolStocktakingInventoryChange tmsToolStocktakingInventoryChange) {
+		tmsToolStocktakingInventoryChangeService.save(tmsToolStocktakingInventoryChange);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param tmsToolStocktakingInventoryChange
+	 * @return
+	 */
+	@AutoLog(value = "鐩樼偣搴撳瓨鍙樻洿-缂栬緫")
+	@ApiOperation(value="鐩樼偣搴撳瓨鍙樻洿-缂栬緫", notes="鐩樼偣搴撳瓨鍙樻洿-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking_inventory_change:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody TmsToolStocktakingInventoryChange tmsToolStocktakingInventoryChange) {
+		tmsToolStocktakingInventoryChangeService.updateById(tmsToolStocktakingInventoryChange);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "鐩樼偣搴撳瓨鍙樻洿-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="鐩樼偣搴撳瓨鍙樻洿-閫氳繃id鍒犻櫎", notes="鐩樼偣搴撳瓨鍙樻洿-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking_inventory_change:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		tmsToolStocktakingInventoryChangeService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "鐩樼偣搴撳瓨鍙樻洿-鎵归噺鍒犻櫎")
+	@ApiOperation(value="鐩樼偣搴撳瓨鍙樻洿-鎵归噺鍒犻櫎", notes="鐩樼偣搴撳瓨鍙樻洿-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking_inventory_change:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.tmsToolStocktakingInventoryChangeService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "鐩樼偣搴撳瓨鍙樻洿-閫氳繃id鏌ヨ")
+	@ApiOperation(value="鐩樼偣搴撳瓨鍙樻洿-閫氳繃id鏌ヨ", notes="鐩樼偣搴撳瓨鍙樻洿-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<TmsToolStocktakingInventoryChange> queryById(@RequestParam(name="id",required=true) String id) {
+		TmsToolStocktakingInventoryChange tmsToolStocktakingInventoryChange = tmsToolStocktakingInventoryChangeService.getById(id);
+		if(tmsToolStocktakingInventoryChange==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(tmsToolStocktakingInventoryChange);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param tmsToolStocktakingInventoryChange
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tool_stocktaking_inventory_change:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsToolStocktakingInventoryChange tmsToolStocktakingInventoryChange) {
+        return super.exportXls(request, tmsToolStocktakingInventoryChange, TmsToolStocktakingInventoryChange.class, "鐩樼偣搴撳瓨鍙樻洿");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tool_stocktaking_inventory_change:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsToolStocktakingInventoryChange.class);
+    }
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/controller/TmsToolsController.java b/src/main/java/org/jeecg/modules/tms/controller/TmsToolsController.java
new file mode 100644
index 0000000..7d2ca94
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/controller/TmsToolsController.java
@@ -0,0 +1,160 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.tms.entity.TmsTools;
+import org.jeecg.modules.tms.service.ITmsToolsService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 宸ヨ淇℃伅
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Api(tags="宸ヨ淇℃伅")
+@RestController
+@RequestMapping("/tms/tmsTools")
+@Slf4j
+public class TmsToolsController extends JeecgController<TmsTools, ITmsToolsService> {
+	@Autowired
+	private ITmsToolsService tmsToolsService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param tmsTools
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ淇℃伅-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="宸ヨ淇℃伅-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ヨ淇℃伅-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<TmsTools>> queryPageList(TmsTools tmsTools,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<TmsTools> queryWrapper = QueryGenerator.initQueryWrapper(tmsTools, req.getParameterMap());
+		Page<TmsTools> page = new Page<TmsTools>(pageNo, pageSize);
+		IPage<TmsTools> pageList = tmsToolsService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param tmsTools
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ淇℃伅-娣诲姞")
+	@ApiOperation(value="宸ヨ淇℃伅-娣诲姞", notes="宸ヨ淇℃伅-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody TmsTools tmsTools) {
+		tmsToolsService.save(tmsTools);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param tmsTools
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ淇℃伅-缂栬緫")
+	@ApiOperation(value="宸ヨ淇℃伅-缂栬緫", notes="宸ヨ淇℃伅-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody TmsTools tmsTools) {
+		tmsToolsService.updateById(tmsTools);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ淇℃伅-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="宸ヨ淇℃伅-閫氳繃id鍒犻櫎", notes="宸ヨ淇℃伅-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		tmsToolsService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "宸ヨ淇℃伅-鎵归噺鍒犻櫎")
+	@ApiOperation(value="宸ヨ淇℃伅-鎵归噺鍒犻櫎", notes="宸ヨ淇℃伅-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.tmsToolsService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "宸ヨ淇℃伅-閫氳繃id鏌ヨ")
+	@ApiOperation(value="宸ヨ淇℃伅-閫氳繃id鏌ヨ", notes="宸ヨ淇℃伅-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<TmsTools> queryById(@RequestParam(name="id",required=true) String id) {
+		TmsTools tmsTools = tmsToolsService.getById(id);
+		if(tmsTools==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(tmsTools);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param tmsTools
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tools:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, TmsTools tmsTools) {
+        return super.exportXls(request, tmsTools, TmsTools.class, "宸ヨ淇℃伅");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tools:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, TmsTools.class);
+    }
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolHistory.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolHistory.java
new file mode 100644
index 0000000..df51b04
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolHistory.java
@@ -0,0 +1,91 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.constant.CommonConstant;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 宸ヨ灞ュ巻
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_history")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tool_history瀵硅薄", description="宸ヨ灞ュ巻")
+public class TmsToolHistory implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+	@Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**搴撳瓨ID*/
+	@Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
+	/**宸ヨ鏉$爜*/
+	@Excel(name = "宸ヨ鏉$爜", width = 15)
+    @ApiModelProperty(value = "宸ヨ鏉$爜")
+    private String toolBarcode;
+	/**鎿嶄綔浜�*/
+	@Excel(name = "鎿嶄綔浜�", width = 15)
+    @ApiModelProperty(value = "鎿嶄綔浜�")
+    private String operator;
+	/**鎿嶄綔鏃堕棿*/
+	@Excel(name = "鎿嶄綔鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鎿嶄綔鏃堕棿")
+    private Date operateTime;
+	/**鎿嶄綔绫诲瀷*/
+	@Excel(name = "鎿嶄綔绫诲瀷", width = 15)
+    @ApiModelProperty(value = "鎿嶄綔绫诲瀷")
+    private String operateType;
+	/**涓氬姟涓昏〃*/
+	@Excel(name = "涓氬姟涓昏〃", width = 15)
+    @ApiModelProperty(value = "涓氬姟涓昏〃")
+    private String businessTable;
+	/**涓氬姟id*/
+	@Excel(name = "涓氬姟id", width = 15)
+    @ApiModelProperty(value = "涓氬姟id")
+    private String businessId;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolInbound.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInbound.java
new file mode 100644
index 0000000..400f6c7
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInbound.java
@@ -0,0 +1,88 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_inbound")
+@ApiModel(value="tms_tool_inbound瀵硅薄", description="宸ヨ鍏ュ簱")
+public class TmsToolInbound implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**鍏ュ簱鍗曠姸鎬�*/
+    @Excel(name = "鍏ュ簱鍗曠姸鎬�", width = 15)
+    @ApiModelProperty(value = "鍏ュ簱鍗曠姸鎬�")
+    private String orderStatus;
+	/**鍏ュ簱浜�*/
+    @Excel(name = "鍏ュ簱浜�", width = 15)
+    @ApiModelProperty(value = "鍏ュ簱浜�")
+    private String receiver;
+	/**鍏ュ簱鏃堕棿*/
+    @Excel(name = "鍏ュ簱鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍏ュ簱鏃堕棿")
+    private Date receiveTime;
+	/**鍏ュ簱璇存槑*/
+    @Excel(name = "鍏ュ簱璇存槑", width = 15)
+    @ApiModelProperty(value = "鍏ュ簱璇存槑")
+    private String receiveComment;
+	/**纭浜�*/
+    @Excel(name = "纭浜�", width = 15)
+    @ApiModelProperty(value = "纭浜�")
+    private String confirmer;
+	/**纭鏃堕棿*/
+    @Excel(name = "纭鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "纭鏃堕棿")
+    private Date confirmTime;
+	/**纭鎰忚*/
+    @Excel(name = "纭鎰忚", width = 15)
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundDetail.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundDetail.java
new file mode 100644
index 0000000..ea87983
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundDetail.java
@@ -0,0 +1,77 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+import org.jeecg.common.aspect.annotation.Dict;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_inbound_detail")
+@ApiModel(value="tms_tool_inbound_detail瀵硅薄", description="宸ヨ鍏ュ簱鏄庣粏")
+public class TmsToolInboundDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鍏ュ簱鍗�*/
+    @ApiModelProperty(value = "鍏ュ簱鍗�")
+    private String orderId;
+	/**宸ヨID*/
+	@Excel(name = "宸ヨID", width = 15)
+    @ApiModelProperty(value = "宸ヨID")
+    private String toolId;
+	/**鍏ュ簱鏁伴噺*/
+	@Excel(name = "鍏ュ簱鏁伴噺", width = 15)
+    @ApiModelProperty(value = "鍏ュ簱鏁伴噺")
+    private Integer receiveNumber;
+
+    /**宸ヨ鍚嶇О*/
+    @Excel(name = "宸ヨ鍚嶇О", width = 15)
+    @ApiModelProperty(value = "宸ヨ鍚嶇О")
+    @TableField(exist = false)
+    private String toolName;
+    /**宸ヨ缂栫爜*/
+    @Excel(name = "宸ヨ缂栫爜", width = 15)
+    @ApiModelProperty(value = "宸ヨ缂栫爜")
+    @TableField(exist = false)
+    private String toolCode;
+    /**宸ヨ鍒嗙被*/
+    @Excel(name = "宸ヨ鍒嗙被", width = 15)
+    @ApiModelProperty(value = "宸ヨ鍒嗙被")
+    @TableField(exist = false)
+    private String toolCategory;
+    /**鍨嬪彿*/
+    @Excel(name = "鍨嬪彿", width = 15)
+    @ApiModelProperty(value = "鍨嬪彿")
+    @TableField(exist = false)
+    private String toolModel;
+    /**瑙勬牸*/
+    @Excel(name = "瑙勬牸", width = 15)
+    @ApiModelProperty(value = "瑙勬牸")
+    @TableField(exist = false)
+    private String toolSpecification;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundInventory.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundInventory.java
new file mode 100644
index 0000000..01965cf
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInboundInventory.java
@@ -0,0 +1,55 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱搴撳瓨鍏崇郴
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_inbound_inventory")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tool_inbound_inventory瀵硅薄", description="宸ヨ鍏ュ簱搴撳瓨鍏崇郴")
+public class TmsToolInboundInventory implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鍏ュ簱鍗旾D*/
+	@Excel(name = "鍏ュ簱鍗旾D", width = 15)
+    @ApiModelProperty(value = "鍏ュ簱鍗旾D")
+    private String orderId;
+	/**搴撳瓨ID*/
+	@Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolInventory.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInventory.java
new file mode 100644
index 0000000..6a49509
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolInventory.java
@@ -0,0 +1,71 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 宸ヨ搴撳瓨
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_inventory")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tool_inventory瀵硅薄", description="宸ヨ搴撳瓨")
+public class TmsToolInventory implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**宸ヨID*/
+	@Excel(name = "宸ヨID", width = 15)
+    @ApiModelProperty(value = "宸ヨID")
+    private String toolId;
+	/**宸ヨ鏉$爜*/
+	@Excel(name = "宸ヨ鏉$爜", width = 15)
+    @ApiModelProperty(value = "宸ヨ鏉$爜")
+    private String toolBarcode;
+	/**搴撳瓨鐘舵��*/
+	@Excel(name = "搴撳瓨鐘舵��", width = 15)
+    @ApiModelProperty(value = "搴撳瓨鐘舵��")
+    private String inventoryStatus;
+	/**褰撳墠瀵垮懡(鐧惧垎姣�)*/
+	@Excel(name = "褰撳墠瀵垮懡(鐧惧垎姣�)", width = 15)
+    @ApiModelProperty(value = "褰撳墠瀵垮懡(鐧惧垎姣�)")
+    private BigDecimal currentLife;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolReceive.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolReceive.java
new file mode 100644
index 0000000..2333a89
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolReceive.java
@@ -0,0 +1,116 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 宸ヨ棰嗙敤
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_receive")
+@ApiModel(value="tms_tool_receive瀵硅薄", description="宸ヨ棰嗙敤")
+public class TmsToolReceive implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**棰嗙敤鍗曠姸鎬�*/
+    @Excel(name = "棰嗙敤鍗曠姸鎬�", width = 15)
+    @ApiModelProperty(value = "棰嗙敤鍗曠姸鎬�")
+    private String orderStatus;
+	/**棰嗙敤浜�*/
+    @Excel(name = "棰嗙敤浜�", width = 15)
+    @ApiModelProperty(value = "棰嗙敤浜�")
+    private String receiver;
+	/**棰嗙敤鏃堕棿*/
+    @Excel(name = "棰嗙敤鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "棰嗙敤鏃堕棿")
+    private Date receiveTime;
+	/**棰嗙敤璇存槑*/
+    @Excel(name = "棰嗙敤璇存槑", width = 15)
+    @ApiModelProperty(value = "棰嗙敤璇存槑")
+    private String receiveComment;
+	/**纭浜�*/
+    @Excel(name = "纭浜�", width = 15)
+    @ApiModelProperty(value = "纭浜�")
+    private String confirmer;
+	/**纭鏃堕棿*/
+    @Excel(name = "纭鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "纭鏃堕棿")
+    private Date confirmTime;
+	/**纭鎰忚*/
+    @Excel(name = "纭鎰忚", width = 15)
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+	/**鏄惁浼氬綊杩�*/
+    @Excel(name = "鏄惁浼氬綊杩�", width = 15)
+    @ApiModelProperty(value = "鏄惁浼氬綊杩�")
+    private String returnFlag;
+	/**褰掕繕鏃堕棿*/
+    @Excel(name = "褰掕繕鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "褰掕繕鏃堕棿")
+    private Date returnTime;
+	/**褰掕繕璇存槑*/
+    @Excel(name = "褰掕繕璇存槑", width = 15)
+    @ApiModelProperty(value = "褰掕繕璇存槑")
+    private String returnComment;
+	/**褰掕繕纭浜�*/
+    @Excel(name = "褰掕繕纭浜�", width = 15)
+    @ApiModelProperty(value = "褰掕繕纭浜�")
+    private String returnConfirmer;
+	/**褰掕繕纭鏃堕棿*/
+    @Excel(name = "褰掕繕纭鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "褰掕繕纭鏃堕棿")
+    private Date returnConfirmTime;
+	/**褰掕繕纭鎰忚*/
+    @Excel(name = "褰掕繕纭鎰忚", width = 15)
+    @ApiModelProperty(value = "褰掕繕纭鎰忚")
+    private String returnConfirmComment;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolReceiveDetail.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolReceiveDetail.java
new file mode 100644
index 0000000..df55987
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolReceiveDetail.java
@@ -0,0 +1,65 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.aspect.annotation.Dict;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * @Description: 宸ヨ棰嗙敤鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_receive_detail")
+@ApiModel(value="tms_tool_receive_detail瀵硅薄", description="宸ヨ棰嗙敤鏄庣粏")
+public class TmsToolReceiveDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**棰嗙敤鍗旾D*/
+    @ApiModelProperty(value = "棰嗙敤鍗旾D")
+    private String orderId;
+	/**宸ヨID*/
+	@Excel(name = "宸ヨID", width = 15)
+    @ApiModelProperty(value = "宸ヨID")
+    private String toolId;
+	/**搴撳瓨ID*/
+	@Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
+	/**浣跨敤瀵垮懡(鐧惧垎姣�)*/
+	@Excel(name = "浣跨敤瀵垮懡(鐧惧垎姣�)", width = 15)
+    @ApiModelProperty(value = "浣跨敤瀵垮懡(鐧惧垎姣�)")
+    private java.math.BigDecimal usedLife;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolScrap.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolScrap.java
new file mode 100644
index 0000000..358a453
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolScrap.java
@@ -0,0 +1,88 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_scrap")
+@ApiModel(value="tms_tool_scrap瀵硅薄", description="宸ヨ鎶ュ簾")
+public class TmsToolScrap implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**鎶ュ簾鍗曠姸鎬�*/
+    @Excel(name = "鎶ュ簾鍗曠姸鎬�", width = 15)
+    @ApiModelProperty(value = "鎶ュ簾鍗曠姸鎬�")
+    private String orderStatus;
+	/**鐢宠浜�*/
+    @Excel(name = "鐢宠浜�", width = 15)
+    @ApiModelProperty(value = "鐢宠浜�")
+    private String applicant;
+	/**鐢宠鏃堕棿*/
+    @Excel(name = "鐢宠鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鐢宠鏃堕棿")
+    private Date applicationTime;
+	/**鐢宠璇存槑*/
+    @Excel(name = "鐢宠璇存槑", width = 15)
+    @ApiModelProperty(value = "鐢宠璇存槑")
+    private String applicationComment;
+	/**纭浜�*/
+    @Excel(name = "纭浜�", width = 15)
+    @ApiModelProperty(value = "纭浜�")
+    private String confirmer;
+	/**纭鏃堕棿*/
+    @Excel(name = "纭鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "纭鏃堕棿")
+    private Date confirmTime;
+	/**纭鎰忚*/
+    @Excel(name = "纭鎰忚", width = 15)
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolScrapDetail.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolScrapDetail.java
new file mode 100644
index 0000000..5d825f1
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolScrapDetail.java
@@ -0,0 +1,53 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.aspect.annotation.Dict;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_scrap_detail")
+@ApiModel(value="tms_tool_scrap_detail瀵硅薄", description="宸ヨ鎶ュ簾鏄庣粏")
+public class TmsToolScrapDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鎶ュ簾鍗旾D*/
+    @ApiModelProperty(value = "鎶ュ簾鍗旾D")
+    private String orderId;
+	/**宸ヨID*/
+	@Excel(name = "宸ヨID", width = 15)
+    @ApiModelProperty(value = "宸ヨID")
+    private String toolId;
+	/**搴撳瓨ID*/
+	@Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktaking.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktaking.java
new file mode 100644
index 0000000..8d0ba2a
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktaking.java
@@ -0,0 +1,78 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 宸ヨ鐩樼偣
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_stocktaking")
+@ApiModel(value="tms_tool_stocktaking瀵硅薄", description="宸ヨ鐩樼偣")
+public class TmsToolStocktaking implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**鐩樼偣鍗曞彿*/
+    @Excel(name = "鐩樼偣鍗曞彿", width = 15)
+    @ApiModelProperty(value = "鐩樼偣鍗曞彿")
+    private String orderCode;
+	/**鐩樼偣鐘舵��*/
+    @Excel(name = "鐩樼偣鐘舵��", width = 15)
+    @ApiModelProperty(value = "鐩樼偣鐘舵��")
+    private String orderStatus;
+	/**鐩樼偣浜�*/
+    @Excel(name = "鐩樼偣浜�", width = 15)
+    @ApiModelProperty(value = "鐩樼偣浜�")
+    private String operator;
+	/**鐩樼偣鏃堕棿*/
+    @Excel(name = "鐩樼偣鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鐩樼偣鏃堕棿")
+    private Date operateTime;
+	/**澶囨敞*/
+    @Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingDetail.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingDetail.java
new file mode 100644
index 0000000..0e59c80
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingDetail.java
@@ -0,0 +1,69 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.aspect.annotation.Dict;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * @Description: 宸ヨ鐩樼偣鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_stocktaking_detail")
+@ApiModel(value="tms_tool_stocktaking_detail瀵硅薄", description="宸ヨ鐩樼偣鏄庣粏")
+public class TmsToolStocktakingDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鐩樼偣鍗旾D*/
+    @ApiModelProperty(value = "鐩樼偣鍗旾D")
+    private String orderId;
+	/**宸ヨID*/
+	@Excel(name = "宸ヨID", width = 15)
+    @ApiModelProperty(value = "宸ヨID")
+    private String toolId;
+	/**鐩樼偣鍓嶆暟閲�*/
+	@Excel(name = "鐩樼偣鍓嶆暟閲�", width = 15)
+    @ApiModelProperty(value = "鐩樼偣鍓嶆暟閲�")
+    private java.math.BigDecimal beforeNumber;
+	/**瀹為檯鐩樼偣鏁伴噺*/
+	@Excel(name = "瀹為檯鐩樼偣鏁伴噺", width = 15)
+    @ApiModelProperty(value = "瀹為檯鐩樼偣鏁伴噺")
+    private java.math.BigDecimal actualNumber;
+	/**鐩樼偣缁撴灉*/
+	@Excel(name = "鐩樼偣缁撴灉", width = 15)
+    @ApiModelProperty(value = "鐩樼偣缁撴灉")
+    private String stocktakingResult;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingInventoryChange.java b/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingInventoryChange.java
new file mode 100644
index 0000000..fbcbc22
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsToolStocktakingInventoryChange.java
@@ -0,0 +1,67 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 鐩樼偣搴撳瓨鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tool_stocktaking_inventory_change")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tool_stocktaking_inventory_change瀵硅薄", description="鐩樼偣搴撳瓨鍙樻洿")
+public class TmsToolStocktakingInventoryChange implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鐩樼偣鏄庣粏ID*/
+	@Excel(name = "鐩樼偣鏄庣粏ID", width = 15)
+    @ApiModelProperty(value = "鐩樼偣鏄庣粏ID")
+    private String detailId;
+	/**搴撳瓨ID*/
+	@Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
+	/**宸ヨ鏉$爜*/
+	@Excel(name = "宸ヨ鏉$爜", width = 15)
+    @ApiModelProperty(value = "宸ヨ鏉$爜")
+    private String toolBarcode;
+	/**鏁伴噺(榛樿1)*/
+	@Excel(name = "鏁伴噺(榛樿1)", width = 15)
+    @ApiModelProperty(value = "鏁伴噺(榛樿1)")
+    private BigDecimal number;
+	/**鍙樻洿绫诲瀷;姝e父/鍑哄簱/鍏ュ簱*/
+	@Excel(name = "鍙樻洿绫诲瀷;姝e父/鍑哄簱/鍏ュ簱", width = 15)
+    @ApiModelProperty(value = "鍙樻洿绫诲瀷;姝e父/鍑哄簱/鍏ュ簱")
+    private String changeType;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/entity/TmsTools.java b/src/main/java/org/jeecg/modules/tms/entity/TmsTools.java
new file mode 100644
index 0000000..21ec270
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/entity/TmsTools.java
@@ -0,0 +1,101 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.constant.CommonConstant;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 宸ヨ淇℃伅
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tools")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tools瀵硅薄", description="宸ヨ淇℃伅")
+public class TmsTools implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+	@Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**宸ヨ鍚嶇О*/
+	@Excel(name = "宸ヨ鍚嶇О", width = 15)
+    @ApiModelProperty(value = "宸ヨ鍚嶇О")
+    private String toolName;
+	/**宸ヨ缂栫爜*/
+	@Excel(name = "宸ヨ缂栫爜", width = 15)
+    @ApiModelProperty(value = "宸ヨ缂栫爜")
+    private String toolCode;
+	/**宸ヨ鍒嗙被*/
+	@Excel(name = "宸ヨ鍒嗙被", width = 15)
+    @ApiModelProperty(value = "宸ヨ鍒嗙被")
+    private String toolCategory;
+	/**鍨嬪彿*/
+	@Excel(name = "鍨嬪彿", width = 15)
+    @ApiModelProperty(value = "鍨嬪彿")
+    private String toolModel;
+	/**瑙勬牸*/
+	@Excel(name = "瑙勬牸", width = 15)
+    @ApiModelProperty(value = "瑙勬牸")
+    private String toolSpecification;
+	/**鍗曚綅*/
+	@Excel(name = "鍗曚綅", width = 15)
+    @ApiModelProperty(value = "鍗曚綅")
+    private String toolUnit;
+	/**瀛樻斁浣嶇疆*/
+	@Excel(name = "瀛樻斁浣嶇疆", width = 15)
+    @ApiModelProperty(value = "瀛樻斁浣嶇疆")
+    private String storeLocation;
+	/**渚涘簲鍟�*/
+	@Excel(name = "渚涘簲鍟�", width = 15)
+    @ApiModelProperty(value = "渚涘簲鍟�")
+    private String supplierId;
+	/**搴撳瓨棰勮鍊�*/
+	@Excel(name = "搴撳瓨棰勮鍊�", width = 15)
+    @ApiModelProperty(value = "搴撳瓨棰勮鍊�")
+    private Integer inventoryWarning;
+	/**澶囨敞*/
+	@Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolHistoryMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolHistoryMapper.java
new file mode 100644
index 0000000..d8c48ed
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolHistoryMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolHistory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ灞ュ巻
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolHistoryMapper extends BaseMapper<TmsToolHistory> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundDetailMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundDetailMapper.java
new file mode 100644
index 0000000..20b9cfa
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundDetailMapper.java
@@ -0,0 +1,40 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.tms.entity.TmsToolInboundDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolInboundDetailMapper extends BaseMapper<TmsToolInboundDetail> {
+
+	/**
+	 * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁
+	 *
+	 * @param mainId 涓昏〃id
+	 * @return boolean
+	 */
+	public boolean deleteByMainId(@Param("mainId") String mainId);
+
+   /**
+    * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+    *
+    * @param mainId 涓昏〃id
+    * @return List<TmsToolInboundDetail>
+    */
+	public List<TmsToolInboundDetail> selectByMainId(@Param("mainId") String mainId);
+
+	IPage<TmsToolInboundDetail> queryPageList(Page<TmsToolInboundDetail> page,
+											  @Param(Constants.WRAPPER) Wrapper<TmsToolInboundDetail> queryWrapper);
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundInventoryMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundInventoryMapper.java
new file mode 100644
index 0000000..e683df7
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundInventoryMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolInboundInventory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱搴撳瓨鍏崇郴
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolInboundInventoryMapper extends BaseMapper<TmsToolInboundInventory> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundMapper.java
new file mode 100644
index 0000000..df75380
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInboundMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolInbound;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolInboundMapper extends BaseMapper<TmsToolInbound> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInventoryMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInventoryMapper.java
new file mode 100644
index 0000000..9812639
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolInventoryMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolInventory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ搴撳瓨
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolInventoryMapper extends BaseMapper<TmsToolInventory> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveDetailMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveDetailMapper.java
new file mode 100644
index 0000000..a053607
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveDetailMapper.java
@@ -0,0 +1,32 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+import org.jeecg.modules.tms.entity.TmsToolReceiveDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Description: 宸ヨ棰嗙敤鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolReceiveDetailMapper extends BaseMapper<TmsToolReceiveDetail> {
+
+	/**
+	 * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁
+	 *
+	 * @param mainId 涓昏〃id
+	 * @return boolean
+	 */
+	public boolean deleteByMainId(@Param("mainId") String mainId);
+
+   /**
+    * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+    *
+    * @param mainId 涓昏〃id
+    * @return List<TmsToolReceiveDetail>
+    */
+	public List<TmsToolReceiveDetail> selectByMainId(@Param("mainId") String mainId);
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveMapper.java
new file mode 100644
index 0000000..95561ca
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolReceiveMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolReceive;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ棰嗙敤
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolReceiveMapper extends BaseMapper<TmsToolReceive> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapDetailMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapDetailMapper.java
new file mode 100644
index 0000000..f749fc5
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapDetailMapper.java
@@ -0,0 +1,32 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolScrapDetailMapper extends BaseMapper<TmsToolScrapDetail> {
+
+	/**
+	 * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁
+	 *
+	 * @param mainId 涓昏〃id
+	 * @return boolean
+	 */
+	public boolean deleteByMainId(@Param("mainId") String mainId);
+
+   /**
+    * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+    *
+    * @param mainId 涓昏〃id
+    * @return List<TmsToolScrapDetail>
+    */
+	public List<TmsToolScrapDetail> selectByMainId(@Param("mainId") String mainId);
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapMapper.java
new file mode 100644
index 0000000..efc067b
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolScrapMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolScrap;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolScrapMapper extends BaseMapper<TmsToolScrap> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingDetailMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingDetailMapper.java
new file mode 100644
index 0000000..4689e12
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingDetailMapper.java
@@ -0,0 +1,32 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+import org.jeecg.modules.tms.entity.TmsToolStocktakingDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Description: 宸ヨ鐩樼偣鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolStocktakingDetailMapper extends BaseMapper<TmsToolStocktakingDetail> {
+
+	/**
+	 * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁
+	 *
+	 * @param mainId 涓昏〃id
+	 * @return boolean
+	 */
+	public boolean deleteByMainId(@Param("mainId") String mainId);
+
+   /**
+    * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+    *
+    * @param mainId 涓昏〃id
+    * @return List<TmsToolStocktakingDetail>
+    */
+	public List<TmsToolStocktakingDetail> selectByMainId(@Param("mainId") String mainId);
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingInventoryChangeMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingInventoryChangeMapper.java
new file mode 100644
index 0000000..6f5b2da
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingInventoryChangeMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolStocktakingInventoryChange;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 鐩樼偣搴撳瓨鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolStocktakingInventoryChangeMapper extends BaseMapper<TmsToolStocktakingInventoryChange> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingMapper.java
new file mode 100644
index 0000000..a8f6256
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolStocktakingMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsToolStocktaking;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ鐩樼偣
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolStocktakingMapper extends BaseMapper<TmsToolStocktaking> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/TmsToolsMapper.java b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolsMapper.java
new file mode 100644
index 0000000..d27a4d7
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/TmsToolsMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.TmsTools;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 宸ヨ淇℃伅
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface TmsToolsMapper extends BaseMapper<TmsTools> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolHistoryMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolHistoryMapper.xml
new file mode 100644
index 0000000..f53846f
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolHistoryMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolHistoryMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundDetailMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundDetailMapper.xml
new file mode 100644
index 0000000..f1ec0e2
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundDetailMapper.xml
@@ -0,0 +1,29 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolInboundDetailMapper">
+
+	<delete id="deleteByMainId" parameterType="java.lang.String">
+		DELETE 
+		FROM  tms_tool_inbound_detail 
+		WHERE
+			 order_id = #{mainId} 
+	</delete>
+	
+	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.tms.entity.TmsToolInboundDetail">
+		SELECT * 
+		FROM  tms_tool_inbound_detail
+		WHERE
+			 order_id = #{mainId} 
+	</select>
+    <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.TmsToolInboundDetail">
+		SELECT t1.*,
+		       t2.tool_name toolName,
+		       t2.tool_code toolCode,
+		       t2.tool_category toolCategory,
+		       t2.tool_model toolModel,
+		       t2.tool_specification toolSpecification
+		FROM  tms_tool_inbound_detail t1
+		LEFT JOIN tms_tools t2 ON t1.tool_id = t2.id
+		${ew.customSqlSegment}
+	</select>
+</mapper>
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundInventoryMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundInventoryMapper.xml
new file mode 100644
index 0000000..9a5ec58
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundInventoryMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolInboundInventoryMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundMapper.xml
new file mode 100644
index 0000000..8427ae3
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInboundMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolInboundMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInventoryMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInventoryMapper.xml
new file mode 100644
index 0000000..c645d08
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolInventoryMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolInventoryMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveDetailMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveDetailMapper.xml
new file mode 100644
index 0000000..6cd58e5
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveDetailMapper.xml
@@ -0,0 +1,18 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolReceiveDetailMapper">
+
+	<delete id="deleteByMainId" parameterType="java.lang.String">
+		DELETE 
+		FROM  tms_tool_receive_detail 
+		WHERE
+			 order_id = #{mainId} 
+	</delete>
+	
+	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.tms.entity.TmsToolReceiveDetail">
+		SELECT * 
+		FROM  tms_tool_receive_detail
+		WHERE
+			 order_id = #{mainId} 
+	</select>
+</mapper>
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveMapper.xml
new file mode 100644
index 0000000..28e0ec2
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolReceiveMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolReceiveMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapDetailMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapDetailMapper.xml
new file mode 100644
index 0000000..8440257
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapDetailMapper.xml
@@ -0,0 +1,18 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolScrapDetailMapper">
+
+	<delete id="deleteByMainId" parameterType="java.lang.String">
+		DELETE 
+		FROM  tms_tool_scrap_detail 
+		WHERE
+			 order_id = #{mainId} 
+	</delete>
+	
+	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.tms.entity.TmsToolScrapDetail">
+		SELECT * 
+		FROM  tms_tool_scrap_detail
+		WHERE
+			 order_id = #{mainId} 
+	</select>
+</mapper>
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapMapper.xml
new file mode 100644
index 0000000..8b64b97
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolScrapMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolScrapMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingDetailMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingDetailMapper.xml
new file mode 100644
index 0000000..e9a35c6
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingDetailMapper.xml
@@ -0,0 +1,18 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolStocktakingDetailMapper">
+
+	<delete id="deleteByMainId" parameterType="java.lang.String">
+		DELETE 
+		FROM  tms_tool_stocktaking_detail 
+		WHERE
+			 order_id = #{mainId} 
+	</delete>
+	
+	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.tms.entity.TmsToolStocktakingDetail">
+		SELECT * 
+		FROM  tms_tool_stocktaking_detail
+		WHERE
+			 order_id = #{mainId} 
+	</select>
+</mapper>
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingInventoryChangeMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingInventoryChangeMapper.xml
new file mode 100644
index 0000000..ffa50cb
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingInventoryChangeMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolStocktakingInventoryChangeMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingMapper.xml
new file mode 100644
index 0000000..a299772
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolStocktakingMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolStocktakingMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolsMapper.xml b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolsMapper.xml
new file mode 100644
index 0000000..d1218b7
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/mapper/xml/TmsToolsMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.tms.mapper.TmsToolsMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolHistoryService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolHistoryService.java
new file mode 100644
index 0000000..90c5fe9
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolHistoryService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolHistory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 宸ヨ灞ュ巻
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolHistoryService extends IService<TmsToolHistory> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundDetailService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundDetailService.java
new file mode 100644
index 0000000..806e16f
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundDetailService.java
@@ -0,0 +1,28 @@
+package org.jeecg.modules.tms.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.tms.entity.TmsToolInboundDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolInboundDetailService extends IService<TmsToolInboundDetail> {
+
+  /**
+   * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+   *
+   * @param mainId
+   * @return List<TmsToolInboundDetail>
+   */
+	public List<TmsToolInboundDetail> selectByMainId(String mainId);
+
+    IPage<TmsToolInboundDetail> queryPageList(Page<TmsToolInboundDetail> page, Map<String, String[]> parameterMap);
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundInventoryService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundInventoryService.java
new file mode 100644
index 0000000..1441d03
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundInventoryService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolInboundInventory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱搴撳瓨鍏崇郴
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolInboundInventoryService extends IService<TmsToolInboundInventory> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundService.java
new file mode 100644
index 0000000..d1b3edf
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInboundService.java
@@ -0,0 +1,37 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolInbound;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.tms.vo.TmsToolInboundRequest;
+
+import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolInboundService extends IService<TmsToolInbound> {
+
+	/**
+	 * 鍒犻櫎涓�瀵瑰
+	 *
+	 * @param id
+	 */
+	public void delMain (String id);
+	
+	/**
+	 * 鎵归噺鍒犻櫎涓�瀵瑰
+	 *
+	 * @param idList
+	 */
+	public void delBatchMain (Collection<? extends Serializable> idList);
+
+
+    void add(TmsToolInboundRequest tmsToolInboundRequest) throws InvocationTargetException, IllegalAccessException;
+
+	void update(TmsToolInboundRequest tmsToolInboundRequest) throws InvocationTargetException, IllegalAccessException;
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolInventoryService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInventoryService.java
new file mode 100644
index 0000000..16d6b6e
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolInventoryService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolInventory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 宸ヨ搴撳瓨
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolInventoryService extends IService<TmsToolInventory> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveDetailService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveDetailService.java
new file mode 100644
index 0000000..7859ec7
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveDetailService.java
@@ -0,0 +1,22 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolReceiveDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * @Description: 宸ヨ棰嗙敤鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolReceiveDetailService extends IService<TmsToolReceiveDetail> {
+
+  /**
+   * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+   *
+   * @param mainId
+   * @return List<TmsToolReceiveDetail>
+   */
+	public List<TmsToolReceiveDetail> selectByMainId(String mainId);
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveService.java
new file mode 100644
index 0000000..b2943d6
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolReceiveService.java
@@ -0,0 +1,34 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolReceiveDetail;
+import org.jeecg.modules.tms.entity.TmsToolReceive;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: 宸ヨ棰嗙敤
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolReceiveService extends IService<TmsToolReceive> {
+
+	/**
+	 * 鍒犻櫎涓�瀵瑰
+	 *
+	 * @param id
+	 */
+	public void delMain (String id);
+	
+	/**
+	 * 鎵归噺鍒犻櫎涓�瀵瑰
+	 *
+	 * @param idList
+	 */
+	public void delBatchMain (Collection<? extends Serializable> idList);
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapDetailService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapDetailService.java
new file mode 100644
index 0000000..5404ccd
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapDetailService.java
@@ -0,0 +1,22 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolScrapDetailService extends IService<TmsToolScrapDetail> {
+
+  /**
+   * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+   *
+   * @param mainId
+   * @return List<TmsToolScrapDetail>
+   */
+	public List<TmsToolScrapDetail> selectByMainId(String mainId);
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapService.java
new file mode 100644
index 0000000..28dab41
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolScrapService.java
@@ -0,0 +1,34 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import org.jeecg.modules.tms.entity.TmsToolScrap;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolScrapService extends IService<TmsToolScrap> {
+
+	/**
+	 * 鍒犻櫎涓�瀵瑰
+	 *
+	 * @param id
+	 */
+	public void delMain (String id);
+	
+	/**
+	 * 鎵归噺鍒犻櫎涓�瀵瑰
+	 *
+	 * @param idList
+	 */
+	public void delBatchMain (Collection<? extends Serializable> idList);
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingDetailService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingDetailService.java
new file mode 100644
index 0000000..2e69295
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingDetailService.java
@@ -0,0 +1,22 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolStocktakingDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * @Description: 宸ヨ鐩樼偣鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolStocktakingDetailService extends IService<TmsToolStocktakingDetail> {
+
+  /**
+   * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁
+   *
+   * @param mainId
+   * @return List<TmsToolStocktakingDetail>
+   */
+	public List<TmsToolStocktakingDetail> selectByMainId(String mainId);
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingInventoryChangeService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingInventoryChangeService.java
new file mode 100644
index 0000000..ea36444
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingInventoryChangeService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolStocktakingInventoryChange;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 鐩樼偣搴撳瓨鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolStocktakingInventoryChangeService extends IService<TmsToolStocktakingInventoryChange> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingService.java
new file mode 100644
index 0000000..804d486
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolStocktakingService.java
@@ -0,0 +1,34 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsToolStocktakingDetail;
+import org.jeecg.modules.tms.entity.TmsToolStocktaking;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: 宸ヨ鐩樼偣
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolStocktakingService extends IService<TmsToolStocktaking> {
+
+	/**
+	 * 鍒犻櫎涓�瀵瑰
+	 *
+	 * @param id
+	 */
+	public void delMain (String id);
+	
+	/**
+	 * 鎵归噺鍒犻櫎涓�瀵瑰
+	 *
+	 * @param idList
+	 */
+	public void delBatchMain (Collection<? extends Serializable> idList);
+
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/ITmsToolsService.java b/src/main/java/org/jeecg/modules/tms/service/ITmsToolsService.java
new file mode 100644
index 0000000..b397215
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/ITmsToolsService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.TmsTools;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 宸ヨ淇℃伅
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+public interface ITmsToolsService extends IService<TmsTools> {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolHistoryServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolHistoryServiceImpl.java
new file mode 100644
index 0000000..d195084
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolHistoryServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolHistory;
+import org.jeecg.modules.tms.mapper.TmsToolHistoryMapper;
+import org.jeecg.modules.tms.service.ITmsToolHistoryService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 宸ヨ灞ュ巻
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolHistoryServiceImpl extends ServiceImpl<TmsToolHistoryMapper, TmsToolHistory> implements ITmsToolHistoryService {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundDetailServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundDetailServiceImpl.java
new file mode 100644
index 0000000..e621821
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundDetailServiceImpl.java
@@ -0,0 +1,44 @@
+package org.jeecg.modules.tms.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.tms.entity.TmsToolInboundDetail;
+import org.jeecg.modules.tms.mapper.TmsToolInboundDetailMapper;
+import org.jeecg.modules.tms.service.ITmsToolInboundDetailService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolInboundDetailServiceImpl extends ServiceImpl<TmsToolInboundDetailMapper, TmsToolInboundDetail> implements ITmsToolInboundDetailService {
+	
+	@Autowired
+	private TmsToolInboundDetailMapper tmsToolInboundDetailMapper;
+	
+	@Override
+	public List<TmsToolInboundDetail> selectByMainId(String mainId) {
+		return tmsToolInboundDetailMapper.selectByMainId(mainId);
+	}
+
+	@Override
+	public IPage<TmsToolInboundDetail> queryPageList(Page<TmsToolInboundDetail> page, Map<String, String[]> parameterMap) {
+		QueryWrapper<TmsToolInboundDetail> queryWrapper = Wrappers.query();
+		String[] orderIds = parameterMap.get("orderId");
+		if (orderIds != null && orderIds.length > 0) {
+			queryWrapper.eq("t1.order_id", orderIds[0]);
+		}
+		return tmsToolInboundDetailMapper.queryPageList(page, queryWrapper);
+	}
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundInventoryServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundInventoryServiceImpl.java
new file mode 100644
index 0000000..0075be0
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundInventoryServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolInboundInventory;
+import org.jeecg.modules.tms.mapper.TmsToolInboundInventoryMapper;
+import org.jeecg.modules.tms.service.ITmsToolInboundInventoryService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱搴撳瓨鍏崇郴
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolInboundInventoryServiceImpl extends ServiceImpl<TmsToolInboundInventoryMapper, TmsToolInboundInventory> implements ITmsToolInboundInventoryService {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundServiceImpl.java
new file mode 100644
index 0000000..af87174
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInboundServiceImpl.java
@@ -0,0 +1,81 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.apache.commons.beanutils.BeanUtils;
+import org.jeecg.modules.tms.entity.TmsToolInbound;
+import org.jeecg.modules.tms.entity.TmsToolInboundDetail;
+import org.jeecg.modules.tms.mapper.TmsToolInboundDetailMapper;
+import org.jeecg.modules.tms.mapper.TmsToolInboundMapper;
+import org.jeecg.modules.tms.service.ITmsToolInboundDetailService;
+import org.jeecg.modules.tms.service.ITmsToolInboundService;
+import org.jeecg.modules.tms.vo.TmsToolInboundRequest;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+import java.util.Collection;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolInboundServiceImpl extends ServiceImpl<TmsToolInboundMapper, TmsToolInbound> implements ITmsToolInboundService {
+
+	@Autowired
+	private TmsToolInboundMapper tmsToolInboundMapper;
+	@Autowired
+	private TmsToolInboundDetailMapper tmsToolInboundDetailMapper;
+	@Autowired
+	private ITmsToolInboundDetailService tmsToolInboundDetailService;
+	
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delMain(String id) {
+		tmsToolInboundDetailMapper.deleteByMainId(id);
+		tmsToolInboundMapper.deleteById(id);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delBatchMain(Collection<? extends Serializable> idList) {
+		for(Serializable id:idList) {
+			tmsToolInboundDetailMapper.deleteByMainId(id.toString());
+			tmsToolInboundMapper.deleteById(id);
+		}
+	}
+
+    @Override
+	@Transactional(rollbackFor = Exception.class)
+    public void add(TmsToolInboundRequest tmsToolInboundRequest) throws InvocationTargetException, IllegalAccessException {
+		TmsToolInbound tmsToolInbound = new TmsToolInbound();
+		BeanUtils.copyProperties(tmsToolInbound, tmsToolInboundRequest);
+		save(tmsToolInbound);
+		List<TmsToolInboundDetail> tmsToolInboundDetailList = tmsToolInboundRequest.getTmsToolInboundDetailList();
+		tmsToolInboundDetailList.forEach(tmsToolInboundDetail -> {
+			tmsToolInboundDetail.setId(null);
+			tmsToolInboundDetail.setOrderId(tmsToolInbound.getId());
+		});
+		tmsToolInboundDetailService.saveBatch(tmsToolInboundDetailList);
+    }
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void update(TmsToolInboundRequest tmsToolInboundRequest) throws InvocationTargetException, IllegalAccessException {
+		tmsToolInboundDetailMapper.deleteByMainId(tmsToolInboundRequest.getId());
+		TmsToolInbound toolInboundUpdate = new TmsToolInbound();
+		BeanUtils.copyProperties(toolInboundUpdate, tmsToolInboundRequest);
+		updateById(toolInboundUpdate);
+		List<TmsToolInboundDetail> tmsToolInboundDetailList = tmsToolInboundRequest.getTmsToolInboundDetailList();
+		tmsToolInboundDetailList.forEach(tmsToolInboundDetail -> {
+			tmsToolInboundDetail.setId(null);
+			tmsToolInboundDetail.setOrderId(tmsToolInboundRequest.getId());
+		});
+		tmsToolInboundDetailService.saveBatch(tmsToolInboundDetailList);
+	}
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInventoryServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInventoryServiceImpl.java
new file mode 100644
index 0000000..5b78ad4
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolInventoryServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolInventory;
+import org.jeecg.modules.tms.mapper.TmsToolInventoryMapper;
+import org.jeecg.modules.tms.service.ITmsToolInventoryService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 宸ヨ搴撳瓨
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolInventoryServiceImpl extends ServiceImpl<TmsToolInventoryMapper, TmsToolInventory> implements ITmsToolInventoryService {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveDetailServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveDetailServiceImpl.java
new file mode 100644
index 0000000..a8b6b41
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveDetailServiceImpl.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolReceiveDetail;
+import org.jeecg.modules.tms.mapper.TmsToolReceiveDetailMapper;
+import org.jeecg.modules.tms.service.ITmsToolReceiveDetailService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Description: 宸ヨ棰嗙敤鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolReceiveDetailServiceImpl extends ServiceImpl<TmsToolReceiveDetailMapper, TmsToolReceiveDetail> implements ITmsToolReceiveDetailService {
+	
+	@Autowired
+	private TmsToolReceiveDetailMapper tmsToolReceiveDetailMapper;
+	
+	@Override
+	public List<TmsToolReceiveDetail> selectByMainId(String mainId) {
+		return tmsToolReceiveDetailMapper.selectByMainId(mainId);
+	}
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveServiceImpl.java
new file mode 100644
index 0000000..fea9741
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolReceiveServiceImpl.java
@@ -0,0 +1,46 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolReceive;
+import org.jeecg.modules.tms.entity.TmsToolReceiveDetail;
+import org.jeecg.modules.tms.mapper.TmsToolReceiveDetailMapper;
+import org.jeecg.modules.tms.mapper.TmsToolReceiveMapper;
+import org.jeecg.modules.tms.service.ITmsToolReceiveService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Collection;
+
+/**
+ * @Description: 宸ヨ棰嗙敤
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolReceiveServiceImpl extends ServiceImpl<TmsToolReceiveMapper, TmsToolReceive> implements ITmsToolReceiveService {
+
+	@Autowired
+	private TmsToolReceiveMapper tmsToolReceiveMapper;
+	@Autowired
+	private TmsToolReceiveDetailMapper tmsToolReceiveDetailMapper;
+	
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delMain(String id) {
+		tmsToolReceiveDetailMapper.deleteByMainId(id);
+		tmsToolReceiveMapper.deleteById(id);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delBatchMain(Collection<? extends Serializable> idList) {
+		for(Serializable id:idList) {
+			tmsToolReceiveDetailMapper.deleteByMainId(id.toString());
+			tmsToolReceiveMapper.deleteById(id);
+		}
+	}
+	
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapDetailServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapDetailServiceImpl.java
new file mode 100644
index 0000000..8cb8ebf
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapDetailServiceImpl.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import org.jeecg.modules.tms.mapper.TmsToolScrapDetailMapper;
+import org.jeecg.modules.tms.service.ITmsToolScrapDetailService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolScrapDetailServiceImpl extends ServiceImpl<TmsToolScrapDetailMapper, TmsToolScrapDetail> implements ITmsToolScrapDetailService {
+	
+	@Autowired
+	private TmsToolScrapDetailMapper tmsToolScrapDetailMapper;
+	
+	@Override
+	public List<TmsToolScrapDetail> selectByMainId(String mainId) {
+		return tmsToolScrapDetailMapper.selectByMainId(mainId);
+	}
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapServiceImpl.java
new file mode 100644
index 0000000..1e710ee
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolScrapServiceImpl.java
@@ -0,0 +1,46 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolScrap;
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import org.jeecg.modules.tms.mapper.TmsToolScrapDetailMapper;
+import org.jeecg.modules.tms.mapper.TmsToolScrapMapper;
+import org.jeecg.modules.tms.service.ITmsToolScrapService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Collection;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolScrapServiceImpl extends ServiceImpl<TmsToolScrapMapper, TmsToolScrap> implements ITmsToolScrapService {
+
+	@Autowired
+	private TmsToolScrapMapper tmsToolScrapMapper;
+	@Autowired
+	private TmsToolScrapDetailMapper tmsToolScrapDetailMapper;
+	
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delMain(String id) {
+		tmsToolScrapDetailMapper.deleteByMainId(id);
+		tmsToolScrapMapper.deleteById(id);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delBatchMain(Collection<? extends Serializable> idList) {
+		for(Serializable id:idList) {
+			tmsToolScrapDetailMapper.deleteByMainId(id.toString());
+			tmsToolScrapMapper.deleteById(id);
+		}
+	}
+	
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingDetailServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingDetailServiceImpl.java
new file mode 100644
index 0000000..cbc89f6
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingDetailServiceImpl.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolStocktakingDetail;
+import org.jeecg.modules.tms.mapper.TmsToolStocktakingDetailMapper;
+import org.jeecg.modules.tms.service.ITmsToolStocktakingDetailService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Description: 宸ヨ鐩樼偣鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolStocktakingDetailServiceImpl extends ServiceImpl<TmsToolStocktakingDetailMapper, TmsToolStocktakingDetail> implements ITmsToolStocktakingDetailService {
+	
+	@Autowired
+	private TmsToolStocktakingDetailMapper tmsToolStocktakingDetailMapper;
+	
+	@Override
+	public List<TmsToolStocktakingDetail> selectByMainId(String mainId) {
+		return tmsToolStocktakingDetailMapper.selectByMainId(mainId);
+	}
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingInventoryChangeServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingInventoryChangeServiceImpl.java
new file mode 100644
index 0000000..25712a1
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingInventoryChangeServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolStocktakingInventoryChange;
+import org.jeecg.modules.tms.mapper.TmsToolStocktakingInventoryChangeMapper;
+import org.jeecg.modules.tms.service.ITmsToolStocktakingInventoryChangeService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 鐩樼偣搴撳瓨鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolStocktakingInventoryChangeServiceImpl extends ServiceImpl<TmsToolStocktakingInventoryChangeMapper, TmsToolStocktakingInventoryChange> implements ITmsToolStocktakingInventoryChangeService {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingServiceImpl.java
new file mode 100644
index 0000000..ce6e4f1
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolStocktakingServiceImpl.java
@@ -0,0 +1,46 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsToolStocktaking;
+import org.jeecg.modules.tms.entity.TmsToolStocktakingDetail;
+import org.jeecg.modules.tms.mapper.TmsToolStocktakingDetailMapper;
+import org.jeecg.modules.tms.mapper.TmsToolStocktakingMapper;
+import org.jeecg.modules.tms.service.ITmsToolStocktakingService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Collection;
+
+/**
+ * @Description: 宸ヨ鐩樼偣
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolStocktakingServiceImpl extends ServiceImpl<TmsToolStocktakingMapper, TmsToolStocktaking> implements ITmsToolStocktakingService {
+
+	@Autowired
+	private TmsToolStocktakingMapper tmsToolStocktakingMapper;
+	@Autowired
+	private TmsToolStocktakingDetailMapper tmsToolStocktakingDetailMapper;
+	
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delMain(String id) {
+		tmsToolStocktakingDetailMapper.deleteByMainId(id);
+		tmsToolStocktakingMapper.deleteById(id);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delBatchMain(Collection<? extends Serializable> idList) {
+		for(Serializable id:idList) {
+			tmsToolStocktakingDetailMapper.deleteByMainId(id.toString());
+			tmsToolStocktakingMapper.deleteById(id);
+		}
+	}
+	
+}
diff --git a/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolsServiceImpl.java b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolsServiceImpl.java
new file mode 100644
index 0000000..b4b4788
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/service/impl/TmsToolsServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.TmsTools;
+import org.jeecg.modules.tms.mapper.TmsToolsMapper;
+import org.jeecg.modules.tms.service.ITmsToolsService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 宸ヨ淇℃伅
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Service
+public class TmsToolsServiceImpl extends ServiceImpl<TmsToolsMapper, TmsTools> implements ITmsToolsService {
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/vo/TmsToolInboundRequest.java b/src/main/java/org/jeecg/modules/tms/vo/TmsToolInboundRequest.java
new file mode 100644
index 0000000..d0ba6f0
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/vo/TmsToolInboundRequest.java
@@ -0,0 +1,66 @@
+package org.jeecg.modules.tms.vo;
+
+import java.util.List;
+
+import org.jeecg.modules.tms.entity.TmsToolInboundDetail;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 宸ヨ鍏ュ簱
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@ApiModel(value="tms_tool_inboundPage瀵硅薄", description="宸ヨ鍏ュ簱")
+public class TmsToolInboundRequest {
+
+	/**涓婚敭*/
+	@ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍏ュ簱鍗曠姸鎬�*/
+	@Excel(name = "鍏ュ簱鍗曠姸鎬�", width = 15)
+	@ApiModelProperty(value = "鍏ュ簱鍗曠姸鎬�")
+    private String orderStatus;
+	/**鍏ュ簱浜�*/
+	@Excel(name = "鍏ュ簱浜�", width = 15)
+	@ApiModelProperty(value = "鍏ュ簱浜�")
+    private String receiver;
+	/**鍏ュ簱鏃堕棿*/
+	@Excel(name = "鍏ュ簱鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@ApiModelProperty(value = "鍏ュ簱鏃堕棿")
+    private Date receiveTime;
+	/**鍏ュ簱璇存槑*/
+	@Excel(name = "鍏ュ簱璇存槑", width = 15)
+	@ApiModelProperty(value = "鍏ュ簱璇存槑")
+    private String receiveComment;
+	/**纭浜�*/
+	@Excel(name = "纭浜�", width = 15)
+	@ApiModelProperty(value = "纭浜�")
+    private String confirmer;
+	/**纭鏃堕棿*/
+	@Excel(name = "纭鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+	@ApiModelProperty(value = "纭鏃堕棿")
+    private Date confirmTime;
+	/**纭鎰忚*/
+	@Excel(name = "纭鎰忚", width = 15)
+	@ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+
+	@ExcelCollection(name="宸ヨ鍏ュ簱鏄庣粏")
+	@ApiModelProperty(value = "宸ヨ鍏ュ簱鏄庣粏")
+	private List<TmsToolInboundDetail> tmsToolInboundDetailList;
+
+}
diff --git a/src/main/java/org/jeecg/modules/tms/vo/TmsToolScrapPage.java b/src/main/java/org/jeecg/modules/tms/vo/TmsToolScrapPage.java
new file mode 100644
index 0000000..3ac9af4
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/tms/vo/TmsToolScrapPage.java
@@ -0,0 +1,87 @@
+package org.jeecg.modules.tms.vo;
+
+import java.util.List;
+import org.jeecg.modules.tms.entity.TmsToolScrap;
+import org.jeecg.modules.tms.entity.TmsToolScrapDetail;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelEntity;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 宸ヨ鎶ュ簾
+ * @Author: jeecg-boot
+ * @Date:   2025-07-28
+ * @Version: V1.0
+ */
+@Data
+@ApiModel(value="tms_tool_scrapPage瀵硅薄", description="宸ヨ鎶ュ簾")
+public class TmsToolScrapPage {
+
+	/**涓婚敭*/
+	@ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒涘缓浜�*/
+	@ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+	@ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+	@ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+	@ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+	@Excel(name = "鍒犻櫎鏍囪", width = 15)
+	@ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private Integer delFlag;
+	/**鎶ュ簾鍗曠姸鎬�*/
+	@Excel(name = "鎶ュ簾鍗曠姸鎬�", width = 15)
+	@ApiModelProperty(value = "鎶ュ簾鍗曠姸鎬�")
+    private String orderStatus;
+	/**鐢宠浜�*/
+	@Excel(name = "鐢宠浜�", width = 15)
+	@ApiModelProperty(value = "鐢宠浜�")
+    private String applicant;
+	/**鐢宠鏃堕棿*/
+	@Excel(name = "鐢宠鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+	@ApiModelProperty(value = "鐢宠鏃堕棿")
+    private Date applicationTime;
+	/**鐢宠璇存槑*/
+	@Excel(name = "鐢宠璇存槑", width = 15)
+	@ApiModelProperty(value = "鐢宠璇存槑")
+    private String applicationComment;
+	/**纭浜�*/
+	@Excel(name = "纭浜�", width = 15)
+	@ApiModelProperty(value = "纭浜�")
+    private String confirmer;
+	/**纭鏃堕棿*/
+	@Excel(name = "纭鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+	@ApiModelProperty(value = "纭鏃堕棿")
+    private Date confirmTime;
+	/**纭鎰忚*/
+	@Excel(name = "纭鎰忚", width = 15)
+	@ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+
+	@ExcelCollection(name="宸ヨ鎶ュ簾鏄庣粏")
+	@ApiModelProperty(value = "宸ヨ鎶ュ簾鏄庣粏")
+	private List<TmsToolScrapDetail> tmsToolScrapDetailList;
+
+}

--
Gitblit v1.9.3