OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-01-10 865e48b3de08f6d51b3e2fe3170585d535512961
사용자 정의 필드(날짜) 기간 검색으로 변경
8개 파일 변경됨
87 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/mapper/IssueCustomFieldValueMapper.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java 33 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issueCustomFieldValue-template.xml 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAdd.controller.js 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/utils/dateRangePicker.directive.js 27 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueListNormal.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueModify.html 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/mapper/IssueCustomFieldValueMapper.java
@@ -14,6 +14,8 @@
public interface IssueCustomFieldValueMapper {
    Map<String, Object> findLikeUseValue(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
    Map<String, Object> findDateTypeUseValue(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
    Map<String, Object> findByUseValue(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
    void deleteIssueCustomFieldValue(Long issueTypeCustomFieldId);
src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
@@ -306,13 +306,15 @@
                switch (CustomFieldType.valueOf(issueCustomFieldValueCondition.getCustomFieldType())) {
                    case INPUT:
                    case NUMBER:
                    case DATETIME:
                    case IP_ADDRESS:
                    case EMAIL:
                    case SITE:
                    case TEL:
                        result = this.issueCustomFieldValueMapper.findLikeUseValue(issueCustomFieldValueCondition);
                        break;
                    case DATETIME:
                        result = this.issueCustomFieldValueMapper.findDateTypeUseValue(issueCustomFieldValueCondition);
                        break;
                    case MULTI_SELECT:
                    case SINGLE_SELECT:
                        result = this.issueCustomFieldValueMapper.findByUseValue(issueCustomFieldValueCondition);
src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java
@@ -6,6 +6,7 @@
import kr.wisestone.owl.util.MapUtil;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -26,6 +27,9 @@
     * 텍스트 필드일 때 검색 값
     */
    private String useValue;
    private String useStartDateValue;
    private String useEndDateValue;
    private boolean useParentIssueId = true;
    /**
     * 이슈 상태 유형(READY / OPEN / CLOSE)
@@ -42,7 +46,6 @@
        switch(customFieldType) {
            case INPUT:
            case NUMBER:
            case DATETIME:
            case IP_ADDRESS:
            case EMAIL:
            case SITE:
@@ -53,6 +56,18 @@
                        //  텍스트 필드는 1개밖에 안들어온다.
                        if (!StringUtils.isEmpty(useValue)) {
                            condition.setUseValue(useValue);
                        }
                    }
                }
                break;
            case DATETIME:
                if (MapUtil.getStrings(conditions, "useValues") != null) {
                    for (String useValue : MapUtil.getStrings(conditions, "useValues")) {
                        if (!StringUtils.isEmpty(useValue)) {
                            condition.setUseValue(useValue);
                            List<String> customDateRange = Arrays.asList(useValue.split("~"));
                            condition.setUseStartDateValue(customDateRange.get(0));
                            condition.setUseEndDateValue(customDateRange.get(1));
                        }
                    }
                }
@@ -125,6 +140,22 @@
        this.useValue = useValue;
    }
    public String getUseStartDateValue() {
        return useStartDateValue;
    }
    public void setUseStartDateValue(String useStartDateValue) {
        this.useStartDateValue = useStartDateValue;
    }
    public String getUseEndDateValue() {
        return useEndDateValue;
    }
    public void setUseEndDateValue(String useEndDateValue) {
        this.useEndDateValue = useEndDateValue;
    }
    public String getCustomFieldType() {
        return customFieldType;
    }
src/main/resources/mybatis/query-template/issueCustomFieldValue-template.xml
@@ -11,6 +11,14 @@
        AND issue_custom_field_value.use_value LIKE CONCAT('%',#{useValue},'%')
    </select>
    <select id="findDateTypeUseValue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
        SELECT
            GROUP_CONCAT(issue_custom_field_value.issue_id SEPARATOR ',') as issueIds
        FROM issue_custom_field_value issue_custom_field_value
        WHERE issue_custom_field_value.custom_field_id = #{customFieldId}
          AND issue_custom_field_value.use_value BETWEEN #{useStartDateValue} AND #{useEndDateValue}
    </select>
    <select id="findByUseValue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
        SELECT
        GROUP_CONCAT(issue_custom_field_value.issue_id SEPARATOR ',') as issueIds
src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -578,7 +578,6 @@
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0
                                && $scope.vm.form.issueCompanyFields[0].ispFieldVo != null
                                || $scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){
                                var ispField = $scope.vm.form.issueIspFields[0];
                                issueIspFields.push({
                                    ispId : $scope.vm.ispId,
                                    name : $scope.vm.ispName,
@@ -605,7 +604,6 @@
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0
                                && $scope.vm.form.issueCompanyFields[0].hostingFieldVo != null
                                || $scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){
                                var hostingField = $scope.vm.form.issueHostingFields[0];
                                issueHostingFields[0] = {
                                    hostingId : $scope.vm.hostingId,
                                    name : $scope.vm.hostingName,
src/main/webapp/scripts/components/utils/dateRangePicker.directive.js
@@ -86,7 +86,32 @@
                                        //parentEl : $scope.parentEl !== undefined ? $scope.parentEl : "",
                                        locale: {
                                            format: 'YYYY-MM-DD/hh:mm:ss A',
                                            format: 'YYYY-MM-DD hh:mm:ss',
                                            separator: "~",
                                            applyLabel: options.applyLabel,
                                            cancelLabel: options.cancelLabel,
                                            daysOfWeek: options.daysOfWeek,
                                            monthNames: options.monthNames
                                        },
                                        opens : "center"
                                    });
                                    // singleDate 취소 버튼 (값 초기화)
                                    $($element).on('cancel.daterangepicker', function(ev, picker) {
                                        $scope.ngModel = "";
                                    });
                                } else if ($attrs["rangeType"] === "multiDate") {
                                    $($element).daterangepicker({
                                        timePicker: true,
                                        timePickerSeconds : true,
                                        autoUpdateInput: true,
                                        autoApply : true,
                                        singleDatePicker : false,
                                        isSingle : false,
                                        //parentEl : $scope.parentEl !== undefined ? $scope.parentEl : "",
                                        locale: {
                                            format: 'YYYY-MM-DD hh:mm:ss',
                                            separator: "~",
                                            applyLabel: options.applyLabel,
                                            cancelLabel: options.cancelLabel,
                                            daysOfWeek: options.daysOfWeek,
src/main/webapp/views/issue/issueListNormal.html
@@ -296,7 +296,7 @@
                                                                   ng-model="customField.useValues"
                                                                   placeholder="{{'issue.clickToSelectDate' | translate}}"
                                                                   modal-form-auto-scroll
                                                                   range-type="singleDate"
                                                                   range-type="multiDate"
                                                                   date-range-picker
                                                                   autocomplete="off">
                                                            <div class="row">
src/main/webapp/views/issue/issueModify.html
@@ -270,12 +270,15 @@
                                </div>
                                <div ng-switch-when="DATETIME">
                                    <input type="text" class="form-control input-sm"
                                    <input class="form-control input-sm input-readonly"
                                           name="item_{{$index}}"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           placeholder="{{'issue.clickToSelectDate' | translate}}"
                                           modal-form-auto-scroll
                                           range-type="singleDate"
                                           date-range-picker
                                           kr-input
                                           autocomplete="off"
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
<!--                                    <small class="help-block form-text text-danger"-->
<!--                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"-->