From 621f92b7cbebff393fcdf58736c30349d864112e Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期五, 09 五月 2025 18:15:34 +0800
Subject: [PATCH] 工具分类导出、工具信息等

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java     |   19 +
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java    |   11 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml         |   25 ++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/BaseTools.java                      |  103 ++++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java            |    2 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java         |    9 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java                |   17 +
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml             |    5 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java             |   14 +
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java |  140 +++++++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java        |  177 +++++++++++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java                  |   51 ++--
 12 files changed, 542 insertions(+), 31 deletions(-)

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
new file mode 100644
index 0000000..1ab22a0
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java
@@ -0,0 +1,177 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.BaseTools;
+import org.jeecg.modules.tms.service.IBaseToolsService;
+
+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_base_tools
+ * @Author: jeecg-boot
+ * @Date:   2025-05-09
+ * @Version: V1.0
+ */
+@Api(tags="tms_base_tools")
+@RestController
+@RequestMapping("/tms/baseTools")
+@Slf4j
+public class BaseToolsController extends JeecgController<BaseTools, IBaseToolsService> {
+	@Autowired
+	private IBaseToolsService baseToolsService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @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 = "/list")
+	public Result<IPage<BaseTools>> queryPageList(BaseTools baseTools,
+								   @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
+	 * @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);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param baseTools
+	 * @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);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "tms_base_tools-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="tms_base_tools-閫氳繃id鍒犻櫎", notes="tms_base_tools-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_base_tools:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		baseToolsService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "tms_base_tools-鎵归噺鍒犻櫎")
+	@ApiOperation(value="tms_base_tools-鎵归噺鍒犻櫎", notes="tms_base_tools-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_base_tools:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.baseToolsService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "tms_base_tools-閫氳繃id鏌ヨ")
+	@ApiOperation(value="tms_base_tools-閫氳繃id鏌ヨ", notes="tms_base_tools-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<BaseTools> queryById(@RequestParam(name="id",required=true) String id) {
+		BaseTools baseTools = baseToolsService.getById(id);
+		if(baseTools==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(baseTools);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param baseTools
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_base_tools:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BaseTools baseTools) {
+        return super.exportXls(request, baseTools, BaseTools.class, "tms_base_tools");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_base_tools:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BaseTools.class);
+    }
+
+}
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 95f013e..f293679 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
@@ -163,23 +163,24 @@
     //@RequiresPermissions("org.jeecg.modules:tms_tools_classify:exportXls")
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, ToolsClassify toolsClassify) {
-        return super.exportXls(request, toolsClassify, ToolsClassify.class, "tms_tools_classify");
+		return this.toolsClassifyService.toolClassifyExport(request, toolsClassify, ToolsClassify.class, "宸ュ叿鍒嗙被");
+        //return super.exportXls(request, toolsClassify, ToolsClassify.class, "tms_tools_classify");
     }
 
     /**
       * 閫氳繃excel瀵煎叆鏁版嵁
     *
-    * @param request
-    * @param response
     * @return
     */
     //@RequiresPermissions("tms_tools_classify:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, ToolsClassify.class);
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException{
+		return this.toolsClassifyService.toolClassifyImportExcel(request,response);
     }
 
 
+
+
 	 @AutoLog(value = "宸ュ叿鍒嗙被鏍�")
 	 @ApiOperation(value = "宸ュ叿鍒嗙被鏍�", notes = "宸ュ叿鍒嗙被鏍�")
 	 @GetMapping("/loadTree")
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/BaseTools.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/BaseTools.java
new file mode 100644
index 0000000..bae6cf8
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/BaseTools.java
@@ -0,0 +1,103 @@
+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_base_tools
+ * @Author: jeecg-boot
+ * @Date:   2025-05-09
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_base_tools")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_base_tools瀵硅薄", description="tms_base_tools")
+public class BaseTools implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭id")
+    private String id;
+	/**鍒嗙被缂栧彿*/
+	@Excel(name = "鍒嗙被缂栧彿", width = 15)
+    @ApiModelProperty(value = "鍒嗙被缂栧彿")
+    private String classifyId;
+	/**宸ュ叿缂栫爜*/
+	@Excel(name = "宸ュ叿缂栫爜", width = 15)
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+	/**宸ュ叿缂栧彿*/
+	@Excel(name = "宸ュ叿缂栧彿", width = 15)
+    @ApiModelProperty(value = "宸ュ叿缂栧彿")
+    private String toolId;
+	/**鎬诲簱瀛�*/
+	@Excel(name = "鎬诲簱瀛�", width = 15)
+    @ApiModelProperty(value = "鎬诲簱瀛�")
+    private BigDecimal totalCount;
+	/**鍙敤搴撳瓨*/
+	@Excel(name = "鍙敤搴撳瓨", width = 15)
+    @ApiModelProperty(value = "鍙敤搴撳瓨")
+    private BigDecimal availableCount;
+	/**鎬绘姤鎹熸暟閲�*/
+	@Excel(name = "鎬绘姤鎹熸暟閲�", width = 15)
+    @ApiModelProperty(value = "鎬绘姤鎹熸暟閲�")
+    private BigDecimal lossCount;
+	/**鍦ㄤ慨鏁伴噺*/
+	@Excel(name = "鍦ㄤ慨鏁伴噺", width = 15)
+    @ApiModelProperty(value = "鍦ㄤ慨鏁伴噺")
+    private BigDecimal repairCount;
+	/**鍦ㄦ*/
+	@Excel(name = "鍦ㄦ", width = 15)
+    @ApiModelProperty(value = "鍦ㄦ")
+    private BigDecimal detectionCount;
+	/**鍦ㄥ��*/
+	@Excel(name = "鍦ㄥ��", width = 15)
+    @ApiModelProperty(value = "鍦ㄥ��")
+    private BigDecimal lendCount;
+	/**鍦ㄧ(*/
+	@Excel(name = "鍦ㄧ(", width = 15)
+    @ApiModelProperty(value = "鍦ㄧ(")
+    private BigDecimal sharpeningCount;
+	/**鍙傛暟琛ㄥ悕绉�*/
+	@Excel(name = "鍙傛暟琛ㄥ悕绉�", width = 15)
+    @ApiModelProperty(value = "鍙傛暟琛ㄥ悕绉�")
+    private String paramaTableName;
+	/**绉熸埛鍙�*/
+	@Excel(name = "绉熸埛鍙�", width = 15)
+    @ApiModelProperty(value = "绉熸埛鍙�")
+    private String tenantId;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java
index 22e7353..fc461d0 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java
@@ -31,45 +31,63 @@
 public class ToolsClassify implements Serializable {
     private static final long serialVersionUID = 1L;
 
+
 	/**涓婚敭id*/
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭id")
     private String id;
+    /**鍒嗙被缂栫爜*/
+    @Excel(name = "鍒嗙被缂栫爜", width = 15)
+    @ApiModelProperty(value = "鍒嗙被缂栫爜")
+    private String classifyId;
 	/**绫诲瀷鍚嶇О*/
-	@Excel(name = "绫诲瀷鍚嶇О", width = 15)
+	@Excel(name = "鍒嗙被鍚嶇О", width = 15)
     @ApiModelProperty(value = "绫诲瀷鍚嶇О")
     private String typeName;
+
 	/**鐖剁被鍨媔d*/
-	@Excel(name = "鐖剁被鍨媔d", width = 15)
+	//@Excel(name = "鐖剁被鍨媔d", width = 15)
     @ApiModelProperty(value = "鐖剁被鍨媔d")
     private String parentId;
+
+    @Excel(name = "涓婄骇鍒嗙被缂栧彿", width = 15)
+    @TableField(exist = false)
+    private String parentNum;
+    @Excel(name = "涓婄骇鍒嗙被鍚嶇О", width = 15)
+    @TableField(exist = false)
+    private String parentName;
 	/**鏄剧ず搴忓彿*/
-	@Excel(name = "鏄剧ず搴忓彿", width = 15)
+	//@Excel(name = "鏄剧ず搴忓彿", width = 15)
     @ApiModelProperty(value = "鏄剧ず搴忓彿")
     private String seq;
 	/**鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�*/
-	@Excel(name = "鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�", width = 15)
+	//@Excel(name = "鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�", width = 15)
     @ApiModelProperty(value = "鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�")
     private String status;
     /**鏄惁鏄彾瀛愯妭鐐�*/
-    @Excel(name = "鏄惁鏄彾瀛愯妭鐐�", width = 15)
+    //@Excel(name = "鏄惁鏄彾瀛愯妭鐐�", width = 15)
     @ApiModelProperty(value = "鏄惁鏄彾瀛愯妭鐐�")
     private String leafFlag;
 	/**灞傜骇*/
-	@Excel(name = "灞傜骇", width = 15)
+	//@Excel(name = "灞傜骇", width = 15)
     @ApiModelProperty(value = "灞傜骇")
     private String rank;
 	/**瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�*/
-	@Excel(name = "瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�", width = 15)
+	//@Excel(name = "瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�", width = 15)
     @ApiModelProperty(value = "瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�")
     @Dict(dicCode = "tool_para_type")
     private String paraTypeFlag;
-	/**澶囨敞*/
+
+    @Excel(name = "鍙傛暟妯℃澘", width = 15)
+    @TableField(exist = false)
+    private String paraTypeFlagName;
+
+    /**澶囨敞*/
 	@Excel(name = "澶囨敞", width = 15)
     @ApiModelProperty(value = "澶囨敞")
     private String remark;
 	/**绉熸埛鍙�*/
-	@Excel(name = "绉熸埛鍙�", width = 15)
+	//@Excel(name = "绉熸埛鍙�", width = 15)
     @ApiModelProperty(value = "绉熸埛鍙�")
     private String tenantId;
 	/**鍒涘缓浜�*/
@@ -83,25 +101,14 @@
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
 	/**鏇存柊浜�*/
-	@Excel(name = "鏇存柊浜�", width = 15)
+	//@Excel(name = "鏇存柊浜�", width = 15)
     @ApiModelProperty(value = "鏇存柊浜�")
     private String updateBy;
 	/**鏇存柊鏃堕棿*/
-	@Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	//@Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     private Date updateTime;
-	/**鍒嗙被缂栫爜*/
-	@Excel(name = "鍒嗙被缂栫爜", width = 15)
-    @ApiModelProperty(value = "鍒嗙被缂栫爜")
-    private String classifyId;
-
-    @TableField(exist = false)
-    private String parentNum;
-    @TableField(exist = false)
-    private String parentName;
-    @TableField(exist = false)
-    private String paraTypeFlagName;
 
 }
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
new file mode 100644
index 0000000..4fc5692
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.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.BaseTools;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: tms_base_tools
+ * @Author: jeecg-boot
+ * @Date:   2025-05-09
+ * @Version: V1.0
+ */
+public interface BaseToolsMapper extends BaseMapper<BaseTools> {
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java
index 5451fb6..d1121de 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java
@@ -20,4 +20,6 @@
 
     IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page,
                                    @Param(Constants.WRAPPER) Wrapper<ToolsClassify> queryWrapper);
+
+    List<ToolsClassify> queryExportList(@Param(Constants.WRAPPER) Wrapper<ToolsClassify> queryWrapper);
 }
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
new file mode 100644
index 0000000..ea1790f
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.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.BaseToolsMapper">
+
+</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 a2ed5a6..bf32f84 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
@@ -26,4 +26,29 @@
             LEFT JOIN sys_dict_item s on s.dict_id = d.id and d.dict_code = 'tool_para_type') a on t.para_type_flag = a.item_value
     ${ew.customSqlSegment}
     </select>
+
+    <select id="queryExportList" resultType="org.jeecg.modules.tms.entity.ToolsClassify">
+        SELECT
+            t.id,
+            t.classify_id classifyId,
+            t.type_name typeName,
+            t.parent_id parentId,
+            p.classify_id parentNum,
+            p.type_name parentName,
+            t.seq,
+            t.leaf_flag leafFlag,
+            t.para_type_flag paraTypeFlag,
+            a.paraTypeFlagName paraTypeFlagName,
+            t.status,
+            t.remark,
+            t.create_by createBy,
+            t.create_time createTime,
+            t.update_by updateBy,
+            t.update_time updateTime
+        FROM tms_tools_classify t
+            LEFT JOIN tms_tools_classify p on t.parent_id = p.id
+            LEFT JOIN (select s.item_value,s.item_text paraTypeFlagName from sys_dict d
+            LEFT JOIN sys_dict_item s on s.dict_id = d.id and d.dict_code = 'tool_para_type') a on t.para_type_flag = a.item_value
+            ${ew.customSqlSegment}
+    </select>
 </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
new file mode 100644
index 0000000..3eb5879
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tms.service;
+
+import org.jeecg.modules.tms.entity.BaseTools;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: tms_base_tools
+ * @Author: jeecg-boot
+ * @Date:   2025-05-09
+ * @Version: V1.0
+ */
+public interface IBaseToolsService extends IService<BaseTools> {
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java
index 660a07c..db1b48c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java
@@ -3,10 +3,15 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.tms.entity.ToolsClassify;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.tms.entity.Warehouse;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -22,4 +27,8 @@
 
     public List<CommonGenericTree> loadTree();
 
+    ModelAndView toolClassifyExport(HttpServletRequest request, ToolsClassify toolsClassify, Class<ToolsClassify> clazz, String title);
+
+    Result<?> toolClassifyImportExcel(HttpServletRequest request, HttpServletResponse response) throws IOException;
+
 }
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
new file mode 100644
index 0000000..2aa1946
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tms.service.impl;
+
+import org.jeecg.modules.tms.entity.BaseTools;
+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;
+
+/**
+ * @Description: tms_base_tools
+ * @Author: jeecg-boot
+ * @Date:   2025-05-09
+ * @Version: V1.0
+ */
+@Service
+public class BaseToolsServiceImpl extends ServiceImpl<BaseToolsMapper, BaseTools> implements IBaseToolsService {
+
+}
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 645ec84..26f4bef 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
@@ -3,23 +3,40 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import liquibase.pro.packaged.Q;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.CommonGenericTree;
+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.LoginUser;
+import org.jeecg.common.util.ImportExcelUtil;
 import org.jeecg.common.util.StrUtils;
+import org.jeecg.common.util.oConvertUtils;
 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.Value;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.tools.Tool;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
 
 /**
  * @Description: tms_tools_classify
@@ -30,6 +47,8 @@
 @Service
 public class ToolsClassifyServiceImpl extends ServiceImpl<ToolsClassifyMapper, ToolsClassify> implements IToolsClassifyService {
 
+    @Value("${jeecg.path.upload}")
+    private String upLoadPath;
     @Override
     public IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page, Map<String, String[]> parameterMap) {
         QueryWrapper<ToolsClassify> queryWrapper = Wrappers.query();
@@ -124,4 +143,117 @@
         }
         return toolsClassify;
     }
+
+
+    @Override
+    public ModelAndView toolClassifyExport(HttpServletRequest request, ToolsClassify toolsClassify, Class<ToolsClassify> clazz, String title) {
+// Step.1 缁勮鏌ヨ鏉′欢
+        QueryWrapper<ToolsClassify> queryWrapper = new QueryWrapper<>();
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        // 杩囨护閫変腑鏁版嵁
+        String selections = request.getParameter("selections");
+        if (oConvertUtils.isNotEmpty(selections)) {
+            List<String> selectionList = Arrays.asList(selections.split(","));
+            queryWrapper.in("t.id",selectionList);
+        }
+        // Step.2 鑾峰彇瀵煎嚭鏁版嵁
+        List<ToolsClassify> exportList = this.baseMapper.queryExportList(queryWrapper);
+
+        // Step.3 AutoPoi 瀵煎嚭Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        //姝ゅ璁剧疆鐨刦ilename鏃犳晥 ,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+        mv.addObject(NormalExcelConstants.FILE_NAME, title);
+        mv.addObject(NormalExcelConstants.CLASS, clazz);
+        //update-begin--Author:liusq  Date:20210126 for锛氬浘鐗囧鍑烘姤閿欙紝ImageBasePath鏈缃�--------------------
+        ExportParams exportParams=new ExportParams(title + "鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), title);
+        exportParams.setImageBasePath(upLoadPath);
+        //update-end--Author:liusq  Date:20210126 for锛氬浘鐗囧鍑烘姤閿欙紝ImageBasePath鏈缃�----------------------
+        mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+        mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+        return mv;
+    }
+
+    @Override
+    public Result<?> toolClassifyImportExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+        MultipartFile file = multipartRequest.getFile("file");
+        //閿欒淇℃伅
+        List<String> errorMessage = new ArrayList<>();
+        int successLines = 0, errorLines = 0;
+        try (InputStream fis = file.getInputStream()) {
+            Workbook workbook = WorkbookFactory.create(fis);
+
+            // 鑾峰彇绗竴涓伐浣滆〃
+            Sheet sheet = workbook.getSheetAt(0);
+            for(Row row : sheet) {
+                ToolsClassify newToolsClassify = new ToolsClassify();
+                if (row.getRowNum() == 0)
+                    continue;
+                Cell numCell = row.getCell(0);
+                String num = numCell.getStringCellValue();
+                Cell nameCell = row.getCell(1);
+                String name = nameCell.getStringCellValue();
+                Cell parentNumCell = row.getCell(2);
+                String parentNum = parentNumCell.getStringCellValue();
+                Cell leafFlagCell = row.getCell(4);
+                String leafFlag = leafFlagCell.getStringCellValue();
+                Cell paraTypeFlagCell = row.getCell(5);
+                String paraTypeFlag = paraTypeFlagCell.getStringCellValue();
+                //杞箟鏄惁涓哄彾瀛愯妭鐐�
+                if("鏄�".equals(leafFlag)){
+                    leafFlag = "1";
+                }else if("鍚�".equals(leafFlag)){
+                    leafFlag = "2";
+                }else {
+                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鏄惁涓哄彾瀛愯妭鐐瑰~鍐欓敊璇紝璇峰~鍐欌�樻槸鈥欐垨鈥欏惁鈥�");
+                    errorLines++;
+                    continue;
+                }
+                if(StringUtils.isBlank(num)){
+                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被缂栫爜涓嶈兘涓虹┖");
+                    errorLines++;
+                    continue;
+                }
+                if(StringUtils.isBlank(name)){
+                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被鍚嶇О涓嶈兘涓虹┖");
+                    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+"鐨勬暟鎹殑涓婄骇鍒嗙被缂栧彿涓嶅瓨鍦ㄦ垨涓哄彾瀛愯妭鐐�");
+                        errorLines++;
+                    }else {
+                        newToolsClassify.setClassifyId(num)
+                                .setTypeName(name)
+                                .setStatus("1")
+                                .setLeafFlag(leafFlag)
+                                .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);
+                    successLines++;
+                }
+            }
+        }catch (IOException e) {
+            e.printStackTrace();
+        }
+        return ImportExcelUtil.imporReturnRes(errorLines,successLines,errorMessage);
+    }
 }

--
Gitblit v1.9.3