From 5240266838c794b868bca06129017886cbd86012 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期三, 14 五月 2025 17:52:32 +0800 Subject: [PATCH] 工具管理-工具分类特征参数:铣削刀具参数、车削刀具参数导入 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaTurningToolsController.java | 289 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 282 insertions(+), 7 deletions(-) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaTurningToolsController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaTurningToolsController.java index 4edafd8..e541fe2 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaTurningToolsController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaTurningToolsController.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.ParaTurningTools; -import org.jeecg.modules.tms.service.IParaTurningToolsService; +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.ParaTurningTools; +import org.jeecg.modules.tms.entity.ToolsClassify; +import org.jeecg.modules.tms.service.IBaseToolsService; +import org.jeecg.modules.tms.service.IParaTurningToolsService; 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 ParaTurningToolsController extends JeecgController<ParaTurningTools, IParaTurningToolsService> { @Autowired private IParaTurningToolsService paraTurningToolsService; + @Autowired + private IToolsClassifyService toolsClassifyService; + @Autowired + private IBaseToolsService baseToolsService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -171,7 +188,265 @@ //@RequiresPermissions("tms_para_turning_tools:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, ParaTurningTools.class); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + // 閿欒淇℃伅 + List<String> errorMessage = new ArrayList<>(); + int successLines = 0, errorLines = 0, dataLines = 0; + List<ParaTurningTools> paraTurningToolsImportList = 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) { + ParaTurningTools paraTurningTools = new ParaTurningTools(); + 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<ParaTurningTools> paraTurningToolsList = paraTurningToolsService.list(new LambdaQueryWrapper<ParaTurningTools>() + .eq(ParaTurningTools::getToolCode, baseTools.getId()) + .eq(ParaTurningTools::getToolModel, ExcelUtils.getCellValueAsString(cell9))); + if (CollectionUtil.isEmpty(paraTurningToolsList)) { + paraTurningTools.setClassifyId(toolsClassify.getId()); + paraTurningTools.setToolCode(baseTools.getId()); + paraTurningTools.setToolModel(ExcelUtils.getCellValueAsString(cell9)); + } else { + paraTurningTools = paraTurningToolsList.get(0); + } + } + } + + Cell cell0 = row.getCell(0); + paraTurningTools.setSignCode(cell0.getStringCellValue()); + Cell cell5 = row.getCell(5);//鐗╁搧涓枃鍚嶇О + if (cell5 == null || cell5.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鐗╁搧涓枃鍚嶇О涓虹┖! "); + errorLines++; + continue; + } else { + paraTurningTools.setChineseName(ExcelUtils.getCellValueAsString(cell5)); + } + Cell cell6 = row.getCell(6);//鐗╁搧澶栨枃鍚嶇О + paraTurningTools.setForeignLanguageName(ExcelUtils.getCellValueAsString(cell6)); + Cell cell7 = row.getCell(7);//鏍囧噯绾у埆 + paraTurningTools.setStandardLevel(ExcelUtils.getCellValueAsString(cell7)); + Cell cell8 = row.getCell(8);//鏍囧噯鍙� + paraTurningTools.setStandardCode(ExcelUtils.getCellValueAsString(cell8)); + Cell cell10 = row.getCell(10);//鍒�澶磋鏍� + if (cell10 == null || cell10.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�澶磋鏍间负绌�! "); + errorLines++; + continue; + } else { + paraTurningTools.setHeadSpecifications(ExcelUtils.getCellValueAsString(cell10)); + } + Cell cell11 = row.getCell(11);//閰嶅鍒�鐗囧彿 + if (cell11 == null || cell11.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,閰嶅鍒�鐗囧彿涓虹┖! "); + errorLines++; + continue; + } else { + paraTurningTools.setMatchingNumber(ExcelUtils.getCellValueAsString(cell11)); + } + Cell cell12 = row.getCell(12);//涓诲亸瑙� + if (cell12 == null || cell12.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,涓诲亸瑙掍负绌�! "); + errorLines++; + continue; + } else { + paraTurningTools.setLeadAngle(ExcelUtils.getCellValueAsString(cell12)); + } + Cell cell13 = row.getCell(13);//鍒�鍏锋埅闈㈠昂瀵� + if (cell13 == null || cell13.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋埅闈㈠昂瀵镐负绌�! "); + errorLines++; + continue; + } else { + paraTurningTools.setCrossSectionalSize(ExcelUtils.getCellValueAsString(cell13)); + } + Cell cell14 = row.getCell(14);//鍒�鍏锋�婚暱 + if (cell14 == null || cell14.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋�婚暱涓虹┖! "); + errorLines++; + continue; + } else { + paraTurningTools.setTotalLength(ExcelUtils.getCellValueAsString(cell14)); + } + Cell cell15 = row.getCell(15);//鍒囧墛鏂瑰悜 + if (cell15 == null || cell15.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒囧墛鏂瑰悜涓虹┖! "); + errorLines++; + continue; + } else { + paraTurningTools.setCuttingDirection(ExcelUtils.getCellValueAsString(cell15)); + } + + Cell cell16 = row.getCell(16);//鍒�鍏锋潗鏂� + if (cell16 == null || cell16.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋潗鏂欎负绌�! "); + errorLines++; + continue; + } else { + paraTurningTools.setToolMaterial(ExcelUtils.getCellValueAsString(cell16)); + } + Cell cell17 = row.getCell(17);//闆朵欢鏉愭枡 + paraTurningTools.setPartMaterial(ExcelUtils.getCellValueAsString(cell17)); + Cell cell18 = row.getCell(18);//鍒�鍏峰瀷寮� + if (cell18 == null || cell18.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏峰瀷寮忎负绌�! "); + errorLines++; + continue; + } else { + paraTurningTools.setToolPattern(ExcelUtils.getCellValueAsString(cell18)); + } + Cell cell19 = row.getCell(19);//鏄惁娑傚眰 + if (cell19 == null || cell19.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏄惁娑傚眰涓虹┖锛�"); + errorLines++; + continue; + } else { + paraTurningTools.setPaintcoatFlag(ExcelUtils.getCellValueAsString(cell19)); + } + Cell cell20 = row.getCell(20);//闄勫姞鎶�鏈潯浠� + if (cell20 == null || cell20.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,闄勫姞鎶�鏈潯浠朵负绌猴紒"); + errorLines++; + continue; + } else { + paraTurningTools.setTechnicalConditions(ExcelUtils.getCellValueAsString(cell20)); + } + Cell cell21 = row.getCell(21);//闄勫姞鎶�鏈潯浠惰鏄� + paraTurningTools.setConditionsInfo(ExcelUtils.getCellValueAsString(cell21)); + Cell cell22 = row.getCell(22);//鍝佺墝 + paraTurningTools.setBrand(ExcelUtils.getCellValueAsString(cell22)); + Cell cell23 = row.getCell(23);//鍒跺紡 + paraTurningTools.setTypes(ExcelUtils.getCellValueAsString(cell23)); + Cell cell24 = row.getCell(24);//鍒�鐗囧昂瀵� + paraTurningTools.setKnifeSize(ExcelUtils.getCellValueAsString(cell24)); + Cell cell25 = row.getCell(25);//鍐峰嵈鏂瑰紡 + paraTurningTools.setCoolingMethod(ExcelUtils.getCellValueAsString(cell25)); + Cell cell26 = row.getCell(26);//鍒�鏉嗙被鍒� + paraTurningTools.setHolderCategory(ExcelUtils.getCellValueAsString(cell26)); + Cell cell27 = row.getCell(27);//鍒�鍏风洿寰� + paraTurningTools.setToolDiameter(ExcelUtils.getCellValueAsString(cell27)); + Cell cell28 = row.getCell(28);//鎺ュ彛绱у浐褰㈠紡 + paraTurningTools.setFasteningForm(ExcelUtils.getCellValueAsString(cell28)); + Cell cell29 = row.getCell(29);//闀楁潌鐩村緞 + paraTurningTools.setBoringBarDiameter(ExcelUtils.getCellValueAsString(cell29)); + Cell cell30 = row.getCell(30);//鍒�鏉嗛暱搴� + paraTurningTools.setBladeLength(ExcelUtils.getCellValueAsString(cell30)); + Cell cell31 = row.getCell(31);//鍒�鐗囧舰鐘� + paraTurningTools.setBladeShape(ExcelUtils.getCellValueAsString(cell31)); + Cell cell32 = row.getCell(32);//鍒�鐗囧悗瑙� + paraTurningTools.setBladePosterior(ExcelUtils.getCellValueAsString(cell32)); + Cell cell33 = row.getCell(33);//鍒�鏉嗘柟鍚� + paraTurningTools.setBarDirection(ExcelUtils.getCellValueAsString(cell33)); + Cell cell34 = row.getCell(34);//鍒�鏉嗛珮搴� + paraTurningTools.setBladeHeight(ExcelUtils.getCellValueAsString(cell34)); + Cell cell35 = row.getCell(35);//鍒�鏉嗗搴� + paraTurningTools.setBladeWide(ExcelUtils.getCellValueAsString(cell35)); + Cell cell36 = row.getCell(36);//鍒�鏉嗗昂瀵� + paraTurningTools.setBladeSize(ExcelUtils.getCellValueAsString(cell36)); + Cell cell37 = row.getCell(37);//鍒�澶瑰瀷鍙� + paraTurningTools.setKnifeClipModel(ExcelUtils.getCellValueAsString(cell37)); + Cell cell38 = row.getCell(38);//鍒�鐗囪澶规柟寮� + paraTurningTools.setClampingMethod(ExcelUtils.getCellValueAsString(cell38)); + Cell cell39 = row.getCell(39);//鍒�鐗囨Ы瀹� + paraTurningTools.setSlotWidth(ExcelUtils.getCellValueAsString(cell39)); + Cell cell40 = row.getCell(40);//鏈�灏忓垏鍏ョ洿寰� + paraTurningTools.setSmallDiameter(ExcelUtils.getCellValueAsString(cell40)); + Cell cell41 = row.getCell(41);//鏈�澶у垏鍏ョ洿寰� + paraTurningTools.setMaxDiameter(ExcelUtils.getCellValueAsString(cell41)); + Cell cell42 = row.getCell(42);//鏈�澶у垏妲芥繁搴� + paraTurningTools.setMaxDepth(ExcelUtils.getCellValueAsString(cell42)); + Cell cell43 = row.getCell(43);//鍒�鏉嗗舰寮� + paraTurningTools.setKnifeBarForm(ExcelUtils.getCellValueAsString(cell43)); + Cell cell44 = row.getCell(44);//鍒�鏉垮帤搴� + paraTurningTools.setBladeThickness(ExcelUtils.getCellValueAsString(cell44)); + Cell cell45 = row.getCell(45);//鏈�灏忓姞宸ョ洿寰� + paraTurningTools.setMinDiameter(ExcelUtils.getCellValueAsString(cell45)); + + paraTurningToolsImportList.add(paraTurningTools); + successLines++; + } + } + paraTurningToolsService.saveOrUpdateBatch(paraTurningToolsImportList); + 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