fix(项目设置): 内置自定义字段修改后变成了非内置

This commit is contained in:
AgAngle 2024-01-19 20:30:44 +08:00 committed by jianxing
parent a194dc7b7f
commit f42075ceb9
6 changed files with 23 additions and 3 deletions

View File

@ -50,6 +50,10 @@ public class ProjectCustomFieldService extends BaseCustomFieldService {
@Override @Override
public CustomField update(CustomField customField, List<CustomFieldOptionRequest> options) { public CustomField update(CustomField customField, List<CustomFieldOptionRequest> options) {
CustomField originCustomField = getWithCheck(customField.getId()); CustomField originCustomField = getWithCheck(customField.getId());
if (originCustomField.getInternal()) {
// 内置字段不能修改名字
originCustomField.setName(null);
}
customField.setScopeId(originCustomField.getScopeId()); customField.setScopeId(originCustomField.getScopeId());
Project project = projectService.checkResourceExist(originCustomField.getScopeId()); Project project = projectService.checkResourceExist(originCustomField.getScopeId());
checkProjectTemplateEnable(project.getOrganizationId(), originCustomField.getScene()); checkProjectTemplateEnable(project.getOrganizationId(), originCustomField.getScene());

View File

@ -176,6 +176,12 @@ public class ProjectCustomFieldControllerTests extends BaseTest {
Assertions.assertEquals(customField.getId(), optionItem.getFieldId()); Assertions.assertEquals(customField.getId(), optionItem.getFieldId());
} }
CustomFieldExample example = new CustomFieldExample();
example.createCriteria().andScopeIdEqualTo(DEFAULT_PROJECT_ID).andInternalEqualTo(true);
request = BeanUtils.copyBean(request, customFieldMapper.selectByExample(example).get(0));
this.requestPostWithOk(DEFAULT_UPDATE, request);
Assertions.assertEquals(customFieldMapper.selectByExample(example).get(0).getInternal(), true);
// @校验是否开启项目模板 // @校验是否开启项目模板
changeOrgTemplateEnable(true); changeOrgTemplateEnable(true);
assertErrorCode(this.requestPost(DEFAULT_ADD, request), PROJECT_TEMPLATE_PERMISSION); assertErrorCode(this.requestPost(DEFAULT_ADD, request), PROJECT_TEMPLATE_PERMISSION);

View File

@ -14,10 +14,10 @@ public enum DefaultFunctionalCustomField {
PRIORITY("functional_priority", CustomFieldType.SELECT, PRIORITY("functional_priority", CustomFieldType.SELECT,
Arrays.asList( Arrays.asList(
getNewOption("P0", "P0"),
getNewOption("P1", "P1"), getNewOption("P1", "P1"),
getNewOption("P2", "P2"), getNewOption("P2", "P2"),
getNewOption("P3", "P3"), getNewOption("P3", "P3")
getNewOption("P4", "P4")
) )
); );

View File

@ -144,7 +144,7 @@ public class BaseCustomFieldService {
customField.setScopeId(null); customField.setScopeId(null);
customField.setScene(null); customField.setScene(null);
customField.setScopeType(null); customField.setScopeType(null);
customField.setInternal(false); customField.setInternal(null);
customField.setCreateUser(null); customField.setCreateUser(null);
customField.setCreateTime(null); customField.setCreateTime(null);
customField.setType(null); customField.setType(null);

View File

@ -81,6 +81,10 @@ public class OrganizationCustomFieldService extends BaseCustomFieldService {
@Override @Override
public CustomField update(CustomField customField, List<CustomFieldOptionRequest> options) { public CustomField update(CustomField customField, List<CustomFieldOptionRequest> options) {
CustomField originCustomField = getWithCheck(customField.getId()); CustomField originCustomField = getWithCheck(customField.getId());
if (originCustomField.getInternal()) {
// 内置字段不能修改名字
originCustomField.setName(null);
}
checkOrganizationTemplateEnable(customField.getScopeId(), originCustomField.getScene()); checkOrganizationTemplateEnable(customField.getScopeId(), originCustomField.getScene());
customField.setScopeId(originCustomField.getScopeId()); customField.setScopeId(originCustomField.getScopeId());
OrganizationService.checkResourceExist(originCustomField.getScopeId()); OrganizationService.checkResourceExist(originCustomField.getScopeId());

View File

@ -181,6 +181,12 @@ public class OrganizationCustomFieldControllerTests extends BaseTest {
} }
assertRefCustomField(customField); assertRefCustomField(customField);
CustomFieldExample example = new CustomFieldExample();
example.createCriteria().andScopeIdEqualTo(DEFAULT_ORGANIZATION_ID).andInternalEqualTo(true);
request = BeanUtils.copyBean(request, customFieldMapper.selectByExample(example).get(0));
this.requestPostWithOk(DEFAULT_UPDATE, request);
Assertions.assertEquals(customFieldMapper.selectByExample(example).get(0).getInternal(), true);
// @校验是否开启组织模板 // @校验是否开启组织模板
changeOrgTemplateEnable(false); changeOrgTemplateEnable(false);
assertErrorCode(this.requestPost(DEFAULT_UPDATE, request), ORGANIZATION_TEMPLATE_PERMISSION); assertErrorCode(this.requestPost(DEFAULT_UPDATE, request), ORGANIZATION_TEMPLATE_PERMISSION);