From 3eba8b62a62ecb56f8d286d5a93ba2768d54e3f3 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 15 五月 2025 17:55:22 +0800
Subject: [PATCH] 工具管理-工具分类特征参数:刀片参数、通用工具参数导入

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaCommonToolController.java |  156 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 149 insertions(+), 7 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaCommonToolController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaCommonToolController.java
index f1477e3..56e9c7e 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaCommonToolController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaCommonToolController.java
@@ -1,5 +1,8 @@
 package org.jeecg.modules.tms.controller;
 
+import java.io.File;
+import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -9,17 +12,27 @@
 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.ParaCommonTool;
-import org.jeecg.modules.tms.service.IParaCommonToolService;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.PmsUtil;
+import org.jeecg.modules.tms.entity.BaseTools;
+import org.jeecg.modules.tms.entity.ParaCommonTool;
+import org.jeecg.modules.tms.entity.ToolsClassify;
+import org.jeecg.modules.tms.service.IBaseToolsService;
+import org.jeecg.modules.tms.service.IParaCommonToolService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
-
+import org.jeecg.modules.tms.service.IToolsClassifyService;
+import org.jeecg.modules.tms.utils.ExcelUtils;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -49,6 +62,10 @@
 public class ParaCommonToolController extends JeecgController<ParaCommonTool, IParaCommonToolService> {
 	@Autowired
 	private IParaCommonToolService paraCommonToolService;
+	@Autowired
+	private IToolsClassifyService toolsClassifyService;
+	@Autowired
+	private IBaseToolsService baseToolsService;
 	
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -171,7 +188,132 @@
     //@RequiresPermissions("tms_para_common_tool:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, ParaCommonTool.class);
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		// 閿欒淇℃伅
+		List<String> errorMessage = new ArrayList<>();
+		int successLines = 0, errorLines = 0, dataLines = 0;
+		List<ParaCommonTool> paraCommonToolImportList = new ArrayList<>();
+		try {
+			for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+				// 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+				MultipartFile file = entity.getValue();
+				InputStream inputStream = file.getInputStream();
+				Workbook workbook = new XSSFWorkbook(inputStream);
+				Sheet sheet = workbook.getSheetAt(0);
+				for (Row row : sheet) {
+					ParaCommonTool paraCommonTool = new ParaCommonTool();
+					int rowNum = row.getRowNum();
+					int currentRowNum  = rowNum + 1;
+					//琛ㄥご琛屽拰绌鸿鐣ヨ繃
+					if (rowNum == 0 || ExcelUtils.isRowEmpty(row)) {
+						continue;
+					}
+					dataLines++;
+					Cell cell1 = row.getCell(1);
+					if (cell1 == null || cell1.getCellType() == CellType.BLANK) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,涓�绾у垎绫诲悕绉颁负绌�! ");
+						errorLines++;
+						continue;
+					}
+					Cell cell2 = row.getCell(2);
+					if (cell2 == null || cell2.getCellType() == CellType.BLANK) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,浜岀骇鍒嗙被鍚嶇О涓虹┖! ");
+						errorLines++;
+						continue;
+					}
+					Cell cell3 = row.getCell(3);
+					if (cell3 == null || cell3.getCellType() == CellType.BLANK) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,涓夌骇鍒嗙被鍚嶇О涓虹┖! ");
+						errorLines++;
+						continue;
+					}
+					Cell cell4 = row.getCell(4);
+					if (cell4 == null || cell4.getCellType() == CellType.BLANK) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍥涚骇鍒嗙被鍚嶇О涓虹┖! ");
+						errorLines++;
+						continue;
+					}
+					Cell cell9 = row.getCell(9);
+					if (cell9 == null || cell9.getCellType() == CellType.BLANK) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍨嬪彿/鍥惧彿涓虹┖! ");
+						errorLines++;
+						continue;
+					}
+					//鏍规嵁鍥涚骇鍒嗙被鍚嶇О鍜屽瀷鍙�/鍥惧彿鏌ヨ宸ュ叿淇℃伅
+					List<ToolsClassify> toolClassifyList = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+							.eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell4))
+							.eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+					if (CollectionUtil.isEmpty(toolClassifyList)) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ鍥涚骇鍒嗙被鍚嶇О! ");
+						errorLines++;
+						continue;
+					} else {
+						ToolsClassify toolsClassify = toolClassifyList.get(0);
+						List<BaseTools> baseToolsList = baseToolsService.list(new LambdaQueryWrapper<BaseTools>()
+								.eq(BaseTools::getClassifyId, toolsClassify.getId())
+								.eq(BaseTools::getToolModel, ExcelUtils.getCellValueAsString(cell9)));
+						if (CollectionUtil.isEmpty(baseToolsList)) {
+							errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄥ搴旂殑宸ュ叿淇℃伅! ");
+							errorLines++;
+							continue;
+						} else {
+							BaseTools baseTools = baseToolsList.get(0);
+							List<ParaCommonTool> paraCommonToolList = paraCommonToolService.list(new LambdaQueryWrapper<ParaCommonTool>()
+									.eq(ParaCommonTool::getToolCode, baseTools.getId())
+									.eq(ParaCommonTool::getToolModel, ExcelUtils.getCellValueAsString(cell9)));
+							if (CollectionUtil.isEmpty(paraCommonToolList)) {
+								paraCommonTool.setClassifyId(toolsClassify.getId());
+								paraCommonTool.setToolCode(baseTools.getId());
+								paraCommonTool.setToolModel(ExcelUtils.getCellValueAsString(cell9));
+							} else {
+								paraCommonTool = paraCommonToolList.get(0);
+							}
+						}
+					}
+
+					Cell cell0 = row.getCell(0);//搴忓彿(鎴栦紒涓氬唴鍘熶唬鐮�)
+					paraCommonTool.setSignCode(ExcelUtils.getCellValueAsString(cell0));
+					Cell cell5 = row.getCell(5);//鐗╁搧涓枃鍚嶇О
+					if (cell5 == null || cell5.getCellType() == CellType.BLANK) {
+						errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鐗╁搧涓枃鍚嶇О涓虹┖! ");
+						errorLines++;
+						continue;
+					} else {
+						paraCommonTool.setChineseName(ExcelUtils.getCellValueAsString(cell5));
+					}
+					Cell cell6 = row.getCell(6);//鐗╁搧澶栨枃鍚嶇О
+					paraCommonTool.setForeignLanguageName(ExcelUtils.getCellValueAsString(cell6));
+					Cell cell7 = row.getCell(7);//鏍囧噯绾у埆
+					paraCommonTool.setStandardLevel(ExcelUtils.getCellValueAsString(cell7));
+					Cell cell8 = row.getCell(8);//鏍囧噯鍙�
+					paraCommonTool.setStandardCode(ExcelUtils.getCellValueAsString(cell8));
+
+					paraCommonToolImportList.add(paraCommonTool);
+					successLines++;
+				}
+			}
+			paraCommonToolService.saveOrUpdateBatch(paraCommonToolImportList);
+			if (successLines == dataLines) {
+				return Result.OK("鍏�" + dataLines + "琛屾暟鎹叏閮ㄥ鍏ユ垚鍔燂紒");
+			} else {
+				JSONObject result = new JSONObject(5);
+				result.put("successCount", successLines);
+				result.put("msg", "鎬讳笂浼犺鏁帮細" + dataLines + "锛屾垚鍔熷鍏ヨ鏁帮細" + successLines);
+				result.put("errorMsg", errorMessage);
+				String fileUrl = PmsUtil.saveErrorMsgByList(errorMessage, "userImportExcelErrorLog");
+				int lastIndex = fileUrl.lastIndexOf(File.separator);
+				String fileName = fileUrl.substring(lastIndex + 1);
+				result.put("fileUrl", "/sys/common/static/" + fileUrl);
+				result.put("fileName", fileName);
+				Result res = Result.ok(result);
+				res.setCode(201);
+				res.setMessage("鏂囦欢瀵煎叆鎴愬姛锛屼絾鏈夐敊璇��");
+				return res;
+			}
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
     }
 
 }

--
Gitblit v1.9.3