From 18016ce1447b85d5ccbb873ef58c0ac79245b464 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 07 七月 2025 21:37:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java | 490 +++++++++++++++--------------------------------------- 1 files changed, 137 insertions(+), 353 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java index e8d2bc8..754130c 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java @@ -6,31 +6,22 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; + import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.exception.JeecgBootException; + import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.eam.constant.BusinessCodeConst; -import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; + import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; -import org.jeecg.modules.eam.dto.MaintenanceStandardImport; -import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport; -import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport; -import org.jeecg.modules.eam.dto.WeekMaintenanceStandardImport; -import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamMaintenanceStandard; -import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; + import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -38,10 +29,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; /** * @Description: 淇濆吇鏍囧噯 @@ -63,23 +51,25 @@ /** * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹� + * * @param id * @return */ @ApiOperation(value = "淇濆吇鏍囧噯-娴佺▼鍚姩淇濆瓨瀵瑰簲鐨勬暟鎹�", notes = "淇濆吇鏍囧噯-娴佺▼鍚姩淇濆瓨瀵瑰簲鐨勬暟鎹�") @GetMapping(value = "/saveEamMaintenanceStandardProcess") - public Result<?> saveEamMaintenanceStandardProcess(String id){ + public Result<?> saveEamMaintenanceStandardProcess(String id) { return eamMaintenanceStandardService.saveEamMaintenanceStandardProcess(id); } /** * 娴佺▼瀹℃牳 + * * @param eamMaintenanceStandardVo * @return */ @ApiOperation(value = "淇濆吇鏍囧噯-娴佺▼瀹℃牳", notes = "淇濆吇鏍囧噯-娴佺▼瀹℃牳") @PostMapping(value = "/audit") - public Result<?> auditEamMaintenanceStandard(@RequestBody EamMaintenanceStandardVo eamMaintenanceStandardVo){ + public Result<?> auditEamMaintenanceStandard(@RequestBody EamMaintenanceStandardVo eamMaintenanceStandardVo) { return eamMaintenanceStandardService.auditEamMaintenanceStandard(eamMaintenanceStandardVo); } @@ -179,7 +169,8 @@ /** * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 - * @param keyword 璁惧缂栧彿 + * + * @param keyword 璁惧缂栧彿 * @param maintenanceCategory 淇濆吇绫诲瀷 * @return */ @@ -243,7 +234,8 @@ List<String> list = Arrays.asList(ids.split(",")); list.forEach(id -> { EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); - if (entity != null) { + if (entity != null&&entity.getStandardStatus().equals(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name())) { + //鍙垹闄ょ姸鎬佷负寰呮彁浜ょ殑 entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamMaintenanceStandardService.updateById(entity); } @@ -275,358 +267,150 @@ return super.exportXls(request, eamMaintenanceStandard, EamMaintenanceStandard.class, "淇濆吇鏍囧噯"); } - @PostMapping("/import") - public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); - for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { - // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 - MultipartFile file = entity.getValue(); - eamMaintenanceStandardService.importPointInspectionExcel(file); - } - return Result.ok("瀵煎叆鎴愬姛"); - } - /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/inspectionImportExcel", method = RequestMethod.POST) - public Result<?> inspectionImportExcel(HttpServletRequest request, HttpServletResponse response) { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); - for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { - // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 - MultipartFile file = entity.getValue(); - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setSheetNum(1); - params.setNeedSave(true); - EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); - try { - //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑 - readExcel(file, standardRequest); - EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode()); - if(equipment == null) { - log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode()); - continue; - } - standardRequest.setStandardName(standardRequest.getEquipmentName() + "鐐规鏍囧噯"); - standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name()); - standardRequest.setEquipmentId(equipment.getId()); - //璇诲彇淇濆吇鏄庣粏鍐呭 - List<MaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), MaintenanceStandardImport.class, params); - //鏄庣粏椤� - List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); - standardRequest.setTableDetailList(tableList); - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); - standardRequest.setStandardCode(codeSeq); - boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); - if (!b) { - log.error("淇濆瓨澶辫触锛� {}", standardRequest.getEquipmentCode()); - } - } catch (Exception e) { - //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - String msg = e.getMessage(); - log.error("鏂囦欢 {} 澶勭悊寮傚父锛� {}", file.getOriginalFilename(), msg, e); - //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - } finally { - try { - file.getInputStream().close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�"); - } - - /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/weekMaintenanceImportExcel", method = RequestMethod.POST) - public Result<?> weekMaintenanceImportExcel(HttpServletRequest request, HttpServletResponse response) { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); - for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { - // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 - MultipartFile file = entity.getValue(); - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setSheetNum(1); - params.setNeedSave(true); - EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); - try { - //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑 - readWeekExcel(file, standardRequest); - EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode()); - if(equipment == null) { - log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode()); - continue; - } - standardRequest.setStandardName(standardRequest.getEquipmentName() + "鍛ㄤ繚鏍囧噯"); - standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.WEEK_MAINTENANCE.name()); - standardRequest.setEquipmentId(equipment.getId()); - //璇诲彇淇濆吇鏄庣粏鍐呭 - List<WeekMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), WeekMaintenanceStandardImport.class, params); - //鏄庣粏椤� - List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); - standardRequest.setTableDetailList(tableList); - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); - standardRequest.setStandardCode(codeSeq); - boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); - if (!b) { - log.error("淇濆瓨澶辫触锛� {}", standardRequest.getEquipmentCode()); - } - } catch (Exception e) { - //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - String msg = e.getMessage(); - log.error("鏂囦欢 {} 澶勭悊寮傚父锛� {}", file.getOriginalFilename(), msg, e); - //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - } finally { - try { - file.getInputStream().close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�"); - } - - /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/secondMaintenanceImportExcel", method = RequestMethod.POST) - public Result<?> secondMaintenanceImportExcel(HttpServletRequest request, HttpServletResponse response) { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); - for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { - // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 - MultipartFile file = entity.getValue(); - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setSheetNum(1); - params.setNeedSave(true); - EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); - try { - //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑 - readWeekExcel(file, standardRequest); - EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode()); - if(equipment == null) { - log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode()); - continue; - } - standardRequest.setStandardName(standardRequest.getEquipmentName() + "浜屼繚鏍囧噯"); - standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.SECOND_MAINTENANCE.name()); - standardRequest.setEquipmentId(equipment.getId()); - //璇诲彇淇濆吇鏄庣粏鍐呭 - List<SecondMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), SecondMaintenanceStandardImport.class, params); - //鏄庣粏椤� - List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); - standardRequest.setTableDetailList(tableList); - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); - standardRequest.setStandardCode(codeSeq); - boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); - if (!b) { - log.error("淇濆瓨澶辫触锛� {}", standardRequest.getEquipmentCode()); - } - } catch (Exception e) { - //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - String msg = e.getMessage(); - log.error("鏂囦欢 {} 澶勭悊寮傚父锛� {}", file.getOriginalFilename(), msg, e); - //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - } finally { - try { - file.getInputStream().close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�"); - } - - /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/thirdMaintenanceImportExcel", method = RequestMethod.POST) - public Result<?> thirdMaintenanceImportExcel(HttpServletRequest request, HttpServletResponse response) { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); - for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { - // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 - MultipartFile file = entity.getValue(); - ImportParams params = new ImportParams(); - params.setTitleRows(2); - params.setHeadRows(1); - params.setSheetNum(1); - params.setNeedSave(true); - EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); - try { - //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑 - readWeekExcel(file, standardRequest); - EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode()); - if(equipment == null) { - log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode()); - continue; - } - standardRequest.setStandardName(standardRequest.getEquipmentName() + "涓変繚鏍囧噯"); - standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.THIRD_MAINTENANCE.name()); - standardRequest.setEquipmentId(equipment.getId()); - //璇诲彇淇濆吇鏄庣粏鍐呭 - List<ThirdMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), ThirdMaintenanceStandardImport.class, params); - //鏄庣粏椤� - List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); - standardRequest.setTableDetailList(tableList); - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); - standardRequest.setStandardCode(codeSeq); - boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); - if (!b) { - log.error("淇濆瓨澶辫触锛� {}", standardRequest.getEquipmentCode()); - } - } catch (Exception e) { - //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - String msg = e.getMessage(); - log.error("鏂囦欢 {} 澶勭悊寮傚父锛� {}", file.getOriginalFilename(), msg, e); - //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず - } finally { - try { - file.getInputStream().close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�"); - } - - /** - * 璇诲彇Excel 绗竴琛岋紝 绗簩琛岀殑淇℃伅锛屽寘鎷浘鐗囦俊鎭� - * @param file - * @param request - */ - private void readExcel(MultipartFile file, EamMaintenanceStandardRequest request) { - Workbook book = null; - boolean isXSSFWorkbook = false; + * 鐐规瀵煎叆 + */ + @PostMapping("/importPointInspection") + public Result<?> importPointInspectionExcel(HttpServletRequest request) { try { - book = WorkbookFactory.create(file.getInputStream()); - if (book instanceof XSSFWorkbook) { - isXSSFWorkbook = true; + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + + Map<String, String> results = new LinkedHashMap<>(); + int successCount = 0; + int failureCount = 0; + + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue(); + String fileName = file.getOriginalFilename(); + + Result<?> importResult = eamMaintenanceStandardService.importPointInspectionExcel(file); + + if (importResult.isSuccess()) { + results.put(fileName, "鎴愬姛: " + importResult.getMessage()); + successCount++; + } else { + results.put(fileName, "澶辫触: " + importResult.getMessage()); + failureCount++; + } } - Sheet sheet = book.getSheetAt(0); - //绗竴琛岃鍙� - Row row = sheet.getRow(0); - //璁惧缂栫爜 - Cell equipmentCode = row.getCell(15); - if(CellType.NUMERIC.equals(equipmentCode.getCellType())) { - request.setEquipmentCode(String.valueOf((int) equipmentCode.getNumericCellValue())); - }else if(CellType.STRING.equals(equipmentCode.getCellType())) { - request.setEquipmentCode(equipmentCode.getStringCellValue()); - } - if (StringUtils.isBlank(request.getEquipmentCode())) { - throw new JeecgBootException("Excel銆� " + file.getOriginalFilename() + "銆戞病鏈夎鍙栧埌璁惧缂栧彿锛屽鍏ュけ璐ワ紒"); - } - //鍒濆鏃ユ湡 - Cell initialDate = row.getCell(11); - if (DateUtil.isCellDateFormatted(initialDate)) { - request.setInitialDate(initialDate.getDateCellValue()); - } else { - request.setInitialDate(new Date()); - } - //璁惧鍚嶇О - Cell equipmentName = row.getCell(13); - request.setEquipmentName(equipmentName.getStringCellValue()); + // 鏋勫缓鍝嶅簲 + Map<String, Object> response = new HashMap<>(); + response.put("results", results); + response.put("totalFiles", fileMap.size()); + response.put("successCount", successCount); + response.put("failureCount", failureCount); - //绗簩琛岃鍙� - row = sheet.getRow(1); - //淇濆吇鍛ㄦ湡 - Cell period = row.getCell(11); - if (CellType.NUMERIC.equals(period.getCellType())) { - request.setMaintenancePeriod((int) period.getNumericCellValue()); + if (failureCount == 0) { + return Result.ok("鎵�鏈夌偣妫�鏂囦欢瀵煎叆鎴愬姛"+response); + } else if (successCount == 0) { + return Result.error("鎵�鏈夌偣妫�鏂囦欢瀵煎叆澶辫触", response); } else { - //榛樿鐐规鍛ㄦ湡 1 - request.setMaintenancePeriod(1); + return Result.error("閮ㄥ垎鐐规鏂囦欢瀵煎叆澶辫触", response); } - //鏂囦欢缂栫爜 - Cell fileCode = row.getCell(13); - request.setFileCode(fileCode.getStringCellValue()); + } catch (Exception e) { - log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e); + log.error("鐐规瀵煎叆澶勭悊寮傚父", e); + return Result.error("鐐规瀵煎叆澶勭悊澶辫触: " + e.getMessage()); + } + } + + + /** + * 浜屼繚瀵煎叆 + */ + @PostMapping("/importSecondMaintenanceStandard") + public Result<?> importSecondMaintenanceStandard(HttpServletRequest request) { + try { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, String> results = new LinkedHashMap<>(); + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + + // 缁熻瀵煎叆缁撴灉 + int successCount = 0; + int failureCount = 0; + + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue(); + String fileName = file.getOriginalFilename(); + + Result<?> importResult = eamMaintenanceStandardService.importMaintenanceStandard(file, "SECOND"); + + if (importResult.isSuccess()) { + results.put(fileName, "鎴愬姛: " + importResult.getMessage()); + successCount++; + } else { + results.put(fileName, "澶辫触: " + importResult.getMessage()); + failureCount++; + } + } + + // 鏋勫缓鏈�缁堝搷搴� + Map<String, Object> response = new HashMap<>(); + response.put("results", results); + response.put("totalFiles", fileMap.size()); + response.put("successCount", successCount); + response.put("failureCount", failureCount); + + if (failureCount > 0) { + return Result.error("閮ㄥ垎鏂囦欢瀵煎叆澶辫触", response); + } + + return Result.ok("鎵�鏈夋枃浠跺鍏ユ垚鍔�"+response); + + } catch (Exception e) { + log.error("瀵煎叆澶勭悊寮傚父", e); + return Result.error("瀵煎叆澶勭悊澶辫触: " + e.getMessage()); } } /** - * 璇诲彇Excel 绗竴琛岋紝 绗簩琛岀殑淇℃伅 - * @param file - * @param request + * 涓変繚瀵煎叆 */ - public void readWeekExcel(MultipartFile file, EamMaintenanceStandardRequest request) { - Workbook book = null; - boolean isXSSFWorkbook = false; + @PostMapping("/importThirdMaintenanceStandard") + public Result<?> importThirdMaintenanceStandard(HttpServletRequest request) { try { - book = WorkbookFactory.create(file.getInputStream()); - if (book instanceof XSSFWorkbook) { - isXSSFWorkbook = true; + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, String> results = new LinkedHashMap<>(); + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + + // 缁熻瀵煎叆缁撴灉 + int successCount = 0; + int failureCount = 0; + + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue(); + String fileName = file.getOriginalFilename(); + + Result<?> importResult = eamMaintenanceStandardService.importMaintenanceStandard(file, "THIRD"); + + if (importResult.isSuccess()) { + results.put(fileName, "鎴愬姛: " + importResult.getMessage()); + successCount++; + } else { + results.put(fileName, "澶辫触: " + importResult.getMessage()); + failureCount++; + } } - Sheet sheet = book.getSheetAt(0); - //绗竴琛岃鍙� - Row row = sheet.getRow(0); - //璁惧缂栫爜 - Cell equipmentCode = row.getCell(10); - if(CellType.NUMERIC.equals(equipmentCode.getCellType())) { - request.setEquipmentCode(String.valueOf((int) equipmentCode.getNumericCellValue())); - }else if(CellType.STRING.equals(equipmentCode.getCellType())) { - request.setEquipmentCode(equipmentCode.getStringCellValue()); - } - if (StringUtils.isBlank(request.getEquipmentCode())) { - throw new JeecgBootException("Excel銆� " + file.getOriginalFilename() + "銆戞病鏈夎鍙栧埌璁惧缂栧彿锛屽鍏ュけ璐ワ紒"); - } - //鍒濆鏃ユ湡 - Cell initialDate = row.getCell(6); - if (DateUtil.isCellDateFormatted(initialDate)) { - request.setInitialDate(initialDate.getDateCellValue()); - } else { - request.setInitialDate(new Date()); - } - //璁惧鍚嶇О - Cell equipmentName = row.getCell(8); - request.setEquipmentName(equipmentName.getStringCellValue()); + // 鏋勫缓鏈�缁堝搷搴� + Map<String, Object> response = new HashMap<>(); + response.put("results", results); + response.put("totalFiles", fileMap.size()); + response.put("successCount", successCount); + response.put("failureCount", failureCount); - //绗簩琛岃鍙� - row = sheet.getRow(1); - //淇濆吇鍛ㄦ湡 - Cell period = row.getCell(6); - if (CellType.NUMERIC.equals(period.getCellType())) { - request.setMaintenancePeriod((int) period.getNumericCellValue()); - } else { - request.setMaintenancePeriod(null); + if (failureCount > 0) { + return Result.error("閮ㄥ垎鏂囦欢瀵煎叆澶辫触", response); } - //鏂囦欢缂栫爜 - Cell fileCode = row.getCell(8); - request.setFileCode(fileCode.getStringCellValue()); + + return Result.ok("鎵�鏈夋枃浠跺鍏ユ垚鍔�"+response); + } catch (Exception e) { - log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e); + log.error("瀵煎叆澶勭悊寮傚父", e); + return Result.error("瀵煎叆澶勭悊澶辫触: " + e.getMessage()); } } + } -- Gitblit v1.9.3