fix(测试跟踪): 脑图创建用例自定义字段默认值未设置
--bug=1029671 --user=宋昌昌 【测试跟踪】github#26469,用例的自定义字段的默认值在脑图模式下未生效 https://www.tapd.cn/55049933/s/1413958
This commit is contained in:
parent
28d5780ee6
commit
e486c8e7cf
|
@ -21,7 +21,15 @@
|
|||
order by `order` asc
|
||||
</select>
|
||||
<select id="getCustomFields" resultType="io.metersphere.base.domain.CustomFieldTemplate">
|
||||
select id, field_id fieldId, template_id templateId, scene, required, `order`, default_value defaultValue, custom_data customData, `key`
|
||||
select id,
|
||||
field_id fieldId,
|
||||
template_id templateId,
|
||||
scene,
|
||||
required,
|
||||
`order`,
|
||||
default_value defaultValue,
|
||||
custom_data customData,
|
||||
`key`
|
||||
from custom_field_template
|
||||
where custom_field_template.template_id = #{templateId}
|
||||
order by `order` asc
|
||||
|
@ -29,7 +37,7 @@
|
|||
<select id="getCustomFieldByTemplateId" resultType="io.metersphere.dto.CustomFieldDao">
|
||||
select
|
||||
template_id, required, default_value, custom_data,
|
||||
cf.id as id,
|
||||
cf.id as id, cf.system as `system`,
|
||||
cf.name as name, cf.type as type
|
||||
from custom_field_template cft
|
||||
inner join custom_field cf
|
||||
|
@ -42,9 +50,11 @@
|
|||
INSERT INTO
|
||||
custom_field_template
|
||||
VALUES
|
||||
<foreach collection="customFieldTemplates" item="customFieldTemplate" separator="," >
|
||||
(#{customFieldTemplate.id}, #{customFieldTemplate.fieldId}, #{customFieldTemplate.templateId}, #{customFieldTemplate.scene},
|
||||
#{customFieldTemplate.required}, #{customFieldTemplate.order}, #{customFieldTemplate.defaultValue}, #{customFieldTemplate.customData},
|
||||
<foreach collection="customFieldTemplates" item="customFieldTemplate" separator=",">
|
||||
(#{customFieldTemplate.id}, #{customFieldTemplate.fieldId}, #{customFieldTemplate.templateId},
|
||||
#{customFieldTemplate.scene},
|
||||
#{customFieldTemplate.required}, #{customFieldTemplate.order}, #{customFieldTemplate.defaultValue},
|
||||
#{customFieldTemplate.customData},
|
||||
#{customFieldTemplate.key})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
|
@ -46,6 +46,7 @@ import io.metersphere.request.testcase.*;
|
|||
import io.metersphere.service.issue.platform.IssueFactory;
|
||||
import io.metersphere.service.remote.api.RelevanceApiCaseService;
|
||||
import io.metersphere.service.remote.performance.RelevanceLoadCaseService;
|
||||
import io.metersphere.service.remote.project.TrackCustomFieldTemplateService;
|
||||
import io.metersphere.service.remote.project.TrackTestCaseTemplateService;
|
||||
import io.metersphere.service.remote.ui.RelevanceUiCaseService;
|
||||
import io.metersphere.service.wapper.TrackProjectService;
|
||||
|
@ -196,6 +197,8 @@ public class TestCaseService {
|
|||
private PlatformPluginService platformPluginService;
|
||||
@Resource
|
||||
private OperatingLogService operatingLogService;
|
||||
@Resource
|
||||
private TrackCustomFieldTemplateService trackCustomFieldTemplateService;
|
||||
|
||||
private ThreadLocal<Integer> importCreateNum = new ThreadLocal<>();
|
||||
|
||||
|
@ -2470,16 +2473,11 @@ public class TestCaseService {
|
|||
}
|
||||
|
||||
public void minderEdit(TestCaseMinderEditRequest request) {
|
||||
|
||||
deleteToGcBatch(request.getIds(), request.getProjectId());
|
||||
|
||||
testCaseNodeService.minderEdit(request);
|
||||
|
||||
List<TestCaseMinderEditRequest.TestCaseMinderEditItem> data = request.getData();
|
||||
if (CollectionUtils.isNotEmpty(data)) {
|
||||
|
||||
String lastAddId = null;
|
||||
|
||||
for (TestCaseMinderEditRequest.TestCaseMinderEditItem item : data) {
|
||||
if (StringUtils.isBlank(item.getNodeId()) || item.getNodeId().equals("root")) {
|
||||
item.setNodeId(StringUtils.EMPTY);
|
||||
|
@ -2499,6 +2497,8 @@ public class TestCaseService {
|
|||
}
|
||||
EditTestCaseRequest editTestCaseRequest = new EditTestCaseRequest();
|
||||
BeanUtils.copyBean(editTestCaseRequest, item);
|
||||
// 脑图创建用例, 设置非系统自定义字段默认值
|
||||
setCustomDefault(editTestCaseRequest);
|
||||
addTestCase(editTestCaseRequest);
|
||||
if (StringUtils.equals(item.getMoveMode(), ResetOrderRequest.MoveMode.APPEND.name()) && StringUtils.isNotBlank(lastAddId)) {
|
||||
item.setMoveMode(ResetOrderRequest.MoveMode.AFTER.name());
|
||||
|
@ -2509,10 +2509,34 @@ public class TestCaseService {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
minderExtraNodeService.batchEdit(request);
|
||||
}
|
||||
|
||||
private void setCustomDefault(EditTestCaseRequest request) {
|
||||
Project project = projectMapper.selectByPrimaryKey(request.getProjectId());
|
||||
List<CustomFieldDao> customFields = trackCustomFieldTemplateService.getCustomFieldByTemplateId(project.getCaseTemplateId());
|
||||
if (CollectionUtils.isNotEmpty(customFields)) {
|
||||
// 过滤出模板中有默认值的非系统自定义字段(系统自定义字段前台保存时已经传默认值, 无需处理)
|
||||
List<CustomFieldDao> hasDefaultFields = customFields.stream().filter(field -> StringUtils.isNotEmpty(field.getDefaultValue()) && !field.getSystem()).toList();
|
||||
if (CollectionUtils.isNotEmpty(hasDefaultFields)) {
|
||||
List<CustomFieldResourceDTO> addFields = new ArrayList<>();
|
||||
hasDefaultFields.forEach(field -> {
|
||||
CustomFieldResourceDTO addField = new CustomFieldResourceDTO();
|
||||
addField.setResourceId(request.getId());
|
||||
addField.setFieldId(field.getId());
|
||||
if (StringUtils.equalsAny(field.getType(), CustomFieldType.RICH_TEXT.getValue(), CustomFieldType.TEXTAREA.getValue())) {
|
||||
addField.setTextValue(field.getDefaultValue());
|
||||
} else {
|
||||
addField.setValue(field.getDefaultValue());
|
||||
}
|
||||
addFields.add(addField);
|
||||
});
|
||||
request.setAddFields(addFields);
|
||||
request.setEditFields(Collections.emptyList());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void changeOrder(TestCaseMinderEditRequest.TestCaseMinderEditItem item, String projectId) {
|
||||
if (StringUtils.isNotBlank(item.getTargetId())) {
|
||||
ResetOrderRequest resetOrderRequest = new ResetOrderRequest();
|
||||
|
|
Loading…
Reference in New Issue