fix(测试跟踪): 缺陷管理导入不同类型字段值校验问题

--bug=1025901 --user=宋昌昌 【测试跟踪】缺陷管理导入缺陷字段内包含不是给出的状态依然可以添加 https://www.tapd.cn/55049933/s/1368704
This commit is contained in:
song-cc-rock 2023-05-05 14:49:13 +08:00 committed by 刘瑞斌
parent 37fd7ca7c6
commit 7cbeecea43
1 changed files with 11 additions and 12 deletions

View File

@ -193,13 +193,13 @@ public class IssueExcelListener extends AnalysisEventListener<Map<Integer, Strin
String type = customFieldDao.getType();
Boolean required = customFieldDao.getRequired();
String options = StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.MEMBER.getValue(), CustomFieldType.MULTIPLE_MEMBER.getValue()) ?
this.memberMap.toString() : customFieldDao.getOptions();
JSON.toJSONString(this.memberMap) : customFieldDao.getOptions();
if (required && StringUtils.isEmpty(v.toString())) {
errMsg.append(k).append(Translator.get("can_not_be_null")).append(";");
} else if (StringUtils.isNotEmpty(v.toString()) && isIllegalFormat(type, v)) {
errMsg.append(k).append(Translator.get("format_error")).append(";");
} else if (StringUtils.isNotEmpty(v.toString()) && isSelect(type) && !isOptionInclude(v, options)) {
errMsg.append(k).append(Translator.get("options_not_exist")).append(";");
} else if (StringUtils.isNotEmpty(v.toString()) && isIllegalFormat(type, v.toString())) {
errMsg.append(k).append(Translator.get("format_error")).append(";");
}
} else {
if (!exportFieldsContains(k)) {
@ -403,19 +403,18 @@ public class IssueExcelListener extends AnalysisEventListener<Map<Integer, Strin
CustomFieldType.CASCADING_SELECT.getValue(), CustomFieldType.MEMBER.getValue(), CustomFieldType.MULTIPLE_MEMBER.getValue());
}
private Boolean isIllegalFormat(String type, String value) {
private Boolean isIllegalFormat(String type, Object value) {
try {
if (StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.DATE.getValue())) {
DateUtils.parseDate(value, "yyyy/MM/dd");
DateUtils.parseDate(value.toString(), "yyyy/MM/dd");
} else if (StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.DATETIME.getValue())) {
DateUtils.parseDate(value);
DateUtils.parseDate(value.toString());
} else if (StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.INT.getValue())) {
Integer.parseInt(value);
Integer.parseInt(value.toString());
} else if (StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.FLOAT.getValue())) {
Float.parseFloat(value);
} else if (StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.SELECT.getValue())) {
Object val = JSON.parseObject(value);
if (val instanceof ArrayList<?>) {
Float.parseFloat(value.toString());
} else if (StringUtils.equalsAnyIgnoreCase(type, CustomFieldType.SELECT.getValue(), CustomFieldType.RADIO.getValue(), CustomFieldType.MEMBER.getValue())) {
if (value instanceof List) {
return Boolean.TRUE;
}
}
@ -435,7 +434,7 @@ public class IssueExcelListener extends AnalysisEventListener<Map<Integer, Strin
}
});
} else {
isInclude.set(StringUtils.contains(options, value.toString()));
isInclude.set(StringUtils.contains(options, "\"" + value.toString() + "\""));
}
return isInclude.get();
}