| | |
| | | import org.jeecg.modules.eam.constant.BusinessCodeConst; |
| | | import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; |
| | | import org.jeecg.modules.eam.dto.MaintenanceStandardImport; |
| | | 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 javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Paths; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * éè¿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 file |
| | | * @param request |
| | |
| | | log.error("读åExcelä¿¡æ¯å¤±è´¥ï¼{}", e.getMessage(), e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 读åExcel 第ä¸è¡ï¼ 第äºè¡çä¿¡æ¯ |
| | | * @param file |
| | | * @param request |
| | | */ |
| | | public void readWeekExcel(MultipartFile file, EamMaintenanceStandardRequest request) { |
| | | Workbook book = null; |
| | | boolean isXSSFWorkbook = false; |
| | | try { |
| | | book = WorkbookFactory.create(file.getInputStream()); |
| | | if (book instanceof XSSFWorkbook) { |
| | | isXSSFWorkbook = true; |
| | | } |
| | | |
| | | 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()); |
| | | |
| | | //第äºè¡è¯»å |
| | | row = sheet.getRow(1); |
| | | //ä¿å
»å¨æ |
| | | Cell period = row.getCell(6); |
| | | if (CellType.NUMERIC.equals(period.getCellType())) { |
| | | request.setMaintenancePeriod((int) period.getNumericCellValue()); |
| | | } else { |
| | | //é»è®¤ç¹æ£å¨æ 1 |
| | | request.setMaintenancePeriod(1); |
| | | } |
| | | //æä»¶ç¼ç |
| | | Cell fileCode = row.getCell(8); |
| | | request.setFileCode(fileCode.getStringCellValue()); |
| | | } catch (Exception e) { |
| | | log.error("读åExcelä¿¡æ¯å¤±è´¥ï¼{}", e.getMessage(), e); |
| | | } |
| | | } |
| | | } |