From 9f955be440cad5e6b868800ff0a0acd17c0a3004 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 13 1월 2022 15:30:35 +0900
Subject: [PATCH] - issue_company 테이블에 컬럼 추가 및 'tel' 컬럼 사이즈 변경 - 이슈 추가,수정 시 업체 추가된 항목들 추가 - 하위이슈 페이징 오류 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
index a24332f..4eca191 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
@@ -1,12 +1,15 @@
 package kr.wisestone.owl.service.impl;
 
 import kr.wisestone.owl.domain.*;
+import kr.wisestone.owl.domain.enumType.IssueHistoryType;
 import kr.wisestone.owl.mapper.IssueCompanyMapper;
 import kr.wisestone.owl.repository.IssueCompanyRepository;
 import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.util.MapUtil;
 import kr.wisestone.owl.web.condition.IssueCondition;
+import kr.wisestone.owl.web.form.CompanyFieldForm;
+import kr.wisestone.owl.web.form.IssueForm;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +31,9 @@
     private CompanyFieldService companyFieldService;
 
     @Autowired
+    private IssueHistoryService issueHistoryService;
+
+    @Autowired
     private IssueCompanyMapper issueCompanyMapper;
 
     @Override
@@ -38,32 +44,77 @@
     //  �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �뾽泥� 媛믪쓣 �뾽�뜲�씠�듃�븳�떎.
     @Override
     @Transactional
-    public void modifyIssueCompanyField(Issue issue, List<Map<String, Object>> issueCompanyFields) {
+    public void modifyIssueCompanyField(Issue issue, IssueForm issueForm) {
         if (issue != null) {
+            List<Map<String, Object>> issueCompanyFields = issueForm.getIssueCompanyFields();
             if (issueCompanyFields != null && issueCompanyFields.size() > 0) {
                 Map<String, Object> param = issueCompanyFields.get(0);
 
-                if (param != null) {
+                if (param != null && param.get("companyId") != null  && param.get("companyId") != "") {
                     CompanyField companyField = this.companyFieldService.getCompany(MapUtil.getLong(param, "companyId")); //companyId 媛��졇�삤湲�
 
                     Set<IssueCompany> issueCompanies = issue.getIssueCompanies();
                     IssueCompany issueCompany = null;
-
                     if (issueCompanies != null && issueCompanies.size() > 0) { //�닔�젙 �븷 寃쎌슦
                         issueCompany = issueCompanies.iterator().next();
+                        // 蹂�寃� �씠�젰
+                        StringBuilder sb = new StringBuilder();
+                        issueHistoryService.detectIssueCompany(IssueHistoryType.MODIFY, param, null, issueCompany, sb);
+                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
+
                         issueCompany.setCompanyField(companyField);
                         issueCompany.setName(MapUtil.getString(param, "name"));
                         issueCompany.setEmail(MapUtil.getString(param, "email"));
+                        issueCompany.setUrl(MapUtil.getString(param, "url"));
                         issueCompany.setManager(MapUtil.getString(param, "manager"));
                         issueCompany.setTel(MapUtil.getString(param, "tel"));
                         issueCompany.setMemo(MapUtil.getString(param, "memo"));
+                        issueCompany.setCompanyTypeId(MapUtil.getLong(param, "companyTypeId"));
+                        issueCompany.setParentSectorId(MapUtil.getLong(param, "parentSectorId"));
+                        issueCompany.setChildSectorId(MapUtil.getLong(param, "childSectorId"));
+                        issueCompany.setRegionId(MapUtil.getLong(param, "regionId"));
+                        issueCompany.setStatusId(MapUtil.getLong(param, "statusId"));
                     } else  { //異붽� �븷 寃쎌슦
                         issueCompany = ConvertUtil.convertMapToClass(param, IssueCompany.class);
                         issueCompany.setIssue(issue);
-                        issueCompany.setCompanyField(companyField);
+                        if (companyField != null) {
+                            issueCompany.setCompanyField(companyField);
+                        }
+                        // 異붽� �씠�젰
+                        StringBuilder sb = new StringBuilder();
+                        issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, param, null, issueCompany, sb);
+                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                     }
                     this.issueCompanyRepository.saveAndFlush(issueCompany);
+                } else {
+                    this.issueCompanyRepository.deleteById(MapUtil.getLong(param, "id"));
                 }
+            } else if(issueForm.getCompanyName() != null && !issueForm.getCompanyName().equals("")) { //�뾽泥댁젙蹂� 吏곸젒 異붽�
+                CompanyFieldForm companyFieldForm = new CompanyFieldForm();
+                companyFieldForm.setName(issueForm.getCompanyName());
+                companyFieldForm.setEmail(issueForm.getCompanyEmail());
+                companyFieldForm.setUrl(issueForm.getCompanyUrl());
+                companyFieldForm.setManager(issueForm.getCompanyManager());
+                companyFieldForm.setTel(issueForm.getCompanyTel());
+                companyFieldForm.setMemo(issueForm.getCompanyMemo());
+                companyFieldForm.setCompanyTypeName(issueForm.getCompanyTypeName());
+                companyFieldForm.setParentSectorName(issueForm.getParentSectorName());
+                companyFieldForm.setChildSectorName(issueForm.getChildSectorName());
+                companyFieldForm.setRegionName(issueForm.getRegionName());
+                companyFieldForm.setStatusName(issueForm.getStatusName());
+
+                CompanyField companyField = this.companyFieldService.addCompany(companyFieldForm);
+
+                IssueCompany issueCompany = ConvertUtil.copyProperties(companyFieldForm, IssueCompany.class);
+                issueCompany.setIssue(issue);
+                if (companyField != null) {
+                    issueCompany.setCompanyField(companyField);
+                }
+                // 異붽� �씠�젰
+                StringBuilder sb = new StringBuilder();
+                issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, null, companyField, issueCompany, sb);
+                issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
+                this.issueCompanyRepository.saveAndFlush(issueCompany);
             }
         }
     }

--
Gitblit v1.8.0