| | |
| | | @JoinColumn(name = "severity_id") |
| | | private Severity severity; |
| | | |
| | | @ManyToOne(fetch=FetchType.LAZY) |
| | | @JoinColumn(name = "company_id") |
| | | private CompanyField companyField; |
| | | |
| | | @ManyToOne(fetch=FetchType.LAZY) |
| | | @JoinColumn(name = "hosting_id") |
| | | private HostingField hostingFieldId; |
| | | |
| | | @ManyToOne(fetch=FetchType.LAZY) |
| | | @JoinColumn(name = "isp_id") |
| | | private IspField ispFieldId; |
| | | |
| | | @OneToOne(mappedBy = "issue", cascade = {CascadeType.ALL}, orphanRemoval = true) |
| | | private IssueRisk issueRisk; |
| | | |
| | |
| | | |
| | | @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) |
| | | private Set<IssueCustomFieldValue> issueCustomFieldValues = new HashSet<>(); |
| | | |
| | | @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) |
| | | private Set<IssueCompany> issueCompanies = new HashSet<>(); |
| | | |
| | | @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) |
| | | private Set<IssueIsp> issueIsps = new HashSet<>(); |
| | | |
| | | @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) |
| | | private Set<IssueHosting> issueHostings = new HashSet<>(); |
| | | |
| | | @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) |
| | | private Set<IssueVersion> issueVersions = new HashSet<>(); |
| | |
| | | this.severity = severity; |
| | | } |
| | | |
| | | public CompanyField getCompanyField() { |
| | | return companyField; |
| | | } |
| | | |
| | | public void setCompanyField(CompanyField companyField) { |
| | | this.companyField = companyField; |
| | | } |
| | | |
| | | public HostingField getHostingFieldId() { |
| | | return hostingFieldId; |
| | | } |
| | | |
| | | public void setHostingFieldId(HostingField hostingFieldId) { |
| | | this.hostingFieldId = hostingFieldId; |
| | | } |
| | | |
| | | public IspField getIspFieldId() { |
| | | return ispFieldId; |
| | | } |
| | | |
| | | public void setIspFieldId(IspField ispFieldId) { |
| | | this.ispFieldId = ispFieldId; |
| | | } |
| | | |
| | | public IssueRisk getIssueRisk() { |
| | | return issueRisk; |
| | | } |
| | |
| | | this.issueCustomFieldValues = issueCustomFieldValues; |
| | | } |
| | | |
| | | public Set<IssueCompany> getIssueCompanies() { |
| | | return issueCompanies; |
| | | } |
| | | |
| | | public void setIssueCompanies(Set<IssueCompany> issueCompanies) { |
| | | this.issueCompanies = issueCompanies; |
| | | } |
| | | |
| | | public Set<IssueIsp> getIssueIspFields() { |
| | | return issueIsps; |
| | | } |
| | | |
| | | public void setIssueIspFields(Set<IssueIsp> issueIsps) { |
| | | this.issueIsps = issueIsps; |
| | | } |
| | | |
| | | public Set<IssueHosting> getIssueHostingFields() { |
| | | return issueHostings; |
| | | } |
| | | |
| | | public void setIssueHostingFields(Set<IssueHosting> issueHostings) { |
| | | this.issueHostings = issueHostings; |
| | | } |
| | | |
| | | public String getStartDate() { |
| | | return startDate; |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.domain; |
| | | |
| | | import javax.persistence.*; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-03-07. |
| | | */ |
| | | @Entity |
| | | public class IssueCompany extends BaseEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Id |
| | | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| | | private Long id; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "issue_id") |
| | | private Issue issue; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "company_id") |
| | | private CompanyField companyField; |
| | | |
| | | public IssueCompany(){} |
| | | |
| | | public IssueCompany(Issue issue, CompanyField companyField, String name, String manager, String tel, String email, String memo){ |
| | | this.issue = issue; |
| | | this.companyField = companyField; |
| | | this.name = name; |
| | | this.manager = manager; |
| | | this.tel = tel; |
| | | this.email = email; |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Issue getIssue() { |
| | | return issue; |
| | | } |
| | | |
| | | public void setIssue(Issue issue) { |
| | | this.issue = issue; |
| | | } |
| | | |
| | | public CompanyField getCompanyField() { |
| | | return companyField; |
| | | } |
| | | |
| | | public void setCompanyField(CompanyField companyField) { |
| | | this.companyField = companyField; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.domain; |
| | | |
| | | import javax.persistence.*; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-03-07. |
| | | */ |
| | | @Entity |
| | | public class IssueHosting extends BaseEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Id |
| | | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| | | private Long id; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "issue_id") |
| | | private Issue issue; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "hosting_id") |
| | | private HostingField hostingField; |
| | | |
| | | public IssueHosting(){} |
| | | |
| | | public IssueHosting(Issue issue, HostingField hostingField, String name, String manager, String tel, String email, String memo){ |
| | | this.issue = issue; |
| | | this.hostingField = hostingField; |
| | | this.name = name; |
| | | this.manager = manager; |
| | | this.tel = tel; |
| | | this.email = email; |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Issue getIssue() { |
| | | return issue; |
| | | } |
| | | |
| | | public void setIssue(Issue issue) { |
| | | this.issue = issue; |
| | | } |
| | | |
| | | public HostingField getHostingField() { |
| | | return hostingField; |
| | | } |
| | | |
| | | public void setHostingField(HostingField hostingField) { |
| | | this.hostingField = hostingField; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.domain; |
| | | |
| | | import javax.persistence.*; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-03-07. |
| | | */ |
| | | @Entity |
| | | public class IssueIsp extends BaseEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Id |
| | | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| | | private Long id; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "issue_id") |
| | | private Issue issue; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "isp_id") |
| | | private IspField ispField; |
| | | |
| | | public IssueIsp(){} |
| | | |
| | | public IssueIsp(Issue issue, IspField ispField, String name, String manager, String tel, String email, String memo){ |
| | | this.issue = issue; |
| | | this.ispField = ispField; |
| | | this.name = name; |
| | | this.manager = manager; |
| | | this.tel = tel; |
| | | this.email = email; |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Issue getIssue() { |
| | | return issue; |
| | | } |
| | | |
| | | public void setIssue(Issue issue) { |
| | | this.issue = issue; |
| | | } |
| | | |
| | | public IspField getIspField() { |
| | | return ispField; |
| | | } |
| | | |
| | | public void setIspField(IspField ispField) { |
| | | this.ispField = ispField; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-06-07. |
| | | */ |
| | | @Repository |
| | | public interface IssueCompanyMapper { |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-06-07. |
| | | */ |
| | | @Repository |
| | | public interface IssueHostingMapper { |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-06-07. |
| | | */ |
| | | @Repository |
| | | public interface IssueIspMapper { |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.repository; |
| | | |
| | | import kr.wisestone.owl.domain.IssueCompany; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | import org.springframework.data.repository.query.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | public interface IssueCompanyRepository extends JpaRepository<IssueCompany, Long> { |
| | | |
| | | List<IssueCompany> findByIssueId(@Param("issueId") Long issueId); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.repository; |
| | | |
| | | import kr.wisestone.owl.domain.IssueHosting; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | import org.springframework.data.repository.query.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | public interface IssueHostingRepository extends JpaRepository<IssueHosting, Long> { |
| | | |
| | | List<IssueHosting> findByIssueId(@Param("issueId") Long issueId); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.repository; |
| | | |
| | | import kr.wisestone.owl.domain.IssueIsp; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | import org.springframework.data.repository.query.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | public interface IssueIspRepository extends JpaRepository<IssueIsp, Long> { |
| | | |
| | | List<IssueIsp> findByIssueId(@Param("issueId") Long issueId); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service; |
| | | |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueCompany; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IssueCompanyService extends AbstractService<IssueCompany, Long, JpaRepository<IssueCompany, Long>>{ |
| | | void modifyIssueCompanyField(Issue issue, List<Map<String, Object>> issueCompanyField); |
| | | |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service; |
| | | |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueHosting; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IssueHostingService extends AbstractService<IssueHosting, Long, JpaRepository<IssueHosting, Long>>{ |
| | | void modifyIssueHostingField(Issue issue, List<Map<String, Object>> issueHostingField); |
| | | |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service; |
| | | |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueIsp; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IssueIspService extends AbstractService<IssueIsp, Long, JpaRepository<IssueIsp, Long>>{ |
| | | void modifyIssueIspField(Issue issue, List<Map<String, Object>> issueIspField); |
| | | |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
| | |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); |
| | | } |
| | | |
| | | CompanyField companyField = this.findOne(id); |
| | | |
| | | if (companyField == null) { |
New file |
| | |
| | | package kr.wisestone.owl.service.impl; |
| | | |
| | | import kr.wisestone.owl.domain.*; |
| | | 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 org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class IssueCompanyServiceImpl extends AbstractServiceImpl<IssueCompany, Long, JpaRepository<IssueCompany, Long>> implements IssueCompanyService { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(IssueCompanyServiceImpl.class); |
| | | |
| | | @Autowired |
| | | private IssueCompanyRepository issueCompanyRepository; |
| | | |
| | | @Autowired |
| | | private CompanyFieldService companyFieldService; |
| | | |
| | | @Autowired |
| | | private IssueCompanyMapper issueCompanyMapper; |
| | | |
| | | @Override |
| | | protected JpaRepository<IssueCompany, Long> getRepository() { |
| | | return this.issueCompanyRepository; |
| | | } |
| | | |
| | | // 이슈에서 사용되는 업체 값을 업데이트한다. |
| | | @Override |
| | | @Transactional |
| | | public void modifyIssueCompanyField(Issue issue, List<Map<String, Object>> issueCompanyFields) { |
| | | if (issue != null) { |
| | | if (issueCompanyFields != null && issueCompanyFields.size() > 0) { |
| | | Map<String, Object> param = issueCompanyFields.get(0); |
| | | |
| | | if (param != null) { |
| | | IssueCompany newIssueCompany = ConvertUtil.convertMapToClass(param, IssueCompany.class); |
| | | newIssueCompany.setIssue(issue); |
| | | CompanyField companyField = this.companyFieldService.getCompany(MapUtil.getLong(param, "companyId")); |
| | | newIssueCompany.setCompanyField(companyField); |
| | | |
| | | Set<IssueCompany> issueCompanies = issue.getIssueCompanies(); |
| | | if (issueCompanies != null && issueCompanies.size() > 0) { |
| | | IssueCompany oldIssueCompany = issueCompanies.iterator().next(); |
| | | ConvertUtil.copyProperties(newIssueCompany, oldIssueCompany); |
| | | } |
| | | |
| | | this.issueCompanyRepository.saveAndFlush(newIssueCompany); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition) { |
| | | return this.issueCompanyMapper.findInIssueIds(issueCondition); |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service.impl; |
| | | |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.mapper.HostingFieldMapper; |
| | | import kr.wisestone.owl.mapper.IssueHostingMapper; |
| | | import kr.wisestone.owl.repository.IssueHostingRepository; |
| | | 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 org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class IssueHostingServiceImpl extends AbstractServiceImpl<IssueHosting, Long, JpaRepository<IssueHosting, Long>> implements IssueHostingService { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(IssueHostingServiceImpl.class); |
| | | |
| | | @Autowired |
| | | private IssueHostingRepository issueHostingRepository; |
| | | |
| | | @Autowired |
| | | private HostingFieldService hostingFieldService; |
| | | |
| | | @Autowired |
| | | private IssueHostingMapper issueHostingMapper; |
| | | |
| | | @Override |
| | | protected JpaRepository<IssueHosting, Long> getRepository() { |
| | | return this.issueHostingRepository; |
| | | } |
| | | |
| | | // 이슈에서 사용되는 업체 값을 업데이트한다. |
| | | @Override |
| | | @Transactional |
| | | public void modifyIssueHostingField(Issue issue, List<Map<String, Object>> issueIspFields) { |
| | | if (issue != null) { |
| | | if (issueIspFields != null && issueIspFields.size() > 0) { |
| | | Map<String, Object> param = issueIspFields.get(0); |
| | | |
| | | if (param != null) { |
| | | IssueHosting newIssueHosting = ConvertUtil.convertMapToClass(param, IssueHosting.class); |
| | | newIssueHosting.setIssue(issue); |
| | | HostingField hostingField = this.hostingFieldService.getHosting(MapUtil.getLong(param, "hostingId")); |
| | | newIssueHosting.setHostingField(hostingField); |
| | | |
| | | Set<IssueHosting> issueHostings = issue.getIssueHostingFields(); |
| | | if (issueHostings != null && issueHostings.size() > 0) { |
| | | IssueHosting oldIssueHosting = issueHostings.iterator().next(); |
| | | ConvertUtil.copyProperties(newIssueHosting, oldIssueHosting); |
| | | } |
| | | |
| | | this.issueHostingRepository.saveAndFlush(newIssueHosting); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition) { |
| | | return issueHostingMapper.findInIssueIds(issueCondition); |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service.impl; |
| | | |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.mapper.IssueIspMapper; |
| | | import kr.wisestone.owl.repository.IssueIspRepository; |
| | | 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 org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class IssueIspServiceImpl extends AbstractServiceImpl<IssueIsp, Long, JpaRepository<IssueIsp, Long>> implements IssueIspService { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(IssueIspServiceImpl.class); |
| | | |
| | | @Autowired |
| | | private IssueIspRepository issueIspRepository; |
| | | |
| | | @Autowired |
| | | private IspFieldService ispFieldService; |
| | | |
| | | @Autowired |
| | | private IssueIspMapper issueIspMapper; |
| | | |
| | | @Override |
| | | protected JpaRepository<IssueIsp, Long> getRepository() { |
| | | return this.issueIspRepository; |
| | | } |
| | | |
| | | // 이슈에서 사용되는 업체 값을 업데이트한다. |
| | | @Override |
| | | @Transactional |
| | | public void modifyIssueIspField(Issue issue, List<Map<String, Object>> issueIspFields) { |
| | | if (issue != null) { |
| | | if (issueIspFields != null && issueIspFields.size() > 0) { |
| | | Map<String, Object> param = issueIspFields.get(0); |
| | | |
| | | if (param != null) { |
| | | IssueIsp newIssueIsp = ConvertUtil.convertMapToClass(param, IssueIsp.class); |
| | | newIssueIsp.setIssue(issue); |
| | | IspField ispField = this.ispFieldService.getIsp(MapUtil.getLong(param, "ispId")); |
| | | newIssueIsp.setIspField(ispField); |
| | | |
| | | Set<IssueIsp> issueIsps = issue.getIssueIspFields(); |
| | | if (issueIsps != null && issueIsps.size() > 0) { |
| | | IssueIsp oldIssueIsp = issueIsps.iterator().next(); |
| | | ConvertUtil.copyProperties(newIssueIsp, oldIssueIsp); |
| | | } |
| | | |
| | | this.issueIspRepository.saveAndFlush(newIssueIsp); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition) { |
| | | return this.issueIspMapper.findInIssueIds(issueCondition); |
| | | } |
| | | } |
| | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | import java.util.concurrent.locks.Condition; |
| | | |
| | | @Service |
| | | public class IssueServiceImpl extends AbstractServiceImpl<Issue, Long, JpaRepository<Issue, Long>> implements IssueService { |
| | |
| | | |
| | | @Autowired |
| | | private IssueCustomFieldValueService issueCustomFieldValueService; |
| | | |
| | | @Autowired |
| | | private IssueCompanyService issueCompanyService; |
| | | |
| | | @Autowired |
| | | private IssueIspService issueIspService; |
| | | |
| | | @Autowired |
| | | private IssueHostingService issueHostingService; |
| | | |
| | | @Autowired |
| | | private IssueUserService issueUserService; |
| | |
| | | issue.setPriority(priority); |
| | | issue.setSeverity(severity); |
| | | |
| | | // 업체 필드 유효성 체크 |
| | | if(issueForm.getCompanyId() != null){ |
| | | CompanyField companyField = this.companyFieldService.getCompany(issueForm.getCompanyId()); |
| | | issue.setCompanyField(companyField); |
| | | } |
| | | // ISP 필드 유효성 체크 |
| | | if(issueForm.getIspId() != null) { |
| | | IspField ispField = this.ispFieldService.getIsp(issueForm.getIspId()); |
| | | issue.setIspFieldId(ispField); |
| | | } |
| | | // HOSTING 필드 유효성 체크 |
| | | if (issueForm.getHostingId() != null){ |
| | | HostingField hostingField = this.hostingFieldService.getHosting(issueForm.getHostingId()); |
| | | issue.setHostingFieldId(hostingField); |
| | | } |
| | | |
| | | issue.setIssueNumber(this.issueNumberGeneratorService.generateIssueNumber(project)); // 각 프로젝트의 고유 이슈 번호 생성 |
| | | |
| | | this.issueRepository.saveAndFlush(issue); |
| | |
| | | this.reservationIssueEmail(issue.getId(), EmailType.ISSUE_ADD); |
| | | // 사용자 시스템 기능 사용 정보 수집 |
| | | log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_ADD)); |
| | | // 업체 정보 저장 |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); |
| | | // ISP 정보 저장 |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); |
| | | |
| | | return issue; |
| | | } |
| | |
| | | |
| | | issueMap.put("customFields", customFields); |
| | | issueMap.put("description", issue.getDescription()); |
| | | |
| | | //업체,ISP,HOSTING 추가 |
| | | |
| | | |
| | | StringBuilder attachedFileBuilder = new StringBuilder(); |
| | | |
| | |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<IssueVo> findChartIssue(Map<String, Object> resJsonData, |
| | | IssueCondition issueCondition, Pageable pageable) { |
| | | IssueCondition issueCondition, Pageable pageable) { |
| | | |
| | | // 검색 조건을 만든다 |
| | | if (!this.makeIssueSearchCondition(issueCondition,Lists.newArrayList("01", "02", "03"), pageable)) { |
| | |
| | | |
| | | // 사용자 정의 필드 정보 추가 |
| | | this.setIssueCustomFieldValue(issueVos, issueCondition); |
| | | // 업체 정보 추가 |
| | | //this.setIssueCompanyField(issueVos, issueCondition); |
| | | // ISP 정보 추가 |
| | | //this.setIssueIspField(issueVos, issueCondition); |
| | | // HOSTING 정보 추가 |
| | | //this.setIssueHostingField(issueVos, issueCondition); |
| | | |
| | | } |
| | | |
| | | // 검색 조건을 만든다 |
| | | // 검색 조건을 만든다 |
| | | private boolean makeIssueSearchCondition(IssueCondition condition, List<String> projectStatues, Pageable pageable) { |
| | | if (pageable != null) { |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | |
| | | issueVo.setIssueStatusVo(ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class)); |
| | | issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class)); |
| | | issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class)); |
| | | issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class)); |
| | | issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class)); |
| | | issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class)); |
| | | |
| | | this.setRegister(issue, issueVo); // 등록자 정보 셋팅 |
| | | //this.setIssueUser(issue, issueVo); // 담당자 정보 셋팅 |
| | |
| | | issueVo.setIssueStatusVo(issueStatusVo); |
| | | issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class)); |
| | | issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class)); |
| | | issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class)); |
| | | issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class)); |
| | | issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class)); |
| | | this.setRegister(issue, issueVo); // 등록자 정보 셋팅 |
| | | //this.setIssueUser(issue, issueVo); // 담당자 정보 셋팅 |
| | | this.setIssueDepartment(issue, issueVo); // 담당부서 정보 셋팅 |
| | |
| | | } |
| | | } |
| | | |
| | | // 업체 정보 추가 |
| | | private void setIssueCompanyField(List<IssueVo> issueVos, IssueCondition issueCondition) { |
| | | // 이슈에서 저장한 업체 값을 조회한다. |
| | | List<Map<String, Object>> issueCompanyFields = this.issueCompanyService.findInIssueIds(issueCondition); |
| | | |
| | | for (IssueVo issueVo : issueVos) { |
| | | for (Map<String, Object> issueCompanyField : issueCompanyFields) { |
| | | if (issueVo.getId().equals(MapUtil.getLong(issueCompanyField, "issueId"))) { |
| | | IssueCompanyVo issueCompanyVo = new IssueCompanyVo(); |
| | | issueCompanyVo.setName(MapUtil.getString(issueCompanyField, "companyName")); |
| | | issueCompanyVo.setManager(MapUtil.getString(issueCompanyField, "companyManager")); |
| | | issueCompanyVo.setTel(MapUtil.getString(issueCompanyField, "companyTel")); |
| | | issueCompanyVo.setEmail(MapUtil.getString(issueCompanyField, "companyEmail")); |
| | | issueCompanyVo.setMemo(MapUtil.getString(issueCompanyField, "companyMemo")); |
| | | |
| | | issueVo.addIssueCompanyFieldVo(issueCompanyVo); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // Isp 정보 추가 |
| | | private void setIssueIspField(List<IssueVo> issueVos, IssueCondition issueCondition) { |
| | | // 이슈에서 저장한 ISP 값을 조회한다. |
| | | /*List<Map<String, Object>> issueIspFields = this.issueIspFieldService.findInIssueIds(issueCondition);*/ |
| | | |
| | | /*for (IssueVo issueVo : issueVos) { |
| | | for (Map<String, Object> issueIspField : issueIspFields) { |
| | | if (issueVo.getId().equals(MapUtil.getLong(issueIspField, "issueId"))) { |
| | | IssueIspFieldVo issueIspFieldVo = new IssueIspFieldVo(); |
| | | issueIspFieldVo.setName(MapUtil.getString(issueIspField, "name")); |
| | | issueIspFieldVo.setManager(MapUtil.getString(issueIspField, "manager")); |
| | | issueIspFieldVo.setTel(MapUtil.getString(issueIspField, "tel")); |
| | | issueIspFieldVo.setEmail(MapUtil.getString(issueIspField, "email")); |
| | | issueIspFieldVo.setMemo(MapUtil.getString(issueIspField, "memo")); |
| | | |
| | | issueVo.addIssueIspFieldVo(issueIspFieldVo); |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | // Hosting 정보 추가 |
| | | private void setIssueHostingField(List<IssueVo> issueVos, IssueCondition issueCondition) { |
| | | // 이슈에서 저장한 Hosting 값을 조회한다. |
| | | List<Map<String, Object>> issueHostingFields = this.issueHostingService.findInIssueIds(issueCondition); |
| | | |
| | | for (IssueVo issueVo : issueVos) { |
| | | for (Map<String, Object> issueHostingField : issueHostingFields) { |
| | | if (issueVo.getId().equals(MapUtil.getLong(issueHostingField, "issueId"))) { |
| | | IssueHostingVo issueHostingVo = new IssueHostingVo(); |
| | | issueHostingVo.setName(MapUtil.getString(issueHostingField, "name")); |
| | | issueHostingVo.setManager(MapUtil.getString(issueHostingField, "manager")); |
| | | issueHostingVo.setTel(MapUtil.getString(issueHostingField, "tel")); |
| | | issueHostingVo.setEmail(MapUtil.getString(issueHostingField, "email")); |
| | | issueHostingVo.setMemo(MapUtil.getString(issueHostingField, "memo")); |
| | | |
| | | issueVo.addIssueHostingFieldVo(issueHostingVo); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 연관일감 정보 추가 |
| | | private void setRelationIssue(IssueVo issueVo, Long issueId) { |
| | | List<IssueVo> relationIssues = this.issueRelationService.findRelationIssue(issueId); |
| | |
| | | result.put("customField_" + issueCustomFieldValueVo.getCustomFieldVo().getId().toString(), useValue + ", " + issueCustomFieldValueVo.getUseValue()); |
| | | } |
| | | } |
| | | |
| | | //업체, ISP, 호스팅 추가 |
| | | |
| | | results.add(result); |
| | | } catch (Exception e) { |
| | |
| | | this.bulkInsertIssueCustomFieldValue(issueForms, issueTypeCustomFieldMaps); |
| | | // 3.628 - 3.445 |
| | | |
| | | // 업체,ISP,호스팅 추가 |
| | | |
| | | /*serviceStart.stop(); |
| | | log.debug("2차 저장 시간 : " + serviceStart.getTime());*/ |
| | | |
New file |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-06-01. |
| | | */ |
| | | public class IssueCompanyVo extends BaseVo{ |
| | | private Long id; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public IssueCompanyVo(){} |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-06-01. |
| | | */ |
| | | public class IssueHostingVo extends BaseVo{ |
| | | private Long id; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public IssueHostingVo(){} |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-06-01. |
| | | */ |
| | | public class IssueIspVo extends BaseVo{ |
| | | private Long id; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public IssueIspVo(){} |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | |
| | | private PriorityVo priorityVo; // 이슈 상세에서 사용 |
| | | private SeverityVo severityVo; // 이슈 상세에서 사용 |
| | | private UserVo registerVo; // 이슈 상세에서 사용 |
| | | private CompanyFieldVo companyFieldVo; // 이슈 상세에서 사용 |
| | | private IspFieldVo ispFieldVo; // 이슈 상세에서 사용 |
| | | private HostingFieldVo hostingFieldVo; // 이슈 상세에서 사용 |
| | | private Boolean modifyPermissionCheck = Boolean.FALSE; |
| | | private List<UserVo> userVos = Lists.newArrayList(); |
| | | private List<DepartmentVo> departmentVos = Lists.newArrayList(); //담당부서 추가 |
| | |
| | | private Long attachedFileCount; |
| | | private Long issueCommentCount; |
| | | private String modifyByName; // 변경자 정보 - 이슈 변경 정보 상세 확인에서 사용 |
| | | private String byName; // 변경자 정보 - 이슈 변경 정보 상세 확인에서 사용 |
| | | private WorkflowStatusVo workflowStatusVo; |
| | | private Long parentIssueId; // 상위 일감 |
| | | private List<IssueCompanyVo> issueCompanyVos = Lists.newArrayList(); |
| | | private List<IssueIspVo> issueIspVos = Lists.newArrayList(); |
| | | private List<IssueHostingVo> issueHostingVos = Lists.newArrayList(); |
| | | |
| | | public IssueVo(){} |
| | | |
| | |
| | | this.issueCustomFieldValueVos.add(issueCustomFieldValueVo); |
| | | } |
| | | |
| | | public List<IssueCompanyVo> getIssueCompanyFieldVos() { |
| | | return issueCompanyVos; |
| | | } |
| | | |
| | | public void setIssueCompanyFieldVos(List<IssueCompanyVo> issueCompanyVos) { |
| | | this.issueCompanyVos = issueCompanyVos; |
| | | } |
| | | |
| | | public void addIssueCompanyFieldVo(IssueCompanyVo issueCompanyVo) { |
| | | this.issueCompanyVos.add(issueCompanyVo); |
| | | } |
| | | |
| | | public List<IssueIspVo> getIssueIspFieldVos() { |
| | | return issueIspVos; |
| | | } |
| | | |
| | | public void setIssueIspFieldVos(List<IssueIspVo> issueIspVos) { |
| | | this.issueIspVos = issueIspVos; |
| | | } |
| | | |
| | | public void addIssueIspFieldVo(IssueIspVo issueIspVo) { |
| | | this.issueIspVos.add(issueIspVo); |
| | | } |
| | | |
| | | public List<IssueHostingVo> getIssueHostingFieldVos() { |
| | | return issueHostingVos; |
| | | } |
| | | |
| | | public void setIssueHostingFieldVos(List<IssueHostingVo> issueHostingVos) { |
| | | this.issueHostingVos = issueHostingVos; |
| | | } |
| | | |
| | | public void addIssueHostingFieldVo(IssueHostingVo issueHostingVo) { |
| | | this.issueHostingVos.add(issueHostingVo); |
| | | } |
| | | |
| | | public Long getAttachedFileCount() { |
| | | return attachedFileCount; |
| | | } |
| | |
| | | this.registerVo = registerVo; |
| | | } |
| | | |
| | | public CompanyFieldVo getCompanyFieldVo() { |
| | | return companyFieldVo; |
| | | } |
| | | |
| | | public void setCompanyFieldVo(CompanyFieldVo companyFieldVo) { |
| | | this.companyFieldVo = companyFieldVo; |
| | | } |
| | | |
| | | public IspFieldVo getIspFieldVo() { |
| | | return ispFieldVo; |
| | | } |
| | | |
| | | public void setIspFieldVo(IspFieldVo ispFieldVo) { |
| | | this.ispFieldVo = ispFieldVo; |
| | | } |
| | | |
| | | public HostingFieldVo getHostingFieldVo() { |
| | | return hostingFieldVo; |
| | | } |
| | | |
| | | public void setHostingFieldVo(HostingFieldVo hostingFieldVo) { |
| | | this.hostingFieldVo = hostingFieldVo; |
| | | } |
| | | |
| | | public List<IssueHistoryVo> getIssueHistoryVos() { |
| | | return issueHistoryVos; |
| | | } |
| | |
| | | |
| | | public void setModifyByName(String modifyByName) { |
| | | this.modifyByName = modifyByName; |
| | | } |
| | | |
| | | public String getByName() { |
| | | return byName; |
| | | } |
| | | |
| | | public void setByName(String byName) { |
| | | this.byName = byName; |
| | | } |
| | | |
| | | public void setWorkflowStatusVo(WorkflowStatusVo workflowStatusVo) { |
| | |
| | | private List<Long> registerIds = Lists.newArrayList(); |
| | | private List<String> issueIds = Lists.newArrayList(); // 이슈 목록 검색에서 사용자 정의 필드로 1차 검색한 결과를 담을때 사용 |
| | | private List<Map<String, Object>> issueCustomFields = Lists.newArrayList(); |
| | | private List<Map<String, Object>> issueCompanyField = Lists.newArrayList(); |
| | | private List<Map<String, Object>> issueIspField = Lists.newArrayList(); |
| | | private List<Map<String, Object>> issueHostingField = Lists.newArrayList(); |
| | | private List<Long> statusIds = Lists.newArrayList(); |
| | | private List<Long> excludeIds = Lists.newArrayList(); |
| | | |
| | |
| | | |
| | | if (MapUtil.getObject(conditions, "issueCustomFields") != null) { |
| | | condition.setIssueCustomFields((List)MapUtil.getObject(conditions, "issueCustomFields")); |
| | | } |
| | | |
| | | if (MapUtil.getObject(conditions, "issueCompanyField") != null) { |
| | | condition.setIssueCompanyField((List)MapUtil.getObject(conditions, "issueCompanyField")); |
| | | } |
| | | |
| | | if (MapUtil.getObject(conditions, "issueIspField") != null) { |
| | | condition.setIssueIspField((List)MapUtil.getObject(conditions, "issueIspField")); |
| | | } |
| | | |
| | | if (MapUtil.getObject(conditions, "issueHostingField") != null) { |
| | | condition.setIssueHostingField((List)MapUtil.getObject(conditions, "issueHostingField")); |
| | | } |
| | | |
| | | if (StringUtils.hasText(MapUtil.getString(conditions, "beginRegisterDate"))) { |
| | |
| | | this.issueCustomFields = issueCustomFields; |
| | | } |
| | | |
| | | public List<Map<String, Object>> getIssueCompanyField() { |
| | | return issueCompanyField; |
| | | } |
| | | |
| | | public void setIssueCompanyField(List<Map<String, Object>> issueCompanyField) { |
| | | this.issueCompanyField = issueCompanyField; |
| | | } |
| | | |
| | | public List<Map<String, Object>> getIssueIspField() { |
| | | return issueIspField; |
| | | } |
| | | |
| | | public void setIssueIspField(List<Map<String, Object>> issueIspField) { |
| | | this.issueIspField = issueIspField; |
| | | } |
| | | |
| | | public List<Map<String, Object>> getIssueHostingField() { |
| | | return issueHostingField; |
| | | } |
| | | |
| | | public void setIssueHostingField(List<Map<String, Object>> issueHostingField) { |
| | | this.issueHostingField = issueHostingField; |
| | | } |
| | | |
| | | public List<String> getIssueIds() { |
| | | return issueIds; |
| | | } |
| | |
| | | private List<Long> removeIds = Lists.newArrayList(); |
| | | private List<Long> ids = Lists.newArrayList(); // 이슈 다중 상태 변경에서 사용 |
| | | private String comment; // 이슈 상태 변경에서 변경 사유를 입력할 때 사용 |
| | | private Long companyId; //업체필드 |
| | | private Long ispId; //ISP필드 |
| | | private Long hostingId; //호스팅필드 |
| | | private List<Map<String, Object>> issueCompanyFields = Lists.newArrayList(); |
| | | private List<Map<String, Object>> issueIspFields = Lists.newArrayList(); |
| | | private List<Map<String, Object>> issueHostingFields = Lists.newArrayList(); |
| | | private Long parentIssueId; // 상위 이슈 |
| | | |
| | | public IssueForm() { |
| | |
| | | } |
| | | |
| | | // 업체 필드 정보 |
| | | if (MapUtil.getLongs(params, "companyFieldId") != null){ |
| | | form.setCompanyId(MapUtil.getLong(params, "companyFieldId")); |
| | | if (MapUtil.getObject(params, "issueCompanyFields") != null){ |
| | | form.setIssueCompanyFields((List)MapUtil.getObject(params, "issueCompanyFields")); |
| | | } |
| | | |
| | | // ISP 필드 정보 |
| | | if (MapUtil.getLongs(params, "ispFieldId") != null){ |
| | | form.setIspId(MapUtil.getLong(params, "ispFieldId")); |
| | | if (MapUtil.getObject(params, "issueIspFields") != null){ |
| | | form.setIssueIspFields((List)MapUtil.getObject(params, "issueIspFields")); |
| | | } |
| | | |
| | | // HOSTING 필드 정보 |
| | | if (MapUtil.getLongs(params, "hostingFieldId") != null){ |
| | | form.setHostingId(MapUtil.getLong(params, "hostingFieldId")); |
| | | if (MapUtil.getObject(params, "issueHostingFields") != null){ |
| | | form.setIssueHostingFields((List)MapUtil.getObject(params, "issueHostingFields")); |
| | | } |
| | | return form; |
| | | } |
| | |
| | | this.comment = comment; |
| | | } |
| | | |
| | | public Long getCompanyId() { |
| | | return companyId; |
| | | public List<Map<String, Object>> getIssueCompanyFields() { |
| | | return issueCompanyFields; |
| | | } |
| | | |
| | | public void setCompanyId(Long companyId) { |
| | | this.companyId = companyId; |
| | | public void setIssueCompanyFields(List<Map<String, Object>> issueCompanyFields) { |
| | | this.issueCompanyFields = issueCompanyFields; |
| | | } |
| | | |
| | | public Long getIspId() { |
| | | return ispId; |
| | | public void addissueCompanyField(Map<String, Object> issueCompanyFields) { |
| | | this.issueCompanyFields.add(issueCompanyFields); |
| | | } |
| | | |
| | | public void setIspId(Long ispId) { |
| | | this.ispId = ispId; |
| | | public List<Map<String, Object>> getIssueIspFields() { |
| | | return issueIspFields; |
| | | } |
| | | |
| | | public Long getHostingId() { |
| | | return hostingId; |
| | | public void setIssueIspFields(List<Map<String, Object>> issueIspFields) { |
| | | this.issueIspFields = issueIspFields; |
| | | } |
| | | |
| | | public void setHostingId(Long hostingId) { |
| | | this.hostingId = hostingId; |
| | | public void addIssueIspField(Map<String, Object> issueIspFields) { |
| | | this.issueIspFields.add(issueIspFields); |
| | | } |
| | | |
| | | public List<Map<String, Object>> getIssueHostingFields() { |
| | | return issueHostingFields; |
| | | } |
| | | |
| | | public void setIssueHostingFields(List<Map<String, Object>> issueHostingFields) { |
| | | this.issueHostingFields = issueHostingFields; |
| | | } |
| | | |
| | | public void addIssueHostingField(Map<String, Object> issueHostingFields) { |
| | | this.issueHostingFields.add(issueHostingFields); |
| | | } |
| | | |
| | | public Long getParentIssueId() { |
| | |
| | | |
| | | -- 상위 이슈 |
| | | ALTER TABLE `issue` ADD COLUMN `parent_issue_id` BIGINT(11) NULL; |
| | | |
| | | CREATE TABLE `issue_company` ( |
| | | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', |
| | | `issue_id` bigint(20) NOT NULL, |
| | | `company_id` bigint(20) DEFAULT NULL, |
| | | `name` VARCHAR(50) NULL, |
| | | `manager` VARCHAR(50) NULL, |
| | | `tel` VARCHAR (50) NULL, |
| | | `email` VARCHAR (255) NULL, |
| | | `memo` VARCHAR(255) NULL, |
| | | `register_id` bigint(20) NOT NULL COMMENT 'register_id', |
| | | `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date', |
| | | `modify_id` bigint(20) NOT NULL COMMENT 'modify_id', |
| | | `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date', |
| | | PRIMARY KEY (`id`) USING BTREE, |
| | | INDEX `companyIdIndex` (`company_id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | | |
| | | CREATE TABLE `issue_hosting` ( |
| | | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', |
| | | `issue_id` bigint(20) NOT NULL, |
| | | `hosting_id` bigint(20) DEFAULT NULL, |
| | | `name` VARCHAR(50) NULL, |
| | | `manager` VARCHAR(50) NULL, |
| | | `tel` VARCHAR (50) NULL, |
| | | `email` VARCHAR (255) NULL, |
| | | `memo` VARCHAR(255) NULL, |
| | | `register_id` bigint(20) NOT NULL COMMENT 'register_id', |
| | | `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date', |
| | | `modify_id` bigint(20) NOT NULL COMMENT 'modify_id', |
| | | `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date', |
| | | PRIMARY KEY (`id`) USING BTREE, |
| | | INDEX `hostingIdIndex` (`hosting_id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | | |
| | | CREATE TABLE `issue_isp` ( |
| | | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', |
| | | `issue_id` bigint(20) NOT NULL, |
| | | `isp_id` bigint(20) DEFAULT NULL, |
| | | `name` VARCHAR(50) NULL, |
| | | `manager` VARCHAR(50) NULL, |
| | | `tel` VARCHAR (50) NULL, |
| | | `email` VARCHAR (255) NULL, |
| | | `memo` VARCHAR(255) NULL, |
| | | `register_id` bigint(20) NOT NULL COMMENT 'register_id', |
| | | `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date', |
| | | `modify_id` bigint(20) NOT NULL COMMENT 'modify_id', |
| | | `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date', |
| | | PRIMARY KEY (`id`) USING BTREE, |
| | | INDEX `ispIdIndex` (`isp_id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | |
| | | `project_id` bigint(20) DEFAULT NULL, |
| | | `priority_id` bigint(20) DEFAULT NULL, |
| | | `severity_id` bigint(20) DEFAULT NULL, |
| | | `company_id` bigint(20) DEFAULT NULL, |
| | | `hosting_id` bigint(20) DEFAULT NULL, |
| | | `isp_id` bigint(20) DEFAULT NULL, |
| | | `title` varchar(300) DEFAULT NULL, |
| | | `description` mediumtext COMMENT 'description', |
| | | `reverse_index` bigint(20) DEFAULT NULL, |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.IssueCompanyMapper"> |
| | | |
| | | <select id="findInIssueIds" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition"> |
| | | SELECT |
| | | ic.issue_id as issueId, |
| | | ic.company_id as companyId, |
| | | ic.name as companyName, |
| | | ic.manager as companyManager, |
| | | ic.tel as companyTel, |
| | | ic.email as companyEmail, |
| | | ic.memo as companyMemo |
| | | FROM issue_company ic |
| | | WHERE 1=1 |
| | | <choose> |
| | | <when test="issueIds.size != 0"> |
| | | AND ic.issue_id IN |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.IssueHostingMapper"> |
| | | |
| | | <select id="findInIssueIds" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition"> |
| | | SELECT |
| | | ih.issue_id as issueId, |
| | | ih.hosting_id as hostingId, |
| | | ih.name as hostingName, |
| | | ih.manager as hostingManager, |
| | | ih.tel as hostingTel, |
| | | ih.email as hostingEmail, |
| | | ih.memo as hostingMemo |
| | | FROM issue_hosting ih |
| | | WHERE 1=1 |
| | | <choose> |
| | | <when test="issueIds.size != 0"> |
| | | AND ih.issue_id IN |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.IssueIspMapper"> |
| | | |
| | | <select id="findInIssueIds" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition"> |
| | | SELECT |
| | | ii.issue_id as issueId, |
| | | ii.isp_id as ispId, |
| | | ii.name as ispName, |
| | | ii.manager as ispManager, |
| | | ii.tel as ispTel, |
| | | ii.email as ispEmail, |
| | | ii.memo as ispMemo |
| | | FROM issue_isp ii |
| | | WHERE 1=1 |
| | | <choose> |
| | | <when test="issueIds.size != 0"> |
| | | AND ii.issue_id IN |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | |
| | | // 업체정보 결과 값 Event 처리(set) |
| | | $scope.$on("companyFieldEvent", function (event, result) { |
| | | $scope.vm.companyId = result[0].id; |
| | | $scope.vm.companyManager = result[0].manager; |
| | | $scope.vm.companyTel = result[0].tel; |
| | | $scope.vm.companyEmail = result[0].email; |
| | |
| | | |
| | | // ISP정보 결과 값 Event 처리(set) |
| | | $scope.$on("ispFieldEvent", function (event, result) { |
| | | $scope.vm.ispId = result[0].id; |
| | | $scope.vm.ispCode = result[0].code; |
| | | $scope.vm.ispManager = result[0].manager; |
| | | $scope.vm.ispTel = result[0].tel; |
| | |
| | | |
| | | // 호스팅정보 결과 값 Event 처리(set) |
| | | $scope.$on("hostingFieldEvent", function (event, result) { |
| | | $scope.vm.hostingId = result[0].id; |
| | | $scope.vm.hostingCode = result[0].code; |
| | | $scope.vm.hostingManager = result[0].manager; |
| | | $scope.vm.hostingTel = result[0].tel; |
| | |
| | | startCompleteDateRange : $scope.vm.form.startCompleteDateRange, |
| | | detectingDateRange : $scope.vm.form.detectingDateRange, |
| | | |
| | | companyFields : (function () { |
| | | issueCompanyFields : (function () { |
| | | var companyFields = []; |
| | | |
| | | angular.forEach($scope.vm.form.companyFields, function (companyField) { |
| | | var useValues = []; |
| | | |
| | | if (angular.isArray(companyField.useValues)) { |
| | | angular.forEach(companyField.useValues, function (useValue) { |
| | | useValues.push(useValue.value); |
| | | }); |
| | | } |
| | | else { |
| | | useValues.push(companyField.useValues); |
| | | } |
| | | |
| | | // useValues 를 배열로 변환한다. |
| | | var temp = angular.copy(companyField); |
| | | temp.useValues = useValues; |
| | | companyFields.push(temp); |
| | | }); |
| | | var companyField = $scope.vm.form.companyFields[0]; |
| | | companyField.companyId = companyField.id; |
| | | companyField.id = null; |
| | | companyFields.push(companyField); |
| | | |
| | | return companyFields; |
| | | })(), |
| | | |
| | | ispFields : (function () { |
| | | issueIspFields : (function () { |
| | | var ispFields = []; |
| | | |
| | | angular.forEach($scope.vm.form.ispFields, function (ispField) { |
| | | var useValues = []; |
| | | |
| | | if (angular.isArray(ispField.useValues)) { |
| | | angular.forEach(ispField.useValues, function (useValue) { |
| | | useValues.push(useValue.value); |
| | | }); |
| | | } |
| | | else { |
| | | useValues.push(ispField.useValues); |
| | | } |
| | | |
| | | // useValues 를 배열로 변환한다. |
| | | var temp = angular.copy(ispField); |
| | | temp.useValues = useValues; |
| | | ispFields.push(temp); |
| | | }); |
| | | var ispField = $scope.vm.form.ispFields[0]; |
| | | ispField.ispId = ispField.id; |
| | | ispField.id = null; |
| | | ispFields.push(ispField); |
| | | |
| | | return ispFields; |
| | | })(), |
| | | |
| | | hostingFields : (function () { |
| | | issueHostingFields : (function () { |
| | | var hostingFields = []; |
| | | |
| | | angular.forEach($scope.vm.form.hostingFields, function (hostingField) { |
| | | var useValues = []; |
| | | |
| | | if (angular.isArray(hostingField.useValues)) { |
| | | angular.forEach(hostingField.useValues, function (useValue) { |
| | | useValues.push(useValue.value); |
| | | }); |
| | | } |
| | | else { |
| | | useValues.push(hostingField.useValues); |
| | | } |
| | | |
| | | // useValues 를 배열로 변환한다. |
| | | var temp = angular.copy(hostingField); |
| | | temp.useValues = useValues; |
| | | hostingFields.push(temp); |
| | | }); |
| | | var hostingField = $scope.vm.form.hostingFields[0]; |
| | | hostingField.hostingId = hostingField.id; |
| | | hostingField.id = null; |
| | | hostingFields.push(hostingField); |
| | | |
| | | return hostingFields; |
| | | })(), |