cuilei
2025-06-11 cd00884c3db8fa6808b3b5949ab1a2b1459d6bdc
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java
@@ -1,5 +1,8 @@
package org.jeecg.modules.tms.controller;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -7,6 +10,8 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.tms.entity.*;
@@ -81,6 +86,57 @@
      IPage<BaseTools> pageList = baseToolsService.page(page, queryWrapper);
      return Result.OK(pageList);
   }
    /**
     * 根据分类选择工具
     *
     * @param baseTools
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @ApiOperation(value="根据分类选择工具", notes="根据分类选择工具")
    @GetMapping(value = "/queryToolByClassifyId")
    public Result<?> queryToolByClassifyId(BaseTools baseTools,
                                        @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                        @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                        HttpServletRequest req) {
       Map<String, String[]> parameterMap = req.getParameterMap();
       String[] classifyIds = parameterMap.get("classifyId");
       if (classifyIds != null && classifyIds.length > 0) {
          if("1".equals(classifyIds[0])){
             Page<ParaCommonToolVo> page = new Page<ParaCommonToolVo>(pageNo, pageSize);
             IPage<ParaCommonToolVo> pageList = baseToolsService.paraCommonToolList(page, parameterMap);
             return Result.OK(pageList);
          }else if("2".equals(classifyIds[0])){
             Page<ParaHolesToolsVo> page = new Page<ParaHolesToolsVo>(pageNo, pageSize);
             IPage<ParaHolesToolsVo> pageList = baseToolsService.paraHolesToolsList(page, parameterMap);
             return Result.OK(pageList);
          }else if("3".equals(classifyIds[0])){
             Page<ParaThreadingToolVo> page = new Page<ParaThreadingToolVo>(pageNo, pageSize);
             IPage<ParaThreadingToolVo> pageList = baseToolsService.paraThreadingToolList(page, parameterMap);
             return Result.OK(pageList);
          }else if("4".equals(classifyIds[0])){
             Page<ParaMillToolVo> page = new Page<ParaMillToolVo>(pageNo, pageSize);
             IPage<ParaMillToolVo> pageList = baseToolsService.paraMillToolList(page, parameterMap);
             return Result.OK(pageList);
          }else if("5".equals(classifyIds[0])){
             Page<ParaTurningToolsVo> page = new Page<ParaTurningToolsVo>(pageNo, pageSize);
             IPage<ParaTurningToolsVo> pageList = baseToolsService.paraTurningToolsList(page, parameterMap);
             return Result.OK(pageList);
          }else if("6".equals(classifyIds[0])){
             Page<ParaBladeVo> page = new Page<ParaBladeVo>(pageNo, pageSize);
             IPage<ParaBladeVo> pageList = baseToolsService.paraBladeList(page, parameterMap);
             return Result.OK(pageList);
          }else {
             return Result.error("请选择工具分类");
          }
       }else {
          return Result.error("请选择工具分类");
       }
    }
    /**
     * 分页列表查询
@@ -524,4 +580,98 @@
       IPage<SharpeeningVo> resultPage = baseToolsService.pageWithSharpedAndConfig(page, queryWrapper);
       return Result.OK(resultPage);
    }
    /**
     * 导入模板下载
     *
     */
    @RequestMapping(value = "/loadTemplate")
    public void loadTemplate(HttpServletRequest request, HttpServletResponse response) throws IOException {
       Map<String,String[]> req = request.getParameterMap();
       String paraTypeFlag = "";
       if(req.get("paraTypeFlag") != null){
          paraTypeFlag = req.get("paraTypeFlag")[0];
       }
       if("1".equals(paraTypeFlag)){
          Workbook workbook = WorkbookFactory.create(new File("D:\\opt\\upFiles\\刀具信息导入模板-通用参数.xlsx"));
          //导出Workbook
          //设置响应头
          String fileName = "刀具信息导入模板-通用参数.xlsx";
          // 对文件名进行URL编码,防止中文乱码
          String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
          response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
          response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
          // 将Workbook写入响应输出流
          try { // try-with-resources自动关闭资源
             workbook.write(response.getOutputStream());
             response.flushBuffer();
          } catch (IOException e) {
             // 异常处理(如记录日志)
             throw new IOException("下载模板失败", e);
          }
       }else if("2".equals(paraTypeFlag)){
          Workbook workbook = WorkbookFactory.create(new File("D:\\opt\\upFiles\\刀具信息导入模板-孔加工工具.xlsx"));
          String fileName = "刀具信息导入模板-孔加工工具.xlsx";
          String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
          response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
          response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
          try {
             workbook.write(response.getOutputStream());
             response.flushBuffer();
          } catch (IOException e) {
             throw new IOException("下载模板失败", e);
          }
       }else if("3".equals(paraTypeFlag)){
          Workbook workbook = WorkbookFactory.create(new File("D:\\opt\\upFiles\\刀具信息导入模板-螺纹工具.xlsx"));
          String fileName = "刀具信息导入模板-螺纹工具.xlsx";
          String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
          response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
          response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
          try {
             workbook.write(response.getOutputStream());
             response.flushBuffer();
          } catch (IOException e) {
             throw new IOException("下载模板失败", e);
          }
       }else if("4".equals(paraTypeFlag)){
          Workbook workbook = WorkbookFactory.create(new File("D:\\opt\\upFiles\\刀具信息导入模板-铣削工具.xlsx"));
          String fileName = "刀具信息导入模板-铣削工具.xlsx";
          String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
          response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
          response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
          try {
             workbook.write(response.getOutputStream());
             response.flushBuffer();
          } catch (IOException e) {
             throw new IOException("下载模板失败", e);
          }
       }else if("5".equals(paraTypeFlag)){
          Workbook workbook = WorkbookFactory.create(new File("D:\\opt\\upFiles\\刀具信息导入模板-车削工具.xlsx"));
          String fileName = "刀具信息导入模板-车削工具.xlsx";
          String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
          response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
          response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
          try {
             workbook.write(response.getOutputStream());
             response.flushBuffer();
          } catch (IOException e) {
             throw new IOException("下载模板失败", e);
          }
       }else if("6".equals(paraTypeFlag)){
          Workbook workbook = WorkbookFactory.create(new File("D:\\opt\\upFiles\\刀具信息导入模板-刀片.xlsx"));
          String fileName = "刀具信息导入模板-刀片.xlsx";
          String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
          response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
          response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
          try {
             workbook.write(response.getOutputStream());
             response.flushBuffer();
          } catch (IOException e) {
             throw new IOException("下载模板失败", e);
          }
       }
    }
}