From 257766aa7e8a88b2b371fc6f8f52751af7d84eda Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 수, 08 12월 2021 21:54:40 +0900
Subject: [PATCH] 연관 ,하위 이슈 요청 횟수 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   73 +++++++++++++++++++++++++++++++++---
 1 files changed, 67 insertions(+), 6 deletions(-)

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 416ded3..8e77478 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -17,6 +17,7 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.IssueMapper;
 import kr.wisestone.owl.mapper.ProjectMapper;
+import kr.wisestone.owl.repository.IssueRelationRepository;
 import kr.wisestone.owl.repository.IssueRepository;
 import kr.wisestone.owl.repository.UserDepartmentRepository;
 import kr.wisestone.owl.repository.WorkflowDepartmentRepository;
@@ -57,6 +58,9 @@
 
     @Autowired
     private ProjectService projectService;
+
+    @Autowired
+    private IssueTableConfigService issueTableConfigService;
 
     @Autowired
     private IssueStatusService issueStatusService;
@@ -153,6 +157,9 @@
 
     @Autowired
     private IssueRelationService issueRelationService;
+
+    @Autowired
+    private IssueRelationRepository issueRelationRepository;
 
     @Autowired
     private ExcelView excelView;
@@ -1222,6 +1229,7 @@
 
                 case "02": //  �봽濡쒖젥�듃, �씠�뒋 �쑀�삎, �씠�뒋 �긽�깭,  �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦�옄, 泥⑤��뙆�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂�, �뙎湲�, 湲곕줉�쓣 �뀑�똿�븳�떎.
                     this.setIssueDetail(issueVo, issue);    //  �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎.
+                    this.setIssueTableConfigs(issue, issueVo);
                     issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class));
                     break;
             }
@@ -1232,6 +1240,26 @@
 
         resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo);
     }
+
+    // �뀒�씠釉� �꽕�젙 �뀑�똿
+    private void setIssueTableConfigs(Issue issue, IssueVo issueVo) {
+        Long IssueTypeId = issue.getIssueType().getId();
+
+        for (int tableConfigType : IssueTableConfig.IssueTableTypes) {
+            if (tableConfigType != IssueTableConfig.ISSUE_TABLE_TYPE_MAIN) {
+                issueVo.addIssueTableConfigVo(createIssueTableConfigVo(IssueTypeId, tableConfigType));
+            }
+        }
+    }
+
+    private IssueTableConfigVo createIssueTableConfigVo(Long issueTypeId, int tableConfigType) {
+        IssueTableConfig issueTableConfig = this.issueTableConfigService.findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(issueTypeId, tableConfigType);
+        if (issueTableConfig != null) {
+            return ConvertUtil.copyProperties(issueTableConfig, IssueTableConfigVo.class);
+        }
+        return new IssueTableConfigVo();
+    }
+
 
     // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎
     private void setDownIssues(Issue issue, IssueVo issueVo) {
@@ -1509,6 +1537,15 @@
     }
 
 
+    // �븯�쐞 �씠�뒋媛� 紐⑤몢 醫낅즺 泥섎━ �릺�뿀�쓣 寃쎌슦 �긽�쐞�씠�뒋�룄 �셿猷� 泥섎━
+    private void setParentIssueComplete(Issue parentIssue) {
+        if (parentIssue != null) {
+            this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId());
+
+        }
+    }
+
+
     // �씠�뒋瑜� �닔�젙�븳�떎(api�슜)
     @Override
     @Transactional
@@ -1516,18 +1553,31 @@
         User user = this.convertToUser(issueApiForm.getToken());
         IssueForm issueForm = this.convertToIssueForm(issueApiForm, user);
 
-
         List<IssueVo> issueVos = this.findIssue(issueApiForm);
         if (issueVos != null && issueVos.size() > 0) {
             List<Issue> issue = Lists.newArrayList();
             for (IssueVo issueVo : issueVos) {
                 IssueVo parentIssueVo = issueVo.getParentIssueVo();
-                if (parentIssueVo != null) {
-                    issueForm.setId(parentIssueVo.getId());
-                } else {
-                    issueForm.setId(issueVo.getId());
+                issueForm.setId(issueVo.getId());
+
+                // �옄�룞 醫낅즺 �긽�깭 �꽕�젙�씠 �릺�뼱 �엳吏� �븡�쑝硫� �삤瑜섎컻�깮
+                Issue modifyIssue = this.modifyIssueForApi(user, issueForm, files);
+                Issue parentIssue = modifyIssue.getParentIssue();
+                IssueType issueType = modifyIssue.getIssueType();
+                IssueStatus issueStatus = issueType.getIssueStatus();
+                if (issueStatus == null) {
+                    throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST));
                 }
-                issue.add(this.modifyIssueForApi(user, issueForm, files));
+
+                if (parentIssue != null) {
+                    List<Map<String, Object>> results = this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId());
+                    // �븯�쐞 �씪媛먯씠 紐⑤몢 醫낅즺 �긽�깭�씪�븣 �긽�쐞 �씪媛먮룄 醫낅즺 泥섎━
+                    if (results == null || results.size() == 0) {
+                        parentIssue.setIssueStatus(issueType.getIssueStatus());
+                    }
+                }
+
+                issue.add(modifyIssue);
             }
             return issue;
         } else {
@@ -2074,6 +2124,17 @@
             this.attachedFileService.removeAttachedFiles(attachedFileIds);
         }
 
+        // 吏��슱 �씠�뒋媛� �뿰愿��씠�뒋�씤吏� 泥댄겕 �썑 �뿰愿��씠�뒋 �뀒�씠釉붿뿉�꽌�룄 �궘�젣�븳�떎.
+        List<IssueRelation> issueRelationList = this.issueRelationRepository.findByRelationIssueId(issueId);
+        if (issueRelationList != null && issueRelationList.size() > 0) {
+            for(IssueRelation issueRelation : issueRelationList){
+                StringBuilder sb = new StringBuilder();
+                issueHistoryService.detectRelationIssue(IssueHistoryType.DELETE, issueRelation, sb);
+                issueHistoryService.addIssueHistory(issueRelation.getIssue(), IssueHistoryType.MODIFY, sb.toString());
+                this.issueRelationRepository.delete(issueRelation);
+            }
+        }
+
         //  �씠�뒋 �깮�꽦, �궘�젣�떆 �삁�빟 �씠硫붿씪�뿉 �벑濡앺빐�넃�뒗�떎.
         this.reservationIssueEmail(issue, EmailType.ISSUE_REMOVE);
         //  �씠�뒋 �궘�젣

--
Gitblit v1.8.0