From f8d35ef0bfc812494f7d30dff1d075a3327209f1 Mon Sep 17 00:00:00 2001
From: minhee <alsdldlfrl@gmail.com>
Date: 금, 11 2월 2022 18:30:04 +0900
Subject: [PATCH] - 사용자 정의 필드 필드 유형 변경시 기본값 항목 표시 오류 수정 폼에도 적용 - 입력 폼에서 탭키 안먹는 현상 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index 561db3a..e9d4f91 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -51,7 +51,13 @@
     private WorkflowService workflowService;
 
     @Autowired
+    private WorkflowDepartmentService workflowDepartmentService;
+
+    @Autowired
     private ProjectService projectService;
+
+    @Autowired
+    private ProjectRoleService projectRoleService;
 
     @Autowired
     private WorkspaceService workspaceService;
@@ -144,9 +150,31 @@
         Project project = this.projectService.getProject(issueTypeForm.getProjectId());
         issueType.setProject(project);
 
+        //  �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�� �룞�씪�븯寃� �꽭�똿
+        this.setDepartmentOfProject(project, workflow);
+
         issueType.setUsePartner(issueTypeForm.getUsePartner());
 
         return this.issueTypeRepository.saveAndFlush(issueType);
+    }
+
+    /**
+     * �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�� �룞�씪�븯寃� �꽭�똿
+     * @param project Project
+     * @param workflow Workflow
+     */
+    private void setDepartmentOfProject(Project project, Workflow workflow) {
+        List<WorkflowDepartment> workflowDepartments = this.workflowDepartmentService.find(workflow.getId());
+
+        //  �빐�떦 �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌媛� 議댁옱 �븷 寃쎌슦 �빐�떦 �봽濡쒖젥�듃�쓽 �떞�떦遺��꽌�뿉�룄 異붽�
+        if (workflowDepartments != null && workflowDepartments.size() > 0) {
+            ProjectRole projectRole = this.projectRoleService.findByProjectIdAndRoleType(project.getId(), ProjectRole.TYPE_DEFAULT);
+
+            for (WorkflowDepartment workflowDepartment : workflowDepartments) {
+                //  �봽濡쒖젥�듃 �떞�떦遺��꽌濡� 異붽�
+                projectRole.addDepartment(workflowDepartment.getDepartment());
+            }
+        }
     }
 
     //  �씠由� �쑀�슚�꽦 泥댄겕
@@ -247,9 +275,6 @@
         Long totalCount = this.issueTypeMapper.count(condition);
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
         List<IssueTypeVo> issueTypeVos = ConvertUtil.convertListToListClass(results, IssueTypeVo.class);
-//        for (IssueTypeVo issueTypeVo : issueTypeVos) {
-//
-//        }
 
         //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �썙�겕�뵆濡쒖슦 �젙蹂대�� �뀑�똿�븳�떎.
         if (condition.getDeep() != null) {
@@ -261,6 +286,7 @@
         /*this.setUseIssueTypeByCompanyField(issueTypeVos);
         this.setUseIssueTypeByIspField(issueTypeVos);
         this.setUseIssueTypeByHostingField(issueTypeVos);*/
+        this.setUsePartner(issueTypeVos);
 
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                 totalPage, totalCount));
@@ -284,6 +310,22 @@
         for (IssueTypeVo issueTypeVo : issueTypeVos) {
             IssueType issueType = this.getIssueType(issueTypeVo.getId());
             issueTypeVo.setWorkflowVo(ConvertUtil.copyProperties(issueType.getWorkflow(), WorkflowVo.class));
+        }
+    }
+
+    //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �뙆�듃�꼫 �젙蹂대�� �뀑�똿�븳�떎.
+    private void setUsePartner(List<IssueTypeVo> issueTypeVos) {
+        for (IssueTypeVo issueTypeVo : issueTypeVos) {
+            List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
+            if (issueTypeVo.getUsePartners() != null) {
+                for (Integer usePartner : UsePartner.partners) {// 1 // 2 // 4
+                    UsePartnerVo usePartnerVo = UsePartner.checkUsePartner(issueTypeVo.getUsePartners(), usePartner);//3, 1 / 3, 2 / 3, 4
+                    if (usePartnerVo != null) {
+                        usePartnerVos.add(usePartnerVo);
+                    }
+                }
+                issueTypeVo.setUsePartnerVos(usePartnerVos);
+            }
         }
     }
 
@@ -388,6 +430,9 @@
         Project project = this.projectService.getProject(issueTypeForm.getProjectId());
         issueType.setProject(project);
 
+        //  �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�� �룞�씪�븯寃� �꽭�똿
+        this.setDepartmentOfProject(project, workflow);
+
         issueType.setUsePartner(issueTypeForm.getUsePartner());
 
         /*if(issueTypeForm.getCompanyId() != null){
@@ -471,6 +516,13 @@
         return this.issueTypeRepository.findByWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
     }
 
+    //  �썙�겕�뵆濡쒖슦 ID濡� �씠�뒋 �쑀�삎 議고쉶
+    @Override
+    @Transactional(readOnly = true)
+    public List<IssueType> findByWorkflowId(Long id) {
+        return this.issueTypeRepository.findByWorkflowId(id);
+    }
+
     //  �씠�뒋 ���엯 �븘�뱶 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
     @Override
     @Transactional

--
Gitblit v1.8.0