OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-03 5fec5801b937a2270920787891e39a8504cdf53f
사용자 정의 필드 사용중일때 삭제 불가하게 수정
6개 파일 변경됨
26 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/constant/MsgConstants.java 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java 18 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/customField/customFieldAdd.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -85,6 +85,7 @@
    public static final String CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = "CUSTOM_FIELD_NAME_MAX_LENGTH_OUT";   //  사용자 정의 필드명은 최대 50글자까지 입력할 수 있습니다.
    public static final String CUSTOM_FIELD_USED_NAME = "CUSTOM_FIELD_USED_NAME";   //  사용자 정의 필드 명이 이미 사용되고 있습니다.
    public static final String CUSTOM_FIELD_REMOVE_NOT_SELECT = "CUSTOM_FIELD_REMOVE_NOT_SELECT";   //  삭제할 사용자 정의 필드가 선택되지 않았습니다.
    public static final String CUSTOM_FIELD_USED_DATA_REMOVE = "CUSTOM_FIELD_USED_DATA_REMOVE";   //  사용하고 있는 데이터입니다.
    public static final String CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = "CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD";   //  문자열 필드는 옵션 값을 사용할 수 없습니다.
    public static final String CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = "CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE";   //  사용자 정의 필드 기본 값이 옵션에 존재하지 않습니다.
    public static final String CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = "CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE";   //  사용자 정의 필드 기본 값에 중복된 값이 존재합니다.
src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java
@@ -12,4 +12,6 @@
    List<IssueTypeCustomField> findByProjectIdAndIssueTypeIdOrderByPosition(@Param("projectId") Long projectId, @Param("issueTypeId") Long issueTypeId);
    IssueTypeCustomField findByProjectIdAndIssueTypeIdAndCustomFieldId(@Param("projectId") Long projectId, @Param("issueTypeId") Long issueTypeId, @Param("customFieldId") Long customFieldId);
    Long countByCustomFieldId(@Param("customFieldId") Long customFieldId);
}
src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java
@@ -11,6 +11,7 @@
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.mapper.CustomFieldMapper;
import kr.wisestone.owl.repository.CustomFieldRepository;
import kr.wisestone.owl.repository.IssueTypeCustomFieldRepository;
import kr.wisestone.owl.service.*;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.util.MapUtil;
@@ -45,6 +46,9 @@
    @Autowired
    private CustomFieldRepository customFieldRepository;
    @Autowired
    private IssueTypeCustomFieldRepository issueTypeCustomFieldRepository;
    @Autowired
    private CustomFieldMapper customFieldMapper;
@@ -318,10 +322,18 @@
    public void removeCustomFields(CustomFieldForm customFieldForm) {
        //  사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다.
        this.workspaceService.checkUseWorkspace();
        if (customFieldForm.getRemoveIds().size() < 1) {
        List<Long> removeIds = customFieldForm.getRemoveIds();
        if (removeIds.size() < 1) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_REMOVE_NOT_SELECT));
        }else {
            for (Long id : removeIds) {
                Long count = this.issueTypeCustomFieldRepository.countByCustomFieldId(id);
                if (count > 0){
                    throw new OwlRuntimeException(
                            this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_USED_DATA_REMOVE));
                }
            }
        }
        for (Long projectId : customFieldForm.getRemoveIds()) {
@@ -329,6 +341,7 @@
        }
//        this.customFieldRepository.flush();
        this.customFieldRepository.flush();
    }
    private void removeCustomFields(Long customFieldId) {
@@ -336,6 +349,7 @@
        customField.setUse(UseType.N.toString());
        this.customFieldRepository.saveAndFlush(customField);
//        this.customFieldRepository.delete(customField);
       this.customFieldRepository.delete(customField);
    }
    //  이슈 엑셀 import 에서 사용한다.
src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java
@@ -39,7 +39,7 @@
        Map<String, Object> resJsonData = new HashMap<String, Object>();
        resJsonData.put(Constants.RES_KEY_MESSAGE, this.messageAccessor.getResMessage(ex, Constants.RES_KEY_MSG_FAIL));
        return this.handleExceptionInternal(ex, resJsonData, new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
        return this.handleExceptionInternal(ex, resJsonData, new HttpHeaders(), HttpStatus.OK, request);
    }
    @ExceptionHandler({ StackOverflowError.class,
src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -87,6 +87,7 @@
CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
CUSTOM_FIELD_USED_NAME = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
CUSTOM_FIELD_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
CUSTOM_FIELD_USED_DATA_REMOVE = \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uB370\uC774\uD130\uC785\uB2C8\uB2E4.
CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = \uC120\uD0DD\uD55C \uD544\uB4DC\uB294 \uC635\uC158 \uAC12\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC774 \uC635\uC158\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC5D0 \uC911\uBCF5\uB41C \uAC12\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4.
src/main/webapp/scripts/app/customField/customFieldAdd.controller.js
@@ -42,7 +42,7 @@
                //  필드 유형을 변경 했을 때 문자열 필드일 경우에는 옵션 값을 초기화해준다.
                function changeFieldType() {
                    // if ($scope.vm.form.customFieldType === "INPUT") {
                    $scope.vm.form.name = "";
                    // $scope.vm.form.name = "";
                    $scope.vm.form.options = [];
                    $scope.vm.form.optionText = "";