OWL ITS + 탐지시스템(인터넷 진흥원)
- 헤더에 일반 메일 보내기 기능 추가
- 업체 엑셀 다운로드 시 카테고리 항목들도 보여지도록 수정
9개 파일 변경됨
199 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java 77 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java 52 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 14 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/common/common.controller.js 24 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js 6 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/utils/autoComplete.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/common/header.html 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -142,6 +142,39 @@
        return this.companyFieldMapper.find(condition);
    }
    /**
     * companyFieldCategory Name 설정
     * @param companyFieldVo CompanyFieldVo
     * @param companyField CompanyField
     */
    private CompanyFieldVo CreateCompanyFieldCategory(CompanyFieldVo companyFieldVo, CompanyField companyField) {
        if (companyField.getCompanyTypeId() != null && companyField.getCompanyTypeId() != -1) {
            CompanyFieldCategory companyType = this.companyFieldCategoryService.find(companyField.getCompanyTypeId());
            if (companyType != null) {
                companyFieldVo.setCompanyTypeName(companyType.getUseValue());
            }
        }
        if (companyField.getParentSectorId() != null && companyField.getParentSectorId() != -1) {
            CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(companyField.getParentSectorId());
            if (parentSector != null) {
                companyFieldVo.setParentSectorName(parentSector.getUseValue());
            }
        }
        if (companyField.getChildSectorId() != null && companyField.getChildSectorId() != -1) {
            CompanyFieldCategory childSector = this.companyFieldCategoryService.find(companyField.getChildSectorId());
            if (childSector != null) {
                companyFieldVo.setChildSectorName(childSector.getUseValue());
            }
        }
        if (companyField.getRegionId() != null && companyField.getRegionId() != -1) {
            CompanyFieldCategory region = this.companyFieldCategoryService.find(companyField.getRegionId());
            if (region != null) {
                companyFieldVo.setRegionName(region.getUseValue());
            }
        }
        return companyFieldVo;
    }
    // 업체 상세 조회한다.
    @Override
    @Transactional
@@ -166,36 +199,7 @@
            ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class);
            hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class);
            if (companyField.getCompanyTypeId() != null && companyField.getCompanyTypeId() != -1) {
                CompanyFieldCategory companyType = this.companyFieldCategoryService.find(companyField.getCompanyTypeId());
                if (companyType != null) {
                    companyFieldVo.setCompanyTypeName(companyType.getUseValue());
                }
            }
            if (companyField.getParentSectorId() != null && companyField.getParentSectorId() != -1) {
                CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(companyField.getParentSectorId());
                if (parentSector != null) {
                    companyFieldVo.setParentSectorName(parentSector.getUseValue());
                }
            }
            if (companyField.getChildSectorId() != null && companyField.getChildSectorId() != -1) {
                CompanyFieldCategory childSector = this.companyFieldCategoryService.find(companyField.getChildSectorId());
                if (childSector != null) {
                    companyFieldVo.setChildSectorName(childSector.getUseValue());
                }
            }
            if (companyField.getRegionId() != null && companyField.getRegionId() != -1) {
                CompanyFieldCategory region = this.companyFieldCategoryService.find(companyField.getRegionId());
                if (region != null) {
                    companyFieldVo.setRegionName(region.getUseValue());
                }
            }
            /*if (companyField.getStatusId() != null && companyField.getStatusId() != -1) {
                CompanyFieldCategory status = this.companyFieldCategoryService.find(companyField.getStatusId());
                if (status != null) {
                    companyFieldVo.setStatusName(status.getUseValue());
                }
            }*/
            CreateCompanyFieldCategory(companyFieldVo, companyField);
            companyFieldVo.setIspFieldVo(ispFieldVo);
            companyFieldVo.setHostingFieldVo(hostingFieldVo);
@@ -673,6 +677,19 @@
        CompanyFieldCondition companyFieldCondition = CompanyFieldCondition.make(conditions);
        List<Map<String, Object>> results = this.companyFieldMapper.find(companyFieldCondition);
        CompanyFieldVo companyFieldVo = new CompanyFieldVo();
        if (results != null && results.size() > 0) {
            for (Map<String, Object> result : results) {
                CompanyField companyField = ConvertUtil.convertMapToClass(result, CompanyField.class);
                CompanyFieldVo companyFieldVo2 = CreateCompanyFieldCategory(companyFieldVo, companyField);
                result.put("companyTypeName", companyFieldVo2.getCompanyTypeName());
                result.put("parentSectorName", companyFieldVo2.getParentSectorName());
                result.put("childSectorName", companyFieldVo2.getChildSectorName());
                result.put("regionName", companyFieldVo2.getRegionName());
            }
        }
        List<CompanyFieldVo> companyFieldVos = ConvertUtil.convertListToListClass(results, CompanyFieldVo.class);
        // code_ko_KR 에 code명 설정
src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java
@@ -124,38 +124,36 @@
            if (issueHostingFields != null && issueHostingFields.size() > 0) {
                Map<String, Object> param = issueHostingFields.get(0);
                if (issueHostingFields != null && issueHostingFields.size() > 0) {
                    IssueHosting issueHosting = this.issueHostingRepository.findByIssueId(issue.getId());
                IssueHosting issueHosting = this.issueHostingRepository.findByIssueId(issue.getId());
                    if (issueHosting != null) { //수정 시
                        // 변경 이력 남기고 issueHosting에 set 해주기
                        issueHistoryService.detectIssueHosting(IssueHistoryType.MODIFY, param, null, issueHosting, sb);
                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                if (issueHosting != null) { //수정 시
                    // 변경 이력 남기고 issueHosting에 set 해주기
                    issueHistoryService.detectIssueHosting(IssueHistoryType.MODIFY, param, null, issueHosting, sb);
                    issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                        issueHosting.setName(MapUtil.getString(param, "name"));
                        issueHosting.setEmail(MapUtil.getString(param, "email"));
                        issueHosting.setCode(MapUtil.getString(param, "code"));
                        issueHosting.setUrl(MapUtil.getString(param, "url"));
                        issueHosting.setManager(MapUtil.getString(param, "manager"));
                        issueHosting.setTel(MapUtil.getString(param, "tel"));
                        issueHosting.setMemo(MapUtil.getString(param, "memo"));
                    issueHosting.setName(MapUtil.getString(param, "name"));
                    issueHosting.setEmail(MapUtil.getString(param, "email"));
                    issueHosting.setCode(MapUtil.getString(param, "code"));
                    issueHosting.setUrl(MapUtil.getString(param, "url"));
                    issueHosting.setManager(MapUtil.getString(param, "manager"));
                    issueHosting.setTel(MapUtil.getString(param, "tel"));
                    issueHosting.setMemo(MapUtil.getString(param, "memo"));
                        this.issueHostingRepository.saveAndFlush(issueHosting);
                    this.issueHostingRepository.saveAndFlush(issueHosting);
                    } else { //추가 시
                        IssueHosting newIssueHosting = CreateIssueHosting(param, issue);
                        // 추가 이력
                        issueHistoryService.detectIssueHosting(IssueHistoryType.ADD, param, null, newIssueHosting, sb);
                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                        this.issueHostingRepository.saveAndFlush(newIssueHosting);
                    }
                } else if (issueForm.getHostingName() != null && !issueForm.getHostingName().equals("")) {
                    // 호스팅 정보 직접 추가
                    CreateHostingField(issueForm, issue);
                } else {
                    this.issueHostingRepository.deleteByIssueId(issue.getId());
                    this.issueHostingRepository.flush();
                } else { //추가 시
                    IssueHosting newIssueHosting = CreateIssueHosting(param, issue);
                    // 추가 이력
                    issueHistoryService.detectIssueHosting(IssueHistoryType.ADD, param, null, newIssueHosting, sb);
                    issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                    this.issueHostingRepository.saveAndFlush(newIssueHosting);
                }
            }else if (issueForm.getHostingName() != null && !issueForm.getHostingName().equals("")) {
                // 호스팅 정보 직접 추가
                CreateHostingField(issueForm, issue);
            } else {
                this.issueHostingRepository.deleteByIssueId(issue.getId());
                this.issueHostingRepository.flush();
            }
        }
    }
src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java
@@ -123,7 +123,6 @@
            if (issueIspFields != null && issueIspFields.size() > 0) {
                Map<String, Object> param = issueIspFields.get(0);
                if (issueIspFields != null && issueIspFields.size() > 0) {
                    IssueIsp issueIsp = this.issueIspRepository.findByIssueId(issue.getId());
                    if (issueIsp != null) {//수정 시
@@ -148,15 +147,14 @@
                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                        this.issueIspRepository.saveAndFlush(newIssueIsp);
                    }
                }
                // 사용자가 직접 입력시
                else if (issueForm.getIspName() != null && !issueForm.getIspName().equals("")) {
                    //ISP정보 직접 추가
                    CreateIspField(issueForm, issue);
                } else {
                    this.issueIspRepository.deleteByIssueId(issue.getId());
                    this.issueIspRepository.flush();
                }
            } // 사용자가 직접 입력시
            else if (issueForm.getIspName() != null && !issueForm.getIspName().equals("")) {
                //ISP정보 직접 추가
                CreateIspField(issueForm, issue);
            }
            else {
                this.issueIspRepository.deleteByIssueId(issue.getId());
                this.issueIspRepository.flush();
            }
        }
    }
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -3697,12 +3697,12 @@
        if (emailCommonForm.getSendEmails().size() < 1) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_SEND_USER));
        } else if (emailCommonForm.getIssueId() == null) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_EXIST));
        }
        Issue issue = this.getIssue(emailCommonForm.getIssueId());
        Issue issue = null;
        if(emailCommonForm.getIssueId() != null) {
            issue = this.getIssue(emailCommonForm.getIssueId());
        }
        //  발신자 표시
        User user = this.webAppUtil.getLoginUserObject();
@@ -3719,8 +3719,10 @@
        }
        this.systemEmailService.sendEmail(emailCommonForm.getTitle(), emailCommonForm.getDescription(), sendMails, null);
        this.issueHistoryService.detectSendIssueMail(IssueHistoryType.SEND, emailCommonForm.getSendEmails(), sb);
        this.issueHistoryService.addIssueHistory(issue, IssueHistoryType.SEND, sb.toString());
        if (issue != null) {
            this.issueHistoryService.detectSendIssueMail(IssueHistoryType.SEND, emailCommonForm.getSendEmails(), sb);
            this.issueHistoryService.addIssueHistory(issue, IssueHistoryType.SEND, sb.toString());
        }
    }
    //  예약 발생 이슈를 실행한다
src/main/webapp/scripts/app/common/common.controller.js
@@ -6,8 +6,8 @@
    function (app, angular) {
        app.controller('commonController', ['$scope', '$rootScope', '$log', 'Auth', '$state', 'User', '$resourceProvider', '$uibModal', 'SweetAlert', 'Workspace', '$translate', '$q',
            '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', 'IssueType',
            function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $interval, IssueSearch, $filter, Notice, Project, IssueType) {
            '$controller', '$injector', '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', 'IssueType',
            function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $controller, $injector, $interval, IssueSearch, $filter, Notice, Project, IssueType) {
                $scope.fn = {
                    logout: logout,    //  로그아웃
@@ -24,7 +24,8 @@
                    findIssueList : findIssueList,   // 사이드바 이슈 목록 가져오기
                    changeIssueListMenu : changeIssueListMenu,
                    setLastIssueType : setLastIssueType,
                    searchAll : searchAll       // 상단 검색
                    searchAll : searchAll,       // 상단 검색
                    sendCommonMail : sendCommonMail
                };
                $scope.vm = {
@@ -35,6 +36,8 @@
                        keyWord : ""
                    }
                };
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
                //  시스템에서 특정 이슈로 바로 이동할 수 있도록 해준다.
                $scope.$on("makeIssueSearch", function (event, args) {
@@ -66,6 +69,21 @@
                    }
                });
                // 일반 메일 발송 (사용자 직접 작성)
                function sendCommonMail() {
                    $uibModal.open({
                        templateUrl : 'views/issue/issueCommonSendMail.html',
                        size : "md",
                        controller : 'issueCommonSendMailController',
                        backdrop : 'static',
                        resolve : {
                            parameter : {
                                issueId : null,
                            }
                        }
                    });
                }
                // 메인 상단 검색
                function searchAll() {
                    if ($rootScope.isDefined($scope.vm.searchAll.keyWord)) {
src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
@@ -191,7 +191,7 @@
                        var name = partners[index].name;
                        var account = partners[index].account;
                        if(account.indexOf(",") !== -1) {
                        if(account != null && account.indexOf(",") !== -1) {
                            account = partners[index].account.split(",");
                            for (var i = 0; i < account.length; i++) {
                                $scope.vm.form.account[0].account[index+i] = account[i].trim();
@@ -211,12 +211,12 @@
                            angular.forEach(parameter.partners, function (partner) {
                                id = partner.id;
                                account = partner.account;
                                if(account.indexOf(",") !== -1) {
                                if(account != null && account.indexOf(",") !== -1) {
                                    account = partner.account.split(",");
                                }
                                name = partner.name;
                            });
                            if(account.size > 1) {
                            if(account != null && account.size > 1) {
                                for (var i = 0; i < account.size; i++) {
                                    $scope.vm.form.account[0].account[i] = account[i].trim();
                                    $scope.vm.form.account[0].name[i] = name;
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -17,7 +17,7 @@
                $scope.fn.getUserLevelList = getUserLevelList;  //  사용자 등급 관리 리스트
                $scope.fn.makeTableConfigs = makeTableConfigs;  //  사용자 등급 관리 목록 테이블 설정
                $scope.fn.initSearchUserLevel = initSearchUserLevel;  //  검색 조건 초기화
                $scope.fn.changePageRowCount = changeLevelPageRowCount;  //  업무 공간 참여 사용자 목록 보기 개수 변경
                $scope.fn.changeLevelPageRowCount = changeLevelPageRowCount;  //  업무 공간 참여 사용자 목록 보기 개수 변경
                $scope.fn.levelAdd = levelAdd;    //  등급 추가
                $scope.fn.removeLevels = removeLevels;    // 사용자 등급 삭제
                $scope.fn.makeSearchConditions = makeSearchConditions;
src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -338,7 +338,7 @@
                    CompanyField.find($resourceProvider.getContent(         //  페이징 업데이트가 필요한 컴포넌트 일경우, page 업데이트가 있을 경우 기본 10개씩 가져오고 아닐경우 25개씩 가져온다.
                        conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
                        conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 100 : 1000))).then(function (result) {
                        if (result.data.message.status === "success") {
                            if ($rootScope.isDefined(callBack)) {
                                callBack(result);
src/main/webapp/views/common/header.html
@@ -62,6 +62,10 @@
<!--                <span class="new-messages-push"></span>-->
                <i class="dripicons-broadcast"></i>
            </div>
            <a class="messages-notifications os-dropdown-trigger os-dropdown-position-left"
               style="padding-top:5px;">
                <i class="os-icon os-icon-email-2-at2 mr-20" ng-click="fn.sendCommonMail()" data-toggle="tooltip" data-placement="right" title="직접 작성한 메일 보내기"></i>
            </a>
            <!--
            <select name="currentWorkspace"