package kr.wisestone.owl.service.impl; import com.google.common.collect.Lists; import kr.wisestone.owl.common.ExcelConditionCheck; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.ElasticSearchConstants; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.domain.enumType.CustomFieldType; import kr.wisestone.owl.domain.enumType.EmailType; import kr.wisestone.owl.domain.enumType.IssueHistoryType; import kr.wisestone.owl.domain.enumType.IssueStatusType; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.IssueMapper; import kr.wisestone.owl.mapper.ProjectMapper; import kr.wisestone.owl.repository.IssueRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.*; import kr.wisestone.owl.util.DateUtil; import kr.wisestone.owl.vo.*; import kr.wisestone.owl.web.condition.IssueCondition; import kr.wisestone.owl.web.condition.IssueTypeCustomFieldCondition; import kr.wisestone.owl.web.condition.ProjectCondition; import kr.wisestone.owl.web.form.IssueCommentForm; import kr.wisestone.owl.web.form.IssueForm; import kr.wisestone.owl.web.view.ExcelView; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.StopWatch; import org.apache.poi.ss.usermodel.*; import org.jsoup.Jsoup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.*; @Service public class GanttServiceImpl extends AbstractServiceImpl> implements GanttService { private static final Logger log = LoggerFactory.getLogger(GanttServiceImpl.class); @Autowired private IssueRepository issueRepository; @Autowired private IssueService issueService; @Override protected JpaRepository getRepository() { return this.issueRepository; } @Override @Transactional public void addIssueVersion(Long id) { issueService.addIssueVersion(id); } // 이슈를 생성한다. @Override @Transactional public Issue addIssue(IssueForm issueForm, List multipartFiles) { return issueService.addIssue(issueForm, multipartFiles); } // 이슈 목록을 조회한다. @Override @Transactional(readOnly = true) public List findIssue(Map resJsonData, IssueCondition issueCondition, Pageable pageable) { return issueService.findChartIssue(resJsonData, issueCondition, pageable); } // 이슈 목록을 조회한다(프로젝트용) @Override @Transactional(readOnly = true) public List findIssue(Map resJsonData, ProjectCondition projectCondition, Pageable pageable) { return issueService.findChartIssue(resJsonData, projectCondition, pageable); } // 이슈 상세 정보를 조회한다. @Override @Transactional(readOnly = true) public void detailIssue(Map resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable) { issueService.detailIssue(resJsonData, issueCondition, relPageable, downPageable); } // 이슈를 수정한다. @Override @Transactional public Issue modifyIssue(IssueForm issueForm, List multipartFiles) { return issueService.modifyIssue(issueForm, multipartFiles); } // 이슈를 삭제한다. @Override @Transactional public void removeIssues(IssueForm issueForm) { issueService.removeIssues(issueForm); } }