OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-24 b72f7719cb2427912b1fba6f3abb117ffd49de49
src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java
@@ -8,6 +8,8 @@
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.IspFieldForm;
import kr.wisestone.owl.web.form.IssueForm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -42,8 +44,9 @@
    //  이슈에서 사용되는 업체 값을 업데이트한다.
    @Override
    @Transactional
    public void modifyIssueIspField(Issue issue, List<Map<String, Object>> issueIspFields) {
    public void modifyIssueIspField(Issue issue, IssueForm issueForm) {
        if (issue != null) {
            List<Map<String, Object>> issueIspFields = issueForm.getIssueIspFields();
            if (issueIspFields != null && issueIspFields.size() > 0) {
                Map<String, Object> param = issueIspFields.get(0);
@@ -52,12 +55,11 @@
                    Set<IssueIsp> issueIsps = issue.getIssueIspFields();
                    IssueIsp issueIsp = new IssueIsp();
                    if (issueIsps != null && issueIsps.size() > 0) {//수정 할 경우
                        issueIsp = issueIsps.iterator().next();
                        // 변경 이력
                        StringBuilder sb = new StringBuilder();
                        issueHistoryService.detectIssueIsp(IssueHistoryType.MODIFY, param, issueIsp, sb);
                        issueHistoryService.detectIssueIsp(IssueHistoryType.MODIFY, param, null, issueIsp, sb);
                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                        issueIsp.setIspField(ispField);
@@ -76,13 +78,34 @@
                        }
                        // 추가 이력
                        StringBuilder sb = new StringBuilder();
                        issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, param, issueIsp, sb);
                        issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, param, null, issueIsp, sb);
                        issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                    }
                    this.issueIspRepository.saveAndFlush(issueIsp);
                }else {
                    this.issueIspRepository.deleteById(MapUtil.getLong(param, "id"));
                }
            } else if(issueForm.getIspName() != null && !issueForm.getIspName().equals("")) {
                IspFieldForm ispFieldForm = new IspFieldForm();
                ispFieldForm.setName(issueForm.getIspName());
                ispFieldForm.setCode(issueForm.getIspCode());
                ispFieldForm.setEmail(issueForm.getIspEmail());
                ispFieldForm.setUrl(issueForm.getIspUrl());
                ispFieldForm.setManager(issueForm.getIspManager());
                ispFieldForm.setTel(issueForm.getIspTel());
                ispFieldForm.setMemo(issueForm.getIspMemo());
                IspField ispField = this.ispFieldService.add(ispFieldForm);
                IssueIsp issueIsp = ConvertUtil.copyProperties(ispFieldForm, IssueIsp.class);
                issueIsp.setIssue(issue);
                if (ispField != null) {
                    issueIsp.setIspField(ispField);
                }
                // 추가 이력
                StringBuilder sb = new StringBuilder();
                issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, null, ispField, issueIsp, sb);
                issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString());
                this.issueIspRepository.saveAndFlush(issueIsp);
            }
        }
    }