From 6b5f508bcd94d3f3d6484075c69d918fae226788 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期四, 15 五月 2025 16:23:53 +0800
Subject: [PATCH] 工具信息及参数功能

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsConfigPropertyMapper.xml           |    5 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java                    |   91 ++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaHolesToolsVo.java                    |  191 ++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsConfigPropertyService.java           |   14 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java    |    1 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java                      |  193 ++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java                     |   17 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java         |   89 +
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsConfigPropertyController.java      |  190 ++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java                |  372 ++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java                    |  151 +++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java                      |    6 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsConfigPropertyMapper.java              |   17 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java             |  121 ++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java            |   31 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml                 |    1 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java            |   12 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml |    7 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsConfigPropertyServiceImpl.java   |   19 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java                 |  162 +++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java                         |  165 ++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java                  |  200 ++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java                        |   25 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml                     |  343 ++++++++
 24 files changed, 2,370 insertions(+), 53 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
index 2473019..d3f1d93 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
@@ -283,5 +283,6 @@
 	 */
 	List<Map> queryTableFieldByParams(@Param("table") String queryTable, @Param("columns") String columns, @Param("paramName") String paramName, @Param("paramValues") String[] paramValues);
 
+	List<DictModel> queryDictItemValueByCodeAndText(@Param("code")String code,@Param("itemText")String itemText);
 
 }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
index a3c6e1a..40fe54f 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
@@ -230,5 +230,12 @@
 		</foreach>
 	</select>
 
+	<!-- 閫氳繃瀛楀吀code,itemText鑾峰彇itemValue -->
+	<select id="queryDictItemValueByCodeAndText" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
+		select s.item_value as "value",s.item_text as "text" from sys_dict_item s
+		where dict_id = (select id from sys_dict where dict_code = #{code})
+		and s.item_text = #{itemText}
+		order by s.sort_order asc
+	</select>
 
 </mapper>
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java
index 1ab22a0..022303c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java
@@ -1,37 +1,26 @@
 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 com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.BaseTools;
-import org.jeecg.modules.tms.service.IBaseToolsService;
+import org.jeecg.modules.tms.entity.*;
+import org.jeecg.modules.tms.entity.vo.*;
+import 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 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;
@@ -49,6 +38,27 @@
 public class BaseToolsController extends JeecgController<BaseTools, IBaseToolsService> {
 	@Autowired
 	private IBaseToolsService baseToolsService;
+
+	 @Autowired
+	 private IToolsConfigPropertyService toolsConfigPropertyService;
+
+	 @Autowired
+	 private IParaHoleToolsService paraHoleToolsService;
+
+	 @Autowired
+	 private IParaThreadingToolService paraThreadingToolService;
+
+	 @Autowired
+	 private IParaTurningToolsService paraTurningToolsService;
+
+	 @Autowired
+	 private IParaMillToolService paraMillToolService;
+
+	 @Autowired
+	 private IParaCommonToolService paraCommonToolService;
+
+	 @Autowired
+	 private IParaBladeService paraBladeService;
 	
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -63,42 +73,285 @@
 	@ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
 	@GetMapping(value = "/list")
 	public Result<IPage<BaseTools>> queryPageList(BaseTools baseTools,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
+														 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														 HttpServletRequest req) {
 		QueryWrapper<BaseTools> queryWrapper = QueryGenerator.initQueryWrapper(baseTools, req.getParameterMap());
 		Page<BaseTools> page = new Page<BaseTools>(pageNo, pageSize);
 		IPage<BaseTools> pageList = baseToolsService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
+
+	 /**
+	  * 鍒嗛〉鍒楄〃鏌ヨ
+	  *
+	  * @param baseTools
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/paraHolesToolsList")
+	 public Result<IPage<ParaHolesToolsVo>> paraHolesToolsList(BaseTools baseTools,
+														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														  HttpServletRequest req) {
+		 Map<String, String[]> parameterMap = req.getParameterMap();
+		 Page<ParaHolesToolsVo> page = new Page<ParaHolesToolsVo>(pageNo, pageSize);
+		 IPage<ParaHolesToolsVo> pageList = baseToolsService.paraHolesToolsList(page, parameterMap);
+		 return Result.OK(pageList);
+	 }
+
+	 /**
+	  * 鍒嗛〉鍒楄〃鏌ヨ
+	  *
+	  * @param baseTools
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/paraCommonToolList")
+	 public Result<IPage<ParaCommonToolVo>> paraCommonToolList(BaseTools baseTools,
+																  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+																  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+																  HttpServletRequest req) {
+		 Map<String, String[]> parameterMap = req.getParameterMap();
+		 Page<ParaCommonToolVo> page = new Page<ParaCommonToolVo>(pageNo, pageSize);
+		 IPage<ParaCommonToolVo> pageList = baseToolsService.paraCommonToolList(page, parameterMap);
+		 return Result.OK(pageList);
+	 }
+
+	 /**
+	  * 鍒嗛〉鍒楄〃鏌ヨ
+	  *
+	  * @param baseTools
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/paraThreadingToolList")
+	 public Result<IPage<ParaThreadingToolVo>> paraThreadingToolList(BaseTools baseTools,
+														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														  HttpServletRequest req) {
+		 Map<String, String[]> parameterMap = req.getParameterMap();
+		 Page<ParaThreadingToolVo> page = new Page<ParaThreadingToolVo>(pageNo, pageSize);
+		 IPage<ParaThreadingToolVo> pageList = baseToolsService.paraThreadingToolList(page, parameterMap);
+		 return Result.OK(pageList);
+	 }
+
+	 /**
+	  * 鍒嗛〉鍒楄〃鏌ヨ
+	  *
+	  * @param baseTools
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/paraMillToolList")
+	 public Result<IPage<ParaMillToolVo>> paraMillToolList(BaseTools baseTools,
+														   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														   HttpServletRequest req) {
+		 Map<String, String[]> parameterMap = req.getParameterMap();
+		 Page<ParaMillToolVo> page = new Page<ParaMillToolVo>(pageNo, pageSize);
+		 IPage<ParaMillToolVo> pageList = baseToolsService.paraMillToolList(page, parameterMap);
+		 return Result.OK(pageList);
+	 }
+
+	 /**
+	  * 鍒嗛〉鍒楄〃鏌ヨ
+	  *
+	  * @param baseTools
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/paraTurningToolsList")
+	 public Result<IPage<ParaTurningToolsVo>> paraTurningToolsList(BaseTools baseTools,
+																   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+																   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+																   HttpServletRequest req) {
+		 Map<String, String[]> parameterMap = req.getParameterMap();
+		 Page<ParaTurningToolsVo> page = new Page<ParaTurningToolsVo>(pageNo, pageSize);
+		 IPage<ParaTurningToolsVo> pageList = baseToolsService.paraTurningToolsList(page, parameterMap);
+		 return Result.OK(pageList);
+	 }
+
+	 /**
+	  * 鍒嗛〉鍒楄〃鏌ヨ
+	  *
+	  * @param baseTools
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @ApiOperation(value="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_base_tools-鍒嗛〉鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/paraBladeList")
+	 public Result<IPage<ParaBladeVo>> paraBladeList(BaseTools baseTools,
+													 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+													 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+													 HttpServletRequest req) {
+		 Map<String, String[]> parameterMap = req.getParameterMap();
+		 Page<ParaBladeVo> page = new Page<ParaBladeVo>(pageNo, pageSize);
+		 IPage<ParaBladeVo> pageList = baseToolsService.paraBladeList(page, parameterMap);
+		 return Result.OK(pageList);
+	 }
 	
 	/**
 	 *   娣诲姞
 	 *
-	 * @param baseTools
+	 * @param jSONObject
 	 * @return
 	 */
 	@AutoLog(value = "tms_base_tools-娣诲姞")
 	@ApiOperation(value="tms_base_tools-娣诲姞", notes="tms_base_tools-娣诲姞")
 	//@RequiresPermissions("org.jeecg.modules:tms_base_tools:add")
 	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody BaseTools baseTools) {
-		baseToolsService.save(baseTools);
+	public Result<String> add(@RequestBody JSONObject jSONObject) {
+		BaseTools baseTools = jSONObject.toJavaObject(BaseTools.class);
+		String paramaTableName = jSONObject.getString("paraTypeFlag");
+		ToolsConfigProperty toolsConfigProperty = jSONObject.toJavaObject(ToolsConfigProperty.class);
+		ParaHoleTools paraHoleTools = jSONObject.toJavaObject(ParaHoleTools.class);
+		ParaCommonTool paraCommonTool = jSONObject.toJavaObject(ParaCommonTool.class);
+		ParaThreadingTool paraThreadingTool = jSONObject.toJavaObject(ParaThreadingTool.class);
+		ParaTurningTools paraTurningTools = jSONObject.toJavaObject(ParaTurningTools.class);
+		ParaMillTool paraMillTool = jSONObject.toJavaObject(ParaMillTool.class);
+		ParaBlade paraBlade = jSONObject.toJavaObject(ParaBlade.class);
+		baseTools.setParamaTableName(paramaTableName);
+		if(baseToolsService.save(baseTools)){
+			toolsConfigProperty.setToolCode(baseTools.getId());
+			toolsConfigPropertyService.save(toolsConfigProperty);
+			if("1".equals(paramaTableName)){
+				paraCommonTool.setToolCode(baseTools.getId());
+				paraCommonToolService.save(paraCommonTool);
+			}else if("2".equals(paramaTableName)){
+				paraHoleTools.setToolCode(baseTools.getId());
+				paraHoleToolsService.save(paraHoleTools);
+			}else if("3".equals(paramaTableName)){
+				paraThreadingTool.setToolCode(baseTools.getId());
+				paraThreadingToolService.save(paraThreadingTool);
+			}else if("4".equals(paramaTableName)){
+				paraMillTool.setToolCode(baseTools.getId());
+				paraMillToolService.save(paraMillTool);
+			}else if("5".equals(paramaTableName)){
+				paraTurningTools.setToolCode(baseTools.getId());
+				paraTurningToolsService.save(paraTurningTools);
+			}else if("6".equals(paramaTableName)){
+				paraBlade.setToolCode(baseTools.getId());
+				paraBladeService.save(paraBlade);
+			}
+		}
 		return Result.OK("娣诲姞鎴愬姛锛�");
 	}
 	
 	/**
 	 *  缂栬緫
 	 *
-	 * @param baseTools
+	 * @param jSONObject
 	 * @return
 	 */
 	@AutoLog(value = "tms_base_tools-缂栬緫")
 	@ApiOperation(value="tms_base_tools-缂栬緫", notes="tms_base_tools-缂栬緫")
 	//@RequiresPermissions("org.jeecg.modules:tms_base_tools:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody BaseTools baseTools) {
-		baseToolsService.updateById(baseTools);
+	public Result<String> edit(@RequestBody JSONObject jSONObject) {
+		BaseTools baseTools = jSONObject.toJavaObject(BaseTools.class);
+		ToolsConfigProperty toolsConfigProperty = jSONObject.toJavaObject(ToolsConfigProperty.class);
+		ParaHoleTools paraHoleTools = jSONObject.toJavaObject(ParaHoleTools.class);
+		ParaCommonTool paraCommonTool = jSONObject.toJavaObject(ParaCommonTool.class);
+		ParaThreadingTool paraThreadingTool = jSONObject.toJavaObject(ParaThreadingTool.class);
+		ParaTurningTools paraTurningTools = jSONObject.toJavaObject(ParaTurningTools.class);
+		ParaMillTool paraMillTool = jSONObject.toJavaObject(ParaMillTool.class);
+		ParaBlade paraBlade = jSONObject.toJavaObject(ParaBlade.class);
+		if(baseToolsService.updateById(baseTools)){
+			ToolsConfigProperty toolsConfigProperty1 = toolsConfigPropertyService.lambdaQuery().eq(ToolsConfigProperty::getToolCode,baseTools.getId()).one();
+			if(toolsConfigProperty1 != null){
+				toolsConfigProperty.setId(toolsConfigProperty1.getId());
+				toolsConfigProperty.setToolCode(baseTools.getId());
+				toolsConfigPropertyService.updateById(toolsConfigProperty);
+			}else {
+				toolsConfigProperty.setToolCode(baseTools.getId());
+				toolsConfigPropertyService.save(toolsConfigProperty);
+			}
+			if("1".equals(baseTools.getParamaTableName())){
+				ParaCommonTool paraCommonTool1 = paraCommonToolService.lambdaQuery().eq(ParaCommonTool::getToolCode,baseTools.getId()).one();
+				if(paraCommonTool1 != null){
+					paraCommonTool.setId(paraCommonTool1.getId());
+					paraCommonTool.setToolCode(baseTools.getId());
+					paraCommonToolService.updateById(paraCommonTool);
+				}else {
+					paraCommonTool.setToolCode(baseTools.getId());
+					paraCommonToolService.save(paraCommonTool);
+				}
+			}else if("2".equals(baseTools.getParamaTableName())){
+				ParaHoleTools paraHoleTools1 = paraHoleToolsService.lambdaQuery().eq(ParaHoleTools::getToolCode,baseTools.getId()).one();
+				if(paraHoleTools1 != null){
+					paraHoleTools.setId(paraHoleTools1.getId());
+					paraHoleTools.setToolCode(baseTools.getId());
+					paraHoleToolsService.updateById(paraHoleTools);
+				}else {
+					paraHoleTools.setToolCode(baseTools.getId());
+					paraHoleToolsService.save(paraHoleTools);
+				}
+			}else if("3".equals(baseTools.getParamaTableName())){
+				ParaThreadingTool paraThreadingTool1 = paraThreadingToolService.lambdaQuery().eq(ParaThreadingTool::getToolCode,baseTools.getId()).one();
+				if(paraThreadingTool1 != null){
+					paraThreadingTool.setId(paraThreadingTool1.getId());
+					paraThreadingTool.setToolCode(baseTools.getId());
+					paraThreadingToolService.updateById(paraThreadingTool);
+				}else {
+					paraThreadingTool.setToolCode(baseTools.getId());
+					paraThreadingToolService.save(paraThreadingTool);
+				}
+			}else if("4".equals(baseTools.getParamaTableName())){
+				ParaMillTool paraMillTool1 = paraMillToolService.lambdaQuery().eq(ParaMillTool::getToolCode,baseTools.getId()).one();
+				if(paraMillTool1 != null){
+					paraMillTool.setId(paraMillTool1.getId());
+					paraMillTool.setToolCode(baseTools.getId());
+					paraMillToolService.updateById(paraMillTool);
+				}else {
+					paraMillTool.setToolCode(baseTools.getId());
+					paraMillToolService.save(paraMillTool);
+				}
+			}else if("5".equals(baseTools.getParamaTableName())){
+				ParaTurningTools paraTurningTools1 = paraTurningToolsService.lambdaQuery().eq(ParaTurningTools::getToolCode,baseTools.getId()).one();
+				if(paraTurningTools1 != null){
+					paraTurningTools.setId(paraTurningTools1.getId());
+					paraTurningTools.setToolCode(baseTools.getId());
+					paraTurningToolsService.updateById(paraTurningTools);
+				}else {
+					paraTurningTools.setToolCode(baseTools.getId());
+					paraTurningToolsService.save(paraTurningTools);
+				}
+			}else if("6".equals(baseTools.getParamaTableName())){
+				ParaBlade paraBlade1 = paraBladeService.lambdaQuery().eq(ParaBlade::getToolCode,baseTools.getId()).one();
+				if(paraBlade1 != null){
+					paraBlade.setId(paraBlade1.getId());
+					paraBlade.setToolCode(baseTools.getId());
+					paraBladeService.updateById(paraBlade);
+				}else {
+					paraBlade.setToolCode(baseTools.getId());
+					paraBladeService.save(paraBlade);
+				}
+			}
+		}
 		return Result.OK("缂栬緫鎴愬姛!");
 	}
 	
@@ -114,6 +367,42 @@
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
 		baseToolsService.removeById(id);
+		BaseTools baseTools = baseToolsService.getById(id);
+		ToolsConfigProperty toolsConfigProperty = toolsConfigPropertyService.lambdaQuery().eq(ToolsConfigProperty::getToolCode,baseTools.getId()).one();
+		if(toolsConfigProperty != null){
+			toolsConfigPropertyService.removeById(toolsConfigProperty.getId());
+		}
+		if("1".equals(baseTools.getParamaTableName())){
+			ParaCommonTool paraCommonTool = paraCommonToolService.lambdaQuery().eq(ParaCommonTool::getToolCode,baseTools.getId()).one();
+			if(paraCommonTool != null){
+				paraCommonToolService.removeById(paraCommonTool.getId());
+			}
+		}else if("2".equals(baseTools.getParamaTableName())){
+			ParaHoleTools paraHoleTools = paraHoleToolsService.lambdaQuery().eq(ParaHoleTools::getToolCode,baseTools.getId()).one();
+			if(paraHoleTools != null){
+				paraHoleToolsService.removeById(paraHoleTools.getId());
+			}
+		}else if("3".equals(baseTools.getParamaTableName())){
+			ParaThreadingTool paraThreadingTool = paraThreadingToolService.lambdaQuery().eq(ParaThreadingTool::getToolCode,baseTools.getId()).one();
+			if(paraThreadingTool != null){
+				paraThreadingToolService.removeById(paraThreadingTool.getId());
+			}
+		}else if("4".equals(baseTools.getParamaTableName())){
+			ParaMillTool paraMillTool = paraMillToolService.lambdaQuery().eq(ParaMillTool::getToolCode,baseTools.getId()).one();
+			if(paraMillTool != null){
+				paraMillToolService.removeById(paraMillTool.getId());
+			}
+		}else if("5".equals(baseTools.getParamaTableName())){
+			ParaTurningTools paraTurningTools = paraTurningToolsService.lambdaQuery().eq(ParaTurningTools::getToolCode,baseTools.getId()).one();
+			if(paraTurningTools != null){
+				paraTurningToolsService.removeById(paraTurningTools.getId());
+			}
+		}else if("6".equals(baseTools.getParamaTableName())){
+			ParaBlade paraBlade = paraBladeService.lambdaQuery().eq(ParaBlade::getToolCode,baseTools.getId()).one();
+			if(paraBlade != null){
+				paraBladeService.removeById(paraBlade.getId());
+			}
+		}
 		return Result.OK("鍒犻櫎鎴愬姛!");
 	}
 	
@@ -174,4 +463,35 @@
         return super.importExcel(request, response, BaseTools.class);
     }
 
+	 /**
+	  * 閫氳繃宸ュ叿id鏌ヨ
+	  *
+	  * @param toolCode
+	  * @return
+	  */
+	 @GetMapping(value = "/queryByToolCode")
+	 public Result<?> queryByToolCode(@RequestParam(name="toolCode",required=true) String toolCode,@RequestParam(name="paraTypeFlag",required=true) String paraTypeFlag) {
+		 if("1".equals(paraTypeFlag)){
+			 ParaCommonTool paraCommonTool = paraCommonToolService.lambdaQuery().eq(ParaCommonTool::getToolCode,toolCode).one();
+			 return Result.OK(paraCommonTool);
+		 }else if("2".equals(paraTypeFlag)){
+			 ParaHoleTools paraHoleTools = paraHoleToolsService.lambdaQuery().eq(ParaHoleTools::getToolCode,toolCode).one();
+			 return Result.OK(paraHoleTools);
+		 }else if("3".equals(paraTypeFlag)){
+			 ParaThreadingTool paraThreadingTool = paraThreadingToolService.lambdaQuery().eq(ParaThreadingTool::getToolCode,toolCode).one();
+			 return Result.OK(paraThreadingTool);
+		 }else if("4".equals(paraTypeFlag)){
+			 ParaMillTool paraMillTool = paraMillToolService.lambdaQuery().eq(ParaMillTool::getToolCode,toolCode).one();
+			 return Result.OK(paraMillTool);
+		 }else if("5".equals(paraTypeFlag)){
+			 ParaTurningTools paraTurningTools = paraTurningToolsService.lambdaQuery().eq(ParaTurningTools::getToolCode,toolCode).one();
+			 return Result.OK(paraTurningTools);
+		 }else if("6".equals(paraTypeFlag)){
+			ParaBlade paraBlade = paraBladeService.lambdaQuery().eq(ParaBlade::getToolCode,toolCode).one();
+			 return Result.OK(paraBlade);
+		 }else {
+			 return Result.OK("");
+		 }
+	 }
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java
index 40c7643..addf487 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java
@@ -439,4 +439,16 @@
         }
     }
 
+    /**
+     * 閫氳繃宸ュ叿id鏌ヨ
+     *
+     * @param toolCode
+     * @return
+     */
+    @GetMapping(value = "/queryByToolCode")
+    public Result<ParaHoleTools> queryByToolCode(@RequestParam(name="toolCode",required=true) String toolCode) {
+        ParaHoleTools paraHoleTools = paraHoleToolsService.lambdaQuery().eq(ParaHoleTools::getToolCode,toolCode).one();
+        return Result.OK(paraHoleTools);
+    }
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java
index f293679..6a8e93a 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java
@@ -1,8 +1,6 @@
 package org.jeecg.modules.tms.controller;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -10,11 +8,13 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.jeecg.common.api.vo.CommonGenericTree;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.jeecg.modules.tms.entity.ToolsClassify;
 import org.jeecg.modules.tms.entity.Warehouse;
 import org.jeecg.modules.tms.service.IToolsClassifyService;
@@ -53,6 +53,9 @@
 public class ToolsClassifyController extends JeecgController<ToolsClassify, IToolsClassifyService> {
 	@Autowired
 	private IToolsClassifyService toolsClassifyService;
+
+	 @Autowired
+	 private ISysBusinessCodeRuleService businessCodeRuleService;
 	
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -87,6 +90,28 @@
 	//@RequiresPermissions("org.jeecg.modules:tms_tools_classify:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody ToolsClassify toolsClassify) {
+		//鏍规嵁缂栫爜瑙勫垯鐢熸垚宸ュ叿鍒嗙被缂栫爜
+		if("1".equals(toolsClassify.getEncodingType())){
+			toolsClassify.setClassifyId(businessCodeRuleService.generateBusinessCodeSeq("ToolsClassify"));
+		}else if("2".equals(toolsClassify.getEncodingType())){
+			String classifyIds = "";
+			String classifyId = toolsClassify.getClassifyId();
+			String parentId = toolsClassify.getParentId();
+			while (StringUtils.isNotBlank(classifyId)){
+				classifyIds = classifyId+classifyIds;
+				//鑾峰彇鐖惰妭鐐圭殑缂栫爜
+				ToolsClassify parentToolsClassify = toolsClassifyService.getById(parentId);
+				if(parentToolsClassify != null && StringUtils.isNotBlank(parentToolsClassify.getClassifyId()) && !"0".equals(parentToolsClassify.getClassifyId())){
+					classifyId = parentToolsClassify.getClassifyId();
+					parentId = parentToolsClassify.getParentId();
+				}else{
+					classifyId = "";
+				}
+			}
+			toolsClassify.setClassifyId(classifyIds);
+		}else if("3".equals(toolsClassify.getEncodingType())){
+			toolsClassify.setClassifyId(toolsClassify.getClassifyId());
+		}
 		toolsClassify.setStatus("1");
 		toolsClassifyService.save(toolsClassify);
 		return Result.OK("娣诲姞鎴愬姛锛�");
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsConfigPropertyController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsConfigPropertyController.java
new file mode 100644
index 0000000..4920811
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsConfigPropertyController.java
@@ -0,0 +1,190 @@
+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.ParaHoleTools;
+import org.jeecg.modules.tms.entity.ToolsConfigProperty;
+import org.jeecg.modules.tms.service.IToolsConfigPropertyService;
+
+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: tms_tools_config_property
+ * @Author: jeecg-boot
+ * @Date:   2025-05-13
+ * @Version: V1.0
+ */
+@Api(tags="tms_tools_config_property")
+@RestController
+@RequestMapping("/tms/toolsConfigProperty")
+@Slf4j
+public class ToolsConfigPropertyController extends JeecgController<ToolsConfigProperty, IToolsConfigPropertyService> {
+	@Autowired
+	private IToolsConfigPropertyService toolsConfigPropertyService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param toolsConfigProperty
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "tms_tools_config_property-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="tms_tools_config_property-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_tools_config_property-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<ToolsConfigProperty>> queryPageList(ToolsConfigProperty toolsConfigProperty,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<ToolsConfigProperty> queryWrapper = QueryGenerator.initQueryWrapper(toolsConfigProperty, req.getParameterMap());
+		Page<ToolsConfigProperty> page = new Page<ToolsConfigProperty>(pageNo, pageSize);
+		IPage<ToolsConfigProperty> pageList = toolsConfigPropertyService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param toolsConfigProperty
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_config_property-娣诲姞")
+	@ApiOperation(value="tms_tools_config_property-娣诲姞", notes="tms_tools_config_property-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody ToolsConfigProperty toolsConfigProperty) {
+		toolsConfigPropertyService.save(toolsConfigProperty);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param toolsConfigProperty
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_config_property-缂栬緫")
+	@ApiOperation(value="tms_tools_config_property-缂栬緫", notes="tms_tools_config_property-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody ToolsConfigProperty toolsConfigProperty) {
+		toolsConfigPropertyService.updateById(toolsConfigProperty);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_config_property-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="tms_tools_config_property-閫氳繃id鍒犻櫎", notes="tms_tools_config_property-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		toolsConfigPropertyService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_config_property-鎵归噺鍒犻櫎")
+	@ApiOperation(value="tms_tools_config_property-鎵归噺鍒犻櫎", notes="tms_tools_config_property-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.toolsConfigPropertyService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "tms_tools_config_property-閫氳繃id鏌ヨ")
+	@ApiOperation(value="tms_tools_config_property-閫氳繃id鏌ヨ", notes="tms_tools_config_property-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<ToolsConfigProperty> queryById(@RequestParam(name="id",required=true) String id) {
+		ToolsConfigProperty toolsConfigProperty = toolsConfigPropertyService.getById(id);
+		if(toolsConfigProperty==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(toolsConfigProperty);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param toolsConfigProperty
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, ToolsConfigProperty toolsConfigProperty) {
+        return super.exportXls(request, toolsConfigProperty, ToolsConfigProperty.class, "tms_tools_config_property");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tools_config_property:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, ToolsConfigProperty.class);
+    }
+
+	 /**
+	  * 閫氳繃宸ュ叿id鏌ヨ
+	  *
+	  * @param toolCode
+	  * @return
+	  */
+	 @GetMapping(value = "/queryByToolCode")
+	 public Result<ToolsConfigProperty> queryByToolCode(@RequestParam(name="toolCode",required=true) String toolCode) {
+		 ToolsConfigProperty toolsConfigProperty = toolsConfigPropertyService.lambdaQuery().eq(ToolsConfigProperty::getToolCode,toolCode).one();
+		 return Result.OK(toolsConfigProperty);
+	 }
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java
index ca2dbb9..1f7a941 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java
@@ -148,9 +148,9 @@
 	@Excel(name = "鎺掑睉妲藉瀷", width = 15)
     @ApiModelProperty(value = "鎺掑睉妲藉瀷")
     private String fluteSoltType;
-	/**鎺掑睉妲藉瀷*/
-	@Excel(name = "鎺掑睉妲藉瀷", width = 15)
-    @ApiModelProperty(value = "鎺掑睉妲藉瀷")
+	/**铻虹汗绫诲瀷*/
+	@Excel(name = "铻虹汗绫诲瀷", width = 15)
+    @ApiModelProperty(value = "铻虹汗绫诲瀷")
     private String threadType;
 	/**瀵煎悜灏哄*/
 	@Excel(name = "瀵煎悜灏哄", width = 15)
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java
new file mode 100644
index 0000000..7084df0
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java
@@ -0,0 +1,151 @@
+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: tms_tools_config_property
+ * @Author: jeecg-boot
+ * @Date:   2025-05-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tools_config_property")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tools_config_property瀵硅薄", description="tms_tools_config_property")
+public class ToolsConfigProperty implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**鍒嗙被缂栧彿*/
+	@Excel(name = "鍒嗙被缂栧彿", width = 15)
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyId;
+    /**宸ュ叿淇℃伅id*/
+    @Excel(name = "宸ュ叿淇℃伅id", width = 15)
+    @ApiModelProperty(value = "宸ュ叿淇℃伅id")
+    private String toolCode;
+	/**涓枃鍚嶇О*/
+	@Excel(name = "涓枃鍚嶇О", width = 15)
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+	/**鑻辨枃鍚嶇О*/
+	@Excel(name = "鑻辨枃鍚嶇О", width = 15)
+    @ApiModelProperty(value = "鑻辨枃鍚嶇О")
+    private String foreignLanguageName;
+	/**宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤*/
+	@Excel(name = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤", width = 15)
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private java.lang.String applicationType;
+	/**鏍囧噯绾у埆*/
+	@Excel(name = "鏍囧噯绾у埆", width = 15)
+    @ApiModelProperty(value = "鏍囧噯绾у埆")
+    private java.lang.String standardLevel;
+	/**鏍囧噯鍙�*/
+	@Excel(name = "鏍囧噯鍙�", width = 15)
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private java.lang.String standardCode;
+	/**鍨嬪彿/鍥惧彿*/
+	@Excel(name = "鍨嬪彿/鍥惧彿", width = 15)
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private java.lang.String toolModel;
+	/**鍘傚*/
+	@Excel(name = "鍘傚", width = 15)
+    @ApiModelProperty(value = "鍘傚")
+    private java.lang.String supplierId;
+	/**浠撳簱鐪佷唤鍩庡競*/
+	@Excel(name = "浠撳簱鐪佷唤鍩庡競", width = 15)
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private java.lang.String provinceCity;
+	/**搴撳尯/搴撳彿*/
+	@Excel(name = "搴撳尯/搴撳彿", width = 15)
+    @ApiModelProperty(value = "搴撳尯/搴撳彿")
+    private java.lang.String warehouseId;
+	/**搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��*/
+	@Excel(name = "搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��", width = 15)
+    @ApiModelProperty(value = "搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��")
+    private java.lang.String positionCode;
+	/**瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�*/
+	@Excel(name = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�", width = 15)
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private java.lang.String storageLocation;
+	/**璁¢噺涓诲崟浣�*/
+	@Excel(name = "璁¢噺涓诲崟浣�", width = 15)
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private java.lang.String mainUnit;
+	/**璁¢噺杈呭崟浣�*/
+	@Excel(name = "璁¢噺杈呭崟浣�", width = 15)
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private java.lang.String auxiliaryUnit;
+	/**璁¢噺涓诲崟浣嶆暟閲�*/
+	@Excel(name = "璁¢噺涓诲崟浣嶆暟閲�", width = 15)
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣嶆暟閲�")
+    private java.lang.String mainCount;
+	/**璁¢噺杈呭崟浣嶆暟閲�*/
+	@Excel(name = "璁¢噺杈呭崟浣嶆暟閲�", width = 15)
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣嶆暟閲�")
+    private java.lang.String auxiliaryCount;
+	/**鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�*/
+	@Excel(name = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�", width = 15)
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private java.lang.String auxiliaryUnitFlag;
+	/**鍗曚环*/
+	@Excel(name = "鍗曚环", width = 15)
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+	/**鏈�浣庡簱瀛�*/
+	@Excel(name = "鏈�浣庡簱瀛�", width = 15)
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+	/**鏈�楂樺簱瀛�*/
+	@Excel(name = "鏈�楂樺簱瀛�", width = 15)
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+	/**鐘舵��;1.鍚敤 2.鏈惎鐢�*/
+	@Excel(name = "鐘舵��;1.鍚敤 2.鏈惎鐢�", width = 15)
+    @ApiModelProperty(value = "鐘舵��;1.鍚敤 2.鏈惎鐢�")
+    private java.lang.String status;
+	/**澶囨敞*/
+	@Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private java.lang.String remark;
+	/**绉熸埛鍙�*/
+	@Excel(name = "绉熸埛鍙�", width = 15)
+    @ApiModelProperty(value = "绉熸埛鍙�")
+    private java.lang.String tenantId;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private java.lang.String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private java.util.Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private java.lang.String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private java.util.Date updateTime;
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java
new file mode 100644
index 0000000..96fa5bc
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java
@@ -0,0 +1,165 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ParaBladeVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    @ApiModelProperty(value = "鍒嗙被id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyNum;
+
+    @ApiModelProperty(value = "鍒嗙被鍚嶇О")
+    private String classifyName;
+
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+
+    @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�")
+    private String signCode;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "澶栨枃鍚嶇О")
+    private String foreignLanguageName;
+
+    @ApiModelProperty(value = "鏍囨敞绾у埆")
+    private String standardLevel;
+
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private String standardCode;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+
+    @ApiModelProperty(value = "搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�")
+    private String positionCode;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private String applicationType;
+
+    @ApiModelProperty(value = "鍘傚")
+    private String supplierId;
+
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private String provinceCity;
+
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private String storageLocation;
+
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private String mainUnit;
+
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private String auxiliaryUnit;
+
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private String auxiliaryUnitFlag;
+
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+
+    @ApiModelProperty(value = "鍒�鐗囧舰鐘�")
+    private String bladeShape;
+
+    @ApiModelProperty(value = "鍒�鐗囬暱搴�")
+    private String bladeLength;
+
+    @ApiModelProperty(value = "鍒囧墛鍒冩暟")
+    private String cuttingEdgeCount;
+
+    @ApiModelProperty(value = "鍒�鐗囧帤搴�")
+    private String bladeThickness;
+
+    @ApiModelProperty(value = "澶瑰浐鍨嬪紡")
+    private String clampingType;
+
+    @ApiModelProperty(value = "鍒�灏朢")
+    private String noseAngleR;
+
+    @ApiModelProperty(value = "鍒�鐗囨潗鏂�")
+    private String toolMaterial;
+
+    @ApiModelProperty(value = "闆朵欢鏉愭枡")
+    private String partMaterial;
+
+    @ApiModelProperty(value = "鏄惁娑傚眰")
+    private String paintcoatFlag;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠�")
+    private String technicalConditions;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠惰鏄�")
+    private String conditionsInfo;
+
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    @ApiModelProperty(value = "鍒跺紡")
+    private String types;
+
+    @ApiModelProperty(value = "娑傚眰鏉愯川")
+    private String coatingMaterial;
+
+    @ApiModelProperty(value = "鍔犲伐鍒嗙被")
+    private String processingClassify;
+
+    @ApiModelProperty(value = "鍒�鐗囧悗瑙�")
+    private String bladePosterior;
+
+    @ApiModelProperty(value = "鍒囧墛鏂瑰悜")
+    private String cuttingDirection;
+
+    @ApiModelProperty(value = "鍒�鐗囧搴�")
+    private String bladeWide;
+
+    @ApiModelProperty(value = "鍒�鐗囧昂瀵�")
+    private String bladeSize;
+
+    @ApiModelProperty(value = "鍐呭铻虹汗")
+    private String inOutThread;
+
+    @ApiModelProperty(value = "铻虹汗鏍囧噯")
+    private String threadStandard;
+
+    @ApiModelProperty(value = "鐗欏瀷瑙掑害")
+    private String dentalAngle;
+
+    @ApiModelProperty(value = "铻鸿窛")
+    private String pitch;
+
+    @ApiModelProperty(value = "鏈�灏忓姞宸ュ唴铻虹汗鍏О鐩村緞")
+    private String minInternalThread;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java
new file mode 100644
index 0000000..b68c4f8
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java
@@ -0,0 +1,91 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ParaCommonToolVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    @ApiModelProperty(value = "鍒嗙被id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyNum;
+
+    @ApiModelProperty(value = "鍒嗙被鍚嶇О")
+    private String classifyName;
+
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+
+    @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�")
+    private String signCode;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "澶栨枃鍚嶇О")
+    private String foreignLanguageName;
+
+    @ApiModelProperty(value = "鏍囨敞绾у埆")
+    private String standardLevel;
+
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private String standardCode;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+
+    @ApiModelProperty(value = "搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�")
+    private String positionCode;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private String applicationType;
+
+    @ApiModelProperty(value = "鍘傚")
+    private String supplierId;
+
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private String provinceCity;
+
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private String storageLocation;
+
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private String mainUnit;
+
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private String auxiliaryUnit;
+
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private String auxiliaryUnitFlag;
+
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaHolesToolsVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaHolesToolsVo.java
new file mode 100644
index 0000000..b4b4eb7
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaHolesToolsVo.java
@@ -0,0 +1,191 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ParaHolesToolsVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    @ApiModelProperty(value = "鍒嗙被id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyNum;
+
+    @ApiModelProperty(value = "鍒嗙被鍚嶇О")
+    private String classifyName;
+
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+
+    @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�")
+    private String signCode;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "澶栨枃鍚嶇О")
+    private String foreignLanguageName;
+
+    @ApiModelProperty(value = "鏍囨敞绾у埆")
+    private String standardLevel;
+
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private String standardCode;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+
+    @ApiModelProperty(value = "搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�")
+    private String positionCode;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private java.lang.String applicationType;
+
+    @ApiModelProperty(value = "鍘傚")
+    private java.lang.String supplierId;
+
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private java.lang.String provinceCity;
+
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private java.lang.String storageLocation;
+
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private java.lang.String mainUnit;
+
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private java.lang.String auxiliaryUnit;
+
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private java.lang.String auxiliaryUnitFlag;
+
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+
+    @ApiModelProperty(value = "鐩村緞")
+    private String diameter;
+
+    @ApiModelProperty(value = "鍒囧墛鍒冮敟瑙�")
+    private String coneAngle;
+
+    @ApiModelProperty(value = "鍒囧墛鍒冮暱")
+    private String edgeLength;
+
+    @ApiModelProperty(value = "鍒�鍏锋�婚暱")
+    private String totalLength;
+
+    @ApiModelProperty(value = "鍒�鍏锋潗鏂�")
+    private String toolMaterial;
+
+    @ApiModelProperty(value = "闆朵欢鏉愭枡")
+    private String partMaterial;
+
+    @ApiModelProperty(value = "鏄惁娑傚眰")
+    private String paintcoatFlag;
+
+    @ApiModelProperty(value = "鍒�鍏峰瀷寮�")
+    private String toolPattern;
+
+    @ApiModelProperty(value = "鏌勯儴瑙勬牸")
+    private String handleSpecifications;
+
+    @ApiModelProperty(value = "鍐峰嵈鏂瑰紡")
+    private String coolingMethod;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠�")
+    private String technicalConditions;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠惰鏄�")
+    private String conditionsInfo;
+
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    @ApiModelProperty(value = "鍒跺紡")
+    private String types;
+
+    @ApiModelProperty(value = "鍏樊绛夌骇")
+    private String toleranceClass;
+
+    @ApiModelProperty(value = "鎺掑睉妲藉舰寮�")
+    private String fluteForm;
+
+    @ApiModelProperty(value = "鏌勯儴褰㈠紡")
+    private String handleForm;
+
+    @ApiModelProperty(value = "鍒冩暟")
+    private String bladeCount;
+
+    @ApiModelProperty(value = "鏈�灏忕洿寰�")
+    private String smallDiameter;
+
+    @ApiModelProperty(value = "鍊掕瑙掑害")
+    private String chamferAngle;
+
+    @ApiModelProperty(value = "閫傞厤鍒�鐗�-鍒�澶�-鍒�鏉�")
+    private String fitterPart;
+
+    @ApiModelProperty(value = "鏈夋晥鍔犲伐闀垮害")
+    private String effectiveLength;
+
+    @ApiModelProperty(value = "閽诲ご鐩村緞鑼冨洿")
+    private String drillDiameterRange;
+
+    @ApiModelProperty(value = "鍒�鏉嗙洿寰�")
+    private String knifeDiameter;
+
+    @ApiModelProperty(value = "瀛斿緞")
+    private String boreDiameter;
+
+    @ApiModelProperty(value = "鎺ュ彛褰㈠紡")
+    private String connectorType;
+
+    @ApiModelProperty(value = "鎺ュ彛妲介暱瑙勬牸")
+    private String slotSpecification;
+
+    @ApiModelProperty(value = "閫傜敤鑼冨洿")
+    private String scopeOfApplication;
+
+    @ApiModelProperty(value = "鏈�鏂伴晽瀛旂洿寰�")
+    private String latestBoringDiameter;
+
+    @ApiModelProperty(value = "鏈�澶ч晽瀛旂洿寰�")
+    private String maxBoringDiameter;
+
+    @ApiModelProperty(value = "鍔犲伐鏂瑰紡")
+    private String processingmethod;
+
+    @ApiModelProperty(value = "鍒�澶存暟")
+    private String headsNumber;
+
+    @ApiModelProperty(value = "閫傞厤鍒�搴�")
+    private String adaptHolder;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java
new file mode 100644
index 0000000..48c3772
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java
@@ -0,0 +1,193 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ParaMillToolVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    @ApiModelProperty(value = "鍒嗙被id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyNum;
+
+    @ApiModelProperty(value = "鍒嗙被鍚嶇О")
+    private String classifyName;
+
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+
+    @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�")
+    private String signCode;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "澶栨枃鍚嶇О")
+    private String foreignLanguageName;
+
+    @ApiModelProperty(value = "鏍囨敞绾у埆")
+    private String standardLevel;
+
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private String standardCode;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+
+    @ApiModelProperty(value = "搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�")
+    private String positionCode;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private String applicationType;
+
+    @ApiModelProperty(value = "鍘傚")
+    private String supplierId;
+
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private String provinceCity;
+
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private String storageLocation;
+
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private String mainUnit;
+
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private String auxiliaryUnit;
+
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private String auxiliaryUnitFlag;
+
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+
+
+    @ApiModelProperty(value = "鍒�鍏风洿寰�")
+    private String diameter;
+
+    @ApiModelProperty(value = "鍒�灏栬R")
+    private String noseAngleR;
+
+    @ApiModelProperty(value = "榻挎暟")
+    private String numberOfTeeth;
+
+    @ApiModelProperty(value = "鍒囧墛鍒冮暱")
+    private String edgeLength;
+
+    @ApiModelProperty(value = "鍒�鍏锋�婚暱")
+    private String totalLength;
+
+    @ApiModelProperty(value = "鍒�鍏锋潗鏂�")
+    private String toolMaterial;
+
+    @ApiModelProperty(value = "闆朵欢鏉愭枡")
+    private String partMaterial;
+
+    @ApiModelProperty(value = "鏄惁娑傚眰")
+    private String paintcoatFlag;
+
+    @ApiModelProperty(value = "鍒�鍏峰瀷寮�")
+    private String toolPattern;
+
+    @ApiModelProperty(value = "瑁呭す瑙勬牸")
+    private String clampingSpecifications;
+
+    @ApiModelProperty(value = "鍐峰嵈鏂瑰紡")
+    private String coolingMethod;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠�")
+    private String technicalConditions;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠惰鏄�")
+    private String conditionsInfo;
+
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    @ApiModelProperty(value = "棰堝緞")
+    private String neckDiameter;
+
+    @ApiModelProperty(value = "鏌勯儴褰㈠紡")
+    private String handleForm;
+
+    @ApiModelProperty(value = "鍒�灏栬C")
+    private String noseAngleC;
+
+    @ApiModelProperty(value = "鍒�灏栬鍐匯")
+    private String angleInsideR;
+
+    @ApiModelProperty(value = "鏈�灏忕洿寰�")
+    private String smallDiameter;
+
+    @ApiModelProperty(value = "鍒�鍏疯搴�")
+    private String toolAngle;
+
+    @ApiModelProperty(value = "鏌勯暱")
+    private String handleLength;
+
+    @ApiModelProperty(value = "涓诲亸瑙扠")
+    private String mainAngleK;
+
+    @ApiModelProperty(value = "鏈�澶у垏娣�")
+    private String deepestDepth;
+
+    @ApiModelProperty(value = "閫傞厤鍒�鐗�")
+    private String adaptBlade;
+
+    @ApiModelProperty(value = "鏌勯褰㈠紡")
+    private String handleNeckForm;
+
+    @ApiModelProperty(value = "鏌勯闀垮害")
+    private String handleNeckLength;
+
+    @ApiModelProperty(value = "鎺ュ彛灏哄瑙勬牸")
+    private String sizeSpecifications;
+
+    @ApiModelProperty(value = "閾e垁澶村舰寮�")
+    private String millingHeadForm;
+
+    @ApiModelProperty(value = "鎮几闀垮害")
+    private String overhangingLength;
+
+    @ApiModelProperty(value = "鍒囧墛鍒冨舰寮�")
+    private String cuttingEdgeForm;
+
+    @ApiModelProperty(value = "鍐呭绾规暟")
+    private String numberPatterns;
+
+    @ApiModelProperty(value = "铻鸿窛")
+    private String pitch;
+
+    @ApiModelProperty(value = "鏈�杩戝姞宸ョ洿寰�")
+    private String recentlyDiameter;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java
new file mode 100644
index 0000000..119e077
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java
@@ -0,0 +1,162 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ParaThreadingToolVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    @ApiModelProperty(value = "鍒嗙被id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyNum;
+
+    @ApiModelProperty(value = "鍒嗙被鍚嶇О")
+    private String classifyName;
+
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+
+    @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�")
+    private String signCode;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "澶栨枃鍚嶇О")
+    private String foreignLanguageName;
+
+    @ApiModelProperty(value = "鏍囨敞绾у埆")
+    private String standardLevel;
+
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private String standardCode;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+
+    @ApiModelProperty(value = "搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�")
+    private String positionCode;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private String applicationType;
+
+    @ApiModelProperty(value = "鍘傚")
+    private String supplierId;
+
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private String provinceCity;
+
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private String storageLocation;
+
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private String mainUnit;
+
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private String auxiliaryUnit;
+
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private String auxiliaryUnitFlag;
+
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+
+    @ApiModelProperty(value = "铻虹汗浠e彿")
+    private String threadCode;
+
+    @ApiModelProperty(value = "铻鸿窛")
+    private String pitch;
+
+    @ApiModelProperty(value = "铻虹汗鏃嬪悜")
+    private String rotationDirection;
+
+    @ApiModelProperty(value = "铻虹汗鍏樊甯︿唬鍙�/绮惧害绛夌骇")
+    private String tolerancezoneLevel;
+
+    @ApiModelProperty(value = "鍒囧墛鍒冮暱")
+    private String edgeLength;
+
+    @ApiModelProperty(value = "鍒�鍏锋�婚暱")
+    private String totalLength;
+
+    @ApiModelProperty(value = "鍒�鍏锋潗鏂�")
+    private String toolMaterial;
+
+    @ApiModelProperty(value = "闆朵欢鏉愭枡")
+    private String partMaterial;
+
+    @ApiModelProperty(value = "鏄惁娑傚眰")
+    private String paintcoatFlag;
+
+    @ApiModelProperty(value = "澶栧瀷灏哄")
+    private String externalDimensions;
+
+    @ApiModelProperty(value = "鏌勯儴瑙勬牸")
+    private String handleSpecifications;
+
+    @ApiModelProperty(value = "闄勪欢鎶�鏈潯浠�")
+    private String technicalConditions;
+
+    @ApiModelProperty(value = "闄勪欢鎶�鏈潯浠惰鏄�")
+    private String conditionsInfo;
+
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    @ApiModelProperty(value = "鍒跺紡")
+    private String types;
+
+    @ApiModelProperty(value = "铻哄瓟绫诲瀷")
+    private String screwHoleType;
+
+    @ApiModelProperty(value = "鍐峰嵈鏂瑰紡")
+    private String coolingMethod;
+
+    @ApiModelProperty(value = "铻虹汗鏍囧噯")
+    private String threadStandard;
+
+    @ApiModelProperty(value = "鎺掑睉妲藉瀷")
+    private String fluteSoltType;
+
+    @ApiModelProperty(value = "铻虹汗绫诲瀷")
+    private String threadType;
+
+    @ApiModelProperty(value = "瀵煎悜灏哄")
+    private String guidingSize;
+
+    @ApiModelProperty(value = "杩炴帴瀛斿緞")
+    private String connectionAperture;
+
+    @ApiModelProperty(value = "杩炴帴閿Ы")
+    private String connectingKeyway;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java
new file mode 100644
index 0000000..d2698c4
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java
@@ -0,0 +1,200 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ParaTurningToolsVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    @ApiModelProperty(value = "鍒嗙被id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyNum;
+
+    @ApiModelProperty(value = "鍒嗙被鍚嶇О")
+    private String classifyName;
+
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+
+    @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�")
+    private String signCode;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "澶栨枃鍚嶇О")
+    private String foreignLanguageName;
+
+    @ApiModelProperty(value = "鏍囨敞绾у埆")
+    private String standardLevel;
+
+    @ApiModelProperty(value = "鏍囧噯鍙�")
+    private String standardCode;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+
+    @ApiModelProperty(value = "搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�")
+    private String positionCode;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤")
+    private String applicationType;
+
+    @ApiModelProperty(value = "鍘傚")
+    private String supplierId;
+
+    @ApiModelProperty(value = "浠撳簱鐪佷唤鍩庡競")
+    private String provinceCity;
+
+    @ApiModelProperty(value = "瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�")
+    private String storageLocation;
+
+    @ApiModelProperty(value = "璁¢噺涓诲崟浣�")
+    private String mainUnit;
+
+    @ApiModelProperty(value = "璁¢噺杈呭崟浣�")
+    private String auxiliaryUnit;
+
+    @ApiModelProperty(value = "鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�")
+    private String auxiliaryUnitFlag;
+
+    @ApiModelProperty(value = "鍗曚环")
+    private java.math.BigDecimal price;
+
+    @ApiModelProperty(value = "鏈�浣庡簱瀛�")
+    private java.math.BigDecimal lowerInventory;
+
+    @ApiModelProperty(value = "鏈�楂樺簱瀛�")
+    private java.math.BigDecimal highestInventory;
+
+    @ApiModelProperty(value = "鍒�澶磋鏍�")
+    private String headSpecifications;
+
+    @ApiModelProperty(value = "閰嶅鍒�鐗囧彿")
+    private String matchingNumber;
+
+    @ApiModelProperty(value = "涓诲亸瑙�")
+    private String leadAngle;
+
+    @ApiModelProperty(value = "鍒�鍏锋埅闈㈠昂瀵�")
+    private String crossSectionalSize;
+
+    @ApiModelProperty(value = "鍒�鍏锋�婚暱")
+    private String totalLength;
+
+    @ApiModelProperty(value = "鍒囧墛鏂瑰悜")
+    private String cuttingDirection;
+
+    @ApiModelProperty(value = "鍒�鍏锋潗鏂�")
+    private String toolMaterial;
+
+    @ApiModelProperty(value = "闆朵欢鏉愭枡")
+    private String partMaterial;
+
+    @ApiModelProperty(value = "鍒�鍏峰瀷寮�")
+    private String toolPattern;
+
+    @ApiModelProperty(value = "鏄惁娑傚眰")
+    private String paintcoatFlag;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠�")
+    private String technicalConditions;
+
+    @ApiModelProperty(value = "闄勫姞鎶�鏈潯浠惰鏄�")
+    private String conditionsInfo;
+
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    @ApiModelProperty(value = "鍒跺紡")
+    private String types;
+
+    @ApiModelProperty(value = "鍒�鐗囧昂瀵�")
+    private String knifeSize;
+
+    @ApiModelProperty(value = "鍐峰嵈鏂瑰紡")
+    private String coolingMethod;
+
+    @ApiModelProperty(value = "鍒�鏉嗙被鍒�")
+    private String holderCategory;
+
+    @ApiModelProperty(value = "鍒�鍏风洿寰�")
+    private String toolDiameter;
+
+    @ApiModelProperty(value = "鎺ュ彛绱у浐褰㈠紡")
+    private String fasteningForm;
+
+    @ApiModelProperty(value = "闀楁潌鐩村緞")
+    private String boringBarDiameter;
+
+    @ApiModelProperty(value = "鍒�鏉嗛暱搴�")
+    private String bladeLength;
+
+    @ApiModelProperty(value = "鍒�鐗囧舰鐘�")
+    private String bladeShape;
+
+    @ApiModelProperty(value = "鍒�鐗囧悗瑙�")
+    private String bladePosterior;
+
+    @ApiModelProperty(value = "鍒�鏉嗘柟鍚�")
+    private String barDirection;
+
+    @ApiModelProperty(value = "鍒�鏉嗛珮搴�")
+    private String bladeHeight;
+
+    @ApiModelProperty(value = "鍒�鏉嗗搴�")
+    private String bladeWide;
+
+    @ApiModelProperty(value = "鍒�鏉嗗昂瀵�")
+    private String bladeSize;
+
+    @ApiModelProperty(value = "鍒�澶瑰瀷鍙�")
+    private String knifeClipModel;
+
+    @ApiModelProperty(value = "鍒�鐗囪澶规柟寮�")
+    private String clampingMethod;
+
+    @ApiModelProperty(value = "鍒�鐗囨Ы瀹�")
+    private String slotWidth;
+
+    @ApiModelProperty(value = "鏈�灏忓垏鍏ョ洿寰�")
+    private String smallDiameter;
+
+    @ApiModelProperty(value = "鏈�澶у垏鍏ョ洿寰�")
+    private String maxDiameter;
+
+    @ApiModelProperty(value = "鏈�澶у垏妲芥繁搴�")
+    private String maxDepth;
+
+    @ApiModelProperty(value = "鍒�鏉嗗舰寮�")
+    private String knifeBarForm;
+
+    @ApiModelProperty(value = "鍒�鏉垮帤搴�")
+    private String bladeThickness;
+
+    @ApiModelProperty(value = "鏈�灏忓姞宸ョ洿寰�")
+    private String minDiameter;
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java
index 4fc5692..6a0ef0c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java
@@ -1,10 +1,13 @@
 package org.jeecg.modules.tms.mapper;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.tms.entity.BaseTools;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.tms.entity.vo.*;
 
 /**
  * @Description: tms_base_tools
@@ -14,4 +17,22 @@
  */
 public interface BaseToolsMapper extends BaseMapper<BaseTools> {
 
+    IPage<ParaHolesToolsVo> paraHolesToolsList(Page<ParaHolesToolsVo> page,
+                                         @Param(Constants.WRAPPER) Wrapper<ParaHolesToolsVo> queryWrapper);
+
+    IPage<ParaCommonToolVo> paraCommonToolList(Page<ParaCommonToolVo> page,
+                                               @Param(Constants.WRAPPER) Wrapper<ParaCommonToolVo> queryWrapper);
+
+    IPage<ParaThreadingToolVo> paraThreadingToolList(Page<ParaThreadingToolVo> page,
+                                                     @Param(Constants.WRAPPER) Wrapper<ParaThreadingToolVo> queryWrapper);
+
+    IPage<ParaMillToolVo> paraMillToolList(Page<ParaMillToolVo> page,
+                                           @Param(Constants.WRAPPER) Wrapper<ParaMillToolVo> queryWrapper);
+
+    IPage<ParaTurningToolsVo> paraTurningToolsList(Page<ParaTurningToolsVo> page,
+                                                   @Param(Constants.WRAPPER) Wrapper<ParaTurningToolsVo> queryWrapper);
+
+    IPage<ParaBladeVo> paraBladeList(Page<ParaBladeVo> page,
+                                               @Param(Constants.WRAPPER) Wrapper<ParaBladeVo> queryWrapper);
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsConfigPropertyMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsConfigPropertyMapper.java
new file mode 100644
index 0000000..b19b2fd
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsConfigPropertyMapper.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.ToolsConfigProperty;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: tms_tools_config_property
+ * @Author: jeecg-boot
+ * @Date:   2025-05-13
+ * @Version: V1.0
+ */
+public interface ToolsConfigPropertyMapper extends BaseMapper<ToolsConfigProperty> {
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
index ea1790f..6cd55f0 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
@@ -1,5 +1,346 @@
 <?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.BaseToolsMapper">
-
+    <select id="paraHolesToolsList" resultType="org.jeecg.modules.tms.entity.vo.ParaHolesToolsVo">
+        select
+            t.id,
+            t.classify_id classifyId,
+            t.tool_code toolCode,
+            t.sign_code signCode,
+            t.chinese_name chineseName,
+            t.foreign_language_name foreignLanguageName,
+            t.standard_level standardLevel,
+            t.standard_code standardCode,
+            t.tool_model toolModel,
+            t.parama_table_name paramaTableName,
+            t1.application_type applicationType,
+            t1.supplier_id supplierId,
+            t1.province_city provinceCity,
+            t1.position_code positionCode,
+            t1.storage_location storageLocation,
+            t1.main_unit mainUnit,
+            t1.auxiliary_unit auxiliaryUnit,
+            t1.auxiliary_unit_flag auxiliaryUnitFlag,
+            t1.price,
+            t1.lower_inventory lowerInventory,
+            t1.highest_inventory highestInventory,
+            t2.diameter,
+            t2.cone_angle coneAngle,
+            t2.edge_length edgeLength,
+            t2.total_length totalLength,
+            t2.tool_material toolMaterial,
+            t2.part_material partMaterial,
+            t2.paintcoat_flag paintcoatFlag,
+            t2.tool_pattern toolPattern,
+            t2.handle_specifications handleSpecifications,
+            t2.cooling_method coolingMethod,
+            t2.technical_conditions technicalConditions,
+            t2.conditions_info conditionsInfo,
+            t2.brand,
+            t2.types,
+            t2.tolerance_class toleranceClass,
+            t2.flute_form fluteForm,
+            t2.handle_form handleForm,
+            t2.blade_count bladeCount,
+            t2.small_diameter smallDiameter,
+            t2.chamfer_angle chamferAngle,
+            t2.fitter_part fitterPart,
+            t2.effective_length effectiveLength,
+            t2.drill_diameter_range drillDiameterRange,
+            t2.knife_diameter knifeDiameter,
+            t2.bore_diameter boreDiameter,
+            t2.connector_type connectorType,
+            t2.slot_specification slotSpecification,
+            t2.scope_of_application scopeOfApplication,
+            t2.latest_boring_diameter latestBoringDiameter,
+            t2.max_boring_diameter maxBoringDiameter,
+            t2.processingmethod processingmethod,
+            t2.heads_number headsNumber,
+            t2.adapt_holder adaptHolder,
+            t2.remark,
+            t3.classify_id classifyNum,
+            t3.type_name classifyName
+            from tms_base_tools t
+        left join tms_tools_config_property t1 on t1.tool_code = t.id
+        left join tms_para_hole_tools t2 on t2.tool_code = t.id
+        left join tms_tools_classify t3 on t3.id = t.classify_id
+        ${ew.customSqlSegment}
+    </select>
+    <select id="paraCommonToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaCommonToolVo">
+    select
+    t.id,
+    t.classify_id classifyId,
+    t.tool_code toolCode,
+    t.sign_code signCode,
+    t.chinese_name chineseName,
+    t.foreign_language_name foreignLanguageName,
+    t.standard_level standardLevel,
+    t.standard_code standardCode,
+    t.tool_model toolModel,
+    t.parama_table_name paramaTableName,
+    t1.application_type applicationType,
+    t1.supplier_id supplierId,
+    t1.province_city provinceCity,
+    t1.position_code positionCode,
+    t1.storage_location storageLocation,
+    t1.main_unit mainUnit,
+    t1.auxiliary_unit auxiliaryUnit,
+    t1.auxiliary_unit_flag auxiliaryUnitFlag,
+    t1.price,
+    t1.lower_inventory lowerInventory,
+    t1.highest_inventory highestInventory,
+    t3.classify_id classifyNum,
+    t3.type_name classifyName
+    from tms_base_tools t
+    left join tms_tools_config_property t1 on t1.tool_code = t.id
+    left join tms_tools_classify t3 on t3.id = t.classify_id
+    ${ew.customSqlSegment}
+</select>
+    <select id="paraThreadingToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaThreadingToolVo">
+        SELECT
+            t.id,
+            t.classify_id classifyId,
+            t.tool_code toolCode,
+            t.sign_code signCode,
+            t.chinese_name chineseName,
+            t.foreign_language_name foreignLanguageName,
+            t.standard_level standardLevel,
+            t.standard_code standardCode,
+            t.tool_model toolModel,
+            t.parama_table_name paramaTableName,
+            t1.application_type applicationType,
+            t1.supplier_id supplierId,
+            t1.province_city provinceCity,
+            t1.position_code positionCode,
+            t1.storage_location storageLocation,
+            t1.main_unit mainUnit,
+            t1.auxiliary_unit auxiliaryUnit,
+            t1.auxiliary_unit_flag auxiliaryUnitFlag,
+            t1.price,
+            t1.lower_inventory lowerInventory,
+            t1.highest_inventory highestInventory,
+            t1.remark,
+            t2.thread_code threadCode,
+            t2.pitch,
+            t2.rotation_direction rotationDirection,
+            t2.tolerancezone_level tolerancezoneLevel,
+            t2.edge_length edgeLength,
+            t2.total_length totalLength,
+            t2.tool_material toolMaterial,
+            t2.part_material partMaterial,
+            t2.paintcoat_flag paintcoatFlag,
+            t2.external_dimensions externalDimensions,
+            t2.handle_specifications handleSpecifications,
+            t2.technical_conditions technicalConditions,
+            t2.conditions_info conditionsInfo,
+            t2.brand,
+            t2.types,
+            t2.screw_hole_type screwHoleType,
+            t2.cooling_method coolingMethod,
+            t2.thread_standard threadStandard,
+            t2.flute_solt_type fluteSoltType,
+            t2.guiding_size guidingSize,
+            t2.thread_type threadType,
+            t2.connection_aperture connectionAperture,
+            t2.connecting_keyway connectingKeyway,
+            t3.classify_id classifyNum,
+            t3.type_name classifyName
+        FROM
+            tms_base_tools t
+                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
+                LEFT JOIN tms_para_threading_tool t2 ON t2.tool_code = t.id
+                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
+            ${ew.customSqlSegment}
+    </select>
+    <select id="paraMillToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaMillToolVo">
+        SELECT
+            t.id,
+            t.classify_id classifyId,
+            t.tool_code toolCode,
+            t.sign_code signCode,
+            t.chinese_name chineseName,
+            t.foreign_language_name foreignLanguageName,
+            t.standard_level standardLevel,
+            t.standard_code standardCode,
+            t.tool_model toolModel,
+            t.parama_table_name paramaTableName,
+            t1.application_type applicationType,
+            t1.supplier_id supplierId,
+            t1.province_city provinceCity,
+            t1.position_code positionCode,
+            t1.storage_location storageLocation,
+            t1.main_unit mainUnit,
+            t1.auxiliary_unit auxiliaryUnit,
+            t1.auxiliary_unit_flag auxiliaryUnitFlag,
+            t1.price,
+            t1.lower_inventory lowerInventory,
+            t1.highest_inventory highestInventory,
+            t2.diameter,
+            t2.nose_angle_r noseAngleR,
+            t2.number_of_teeth numberOfTeeth,
+            t2.edge_length edgeLength,
+            t2.total_length totalLength,
+            t2.tool_material toolMaterial,
+            t2.part_material partMaterial,
+            t2.paintcoat_flag paintcoatFlag,
+            t2.tool_pattern toolPattern,
+            t2.clamping_specifications clampingSpecifications,
+            t2.cooling_method coolingMethod,
+            t2.technical_conditions technicalConditions,
+            t2.conditions_info conditionsInfo,
+            t2.brand,
+            t2.neck_diameter neckDiameter,
+            t2.handle_form handleForm,
+            t2.nose_angle_c noseAngleC,
+            t2.angle_inside_r angleInsideR,
+            t2.small_diameter smallDiameter,
+            t2.tool_angle toolAngle,
+            t2.handle_length handleLength,
+            t2.main_angle_k mainAngleK,
+            t2.deepest_depth deepestDepth,
+            t2.adapt_blade adaptBlade,
+            t2.handle_neck_form handleNeckForm,
+            t2.handle_neck_length handleNeckLength,
+            t2.size_specifications sizeSpecifications,
+            t2.milling_head_form millingHeadForm,
+            t2.overhanging_length overhangingLength,
+            t2.cutting_edge_form cuttingEdgeForm,
+            t2.number_patterns numberPatterns,
+            t2.pitch,
+            t2.recently_diameter recentlyDiameter,
+            t3.classify_id classifyNum,
+            t3.type_name classifyName
+        FROM
+            tms_base_tools t
+                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
+                LEFT JOIN tms_para_mill_tool t2 ON t2.tool_code = t.id
+                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
+            ${ew.customSqlSegment}
+    </select>
+    <select id="paraTurningToolsList" resultType="org.jeecg.modules.tms.entity.vo.ParaTurningToolsVo">
+        SELECT
+            t.id,
+            t.classify_id classifyId,
+            t.tool_code toolCode,
+            t.sign_code signCode,
+            t.chinese_name chineseName,
+            t.foreign_language_name foreignLanguageName,
+            t.standard_level standardLevel,
+            t.standard_code standardCode,
+            t.tool_model toolModel,
+            t.parama_table_name paramaTableName,
+            t1.application_type applicationType,
+            t1.supplier_id supplierId,
+            t1.province_city provinceCity,
+            t1.position_code positionCode,
+            t1.storage_location storageLocation,
+            t1.main_unit mainUnit,
+            t1.auxiliary_unit auxiliaryUnit,
+            t1.auxiliary_unit_flag auxiliaryUnitFlag,
+            t1.price,
+            t1.lower_inventory lowerInventory,
+            t1.highest_inventory highestInventory,
+            t2.head_specifications headSpecifications,
+            t2.matching_number matchingNumber,
+            t2.lead_angle leadAngle,
+            t2.cross_sectional_size crossSectionalSize,
+            t2.total_length totalLength,
+            t2.cutting_direction cuttingDirection,
+            t2.tool_material toolMaterial,
+            t2.part_material partMaterial,
+            t2.tool_pattern toolPattern,
+            t2.paintcoat_flag paintcoatFlag,
+            t2.technical_conditions technicalConditions,
+            t2.conditions_info conditionsInfo,
+            t2.brand,
+            t2.conditions_info,
+            t2.types,
+            t2.knife_size knifeSize,
+            t2.cooling_method coolingMethod,
+            t2.holder_category holderCategory,
+            t2.tool_diameter toolDiameter,
+            t2.fastening_form fasteningForm,
+            t2.boring_bar_diameter boringBarDiameter,
+            t2.blade_length bladeLength,
+            t2.blade_shape bladeShape,
+            t2.blade_posterior bladePosterior,
+            t2.bar_direction barDirection,
+            t2.blade_height bladeHeight,
+            t2.blade_wide bladeWide,
+            t2.blade_size bladeSize,
+            t2.knife_clip_model knifeClipModel,
+            t2.clamping_method clampingMethod,
+            t2.slot_width slotWidth,
+            t2.small_diameter smallDiameter,
+            t2.max_diameter maxDiameter,
+            t2.max_depth maxDepth,
+            t2.knife_bar_form knifeBarForm,
+            t2.blade_thickness bladeThickness,
+            t2.min_diameter minDiameter,
+            t3.classify_id classifyNum,
+            t3.type_name classifyName
+        FROM
+            tms_base_tools t
+                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
+                LEFT JOIN tms_para_turning_tools t2 ON t2.tool_code = t.id
+                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
+            ${ew.customSqlSegment}
+    </select>
+    <select id="paraBladeList" resultType="org.jeecg.modules.tms.entity.vo.ParaBladeVo">
+        SELECT
+            t.id,
+            t.classify_id classifyId,
+            t.tool_code toolCode,
+            t.sign_code signCode,
+            t.chinese_name chineseName,
+            t.foreign_language_name foreignLanguageName,
+            t.standard_level standardLevel,
+            t.standard_code standardCode,
+            t.tool_model toolModel,
+            t.parama_table_name paramaTableName,
+            t1.application_type applicationType,
+            t1.supplier_id supplierId,
+            t1.province_city provinceCity,
+            t1.position_code positionCode,
+            t1.storage_location storageLocation,
+            t1.main_unit mainUnit,
+            t1.auxiliary_unit auxiliaryUnit,
+            t1.auxiliary_unit_flag auxiliaryUnitFlag,
+            t1.price,
+            t1.lower_inventory lowerInventory,
+            t1.highest_inventory highestInventory,
+            t1.remark,
+            t2.blade_shape bladeShape,
+            t2.blade_length bladeLength,
+            t2.cutting_edge_count cuttingEdgeCount,
+            t2.blade_thickness bladeThickness,
+            t2.clamping_type clampingType,
+            t2.nose_angle_r noseAngleR,
+            t2.tool_material toolMaterial,
+            t2.part_material partMaterial,
+            t2.paintcoat_flag paintcoatFlag,
+            t2.technical_conditions technicalConditions,
+            t2.conditions_info conditionsInfo,
+            t2.brand,
+            t2.types,
+            t2.coating_material coatingMaterial,
+            t2.processing_classify processingClassify,
+            t2.blade_posterior bladePosterior,
+            t2.cutting_direction cuttingDirection,
+            t2.blade_wide bladeWide,
+            t2.blade_size bladeSize,
+            t2.in_out_thread inOutThread,
+            t2.thread_standard threadStandard,
+            t2.dental_angle dentalAngle,
+            t2.pitch,
+            t2.min_internal_thread minInternalThread,
+            t3.classify_id classifyNum,
+            t3.type_name classifyName
+        FROM
+            tms_base_tools t
+                LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id
+                LEFT JOIN tms_para_blade t2 ON t2.tool_code = t.id
+                LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml
index bf32f84..f01111a 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml
@@ -11,6 +11,7 @@
             p.classify_id parentNum,
             p.type_name parentName,
             t.seq,
+            t.encoding_type encodingType,
             t.leaf_flag leafFlag,
             t.para_type_flag paraTypeFlag,
             a.paraTypeFlagName paraTypeFlagName,
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsConfigPropertyMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsConfigPropertyMapper.xml
new file mode 100644
index 0000000..2702bc5
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsConfigPropertyMapper.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.ToolsConfigPropertyMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java
index 3eb5879..93291c0 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java
@@ -1,7 +1,13 @@
 package org.jeecg.modules.tms.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.tms.entity.BaseTools;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.tms.entity.ParaBlade;
+import org.jeecg.modules.tms.entity.vo.*;
+
+import java.util.Map;
 
 /**
  * @Description: tms_base_tools
@@ -11,4 +17,15 @@
  */
 public interface IBaseToolsService extends IService<BaseTools> {
 
+    IPage<ParaHolesToolsVo> paraHolesToolsList(Page<ParaHolesToolsVo> page, Map<String, String[]> parameterMap);
+
+    IPage<ParaCommonToolVo> paraCommonToolList(Page<ParaCommonToolVo> page, Map<String, String[]> parameterMap);
+
+    IPage<ParaThreadingToolVo> paraThreadingToolList(Page<ParaThreadingToolVo> page, Map<String, String[]> parameterMap);
+
+    IPage<ParaMillToolVo> paraMillToolList(Page<ParaMillToolVo> page, Map<String, String[]> parameterMap);
+
+    IPage<ParaTurningToolsVo> paraTurningToolsList(Page<ParaTurningToolsVo> page, Map<String, String[]> parameterMap);
+
+    IPage<ParaBladeVo> paraBladeList(Page<ParaBladeVo> page, Map<String, String[]> parameterMap);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsConfigPropertyService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsConfigPropertyService.java
new file mode 100644
index 0000000..7786d48
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsConfigPropertyService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.ToolsConfigProperty;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: tms_tools_config_property
+ * @Author: jeecg-boot
+ * @Date:   2025-05-13
+ * @Version: V1.0
+ */
+public interface IToolsConfigPropertyService extends IService<ToolsConfigProperty> {
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java
index 2aa1946..53466da 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java
@@ -1,11 +1,19 @@
 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.BaseTools;
+import org.jeecg.modules.tms.entity.ParaCommonTool;
+import org.jeecg.modules.tms.entity.vo.*;
 import org.jeecg.modules.tms.mapper.BaseToolsMapper;
 import org.jeecg.modules.tms.service.IBaseToolsService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.Map;
 
 /**
  * @Description: tms_base_tools
@@ -16,4 +24,117 @@
 @Service
 public class BaseToolsServiceImpl extends ServiceImpl<BaseToolsMapper, BaseTools> implements IBaseToolsService {
 
+    @Override
+    public IPage<ParaHolesToolsVo> paraHolesToolsList(Page<ParaHolesToolsVo> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ParaHolesToolsVo> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.eq("t.classify_id", classifyIds[0]);
+        }
+        String[] toolCodes = parameterMap.get("toolCode");
+        if (toolCodes != null && toolCodes.length > 0) {
+            queryWrapper.like("t.tool_code", toolCodes[0]);
+        }
+        String[] toolModels = parameterMap.get("toolModel");
+        if (toolModels != null && toolModels.length > 0) {
+            queryWrapper.like("t.tool_model", toolModels[0]);
+        }
+        queryWrapper.orderByDesc("t.create_time");
+        return this.baseMapper.paraHolesToolsList(page, queryWrapper);
+    }
+
+    @Override
+    public IPage<ParaCommonToolVo> paraCommonToolList(Page<ParaCommonToolVo> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ParaCommonToolVo> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.eq("t.classify_id", classifyIds[0]);
+        }
+        String[] toolCodes = parameterMap.get("toolCode");
+        if (toolCodes != null && toolCodes.length > 0) {
+            queryWrapper.like("t.tool_code", toolCodes[0]);
+        }
+        String[] toolModels = parameterMap.get("toolModel");
+        if (toolModels != null && toolModels.length > 0) {
+            queryWrapper.like("t.tool_model", toolModels[0]);
+        }
+        queryWrapper.orderByDesc("t.create_time");
+        return this.baseMapper.paraCommonToolList(page, queryWrapper);
+    }
+
+    @Override
+    public IPage<ParaThreadingToolVo> paraThreadingToolList(Page<ParaThreadingToolVo> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ParaThreadingToolVo> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.eq("t.classify_id", classifyIds[0]);
+        }
+        String[] toolCodes = parameterMap.get("toolCode");
+        if (toolCodes != null && toolCodes.length > 0) {
+            queryWrapper.like("t.tool_code", toolCodes[0]);
+        }
+        String[] toolModels = parameterMap.get("toolModel");
+        if (toolModels != null && toolModels.length > 0) {
+            queryWrapper.like("t.tool_model", toolModels[0]);
+        }
+        queryWrapper.orderByDesc("t.create_time");
+        return this.baseMapper.paraThreadingToolList(page, queryWrapper);
+    }
+
+    @Override
+    public IPage<ParaMillToolVo> paraMillToolList(Page<ParaMillToolVo> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ParaMillToolVo> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.eq("t.classify_id", classifyIds[0]);
+        }
+        String[] toolCodes = parameterMap.get("toolCode");
+        if (toolCodes != null && toolCodes.length > 0) {
+            queryWrapper.like("t.tool_code", toolCodes[0]);
+        }
+        String[] toolModels = parameterMap.get("toolModel");
+        if (toolModels != null && toolModels.length > 0) {
+            queryWrapper.like("t.tool_model", toolModels[0]);
+        }
+        queryWrapper.orderByDesc("t.create_time");
+        return this.baseMapper.paraMillToolList(page, queryWrapper);
+    }
+
+    @Override
+    public IPage<ParaTurningToolsVo> paraTurningToolsList(Page<ParaTurningToolsVo> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ParaTurningToolsVo> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.eq("t.classify_id", classifyIds[0]);
+        }
+        String[] toolCodes = parameterMap.get("toolCode");
+        if (toolCodes != null && toolCodes.length > 0) {
+            queryWrapper.like("t.tool_code", toolCodes[0]);
+        }
+        String[] toolModels = parameterMap.get("toolModel");
+        if (toolModels != null && toolModels.length > 0) {
+            queryWrapper.like("t.tool_model", toolModels[0]);
+        }
+        queryWrapper.orderByDesc("t.create_time");
+        return this.baseMapper.paraTurningToolsList(page, queryWrapper);
+    }
+
+    @Override
+    public IPage<ParaBladeVo> paraBladeList(Page<ParaBladeVo> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ParaBladeVo> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.eq("t.classify_id", classifyIds[0]);
+        }
+        String[] toolCodes = parameterMap.get("toolCode");
+        if (toolCodes != null && toolCodes.length > 0) {
+            queryWrapper.like("t.tool_code", toolCodes[0]);
+        }
+        String[] toolModels = parameterMap.get("toolModel");
+        if (toolModels != null && toolModels.length > 0) {
+            queryWrapper.like("t.tool_model", toolModels[0]);
+        }
+        queryWrapper.orderByDesc("t.create_time");
+        return this.baseMapper.paraBladeList(page, queryWrapper);
+    }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
index 26f4bef..8cabb60 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
@@ -13,16 +13,20 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.ImportExcelUtil;
 import org.jeecg.common.util.StrUtils;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.system.mapper.SysDictItemMapper;
+import org.jeecg.modules.system.mapper.SysDictMapper;
 import org.jeecg.modules.tms.entity.ToolsClassify;
 import org.jeecg.modules.tms.mapper.ToolsClassifyMapper;
 import org.jeecg.modules.tms.service.IToolsClassifyService;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -49,6 +53,12 @@
 
     @Value("${jeecg.path.upload}")
     private String upLoadPath;
+
+    @Autowired
+    private SysDictMapper sysDictMapper;
+
+    @Autowired
+    private SysDictItemMapper sysDictItemMapper;
     @Override
     public IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page, Map<String, String[]> parameterMap) {
         QueryWrapper<ToolsClassify> queryWrapper = Wrappers.query();
@@ -188,6 +198,7 @@
             // 鑾峰彇绗竴涓伐浣滆〃
             Sheet sheet = workbook.getSheetAt(0);
             for(Row row : sheet) {
+                int rowNum = row.getRowNum()+1;
                 ToolsClassify newToolsClassify = new ToolsClassify();
                 if (row.getRowNum() == 0)
                     continue;
@@ -197,6 +208,8 @@
                 String name = nameCell.getStringCellValue();
                 Cell parentNumCell = row.getCell(2);
                 String parentNum = parentNumCell.getStringCellValue();
+                Cell seqCell = row.getCell(3);
+                String seq = seqCell.getStringCellValue();
                 Cell leafFlagCell = row.getCell(4);
                 String leafFlag = leafFlagCell.getStringCellValue();
                 Cell paraTypeFlagCell = row.getCell(5);
@@ -207,47 +220,87 @@
                 }else if("鍚�".equals(leafFlag)){
                     leafFlag = "2";
                 }else {
-                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鏄惁涓哄彾瀛愯妭鐐瑰~鍐欓敊璇紝璇峰~鍐欌�樻槸鈥欐垨鈥欏惁鈥�");
+                    errorMessage.add("绗�"+rowNum+"琛岋紝鏄惁涓哄彾瀛愯妭鐐瑰~鍐欓敊璇紝璇峰~鍐欌�樻槸鈥欐垨鈥欏惁鈥�");
                     errorLines++;
                     continue;
                 }
                 if(StringUtils.isBlank(num)){
-                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被缂栫爜涓嶈兘涓虹┖");
+                    errorMessage.add("绗�"+rowNum+"琛岋紝鍒嗙被缂栫爜涓嶈兘涓虹┖");
                     errorLines++;
                     continue;
                 }
                 if(StringUtils.isBlank(name)){
-                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被鍚嶇О涓嶈兘涓虹┖");
+                    errorMessage.add("绗�"+rowNum+"琛岋紝鍒嗙被鍚嶇О涓嶈兘涓虹┖");
                     errorLines++;
                     continue;
                     //鍒ゆ柇鏄惁鏈変笂绾у垎绫�
                 }
+                //鍒ゆ柇鍙傛暟妯℃澘鏄惁瀛樺湪
+                if(StringUtils.isNotBlank(paraTypeFlag)){
+                    List<DictModel> dictList = sysDictMapper.queryDictItemValueByCodeAndText("tool_para_type",paraTypeFlag);
+                    if(CollectionUtils.isNotEmpty(dictList)){
+                        paraTypeFlag = dictList.get(0).getValue();
+                    }else {
+                        errorMessage.add("绗�"+rowNum+"琛岋紝鍙傛暟妯℃澘涓嶅瓨鍦�");
+                        errorLines++;
+                        continue;
+                    }
+                }
+
                 if(StringUtils.isNotBlank(parentNum)){
                     ToolsClassify toolsClassify = this.lambdaQuery()
                             .eq(ToolsClassify::getClassifyId,parentNum)
                             .eq(ToolsClassify::getLeafFlag,"2").one();
                     if(toolsClassify == null){
-                        errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被缂栫爜涓�"+num+"鐨勬暟鎹殑涓婄骇鍒嗙被缂栧彿涓嶅瓨鍦ㄦ垨涓哄彾瀛愯妭鐐�");
+                        errorMessage.add("绗�"+rowNum+"琛岋紝鍒嗙被缂栫爜涓�"+num+"鐨勬暟鎹殑涓婄骇鍒嗙被缂栧彿涓嶅瓨鍦ㄦ垨涓哄彾瀛愯妭鐐�");
                         errorLines++;
                     }else {
-                        newToolsClassify.setClassifyId(num)
-                                .setTypeName(name)
-                                .setStatus("1")
-                                .setLeafFlag(leafFlag)
-                                .setParentId(toolsClassify.getId())
-                                .setParaTypeFlag(paraTypeFlag);
-                        this.save(newToolsClassify);
+                        //鍒ゆ柇缂栫爜鏄惁閲嶅锛岄噸澶嶇殑杩涜鏇存柊
+                        ToolsClassify tools = this.lambdaQuery().eq(ToolsClassify::getClassifyId,num).one();
+                        if(tools != null){
+                            tools.setClassifyId(num)
+                                    .setTypeName(name)
+                                    .setStatus("1")
+                                    .setLeafFlag(leafFlag)
+                                    .setSeq(seq)
+                                    .setParentId(toolsClassify.getId())
+                                    .setParaTypeFlag(paraTypeFlag);
+                            this.updateById(tools);
+                        }else{
+                            newToolsClassify.setClassifyId(num)
+                                    .setTypeName(name)
+                                    .setStatus("1")
+                                    .setLeafFlag(leafFlag)
+                                    .setSeq(seq)
+                                    .setParentId(toolsClassify.getId())
+                                    .setParaTypeFlag(paraTypeFlag);
+                            this.save(newToolsClassify);
+                        }
                         successLines++;
                     }
                     //濡傛灉娌″~鍐欎笂绾у垎绫荤紪鍙凤紝鍒欐柊澧炲埌鏍硅妭鐐�
                 }else {
-                    newToolsClassify.setClassifyId(num)
-                            .setTypeName(name)
-                            .setStatus("1")
-                            .setParentId("-1")
-                            .setLeafFlag(leafFlag)
-                            .setParaTypeFlag(paraTypeFlag);
-                    this.save(newToolsClassify);
+                    //鍒ゆ柇缂栫爜鏄惁閲嶅锛岄噸澶嶇殑杩涜鏇存柊
+                    ToolsClassify tools = this.lambdaQuery().eq(ToolsClassify::getClassifyId,num).one();
+                    if(tools != null){
+                        tools.setClassifyId(num)
+                                .setTypeName(name)
+                                .setStatus("1")
+                                .setLeafFlag(leafFlag)
+                                .setSeq(seq)
+                                .setParentId("-1")
+                                .setParaTypeFlag(paraTypeFlag);
+                        this.updateById(tools);
+                    }else {
+                        newToolsClassify.setClassifyId(num)
+                                .setTypeName(name)
+                                .setStatus("1")
+                                .setParentId("-1")
+                                .setSeq(seq)
+                                .setLeafFlag(leafFlag)
+                                .setParaTypeFlag(paraTypeFlag);
+                        this.save(newToolsClassify);
+                    }
                     successLines++;
                 }
             }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsConfigPropertyServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsConfigPropertyServiceImpl.java
new file mode 100644
index 0000000..f796567
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsConfigPropertyServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.ToolsConfigProperty;
+import org.jeecg.modules.tms.mapper.ToolsConfigPropertyMapper;
+import org.jeecg.modules.tms.service.IToolsConfigPropertyService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: tms_tools_config_property
+ * @Author: jeecg-boot
+ * @Date:   2025-05-13
+ * @Version: V1.0
+ */
+@Service
+public class ToolsConfigPropertyServiceImpl extends ServiceImpl<ToolsConfigPropertyMapper, ToolsConfigProperty> implements IToolsConfigPropertyService {
+
+}

--
Gitblit v1.9.3