From 5d4d5135cf08208832f6308d9f03c25de17e9f66 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 금, 03 12월 2021 22:24:55 +0900
Subject: [PATCH] 사용자정의 필드 날짜 수정, 프로젝트 생성시 대쉬보드 이동 오류 수정

---
 src/main/webapp/assets/images/Email.png                               |    0 
 src/main/webapp/assets/images/badcode.png                             |    0 
 src/main/webapp/scripts/app/common/common.controller.js               |    4 
 src/main/webapp/assets/images/domain.png                              |    0 
 src/main/webapp/assets/styles/main.css                                |   28 ++++++++-
 src/main/java/kr/wisestone/owl/web/controller/NoticeController.java   |    8 ++
 src/main/webapp/assets/images/hosting.png                             |    0 
 src/main/webapp/views/issue/issueDetail.html                          |   28 +++++----
 src/main/webapp/views/issue/issueSendMailPartners.html                |   13 +++-
 src/main/java/kr/wisestone/owl/service/impl/NoticeServiceImpl.java    |   55 +++++++++++++++++-
 src/main/webapp/WEB-INF/i18n/code_ko_KR.properties                    |    3 +
 src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js |   14 ++++
 src/main/java/kr/wisestone/owl/service/NoticeService.java             |    5 +
 13 files changed, 133 insertions(+), 25 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/NoticeService.java b/src/main/java/kr/wisestone/owl/service/NoticeService.java
index c56192f..cd89cbb 100644
--- a/src/main/java/kr/wisestone/owl/service/NoticeService.java
+++ b/src/main/java/kr/wisestone/owl/service/NoticeService.java
@@ -6,7 +6,10 @@
 import kr.wisestone.owl.web.form.NoticeForm;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.ui.Model;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
 
@@ -23,4 +26,6 @@
     void detailNotice(Map<String, Object> resJsonData, NoticeCondition noticeCondition);
 
     void sendNotice(NoticeForm noticeForm);
+
+    ModelAndView downloadExcel(HttpServletRequest request, Model model);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/NoticeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/NoticeServiceImpl.java
index 4d30df3..da7d162 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/NoticeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/NoticeServiceImpl.java
@@ -1,5 +1,6 @@
 package kr.wisestone.owl.service.impl;
 
+import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.config.kafka.KafkaSender;
 import kr.wisestone.owl.constant.Constants;
 import kr.wisestone.owl.constant.MsgConstants;
@@ -10,17 +11,23 @@
 import kr.wisestone.owl.repository.NoticeRepository;
 import kr.wisestone.owl.service.NoticeService;
 import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.service.WorkspaceService;
 import kr.wisestone.owl.util.ConvertUtil;
-import kr.wisestone.owl.vo.NoticeVo;
-import kr.wisestone.owl.vo.ResPage;
+import kr.wisestone.owl.vo.*;
+import kr.wisestone.owl.web.condition.CompanyFieldCondition;
 import kr.wisestone.owl.web.condition.NoticeCondition;
 import kr.wisestone.owl.web.form.NoticeForm;
+import kr.wisestone.owl.web.view.ExcelView;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.Model;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -32,13 +39,22 @@
     private NoticeRepository noticeRepository;
 
     @Autowired
+    private NoticeMapper noticeMapper;
+
+    @Autowired
     private UserService userService;
 
     @Autowired
-    private KafkaSender kafkaSender;
+    private WorkspaceService workspaceService;
 
     @Autowired
-    private NoticeMapper noticeMapper;
+    private ExcelView excelView;
+
+    @Autowired
+    private ExcelConditionCheck excelConditionCheck;
+
+    @Autowired
+    private KafkaSender kafkaSender;
 
     @Override
     protected JpaRepository<Notice, Long> getRepository() {
@@ -153,4 +169,35 @@
             this.kafkaSender.send("common-topic", message);
         }
     }
+
+    @Override
+    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+        ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model);
+        if (modelAndView != null) {
+            return modelAndView;
+        }
+
+        Map<String, Object> conditions = new HashMap<>();
+        //  �뿊�� �떎�슫濡쒕뱶�뿉 �븘�슂�븳 寃��깋 議곌굔 �젙蹂대�� 異붿텧�븯怨� 寃��깋 議곌굔 異붿텧�뿉 �삤瑜섍� 諛쒖깮�븯硫� 寃쎄퀬瑜� �몴�떆�빐以��떎.
+        modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model);
+        if (modelAndView != null) {
+            return modelAndView;
+        }
+
+        NoticeCondition noticeCondition = NoticeCondition.make(conditions);
+        List<Map<String, Object>> results = this.noticeMapper.find(noticeCondition);
+        List<NoticeVo> noticeVos = ConvertUtil.convertListToListClass(results, NoticeVo.class);
+
+        // code_ko_KR �뿉 code紐� �꽕�젙
+        ExportExcelVo excelInfo = new ExportExcelVo();
+        excelInfo.setFileName(this.messageAccessor.message("怨듭��궗�빆 紐⑸줉"));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("notice.title"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("registerDate", this.messageAccessor.message("notice.registerDate"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("registerId", this.messageAccessor.message("notice.registerId"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+
+        excelInfo.setDatas(noticeVos);
+
+        model.addAttribute(Constants.EXCEL, excelInfo);
+        return new ModelAndView(this.excelView);
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/controller/NoticeController.java b/src/main/java/kr/wisestone/owl/web/controller/NoticeController.java
index d53ba90..74a4969 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/NoticeController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/NoticeController.java
@@ -8,11 +8,14 @@
 import org.springframework.data.domain.Pageable;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -85,5 +88,10 @@
         return this.setSuccessMessage(resJsonData);
     }
 
+
+    @RequestMapping(value = "/notice/downloadExcel", method = RequestMethod.POST)
+    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+        return this.noticeService.downloadExcel(request, model);
+    }
 }
 
diff --git a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
index 1288bb8..198da73 100644
--- a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
@@ -119,6 +119,9 @@
 manageUser.manageFAQPerm=FAQ \uAD00\uB9AC
 manageUser.manageQnAPerm=QnA \uAD00\uB9AC
 manageUser.manageGuidePerm=\uAC00\uC774\uB4DC \uAD00\uB9AC
+notice.title=\uC81C\uBAA9
+notice.registerDate=\uB4F1\uB85D\uC77C
+notice.registerId=\uB4F1\uB85D\uC790
 department.departmentName=\uBD80\uC11C\uBA85
 department.departmentDescription=\uBD80\uC11C\uC124\uBA85
 department.departmentCount=\uBD80\uC11C\uC778\uC6D0
diff --git a/src/main/webapp/assets/images/Email.png b/src/main/webapp/assets/images/Email.png
new file mode 100644
index 0000000..cf34789
--- /dev/null
+++ b/src/main/webapp/assets/images/Email.png
Binary files differ
diff --git a/src/main/webapp/assets/images/badcode.png b/src/main/webapp/assets/images/badcode.png
new file mode 100644
index 0000000..1332a48
--- /dev/null
+++ b/src/main/webapp/assets/images/badcode.png
Binary files differ
diff --git a/src/main/webapp/assets/images/domain.png b/src/main/webapp/assets/images/domain.png
new file mode 100644
index 0000000..7dc8a94
--- /dev/null
+++ b/src/main/webapp/assets/images/domain.png
Binary files differ
diff --git a/src/main/webapp/assets/images/hosting.png b/src/main/webapp/assets/images/hosting.png
new file mode 100644
index 0000000..0330408
--- /dev/null
+++ b/src/main/webapp/assets/images/hosting.png
Binary files differ
diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css
index 2d4c0ac..ca749e7 100644
--- a/src/main/webapp/assets/styles/main.css
+++ b/src/main/webapp/assets/styles/main.css
@@ -897,6 +897,9 @@
 .offset-detail-2 {
     margin-left: 4%;
 }
+.offset-detail-3 {
+    margin-left: 9.2%;
+}
 
 .offset-1 {
     margin-left: 8.3333333333%;
@@ -28472,6 +28475,14 @@
     margin-top: 30px !important;
 }
 
+.mt-40 {
+    margin-top: 40px; !important;
+}
+
+.mt-50 {
+    margin-top: 50px; !important;
+}
+
 .ml-10 {
     margin-left: 10px !important;
 }
@@ -30379,6 +30390,20 @@
     font-weight: 600;
 }
 
+.email_font {
+    color: #494848;
+    font-size: 0.75rem;
+    line-height: 1.5;
+    font-weight: 600;
+}
+
+.info_detail_font {
+    color: #000;
+    font-size: 1rem;
+    line-height: 1.5;
+    font-weight: 600;
+}
+
 .email_color {
     color:#0066ff;
 }
@@ -30422,7 +30447,4 @@
     margin: 0 auto;
 }
 
-.Email-Template-detail {
-
-}
 /* 媛꾪듃李⑦듃 end */
diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js
index 22d53cf..fd7f242 100644
--- a/src/main/webapp/scripts/app/common/common.controller.js
+++ b/src/main/webapp/scripts/app/common/common.controller.js
@@ -86,8 +86,8 @@
                             moveMenu("issues.list");
                         }
                     }
-
-                    $rootScope.$broadcast("changeIssueListMenu", $rootScope.issueTypeMenu);
+                    moveMenu("issues.list");
+                    //$rootScope.$broadcast("changeIssueListMenu", $rootScope.issueTypeMenu);
 
                     if ($rootScope.user.lastIssueTypeId !== issueTypeId) {
                         $scope.fn.setLastIssueType(issueTypeId);
diff --git a/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js b/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
index c529916..c12090b 100644
--- a/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
@@ -140,6 +140,8 @@
                 function showEmailTemplate() {
                     const div1 = document.getElementById('Email-Template1');
                     const div2 = document.getElementById('Email-Template2');
+                    const div3 = document.getElementById('Email-Template3');
+                    const div4 = document.getElementById('Email-Template4');
 
                     if(div1.style.display === 'none') {
                         div1.style.display = 'block';
@@ -151,6 +153,18 @@
                     } else if (div2.style.display == 'block') {
                         div2.style.display = 'none';
                     }
+
+                    if (div3.style.display == 'none') {
+                        div3.style.display = 'block';
+                    } else if (div3.style.display == 'block') {
+                        div3.style.display = 'none';
+                    }
+
+                    if (div4.style.display == 'none') {
+                        div4.style.display = 'block';
+                    } else if (div4.style.display == 'block') {
+                        div4.style.display = 'none';
+                    }
                 }
             }]);
     });
diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html
index e640537..40df672 100644
--- a/src/main/webapp/views/issue/issueDetail.html
+++ b/src/main/webapp/views/issue/issueDetail.html
@@ -188,14 +188,9 @@
                 <div class="row">
                     <div class="col-md-4">
                         <div class="form-group">
-                            <h6 class="info_font" translate="common.detectingInfo">�깘吏��젙蹂�</h6>
+                            <h6 class="info_detail_font" translate="common.detectingInfo">�깘吏��젙蹂�</h6>
                             <span class="issue-detail-label" style="position: relative; top: 1rem" ng-show="vm.viewer.issueCustomFields == ''">�궗�슜�옄 �젙�쓽 �븘�뱶媛믪씠 �뾾�뒿�땲�떎.</span>
                         </div>
-                    </div>
-                    <div class="col-md-2">
-                        <issue-detail-image-preview images="vm.images"></issue-detail-image-preview>
-                    </div>
-                    <div ng-show="vm.images.length < 1" class="detail-not-elements width-100">
                     </div>
                 </div>
                 <!-- �궗�슜�옄 �젙�쓽 �븘�뱶 -->
@@ -259,9 +254,16 @@
                                 ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}, </span>
                                 <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span>
                             </div>
-                        </div>
-                    </div>
 
+                        </div>
+
+                    </div>
+                    <!--�씠誘몄� 誘몃━蹂닿린-->
+                    <div class="col-md-2">
+                        <issue-detail-image-preview images="vm.images"></issue-detail-image-preview>
+                    </div>
+                    <div ng-show="vm.images.length < 1" class="detail-not-elements width-100">
+                    </div>
                 </div>
 
 
@@ -278,7 +280,7 @@
                 <div ng-show="fn.containsPartner('�뾽泥�')" class="row">
                     <div class="col-sm-2">
                         <div class="form-group">
-                            <h6 class="info_font" translate="companyField.info">�뾽泥댁젙蹂�</h6>
+                            <h6 class="info_detail_font" translate="companyField.info">�뾽泥댁젙蹂�</h6>
                         </div>
                     </div>
                 </div>
@@ -332,7 +334,7 @@
                 <div ng-show="fn.containsPartner('ISP');" class="row">
                     <div class="col-sm-2">
                         <div class="form-group">
-                            <h6 class="info_font" translate="ispField.info">ISP�젙蹂�</h6>
+                            <h6 class="info_detail_font" translate="ispField.info">ISP�젙蹂�</h6>
                         </div>
                     </div>
                 </div>
@@ -393,7 +395,7 @@
                 <div ng-show="fn.containsPartner('�샇�뒪�똿');" class="row">
                     <div class="col-sm-2">
                         <div class="form-group">
-                            <h6 class="info_font" translate="hostingField.info">�샇�뒪�똿�젙蹂�</h6>
+                            <h6 class="info_detail_font" translate="hostingField.info">�샇�뒪�똿�젙蹂�</h6>
                         </div>
                     </div>
                 </div>
@@ -454,7 +456,7 @@
 
                 <div class="row mt-30">
                     <div class="col-md-10">
-                        <span class="info_font h3" translate="issue.relationIssue">�뿰愿� �씠�뒋</span>
+                        <span class="info_detail_font h3" translate="issue.relationIssue">�뿰愿� �씠�뒋</span>
                     </div>
                     <div class="col-md-1">
                         <button class="btn btn-darkgrey offset-12" ng-click="fn.addRelationIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</span></button>
@@ -501,7 +503,7 @@
 
                 <div class="row mt-30">
                     <div class="col-md-10">
-                        <span class="info_font h3" translate="issue.downIssue">�븯�쐞 �씠�뒋</span>
+                        <span class="info_detail_font h3" translate="issue.downIssue">�븯�쐞 �씠�뒋</span>
                     </div>
                     <div class="col-md-1">
                         <button class="btn btn-darkgrey offset-12"  ng-click="fn.addDownIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">�뀒�씠釉� �몴�떆 �꽕�젙</span></button>
diff --git a/src/main/webapp/views/issue/issueSendMailPartners.html b/src/main/webapp/views/issue/issueSendMailPartners.html
index ed4011a..7d93196 100644
--- a/src/main/webapp/views/issue/issueSendMailPartners.html
+++ b/src/main/webapp/views/issue/issueSendMailPartners.html
@@ -34,10 +34,15 @@
                                        type : 'partner', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete>
                     <div class="Template-area mt-20">
                         <label class="issue-detail-label">�씠硫붿씪 �뀥�뵆由�</label>
-                            <div class="mt-20">
+                            <div class="mt-10">
                                 <img id="ISSUE_SEND_1" class="TemplateIMG" src="assets/images/image-email.png" ng-click="fn.changeTemplate('ISSUE_SEND_1')">
                                 <img id="ISSUE_SEND_2" class="TemplateIMG" src="assets/images/image-email.png" ng-click="fn.changeTemplate('ISSUE_SEND_2')">
                                 <img id="ISSUE_SEND_3" class="TemplateIMG" src="assets/images/image-email.png" ng-click="fn.changeTemplate('ISSUE_SEND_3')">
+                                <div>
+                                    <span class="email_font">�븙�꽦肄붾뱶</span>
+                                    <span class="email_font offset-detail-3">�룄硫붿씤</span>
+                                    <span class="email_font offset-detail-3">�샇�뒪�똿</span>
+                                </div>
                             </div>
                         <input class="btn-toggled btn-primary table-bordered" style="float: left" type="button" value="�뀥�뵆由�" ng-click="fn.showEmailTemplate()">
                     </div>
@@ -55,7 +60,9 @@
         </button>
     </div>
     <div>
-        <img style="height: 350px; width: 330px; display: none; margin: 0 auto;" class="mt-20" id="Email-Template1" src="assets/images/email-temp-detail.png">
-        <img style="height: 350px; width: 330px; display: none; margin: 0 auto;" class="mt-20 mb-30" id="Email-Template2" src="assets/images/email-temp.png">
+        <img style="height: 24px; width: 250px; display: none; margin: 0 auto;" id="Email-Template1" src="assets/images/domain.png">
+        <img style="height: 24px; width: 250px; display: none; margin: 0 auto; margin-top: 50px" id="Email-Template2" src="assets/images/badcode.png">
+        <img style="height: 24px; width: 250px; display: none; margin: 0 auto; margin-top: 50px" id="Email-Template3" src="assets/images/hosting.png">
     </div>
+    <img style="height: 500px; width: 440px; display: none; margin: 0 auto;" class="mt-20 mb-30" id="Email-Template4" src="assets/images/Email.png">
 </div>
\ No newline at end of file

--
Gitblit v1.8.0