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<Issue, Long, JpaRepository<Issue, Long>> implements GanttService {
|
|
private static final Logger log = LoggerFactory.getLogger(GanttServiceImpl.class);
|
|
@Autowired
|
private IssueRepository issueRepository;
|
|
@Autowired
|
private IssueService issueService;
|
|
@Override
|
protected JpaRepository<Issue, Long> getRepository() {
|
return this.issueRepository;
|
}
|
|
@Override
|
@Transactional
|
public void addIssueVersion(Long id) {
|
issueService.addIssueVersion(id);
|
}
|
|
|
// 이슈를 생성한다.
|
@Override
|
@Transactional
|
public Issue addIssue(IssueForm issueForm, List<MultipartFile> multipartFiles) {
|
return issueService.addIssue(issueForm, multipartFiles);
|
}
|
|
// 이슈 목록을 조회한다.
|
@Override
|
@Transactional(readOnly = true)
|
public List<IssueVo> findIssue(Map<String, Object> resJsonData,
|
IssueCondition issueCondition, Pageable pageable) {
|
|
return issueService.findChartIssue(resJsonData, issueCondition, pageable);
|
}
|
|
// 이슈 목록을 조회한다(프로젝트용)
|
@Override
|
@Transactional(readOnly = true)
|
public List<IssueVo> findIssue(Map<String, Object> resJsonData,
|
ProjectCondition projectCondition, Pageable pageable) {
|
|
return issueService.findChartIssue(resJsonData, projectCondition, pageable);
|
}
|
|
// 이슈 상세 정보를 조회한다.
|
@Override
|
@Transactional(readOnly = true)
|
public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable) {
|
issueService.detailIssue(resJsonData, issueCondition, relPageable, downPageable);
|
}
|
|
// 이슈를 수정한다.
|
@Override
|
@Transactional
|
public Issue modifyIssue(IssueForm issueForm, List<MultipartFile> multipartFiles) {
|
return issueService.modifyIssue(issueForm, multipartFiles);
|
}
|
|
// 이슈를 삭제한다.
|
@Override
|
@Transactional
|
public void removeIssues(IssueForm issueForm) {
|
issueService.removeIssues(issueForm);
|
}
|
}
|