Browse Source

只获取失败,算到校验失败中去

4.1.3.A
jueyue 6 years ago
parent
commit
ef84fb7297
2 changed files with 64 additions and 38 deletions
  1. +32
    -31
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/params/ExcelExportEntity.java
  2. +32
    -7
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java

+ 32
- 31
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/params/ExcelExportEntity.java View File

@@ -25,6 +25,26 @@ import java.util.List;
*/ */
public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<ExcelExportEntity> { public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<ExcelExportEntity> {
public ExcelExportEntity() {
}
public ExcelExportEntity(String name) {
super.name = name;
}
public ExcelExportEntity(String name, Object key) {
super.name = name;
this.key = key;
}
public ExcelExportEntity(String name, Object key, int width) {
super.name = name;
this.width = width;
this.key = key;
}
/** /**
* 如果是MAP导出,这个是map的key * 如果是MAP导出,这个是map的key
*/ */
@@ -68,47 +88,20 @@ public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<Exc
/** /**
* 统计 * 统计
*/ */
private boolean isStatistics;
private boolean isStatistics;
private String numFormat;
private String numFormat;
/** /**
* 是否隐藏列 * 是否隐藏列
*/ */
private boolean isColumnHidden;
private boolean isColumnHidden;
/** /**
* 枚举导出属性字段 * 枚举导出属性字段
*/ */
private String enumExportField;
public boolean isColumnHidden() {
return isColumnHidden;
}
public void setColumnHidden(boolean columnHidden) {
isColumnHidden = columnHidden;
}
private String enumExportField;
private List<ExcelExportEntity> list; private List<ExcelExportEntity> list;
public ExcelExportEntity() {
}
public ExcelExportEntity(String name) {
super.name = name;
}
public ExcelExportEntity(String name, Object key) {
super.name = name;
this.key = key;
}
public ExcelExportEntity(String name, Object key, int width) {
super.name = name;
this.width = width;
this.key = key;
}
public int getExportImageType() { public int getExportImageType() {
return exportImageType; return exportImageType;
} }
@@ -221,6 +214,14 @@ public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<Exc
this.enumExportField = enumExportField; this.enumExportField = enumExportField;
} }
public boolean isColumnHidden() {
return isColumnHidden;
}
public void setColumnHidden(boolean columnHidden) {
isColumnHidden = columnHidden;
}
@Override @Override
public int compareTo(ExcelExportEntity prev) { public int compareTo(ExcelExportEntity prev) {
return this.getOrderNum() - prev.getOrderNum(); return this.getOrderNum() - prev.getOrderNum();


+ 32
- 7
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java View File

@@ -103,7 +103,7 @@ public class ExcelImportService extends ImportBaseService {
private void addListContinue(Object object, ExcelCollectionParams param, Row row, private void addListContinue(Object object, ExcelCollectionParams param, Row row,
Map<Integer, String> titlemap, String targetId, Map<Integer, String> titlemap, String targetId,
Map<String, PictureData> pictures, Map<String, PictureData> pictures,
ImportParams params) throws Exception {
ImportParams params, StringBuilder errorMsg) throws Exception {
Collection collection = (Collection) PoiReflectorUtil.fromCache(object.getClass()) Collection collection = (Collection) PoiReflectorUtil.fromCache(object.getClass())
.getValue(object, param.getName()); .getValue(object, param.getName());
Object entity = PoiPublicUtil.createObject(param.getType(), targetId); Object entity = PoiPublicUtil.createObject(param.getType(), targetId);
@@ -121,7 +121,14 @@ public class ExcelImportService extends ImportBaseService {
picId = row.getRowNum() + "_" + i; picId = row.getRowNum() + "_" + i;
saveImage(object, picId, param.getExcelParams(), titleString, pictures, params); saveImage(object, picId, param.getExcelParams(), titleString, pictures, params);
} else { } else {
saveFieldValue(params, entity, cell, param.getExcelParams(), titleString, row);
try {
saveFieldValue(params, entity, cell, param.getExcelParams(), titleString, row);
} catch (ExcelImportException e) {
// 如果需要去校验就忽略,这个错误,继续执行
if(params.isNeedVerfiy() && ExcelImportEnum.GET_VALUE_ERROR.equals(e.getType())){
errorMsg.append(" ").append(titleString).append(ExcelImportEnum.GET_VALUE_ERROR.getMsg());
}
}
} }
isUsed = true; isUsed = true;
} }
@@ -192,6 +199,7 @@ public class ExcelImportService extends ImportBaseService {
if (excelCollection.size() > 0 && params.getKeyIndex() == null) { if (excelCollection.size() > 0 && params.getKeyIndex() == null) {
params.setKeyIndex(0); params.setKeyIndex(0);
} }
StringBuilder errorMsg;
while (rows.hasNext() while (rows.hasNext()
&& (row == null && (row == null
|| sheet.getLastRowNum() - row.getRowNum() > params.getLastOfInvalidRow())) { || sheet.getLastRowNum() - row.getRowNum() > params.getLastOfInvalidRow())) {
@@ -203,6 +211,7 @@ public class ExcelImportService extends ImportBaseService {
if (sheet.getLastRowNum() - row.getRowNum() < params.getLastOfInvalidRow()) { if (sheet.getLastRowNum() - row.getRowNum() < params.getLastOfInvalidRow()) {
break; break;
} }
errorMsg = new StringBuilder();
// 判断是集合元素还是不是集合元素,如果是就继续加入这个集合,不是就创建新的对象 // 判断是集合元素还是不是集合元素,如果是就继续加入这个集合,不是就创建新的对象
// keyIndex 如果为空就不处理,仍然处理这一行 // keyIndex 如果为空就不处理,仍然处理这一行
if (params.getKeyIndex() != null if (params.getKeyIndex() != null
@@ -210,7 +219,7 @@ public class ExcelImportService extends ImportBaseService {
|| StringUtils.isEmpty(getKeyValue(row.getCell(params.getKeyIndex())))) || StringUtils.isEmpty(getKeyValue(row.getCell(params.getKeyIndex()))))
&& object != null) { && object != null) {
for (ExcelCollectionParams param : excelCollection) { for (ExcelCollectionParams param : excelCollection) {
addListContinue(object, param, row, titlemap, targetId, pictures, params);
addListContinue(object, param, row, titlemap, targetId, pictures, params, errorMsg);
} }
} else { } else {
object = PoiPublicUtil.createObject(pojoClass, targetId); object = PoiPublicUtil.createObject(pojoClass, targetId);
@@ -226,7 +235,14 @@ public class ExcelImportService extends ImportBaseService {
saveImage(object, picId, excelParams, titleString, pictures, saveImage(object, picId, excelParams, titleString, pictures,
params); params);
} else { } else {
saveFieldValue(params, object, cell, excelParams, titleString, row);
try {
saveFieldValue(params, object, cell, excelParams, titleString, row);
} catch (ExcelImportException e) {
// 如果需要去校验就忽略,这个错误,继续执行
if(params.isNeedVerfiy() && ExcelImportEnum.GET_VALUE_ERROR.equals(e.getType())){
errorMsg.append(" ").append(titleString).append(ExcelImportEnum.GET_VALUE_ERROR.getMsg());
}
}
} }
} }
} }
@@ -237,9 +253,9 @@ public class ExcelImportService extends ImportBaseService {
((IExcelDataModel) object).setRowNum(row.getRowNum()); ((IExcelDataModel) object).setRowNum(row.getRowNum());
} }
for (ExcelCollectionParams param : excelCollection) { for (ExcelCollectionParams param : excelCollection) {
addListContinue(object, param, row, titlemap, targetId, pictures, params);
addListContinue(object, param, row, titlemap, targetId, pictures, params, errorMsg);
} }
if (verifyingDataValidity(object, row, params, pojoClass)) {
if (verifyingDataValidity(object, row, params, pojoClass, errorMsg)) {
collection.add(object); collection.add(object);
} else { } else {
failCollection.add(object); failCollection.add(object);
@@ -263,7 +279,7 @@ public class ExcelImportService extends ImportBaseService {
* 校验数据合法性 * 校验数据合法性
*/ */
private boolean verifyingDataValidity(Object object, Row row, ImportParams params, private boolean verifyingDataValidity(Object object, Row row, ImportParams params,
Class<?> pojoClass) {
Class<?> pojoClass, StringBuilder fieldErrorMsg) {
boolean isAdd = true; boolean isAdd = true;
Cell cell = null; Cell cell = null;
if (params.isNeedVerfiy()) { if (params.isNeedVerfiy()) {
@@ -296,6 +312,15 @@ public class ExcelImportService extends ImportBaseService {
verfiyFail = true; verfiyFail = true;
} }
} }
if((params.isNeedVerfiy() || params.getVerifyHandler() != null) && fieldErrorMsg.length() > 0){
if (object instanceof IExcelModel) {
IExcelModel model = (IExcelModel) object;
model.setErrorMsg((StringUtils.isNoneBlank(model.getErrorMsg())
? model.getErrorMsg() + "," : "") + fieldErrorMsg.toString());
}
isAdd = false;
verfiyFail = true;
}
if (cell != null) { if (cell != null) {
cell.setCellStyle(errorCellStyle); cell.setCellStyle(errorCellStyle);
failRow.add(row); failRow.add(row);


Loading…
Cancel
Save