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