From 3091802b7b8f65fa26a208bbd03e56f00424b0a0 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期三, 04 六月 2025 16:08:49 +0800 Subject: [PATCH] 工具管理-孔加工、车削、铣削、刀片、工具标识参数导入接口调整 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaCommonToolController.java | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 271 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..b09c212 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.*; +import org.jeecg.modules.tms.enums.AccuracyClass; +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.service.IToolsConfigPropertyService; +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,12 @@ public class ParaCommonToolController extends JeecgController<ParaCommonTool, IParaCommonToolService> { @Autowired private IParaCommonToolService paraCommonToolService; + @Autowired + private IToolsClassifyService toolsClassifyService; + @Autowired + private IBaseToolsService baseToolsService; + @Autowired + private IToolsConfigPropertyService toolsConfigPropertyService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -171,7 +190,252 @@ //@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 cell0 = row.getCell(0); + if (cell0 == null || cell0.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏风紪鐮佷负绌�! "); + errorLines++; + continue; + } + Cell cell1 = row.getCell(1); + if (cell1 == null || cell1.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 cell5 = row.getCell(5); + if (cell5 == null || cell5.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,涓夌骇鍒嗙被鍚嶇О涓虹┖! "); + errorLines++; + continue; + } + Cell cell6 = row.getCell(6); + if (cell6 == null || cell6.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍥涚骇鍒嗙被鍚嶇О涓虹┖! "); + errorLines++; + continue; + } + + ToolsClassify classify; + List<ToolsClassify> class1List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>() + .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell3)) + .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1)); + if (CollectionUtil.isEmpty(class1List)) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ涓�绾у垎绫诲悕绉�! "); + errorLines++; + continue; + } else { + ToolsClassify classify1 = class1List.get(0); + List<ToolsClassify> class2List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>() + .eq(ToolsClassify::getParentId, classify1.getId()) + .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell4)) + .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1)); + if (CollectionUtil.isEmpty(class2List)) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ浜岀骇鍒嗙被鍚嶇О! "); + errorLines++; + continue; + } else { + ToolsClassify classify2 = class2List.get(0); + List<ToolsClassify> class3List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>() + .eq(ToolsClassify::getParentId, classify2.getId()) + .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell5)) + .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1)); + if (CollectionUtil.isEmpty(class3List)) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ涓夌骇鍒嗙被鍚嶇О! "); + errorLines++; + continue; + } else { + ToolsClassify classify3 = class3List.get(0); + List<ToolsClassify> class4List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>() + .eq(ToolsClassify::getParentId, classify3.getId()) + .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell6)) + .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1)); + if (CollectionUtil.isEmpty(class4List)) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ鍥涚骇鍒嗙被鍚嶇О! "); + errorLines++; + continue; + } else { + classify = class4List.get(0); + paraCommonTool.setClassifyId(classify.getId()); + } + } + } + } + + Cell cell2 = row.getCell(2);//搴忓彿(鎴栦紒涓氬唴鍘熶唬鐮�) + paraCommonTool.setSignCode(ExcelUtils.getCellValueAsString(cell2)); + Cell cell7 = row.getCell(7);//鐗╁搧涓枃鍚嶇О + if (cell7 == null || cell7.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鐗╁搧涓枃鍚嶇О涓虹┖! "); + errorLines++; + continue; + } else { + paraCommonTool.setChineseName(ExcelUtils.getCellValueAsString(cell7)); + } + Cell cell8 = row.getCell(8);//鐗╁搧澶栨枃鍚嶇О + paraCommonTool.setForeignLanguageName(ExcelUtils.getCellValueAsString(cell8)); + Cell cell9 = row.getCell(9);//鏍囧噯绾у埆 + paraCommonTool.setStandardLevel(ExcelUtils.getCellValueAsString(cell9)); + Cell cell10 = row.getCell(10);//鏍囧噯鍙� + paraCommonTool.setStandardCode(ExcelUtils.getCellValueAsString(cell10)); + Cell cell11 = row.getCell(11); + if (cell11 == null || cell11.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍨嬪彿/鍥惧彿涓虹┖! "); + errorLines++; + continue; + } else { + paraCommonTool.setToolModel(ExcelUtils.getCellValueAsString(cell11)); + } + Cell cell12 = row.getCell(12); + String accuracyClassCode; + if (cell12 == null || cell12.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绮惧害绛夌骇涓虹┖! "); + errorLines++; + continue; + } else { + accuracyClassCode = AccuracyClass.getCodeFromValue(ExcelUtils.getCellValueAsString(cell12)); + if (accuracyClassCode == null) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绮惧害绛夌骇涓嶇鍚堣姹�! "); + errorLines++; + continue; + } + } + + BaseTools baseTools = new BaseTools() + .setToolCode(ExcelUtils.getCellValueAsString(cell0)) + .setClassifyId(classify.getId()) + .setSignCode(ExcelUtils.getCellValueAsString(cell2)) + .setChineseName(ExcelUtils.getCellValueAsString(cell7)) + .setForeignLanguageName(ExcelUtils.getCellValueAsString(cell8)) + .setStandardLevel(ExcelUtils.getCellValueAsString(cell9)) + .setStandardCode(ExcelUtils.getCellValueAsString(cell10)) + .setToolModel(ExcelUtils.getCellValueAsString(cell11)) + .setCurrentCode("0000")//褰撳墠缂栫爜鍒濆鍖� + .setParamaTableName("1")//1锛氶�氱敤鍙傛暟绫诲瀷 + .setAccuracyClass(accuracyClassCode); + + //鏍规嵁鍒�鍏风紪鐮併�佸瀷鍙�/鍥惧彿銆佸垎绫籭d鏌ヨ鍒�鍏蜂俊鎭� + List<BaseTools> toolsList = baseToolsService.list(new LambdaQueryWrapper<BaseTools>() + .eq(BaseTools::getToolCode, ExcelUtils.getCellValueAsString(cell0)) + .eq(BaseTools::getClassifyId, classify.getId()) + .eq(BaseTools::getToolModel, ExcelUtils.getCellValueAsString(cell11))); + if (CollectionUtil.isEmpty(toolsList)) { + //涓嶅瓨鍦ㄧ浉搴斿垁鍏凤紝鏂板 + baseToolsService.save(baseTools); + } else { + //瀛樺湪鐩稿簲鍒�鍏凤紝鏇存柊 + BaseTools tools = toolsList.get(0); + baseTools.setId(tools.getId()); + baseToolsService.updateById(baseTools); + } + + paraCommonTool.setToolCode(baseTools.getId()); + ToolsConfigProperty configProperty = new ToolsConfigProperty() + .setChineseName(ExcelUtils.getCellValueAsString(cell7)) + .setForeignLanguageName(ExcelUtils.getCellValueAsString(cell8)) + .setStandardLevel(ExcelUtils.getCellValueAsString(cell9)) + .setStandardCode(ExcelUtils.getCellValueAsString(cell10)) + .setToolModel(ExcelUtils.getCellValueAsString(cell11)) + .setPositionCode(ExcelUtils.getCellValueAsString(cell1)) + .setApplicationType("1");//1:閫氱敤宸ュ叿绫诲瀷 + //鏍规嵁鍒�鍏穒d銆佸垎绫籭d鏌ヨ閫氱敤鍙傛暟淇℃伅 + List<ToolsConfigProperty> configPropertyList = toolsConfigPropertyService.list(new LambdaQueryWrapper<ToolsConfigProperty>() + .eq(ToolsConfigProperty::getToolCode, baseTools.getId()) + .eq(ToolsConfigProperty::getClassifyId, classify.getId()) + .eq(ToolsConfigProperty::getStatus, CommonConstant.STATUS_1)); + if (CollectionUtil.isEmpty(configPropertyList)) { + //涓嶅瓨鍦ㄩ�氱敤鍙傛暟淇℃伅锛屾柊澧� + configProperty.setStatus(CommonConstant.STATUS_1); + configProperty.setToolCode(baseTools.getId()); + configProperty.setClassifyId(classify.getId()); + toolsConfigPropertyService.save(configProperty); + } else { + //瀛樺湪閫氱敤鍙傛暟淇℃伅锛屾洿鏂� + ToolsConfigProperty property = configPropertyList.get(0); + configProperty.setId(property.getId()); + toolsConfigPropertyService.updateById(configProperty); + } + + List<ParaCommonTool> paraCommonToolList = paraCommonToolService.list(new LambdaQueryWrapper<ParaCommonTool>() + .eq(ParaCommonTool::getToolCode, baseTools.getId()) + .eq(ParaCommonTool::getClassifyId, classify.getId()) + .eq(ParaCommonTool::getToolModel, ExcelUtils.getCellValueAsString(cell11))); + if (CollectionUtil.isNotEmpty(paraCommonToolList)) { + //瀛樺湪璇ラ�氱敤鍙傛暟淇℃伅锛屾洿鏂� + ParaCommonTool commonTool = paraCommonToolList.get(0); + paraCommonTool.setId(commonTool.getId()); + } + + Cell cell13 = row.getCell(13);//鍒�鍏锋潗鏂� + if (cell13 == null || cell13.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋潗鏂欎负绌�! "); + errorLines++; + continue; + } else { + paraCommonTool.setToolMaterial(ExcelUtils.getCellValueAsString(cell13)); + } + Cell cell14 = row.getCell(14);//闆朵欢鏉愭枡 + paraCommonTool.setPartMaterial(ExcelUtils.getCellValueAsString(cell14)); + + 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