From 3290343e7674eab7b35913cfcb5a6872720c940e Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期二, 13 五月 2025 16:06:51 +0800 Subject: [PATCH] 工具管理-工具分类特征参数:孔加工工具参数、螺纹刀具参数导入 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaHoleTools.java | 16 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java | 497 ++++++++++++++++++++------ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/ExcelUtils.java | 51 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java | 490 +++++++++++++++++++------ lxzn-boot-base-core/src/main/java/org/jeecg/common/util/PmsUtil.java | 30 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java | 2 6 files changed, 846 insertions(+), 240 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/PmsUtil.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/PmsUtil.java index 0926202..a6f3549 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/PmsUtil.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/PmsUtil.java @@ -62,4 +62,34 @@ return saveDir + name + ".txt"; } + public static String saveErrorMsgByList(List<String> msg, String name) { + Date d = new Date(); + String saveDir = "logs" + File.separator + DateUtils.yyyyMMdd.get().format(d) + File.separator; + String saveFullDir = uploadPath + File.separator + saveDir; + + File saveFile = new File(saveFullDir); + if (!saveFile.exists()) { + saveFile.mkdirs(); + } + name += DateUtils.yyyymmddhhmmss.get().format(d) + Math.round(Math.random() * 10000); + String saveFilePath = saveFullDir + name + ".txt"; + + try { + //灏佽鐩殑鍦� + BufferedWriter bw = new BufferedWriter(new FileWriter(saveFilePath)); + //閬嶅巻闆嗗悎 + for (String s : msg) { + //鍐欐暟鎹� + bw.write(s); + //bw.newLine(); + bw.write("\r\n"); + } + //閲婃斁璧勬簮 + bw.flush(); + bw.close(); + } catch (Exception e) { + log.info("excel瀵煎叆鐢熸垚閿欒鏃ュ織鏂囦欢寮傚父:" + e.getMessage()); + } + return saveDir + name + ".txt"; + } } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java index 0f6e662..40c7643 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaHoleToolsController.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,10 +12,21 @@ import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +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.common.util.oConvertUtils; +import org.jeecg.modules.tms.entity.BaseTools; import org.jeecg.modules.tms.entity.ParaHoleTools; +import org.jeecg.modules.tms.entity.ToolsClassify; +import org.jeecg.modules.tms.service.IBaseToolsService; import org.jeecg.modules.tms.service.IParaHoleToolsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -20,6 +34,8 @@ 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; @@ -36,125 +52,129 @@ import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; - /** +/** * @Description: tms_para_hole_tools * @Author: jeecg-boot - * @Date: 2025-05-12 + * @Date: 2025-05-12 * @Version: V1.0 */ -@Api(tags="tms_para_hole_tools") +@Api(tags = "tms_para_hole_tools") @RestController @RequestMapping("/tms/paraHoleTools") @Slf4j public class ParaHoleToolsController extends JeecgController<ParaHoleTools, IParaHoleToolsService> { - @Autowired - private IParaHoleToolsService paraHoleToolsService; - - /** - * 鍒嗛〉鍒楄〃鏌ヨ - * - * @param paraHoleTools - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "tms_para_hole_tools-鍒嗛〉鍒楄〃鏌ヨ") - @ApiOperation(value="tms_para_hole_tools-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_para_hole_tools-鍒嗛〉鍒楄〃鏌ヨ") - @GetMapping(value = "/list") - public Result<IPage<ParaHoleTools>> queryPageList(ParaHoleTools paraHoleTools, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper<ParaHoleTools> queryWrapper = QueryGenerator.initQueryWrapper(paraHoleTools, req.getParameterMap()); - Page<ParaHoleTools> page = new Page<ParaHoleTools>(pageNo, pageSize); - IPage<ParaHoleTools> pageList = paraHoleToolsService.page(page, queryWrapper); - return Result.OK(pageList); - } - - /** - * 娣诲姞 - * - * @param paraHoleTools - * @return - */ - @AutoLog(value = "tms_para_hole_tools-娣诲姞") - @ApiOperation(value="tms_para_hole_tools-娣诲姞", notes="tms_para_hole_tools-娣诲姞") - //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:add") - @PostMapping(value = "/add") - public Result<String> add(@RequestBody ParaHoleTools paraHoleTools) { - paraHoleToolsService.save(paraHoleTools); - return Result.OK("娣诲姞鎴愬姛锛�"); - } - - /** - * 缂栬緫 - * - * @param paraHoleTools - * @return - */ - @AutoLog(value = "tms_para_hole_tools-缂栬緫") - @ApiOperation(value="tms_para_hole_tools-缂栬緫", notes="tms_para_hole_tools-缂栬緫") - //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:edit") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result<String> edit(@RequestBody ParaHoleTools paraHoleTools) { - paraHoleToolsService.updateById(paraHoleTools); - return Result.OK("缂栬緫鎴愬姛!"); - } - - /** - * 閫氳繃id鍒犻櫎 - * - * @param id - * @return - */ - @AutoLog(value = "tms_para_hole_tools-閫氳繃id鍒犻櫎") - @ApiOperation(value="tms_para_hole_tools-閫氳繃id鍒犻櫎", notes="tms_para_hole_tools-閫氳繃id鍒犻櫎") - //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:delete") - @DeleteMapping(value = "/delete") - public Result<String> delete(@RequestParam(name="id",required=true) String id) { - paraHoleToolsService.removeById(id); - return Result.OK("鍒犻櫎鎴愬姛!"); - } - - /** - * 鎵归噺鍒犻櫎 - * - * @param ids - * @return - */ - @AutoLog(value = "tms_para_hole_tools-鎵归噺鍒犻櫎") - @ApiOperation(value="tms_para_hole_tools-鎵归噺鍒犻櫎", notes="tms_para_hole_tools-鎵归噺鍒犻櫎") - //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:deleteBatch") - @DeleteMapping(value = "/deleteBatch") - public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.paraHoleToolsService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); - } - - /** - * 閫氳繃id鏌ヨ - * - * @param id - * @return - */ - //@AutoLog(value = "tms_para_hole_tools-閫氳繃id鏌ヨ") - @ApiOperation(value="tms_para_hole_tools-閫氳繃id鏌ヨ", notes="tms_para_hole_tools-閫氳繃id鏌ヨ") - @GetMapping(value = "/queryById") - public Result<ParaHoleTools> queryById(@RequestParam(name="id",required=true) String id) { - ParaHoleTools paraHoleTools = paraHoleToolsService.getById(id); - if(paraHoleTools==null) { - return Result.error("鏈壘鍒板搴旀暟鎹�"); - } - return Result.OK(paraHoleTools); - } + @Autowired + private IParaHoleToolsService paraHoleToolsService; + @Autowired + private IToolsClassifyService toolsClassifyService; + @Autowired + private IBaseToolsService baseToolsService; /** - * 瀵煎嚭excel - * - * @param request - * @param paraHoleTools - */ + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param paraHoleTools + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "tms_para_hole_tools-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "tms_para_hole_tools-鍒嗛〉鍒楄〃鏌ヨ", notes = "tms_para_hole_tools-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<ParaHoleTools>> queryPageList(ParaHoleTools paraHoleTools, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<ParaHoleTools> queryWrapper = QueryGenerator.initQueryWrapper(paraHoleTools, req.getParameterMap()); + Page<ParaHoleTools> page = new Page<ParaHoleTools>(pageNo, pageSize); + IPage<ParaHoleTools> pageList = paraHoleToolsService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param paraHoleTools + * @return + */ + @AutoLog(value = "tms_para_hole_tools-娣诲姞") + @ApiOperation(value = "tms_para_hole_tools-娣诲姞", notes = "tms_para_hole_tools-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody ParaHoleTools paraHoleTools) { + paraHoleToolsService.save(paraHoleTools); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param paraHoleTools + * @return + */ + @AutoLog(value = "tms_para_hole_tools-缂栬緫") + @ApiOperation(value = "tms_para_hole_tools-缂栬緫", notes = "tms_para_hole_tools-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<String> edit(@RequestBody ParaHoleTools paraHoleTools) { + paraHoleToolsService.updateById(paraHoleTools); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "tms_para_hole_tools-閫氳繃id鍒犻櫎") + @ApiOperation(value = "tms_para_hole_tools-閫氳繃id鍒犻櫎", notes = "tms_para_hole_tools-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name = "id", required = true) String id) { + paraHoleToolsService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "tms_para_hole_tools-鎵归噺鍒犻櫎") + @ApiOperation(value = "tms_para_hole_tools-鎵归噺鍒犻櫎", notes = "tms_para_hole_tools-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.paraHoleToolsService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "tms_para_hole_tools-閫氳繃id鏌ヨ") + @ApiOperation(value = "tms_para_hole_tools-閫氳繃id鏌ヨ", notes = "tms_para_hole_tools-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<ParaHoleTools> queryById(@RequestParam(name = "id", required = true) String id) { + ParaHoleTools paraHoleTools = paraHoleToolsService.getById(id); + if (paraHoleTools == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(paraHoleTools); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param paraHoleTools + */ //@RequiresPermissions("org.jeecg.modules:tms_para_hole_tools:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, ParaHoleTools paraHoleTools) { @@ -162,16 +182,261 @@ } /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ //@RequiresPermissions("tms_para_hole_tools:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, ParaHoleTools.class); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + // 閿欒淇℃伅 + List<String> errorMessage = new ArrayList<>(); + int successLines = 0, errorLines = 0, dataLines = 0; + List<ParaHoleTools> paraHoleToolsImportList = 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) { + ParaHoleTools paraHoleTools = new ParaHoleTools(); + 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<ParaHoleTools> paraHoleToolsList = paraHoleToolsService.list(new LambdaQueryWrapper<ParaHoleTools>() + .eq(ParaHoleTools::getToolCode, baseTools.getId()) + .eq(ParaHoleTools::getToolModel, ExcelUtils.getCellValueAsString(cell9))); + if (CollectionUtil.isEmpty(paraHoleToolsList)) { + paraHoleTools.setClassifyId(toolsClassify.getId()); + paraHoleTools.setToolCode(baseTools.getId()); + paraHoleTools.setToolModel(ExcelUtils.getCellValueAsString(cell9)); + } else { + paraHoleTools = paraHoleToolsList.get(0); + } + } + } + + Cell cell0 = row.getCell(0); + paraHoleTools.setSignCode(cell0.getStringCellValue()); + Cell cell5 = row.getCell(5);//鐗╁搧涓枃鍚嶇О + if (cell5 == null || cell5.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鐗╁搧涓枃鍚嶇О涓虹┖! "); + errorLines++; + continue; + } else { + paraHoleTools.setChineseName(ExcelUtils.getCellValueAsString(cell5)); + } + Cell cell6 = row.getCell(6);//鐗╁搧澶栨枃鍚嶇О + paraHoleTools.setForeignLanguageName(ExcelUtils.getCellValueAsString(cell6)); + Cell cell7 = row.getCell(7);//鏍囧噯绾у埆 + paraHoleTools.setStandardLevel(ExcelUtils.getCellValueAsString(cell7)); + Cell cell8 = row.getCell(8);//鏍囧噯鍙� + paraHoleTools.setStandardCode(ExcelUtils.getCellValueAsString(cell8)); + Cell cell10 = row.getCell(10);//鍒�鍏风洿寰� + if (cell10 == null || cell10.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏风洿寰勪负绌�! "); + errorLines++; + continue; + } else { + paraHoleTools.setDiameter(ExcelUtils.getCellValueAsString(cell10)); + } + Cell cell11 = row.getCell(11);//鍒囧墛鍒冮敟瑙� + paraHoleTools.setConeAngle(ExcelUtils.getCellValueAsString(cell11)); + Cell cell12 = row.getCell(12);//鍒囧墛鍒冮暱 + if (cell12 == null || cell12.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒囧墛鍒冮暱涓虹┖! "); + errorLines++; + continue; + } else { + paraHoleTools.setEdgeLength(ExcelUtils.getCellValueAsString(cell12)); + } + Cell cell13 = row.getCell(13);//鍒�鍏锋�婚暱 + if (cell13 == null || cell13.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋�婚暱涓虹┖! "); + errorLines++; + continue; + } else { + paraHoleTools.setTotalLength(ExcelUtils.getCellValueAsString(cell13)); + } + Cell cell14 = row.getCell(14);//鍒�鍏锋潗鏂� + if (cell14 == null || cell14.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋潗鏂欎负绌�! "); + errorLines++; + continue; + } else { + paraHoleTools.setToolMaterial(ExcelUtils.getCellValueAsString(cell14)); + } + Cell cell15 = row.getCell(15);//闆朵欢鏉愭枡 + paraHoleTools.setPartMaterial(ExcelUtils.getCellValueAsString(cell15)); + Cell cell16 = row.getCell(16);//鏄惁娑傚眰 + if (cell16 == null || cell16.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏄惁娑傚眰涓虹┖! "); + errorLines++; + continue; + } else { + paraHoleTools.setPaintcoatFlag(ExcelUtils.getCellValueAsString(cell16)); + } + Cell cell17 = row.getCell(17);//鍒�鍏峰瀷寮� + if (cell17 == null || cell17.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏峰瀷寮忎负绌�! "); + errorLines++; + continue; + } else { + paraHoleTools.setToolPattern(ExcelUtils.getCellValueAsString(cell17)); + } + Cell cell18 = row.getCell(18);//鏌勯儴瑙勬牸 + if (cell18 == null || cell18.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏌勯儴瑙勬牸涓虹┖! "); + errorLines++; + continue; + } else { + paraHoleTools.setHandleSpecifications(ExcelUtils.getCellValueAsString(cell18)); + } + Cell cell19 = row.getCell(19);//鍐峰嵈鏂瑰紡 + if (cell19 == null || cell19.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍐峰嵈鏂瑰紡涓虹┖锛�"); + errorLines++; + continue; + } else { + paraHoleTools.setCoolingMethod(ExcelUtils.getCellValueAsString(cell19)); + } + Cell cell20 = row.getCell(20);//闄勫姞鎶�鏈潯浠� + if (cell20 == null || cell20.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,闄勫姞鎶�鏈潯浠朵负绌猴紒"); + errorLines++; + continue; + } else { + paraHoleTools.setTechnicalConditions(ExcelUtils.getCellValueAsString(cell20)); + } + Cell cell21 = row.getCell(21);//闄勫姞鎶�鏈潯浠惰鏄� + paraHoleTools.setConditionsInfo(ExcelUtils.getCellValueAsString(cell21)); + Cell cell22 = row.getCell(22);//鍝佺墝 + paraHoleTools.setBrand(ExcelUtils.getCellValueAsString(cell22)); + Cell cell23 = row.getCell(23);//鍒跺紡 + paraHoleTools.setTypes(ExcelUtils.getCellValueAsString(cell23)); + Cell cell24 = row.getCell(24);//鍏樊绛夌骇 + paraHoleTools.setToleranceClass(ExcelUtils.getCellValueAsString(cell24)); + Cell cell25 = row.getCell(25);//鎺掑睉妲藉舰寮� + paraHoleTools.setFluteForm(ExcelUtils.getCellValueAsString(cell25)); + Cell cell26 = row.getCell(26);//鏌勯儴褰㈠紡 + paraHoleTools.setHandleForm(ExcelUtils.getCellValueAsString(cell26)); + Cell cell27 = row.getCell(27);//鍒冩暟 + paraHoleTools.setBladeCount(ExcelUtils.getCellValueAsString(cell27)); + Cell cell28 = row.getCell(28);//鏈�灏忕洿寰� + paraHoleTools.setSmallDiameter(ExcelUtils.getCellValueAsString(cell28)); + Cell cell29 = row.getCell(29);//鍊掕瑙掑害 + paraHoleTools.setChamferAngle(ExcelUtils.getCellValueAsString(cell29)); + Cell cell30 = row.getCell(30);//閫傞厤鍒�鐗�-鍒�澶�-鍒�鏉� + paraHoleTools.setFitterPart(ExcelUtils.getCellValueAsString(cell30)); + Cell cell31 = row.getCell(31);//鏈夋晥鍔犲伐闀垮害 + paraHoleTools.setEffectiveLength(ExcelUtils.getCellValueAsString(cell31)); + Cell cell32 = row.getCell(32);//閽诲ご鐩村緞鑼冨洿 + paraHoleTools.setDrillDiameterRange(ExcelUtils.getCellValueAsString(cell32)); + Cell cell33 = row.getCell(33);//鍒�鏉嗙洿寰� + paraHoleTools.setKnifeDiameter(ExcelUtils.getCellValueAsString(cell33)); + Cell cell34 = row.getCell(34);//瀛斿緞 + paraHoleTools.setBoreDiameter(ExcelUtils.getCellValueAsString(cell34)); + Cell cell35 = row.getCell(35);//鎺ュ彛褰㈠紡 + paraHoleTools.setConnectorType(ExcelUtils.getCellValueAsString(cell35)); + Cell cell36 = row.getCell(36);//鎺ュ彛妲介暱瑙勬牸 + paraHoleTools.setSlotSpecification(ExcelUtils.getCellValueAsString(cell36)); + Cell cell37 = row.getCell(37);//閫傜敤鑼冨洿 + paraHoleTools.setScopeOfApplication(ExcelUtils.getCellValueAsString(cell37)); + Cell cell38 = row.getCell(38);//鏈�灏忛晽瀛旂洿寰� + paraHoleTools.setLatestBoringDiameter(ExcelUtils.getCellValueAsString(cell38)); + Cell cell39 = row.getCell(39);//鏈�澶ч晽瀛旂洿寰� + paraHoleTools.setMaxBoringDiameter(ExcelUtils.getCellValueAsString(cell39)); + Cell cell40 = row.getCell(40);//鍔犲伐鏂瑰紡 + paraHoleTools.setProcessingmethod(ExcelUtils.getCellValueAsString(cell40)); + Cell cell41 = row.getCell(41);//鍒�澶存暟 + paraHoleTools.setHeadsNumber(ExcelUtils.getCellValueAsString(cell41)); + Cell cell42 = row.getCell(42);//閫傞厤鍒�搴� + paraHoleTools.setAdaptHolder(ExcelUtils.getCellValueAsString(cell42)); + + paraHoleToolsImportList.add(paraHoleTools); + successLines++; + } + } + paraHoleToolsService.saveOrUpdateBatch(paraHoleToolsImportList); + 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); + } } } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java index cc51f5b..beee8d9 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java @@ -1,5 +1,9 @@ package org.jeecg.modules.tms.controller; +import java.io.File; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -9,10 +13,22 @@ import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +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.common.util.oConvertUtils; +import org.jeecg.modules.tms.entity.BaseTools; +import org.jeecg.modules.tms.entity.ParaHoleTools; import org.jeecg.modules.tms.entity.ParaThreadingTool; +import org.jeecg.modules.tms.entity.ToolsClassify; +import org.jeecg.modules.tms.service.IBaseToolsService; import org.jeecg.modules.tms.service.IParaThreadingToolService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -20,6 +36,8 @@ 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; @@ -36,125 +54,129 @@ import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; - /** +/** * @Description: tms_para_threading_tool * @Author: jeecg-boot - * @Date: 2025-05-12 + * @Date: 2025-05-12 * @Version: V1.0 */ -@Api(tags="tms_para_threading_tool") +@Api(tags = "tms_para_threading_tool") @RestController @RequestMapping("/tms/paraThreadingTool") @Slf4j public class ParaThreadingToolController extends JeecgController<ParaThreadingTool, IParaThreadingToolService> { - @Autowired - private IParaThreadingToolService paraThreadingToolService; - - /** - * 鍒嗛〉鍒楄〃鏌ヨ - * - * @param paraThreadingTool - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ") - @ApiOperation(value="tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ") - @GetMapping(value = "/list") - public Result<IPage<ParaThreadingTool>> queryPageList(ParaThreadingTool paraThreadingTool, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper<ParaThreadingTool> queryWrapper = QueryGenerator.initQueryWrapper(paraThreadingTool, req.getParameterMap()); - Page<ParaThreadingTool> page = new Page<ParaThreadingTool>(pageNo, pageSize); - IPage<ParaThreadingTool> pageList = paraThreadingToolService.page(page, queryWrapper); - return Result.OK(pageList); - } - - /** - * 娣诲姞 - * - * @param paraThreadingTool - * @return - */ - @AutoLog(value = "tms_para_threading_tool-娣诲姞") - @ApiOperation(value="tms_para_threading_tool-娣诲姞", notes="tms_para_threading_tool-娣诲姞") - //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:add") - @PostMapping(value = "/add") - public Result<String> add(@RequestBody ParaThreadingTool paraThreadingTool) { - paraThreadingToolService.save(paraThreadingTool); - return Result.OK("娣诲姞鎴愬姛锛�"); - } - - /** - * 缂栬緫 - * - * @param paraThreadingTool - * @return - */ - @AutoLog(value = "tms_para_threading_tool-缂栬緫") - @ApiOperation(value="tms_para_threading_tool-缂栬緫", notes="tms_para_threading_tool-缂栬緫") - //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:edit") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result<String> edit(@RequestBody ParaThreadingTool paraThreadingTool) { - paraThreadingToolService.updateById(paraThreadingTool); - return Result.OK("缂栬緫鎴愬姛!"); - } - - /** - * 閫氳繃id鍒犻櫎 - * - * @param id - * @return - */ - @AutoLog(value = "tms_para_threading_tool-閫氳繃id鍒犻櫎") - @ApiOperation(value="tms_para_threading_tool-閫氳繃id鍒犻櫎", notes="tms_para_threading_tool-閫氳繃id鍒犻櫎") - //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:delete") - @DeleteMapping(value = "/delete") - public Result<String> delete(@RequestParam(name="id",required=true) String id) { - paraThreadingToolService.removeById(id); - return Result.OK("鍒犻櫎鎴愬姛!"); - } - - /** - * 鎵归噺鍒犻櫎 - * - * @param ids - * @return - */ - @AutoLog(value = "tms_para_threading_tool-鎵归噺鍒犻櫎") - @ApiOperation(value="tms_para_threading_tool-鎵归噺鍒犻櫎", notes="tms_para_threading_tool-鎵归噺鍒犻櫎") - //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:deleteBatch") - @DeleteMapping(value = "/deleteBatch") - public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.paraThreadingToolService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); - } - - /** - * 閫氳繃id鏌ヨ - * - * @param id - * @return - */ - //@AutoLog(value = "tms_para_threading_tool-閫氳繃id鏌ヨ") - @ApiOperation(value="tms_para_threading_tool-閫氳繃id鏌ヨ", notes="tms_para_threading_tool-閫氳繃id鏌ヨ") - @GetMapping(value = "/queryById") - public Result<ParaThreadingTool> queryById(@RequestParam(name="id",required=true) String id) { - ParaThreadingTool paraThreadingTool = paraThreadingToolService.getById(id); - if(paraThreadingTool==null) { - return Result.error("鏈壘鍒板搴旀暟鎹�"); - } - return Result.OK(paraThreadingTool); - } + @Autowired + private IParaThreadingToolService paraThreadingToolService; + @Autowired + private IToolsClassifyService toolsClassifyService; + @Autowired + private IBaseToolsService baseToolsService; /** - * 瀵煎嚭excel - * - * @param request - * @param paraThreadingTool - */ + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param paraThreadingTool + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ", notes = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<ParaThreadingTool>> queryPageList(ParaThreadingTool paraThreadingTool, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<ParaThreadingTool> queryWrapper = QueryGenerator.initQueryWrapper(paraThreadingTool, req.getParameterMap()); + Page<ParaThreadingTool> page = new Page<ParaThreadingTool>(pageNo, pageSize); + IPage<ParaThreadingTool> pageList = paraThreadingToolService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param paraThreadingTool + * @return + */ + @AutoLog(value = "tms_para_threading_tool-娣诲姞") + @ApiOperation(value = "tms_para_threading_tool-娣诲姞", notes = "tms_para_threading_tool-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody ParaThreadingTool paraThreadingTool) { + paraThreadingToolService.save(paraThreadingTool); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param paraThreadingTool + * @return + */ + @AutoLog(value = "tms_para_threading_tool-缂栬緫") + @ApiOperation(value = "tms_para_threading_tool-缂栬緫", notes = "tms_para_threading_tool-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<String> edit(@RequestBody ParaThreadingTool paraThreadingTool) { + paraThreadingToolService.updateById(paraThreadingTool); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "tms_para_threading_tool-閫氳繃id鍒犻櫎") + @ApiOperation(value = "tms_para_threading_tool-閫氳繃id鍒犻櫎", notes = "tms_para_threading_tool-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name = "id", required = true) String id) { + paraThreadingToolService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "tms_para_threading_tool-鎵归噺鍒犻櫎") + @ApiOperation(value = "tms_para_threading_tool-鎵归噺鍒犻櫎", notes = "tms_para_threading_tool-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.paraThreadingToolService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "tms_para_threading_tool-閫氳繃id鏌ヨ") + @ApiOperation(value = "tms_para_threading_tool-閫氳繃id鏌ヨ", notes = "tms_para_threading_tool-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<ParaThreadingTool> queryById(@RequestParam(name = "id", required = true) String id) { + ParaThreadingTool paraThreadingTool = paraThreadingToolService.getById(id); + if (paraThreadingTool == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(paraThreadingTool); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param paraThreadingTool + */ //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, ParaThreadingTool paraThreadingTool) { @@ -162,16 +184,250 @@ } /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ //@RequiresPermissions("tms_para_threading_tool:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, ParaThreadingTool.class); - } + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + // 閿欒淇℃伅 + List<String> errorMessage = new ArrayList<>(); + int successLines = 0, errorLines = 0, dataLines = 0; + List<ParaThreadingTool> paraThreadingToolImportList = 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) { + ParaThreadingTool paraThreadingTool = new ParaThreadingTool(); + 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<ParaThreadingTool> paraThreadingToolList = paraThreadingToolService.list(new LambdaQueryWrapper<ParaThreadingTool>() + .eq(ParaThreadingTool::getToolCode, baseTools.getId()) + .eq(ParaThreadingTool::getToolModel, ExcelUtils.getCellValueAsString(cell9))); + if (CollectionUtil.isEmpty(paraThreadingToolList)) { + paraThreadingTool.setClassifyId(toolsClassify.getId()); + paraThreadingTool.setToolCode(baseTools.getId()); + paraThreadingTool.setToolModel(ExcelUtils.getCellValueAsString(cell9)); + } else { + paraThreadingTool = paraThreadingToolList.get(0); + } + } + } + Cell cell0 = row.getCell(0);//搴忓彿(鎴栦紒涓氬唴鍘熶唬鐮�) + paraThreadingTool.setSignCode(ExcelUtils.getCellValueAsString(cell0)); + Cell cell5 = row.getCell(5);//鐗╁搧涓枃鍚嶇О + if (cell5 == null || cell5.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鐗╁搧涓枃鍚嶇О涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setChineseName(ExcelUtils.getCellValueAsString(cell5)); + } + Cell cell6 = row.getCell(6);//鐗╁搧澶栨枃鍚嶇О + paraThreadingTool.setForeignLanguageName(ExcelUtils.getCellValueAsString(cell6)); + Cell cell7 = row.getCell(7);//鏍囧噯绾у埆 + paraThreadingTool.setStandardLevel(ExcelUtils.getCellValueAsString(cell7)); + Cell cell8 = row.getCell(8);//鏍囧噯鍙� + paraThreadingTool.setStandardCode(ExcelUtils.getCellValueAsString(cell8)); + Cell cell10 = row.getCell(10);//铻虹汗浠e彿 + if (cell10 == null || cell10.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻虹汗浠e彿涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setThreadCode(ExcelUtils.getCellValueAsString(cell10)); + } + Cell cell11 = row.getCell(11);//铻鸿窛 + if (cell11 == null || cell11.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻鸿窛涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setPitch(ExcelUtils.getCellValueAsString(cell11)); + } + + Cell cell12 = row.getCell(12);//铻虹汗鏃嬪悜 + if (cell12 == null || cell12.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻虹汗鏃嬪悜涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setRotationDirection(ExcelUtils.getCellValueAsString(cell12)); + } + Cell cell13 = row.getCell(13);//铻虹汗鍏樊甯︿唬鍙�/绮惧害绛夌骇 + if (cell13 == null || cell13.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻虹汗鍏樊甯︿唬鍙�/绮惧害绛夌骇涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setTolerancezoneLevel(ExcelUtils.getCellValueAsString(cell13)); + } + Cell cell14 = row.getCell(14);//鍒囧墛鍒冮暱 + if (cell14 == null || cell14.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒囧墛鍒冮暱涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setEdgeLength(ExcelUtils.getCellValueAsString(cell14)); + } + Cell cell15 = row.getCell(15);//鍒�鍏锋�婚暱 + if (cell15 == null || cell15.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋�婚暱涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setTotalLength(ExcelUtils.getCellValueAsString(cell15)); + } + + Cell cell16 = row.getCell(16);//鍒�鍏锋潗鏂� + if (cell16 == null || cell16.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋潗鏂欎负绌�! "); + errorLines++; + continue; + } else { + paraThreadingTool.setToolMaterial(ExcelUtils.getCellValueAsString(cell16)); + } + Cell cell17 = row.getCell(17);//闆朵欢鏉愭枡 + paraThreadingTool.setPartMaterial(ExcelUtils.getCellValueAsString(cell17)); + Cell cell18 = row.getCell(18);//鏄惁娑傚眰 + if (cell18 == null || cell18.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏄惁娑傚眰涓虹┖! "); + errorLines++; + continue; + } else { + paraThreadingTool.setPaintcoatFlag(ExcelUtils.getCellValueAsString(cell18)); + } + Cell cell19 = row.getCell(19);//澶栧舰灏哄 + paraThreadingTool.setExternalDimensions(ExcelUtils.getCellValueAsString(cell19)); + Cell cell20 = row.getCell(20);//鏌勯儴瑙勬牸 + if (cell20 == null || cell20.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏌勯儴瑙勬牸涓虹┖锛�"); + errorLines++; + continue; + } else { + paraThreadingTool.setHandleSpecifications(ExcelUtils.getCellValueAsString(cell20)); + } + Cell cell21 = row.getCell(21);//闄勫姞鎶�鏈潯浠� + if (cell21 == null || cell21.getCellType() == CellType.BLANK) { + errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,闄勫姞鎶�鏈潯浠朵负绌猴紒"); + errorLines++; + continue; + } else { + paraThreadingTool.setTechnicalConditions(ExcelUtils.getCellValueAsString(cell21)); + } + + Cell cell22 = row.getCell(22);//闄勫姞鎶�鏈潯浠惰鏄� + paraThreadingTool.setConditionsInfo(ExcelUtils.getCellValueAsString(cell22)); + Cell cell23 = row.getCell(23);//鍝佺墝 + paraThreadingTool.setBrand(ExcelUtils.getCellValueAsString(cell23)); + Cell cell24 = row.getCell(24);//鍒跺紡 + paraThreadingTool.setTypes(ExcelUtils.getCellValueAsString(cell24)); + Cell cell25 = row.getCell(25);//铻哄瓟绫诲瀷 + paraThreadingTool.setScrewHoleType(ExcelUtils.getCellValueAsString(cell25)); + Cell cell26 = row.getCell(26);//鍐峰嵈鏂瑰紡 + paraThreadingTool.setCoolingMethod(ExcelUtils.getCellValueAsString(cell26)); + Cell cell27 = row.getCell(27);//铻虹汗鏍囧噯 + paraThreadingTool.setThreadStandard(ExcelUtils.getCellValueAsString(cell27)); + Cell cell28 = row.getCell(28);//鎺掑睉妲藉瀷 + paraThreadingTool.setFluteSoltType(ExcelUtils.getCellValueAsString(cell28)); + Cell cell29 = row.getCell(29);//铻虹汗绫诲瀷 + paraThreadingTool.setThreadType(ExcelUtils.getCellValueAsString(cell29)); + Cell cell30 = row.getCell(30);//瀵煎悜灏哄 + paraThreadingTool.setGuidingSize(ExcelUtils.getCellValueAsString(cell30)); + Cell cell31 = row.getCell(31);//杩炴帴瀛斿緞 + paraThreadingTool.setConnectionAperture(ExcelUtils.getCellValueAsString(cell31)); + Cell cell32 = row.getCell(32);//杩炴帴閿Ы + paraThreadingTool.setConnectingKeyway(ExcelUtils.getCellValueAsString(cell32)); + + paraThreadingToolImportList.add(paraThreadingTool); + successLines++; + } + } + paraThreadingToolService.saveOrUpdateBatch(paraThreadingToolImportList); + 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); + } + } + } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaHoleTools.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaHoleTools.java index 0cd19ac..ba75d1f 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaHoleTools.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaHoleTools.java @@ -200,6 +200,10 @@ @Excel(name = "鍒�澶存暟", width = 15) @ApiModelProperty(value = "鍒�澶存暟") private String headsNumber; + /**閫傞厤鍒�搴�*/ + @Excel(name = "閫傞厤鍒�搴�", width = 15) + @ApiModelProperty(value = "閫傞厤鍒�搴�") + private String adaptHolder; /**澶囨敞*/ @Excel(name = "澶囨敞", width = 15) @ApiModelProperty(value = "澶囨敞") @@ -213,9 +217,9 @@ @ApiModelProperty(value = "鍒涘缓浜�") private String createdBy; /**鍒涘缓鏃堕棿*/ - @Excel(name = "鍒涘缓鏃堕棿", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @Excel(name = "鍒涘缓鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "鍒涘缓鏃堕棿") private Date createdTime; /**鏇存柊浜�*/ @@ -223,9 +227,9 @@ @ApiModelProperty(value = "鏇存柊浜�") private String updatedBy; /**鏇存柊鏃堕棿*/ - @Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "鏇存柊鏃堕棿") private Date updatedTime; } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java index 9ccd4be..ca2dbb9 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ParaThreadingTool.java @@ -43,7 +43,7 @@ /**宸ュ叿缂栧彿*/ @Excel(name = "宸ュ叿缂栧彿", width = 15) @ApiModelProperty(value = "宸ュ叿缂栧彿") - private String toolId; + private String toolCode; /**搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�*/ @Excel(name = "搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�", width = 15) @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�") diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/ExcelUtils.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/ExcelUtils.java new file mode 100644 index 0000000..0408ee0 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/ExcelUtils.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.tms.utils; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Row; + +import java.text.SimpleDateFormat; + +public class ExcelUtils { + // 杈呭姪鏂规硶锛氭牴鎹崟鍏冩牸绫诲瀷瀹夊叏鍦拌幏鍙栧瓧绗︿覆鍊� + public static String getCellValueAsString(Cell cell) { + if (cell == null) { + return null; + } + switch (cell.getCellType()) { + case STRING: + return cell.getStringCellValue(); + case NUMERIC: + if (DateUtil.isCellDateFormatted(cell)) { + // 濡傛灉鏄棩鏈熸牸寮忥紝杩斿洖鏃ユ湡瀛楃涓� + return new SimpleDateFormat("yyyy-MM-dd").format(cell.getDateCellValue()); + } else { + // 鍚﹀垯杩斿洖鏁板�肩殑瀛楃涓插舰寮� + return String.valueOf(cell.getNumericCellValue()); + } + case BOOLEAN: + return String.valueOf(cell.getBooleanCellValue()); + case FORMULA: + try { + return String.valueOf(cell.getNumericCellValue()); // 灏濊瘯瑙f瀽鍏紡缁撴灉 + } catch (Exception e) { + return String.valueOf(cell.getStringCellValue()); // 濡傛灉鍏紡缁撴灉涓哄瓧绗︿覆 + } + default: + return ""; + } + } + + // 鍒ゆ柇鏌愪竴琛屾槸鍚﹀叏涓虹┖(鏈夋晥鏁版嵁琛屽垽鏂�) + public static boolean isRowEmpty(Row row) { + if (row == null) return true; + for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) { + Cell cell = row.getCell(c); + if (cell != null && cell.getCellType() != CellType.BLANK) { + return false; + } + } + return true; + } +} -- Gitblit v1.9.3