From 8672cdbd8817957c1fb1996fb870e358c5b6022c Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 17 1월 2022 16:28:21 +0900
Subject: [PATCH] - 헤더에 일반 메일 보내기 기능 추가 - 업체 엑셀 다운로드 시 카테고리 항목들도 보여지도록 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java            |   14 ++-
 src/main/webapp/scripts/components/utils/autoComplete.controller.js          |    2 
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java     |   77 +++++++++++-------
 src/main/webapp/scripts/app/common/common.controller.js                      |   24 +++++
 src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java         |   18 ++--
 src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js        |    6 
 src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js |    2 
 src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java     |   52 ++++++------
 src/main/webapp/views/common/header.html                                     |    4 +
 9 files changed, 118 insertions(+), 81 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
index a5a4271..5c5ea3e 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/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紐� �꽕�젙
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java
index b1460f5..d33943c 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java
+++ b/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();
             }
         }
     }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java
index d1a24e2..b41b0ef 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java
+++ b/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();
             }
         }
     }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index 4ec7642..54e58cf 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/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());
+        }
     }
 
     //  �삁�빟 諛쒖깮 �씠�뒋瑜� �떎�뻾�븳�떎
diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js
index d34e718..9097071 100644
--- a/src/main/webapp/scripts/app/common/common.controller.js
+++ b/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)) {
diff --git a/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js b/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
index b90049a..f1a4539 100644
--- a/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
+++ b/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;
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
index d9eff60..d8a61bc 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
+++ b/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;
diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
index e4b86e9..b1d0fcb 100644
--- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js
+++ b/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);
diff --git a/src/main/webapp/views/common/header.html b/src/main/webapp/views/common/header.html
index 9c6f393..c87fcce 100644
--- a/src/main/webapp/views/common/header.html
+++ b/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"

--
Gitblit v1.8.0