feat: 修改dataSheet的check
This commit is contained in:
parent
dda80932a7
commit
89d99f0f46
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user