| | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | ImportParams params = new ImportParams(); |
| | | params.setTitleRows(2); // 跳过前2行标题 |
| | | params.setHeadRows(1); // 第3行是表头 |
| | | params.setHeadRows(2); // 第3行是表头 |
| | | params.setSheetNum(1); // 读取第一个工作表 |
| | | |
| | | int dataEndRow = findDataEndRow(file.getInputStream()); |
| | | log.info("计算出的数据结束行: {}", dataEndRow); |
| | | |
| | | params.setLastOfInvalidRow(dataEndRow); |
| | | params.setNeedSave(true); |
| | | |
| | | EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); |
| | |
| | | |
| | | List<MaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), MaintenanceStandardImport.class, params); |
| | | log.info("实际读取到的明细数量: {}", list.size()); |
| | | |
| | | // 打印前几条记录用于调试 |
| | | if (!list.isEmpty()) { |
| | | log.info("前3条记录详情:"); |
| | | for (int i = 0; i < Math.min(3, list.size()); i++) { |
| | | MaintenanceStandardImport item = list.get(i); |
| | | log.info("第{}条: NO={}, 点检条件={}, 部位名称={}, 点检内容={}", |
| | | i+1, item.getItemCode(), item.getCondition(), |
| | | item.getItemPart(), item.getItemName()); |
| | | //明细项 |
| | | List<EamMaintenanceStandardDetail> tableList = new ArrayList<>(); |
| | | for(MaintenanceStandardImport maintenanceStandardImport : list) { |
| | | try { |
| | | Integer.valueOf(maintenanceStandardImport.getItemCode()); |
| | | } catch (NumberFormatException e) { |
| | | break; |
| | | } |
| | | } else { |
| | | log.warn("未读取到任何明细记录"); |
| | | tableList.add(new EamMaintenanceStandardDetail(maintenanceStandardImport)); |
| | | } |
| | | |
| | | //明细项 |
| | | List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); |
| | | standardRequest.setTableDetailList(tableList); |
| | | log.info("转换后的明细数量: {}", tableList.size()); |
| | | |