feat: 修改dataSheet的check

This commit is contained in:
lilong 2024-03-20 10:40:05 +08:00
parent dda80932a7
commit 89d99f0f46
2 changed files with 19 additions and 2 deletions

View File

@ -251,6 +251,8 @@ public interface DataSheetClient {
*/ */
private List<Integer> ignoreColumnIndexes; private List<Integer> ignoreColumnIndexes;
private ResolveRowType resolveRowType;
public List<Integer> getIgnoreRowIndexes() { public List<Integer> getIgnoreRowIndexes() {
return Optional.ofNullable(ignoreRowIndexes).orElseGet(ImmutableList::of); return Optional.ofNullable(ignoreRowIndexes).orElseGet(ImmutableList::of);
} }
@ -260,6 +262,14 @@ public interface DataSheetClient {
} }
} }
@AllArgsConstructor
@Getter
enum ResolveRowType {
COLUMN,
TITLE,
;
}
@Builder @Builder
@Data @Data
@NoArgsConstructor @NoArgsConstructor

View File

@ -360,7 +360,7 @@ public class DataSheetImporter extends DataSheetClient.ImporterBuilder {
// 根据meta来校验cell的类型 // 根据meta来校验cell的类型
Map<Integer, String> headerMap = dataListener.getHeadMap(); Map<Integer, String> headerMap = dataListener.getHeadMap();
boolean cellTypeColumn = meta.getCellMetas().stream().anyMatch(cellMeta -> cellMeta.getColumn() == null); boolean cellTypeColumn = meta.getResolveRowType() == DataSheetClient.ResolveRowType.COLUMN;
Map<String, DataSheetClient.CellMeta> cellMetaMap = resolveCellMetaMap(cellTypeColumn); Map<String, DataSheetClient.CellMeta> cellMetaMap = resolveCellMetaMap(cellTypeColumn);
List<Map<Integer, String>> lines = dataListener.getLines(); List<Map<Integer, String>> lines = dataListener.getLines();
@ -458,6 +458,14 @@ public class DataSheetImporter extends DataSheetClient.ImporterBuilder {
throw DataSheetClient.ResultCode.IMPORT_COLUMN_MISSING_CELL_META.toException(); throw DataSheetClient.ResultCode.IMPORT_COLUMN_MISSING_CELL_META.toException();
} }
if (meta.getResolveRowType() == DataSheetClient.ResolveRowType.TITLE) {
checkMetaTitle(dataListener);
}
meta.getCellMetas().forEach(DataSheetClient.CellMeta::validate);
}
private void checkMetaTitle(NoModelDataListener dataListener) {
Set<String> headerNames = ImmutableSet.copyOf(dataListener.getHeadMap().values()); Set<String> headerNames = ImmutableSet.copyOf(dataListener.getHeadMap().values());
Set<String> cellNames = meta.getCellMetas().stream() Set<String> cellNames = meta.getCellMetas().stream()
.map(DataSheetClient.CellMeta::getName) .map(DataSheetClient.CellMeta::getName)
@ -470,7 +478,6 @@ public class DataSheetImporter extends DataSheetClient.ImporterBuilder {
.collect(Collectors.toList()); .collect(Collectors.toList());
throw DataSheetClient.ResultCode.IMPORT_COLUMN_NAME_NOT_MATCHED.toException(columnNames); throw DataSheetClient.ResultCode.IMPORT_COLUMN_NAME_NOT_MATCHED.toException(columnNames);
} }
meta.getCellMetas().forEach(DataSheetClient.CellMeta::validate);
} }
@Slf4j @Slf4j