From bea07d3ad5c832426680325f1112538feda04e50 Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 화, 09 11월 2021 10:08:43 +0900 Subject: [PATCH] ISP, Hosting 백엔드 추가 및 부서 수정 --- src/main/java/kr/wisestone/owl/mapper/HostingMapper.java | 21 + src/main/java/kr/wisestone/owl/vo/IspVo.java | 71 +++ src/main/java/kr/wisestone/owl/web/condition/IspCondition.java | 85 ++++ src/main/java/kr/wisestone/owl/web/controller/HostingController.java | 96 ++++ src/main/java/kr/wisestone/owl/domain/Isp.java | 71 +++ src/main/java/kr/wisestone/owl/mapper/IspMapper.java | 21 + src/main/resources/migration/V1_10__Alter_Table.sql | 5 src/main/java/kr/wisestone/owl/service/HostingService.java | 31 + src/main/java/kr/wisestone/owl/vo/HostingVo.java | 71 +++ src/main/java/kr/wisestone/owl/service/IspService.java | 31 + src/main/java/kr/wisestone/owl/service/impl/HostingServiceImpl.java | 197 +++++++++ src/main/java/kr/wisestone/owl/domain/Hosting.java | 71 +++ src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java | 1 src/main/java/kr/wisestone/owl/web/condition/HostingCondition.java | 85 ++++ src/main/java/kr/wisestone/owl/repository/IspRepository.java | 8 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java | 3 src/main/resources/migration/V1_11__Alter_Table.sql | 31 + src/main/java/kr/wisestone/owl/repository/HostingRepository.java | 8 src/main/java/kr/wisestone/owl/web/controller/IspController.java | 96 ++++ src/main/java/kr/wisestone/owl/service/impl/IspServiceImpl.java | 197 +++++++++ src/main/resources/mybatis/query-template/departmentManage-template.xml | 1 21 files changed, 1,194 insertions(+), 7 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/domain/Hosting.java b/src/main/java/kr/wisestone/owl/domain/Hosting.java new file mode 100644 index 0000000..d842bb8 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/domain/Hosting.java @@ -0,0 +1,71 @@ +package kr.wisestone.owl.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.io.Serializable; + +@Entity +public class Hosting 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; + + public Hosting() {} + + 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; + } +} diff --git a/src/main/java/kr/wisestone/owl/domain/Isp.java b/src/main/java/kr/wisestone/owl/domain/Isp.java new file mode 100644 index 0000000..55f4334 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/domain/Isp.java @@ -0,0 +1,71 @@ +package kr.wisestone.owl.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.io.Serializable; + +@Entity +public class Isp 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; + + public Isp() {} + + 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; + } +} diff --git a/src/main/java/kr/wisestone/owl/mapper/HostingMapper.java b/src/main/java/kr/wisestone/owl/mapper/HostingMapper.java new file mode 100644 index 0000000..13db3fa --- /dev/null +++ b/src/main/java/kr/wisestone/owl/mapper/HostingMapper.java @@ -0,0 +1,21 @@ +package kr.wisestone.owl.mapper; + +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * Created by wisestone on 2018-02-26. + */ +@Repository +public interface HostingMapper { + List<Map<String, Object>> find(CompanyFieldCondition companyFieldCondition); + + Long count(CompanyFieldCondition companyFieldCondition); + + List<Map<String, Object>> findEvent(); + + Long findByCompany(Long id); +} diff --git a/src/main/java/kr/wisestone/owl/mapper/IspMapper.java b/src/main/java/kr/wisestone/owl/mapper/IspMapper.java new file mode 100644 index 0000000..62ef1c1 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/mapper/IspMapper.java @@ -0,0 +1,21 @@ +package kr.wisestone.owl.mapper; + +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * Created by wisestone on 2018-02-26. + */ +@Repository +public interface IspMapper { + List<Map<String, Object>> find(CompanyFieldCondition companyFieldCondition); + + Long count(CompanyFieldCondition companyFieldCondition); + + List<Map<String, Object>> findEvent(); + + Long findByCompany(Long id); +} diff --git a/src/main/java/kr/wisestone/owl/repository/HostingRepository.java b/src/main/java/kr/wisestone/owl/repository/HostingRepository.java new file mode 100644 index 0000000..9b22148 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/repository/HostingRepository.java @@ -0,0 +1,8 @@ +package kr.wisestone.owl.repository; + +import kr.wisestone.owl.domain.CompanyField; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface HostingRepository extends JpaRepository<CompanyField, Long> { + +} diff --git a/src/main/java/kr/wisestone/owl/repository/IspRepository.java b/src/main/java/kr/wisestone/owl/repository/IspRepository.java new file mode 100644 index 0000000..36f8c96 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/repository/IspRepository.java @@ -0,0 +1,8 @@ +package kr.wisestone.owl.repository; + +import kr.wisestone.owl.domain.CompanyField; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface IspRepository extends JpaRepository<CompanyField, Long> { + +} diff --git a/src/main/java/kr/wisestone/owl/service/HostingService.java b/src/main/java/kr/wisestone/owl/service/HostingService.java new file mode 100644 index 0000000..f0bf726 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/service/HostingService.java @@ -0,0 +1,31 @@ +package kr.wisestone.owl.service; + +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.vo.CompanyFieldVo; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import org.springframework.data.domain.Pageable; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +public interface HostingService { + CompanyField addCompany(CompanyFieldForm companyFieldForm); + + List<CompanyFieldVo> findCompany(Map<String, Object> resJsonData, CompanyFieldCondition make, Pageable pageable); + + CompanyField getCompany(Long id); + + void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition make); + + void modifyCompany(CompanyFieldForm make); + + void removeCompany(CompanyFieldForm make); + + ModelAndView downloadExcel(HttpServletRequest request, Model model); + + boolean company(Long id); +} diff --git a/src/main/java/kr/wisestone/owl/service/IspService.java b/src/main/java/kr/wisestone/owl/service/IspService.java new file mode 100644 index 0000000..7f1bd89 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/service/IspService.java @@ -0,0 +1,31 @@ +package kr.wisestone.owl.service; + +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.vo.CompanyFieldVo; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import org.springframework.data.domain.Pageable; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +public interface IspService { + CompanyField addCompany(CompanyFieldForm companyFieldForm); + + List<CompanyFieldVo> findCompany(Map<String, Object> resJsonData, CompanyFieldCondition make, Pageable pageable); + + CompanyField getCompany(Long id); + + void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition make); + + void modifyCompany(CompanyFieldForm make); + + void removeCompany(CompanyFieldForm make); + + ModelAndView downloadExcel(HttpServletRequest request, Model model); + + boolean company(Long id); +} diff --git a/src/main/java/kr/wisestone/owl/service/impl/HostingServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/HostingServiceImpl.java new file mode 100644 index 0000000..22bde04 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/service/impl/HostingServiceImpl.java @@ -0,0 +1,197 @@ +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.MsgConstants; +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.exception.OwlRuntimeException; +import kr.wisestone.owl.mapper.CompanyFieldMapper; +import kr.wisestone.owl.repository.CompanyFieldRepository; +import kr.wisestone.owl.service.CompanyFieldService; +import kr.wisestone.owl.service.UserService; +import kr.wisestone.owl.service.WorkspaceService; +import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.vo.CompanyFieldVo; +import kr.wisestone.owl.vo.ExportExcelAttrVo; +import kr.wisestone.owl.vo.ExportExcelVo; +import kr.wisestone.owl.vo.ResPage; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import kr.wisestone.owl.web.view.ExcelView; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class HostingServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService { + + @Autowired + private CompanyFieldRepository companyFieldRepository; + + @Autowired + private CompanyFieldMapper companyFieldMapper; + + @Autowired + private UserService userService; + + @Autowired + private WorkspaceService workspaceService; + + @Autowired + private ExcelView excelView; + + @Autowired + private ExcelConditionCheck excelConditionCheck; + + @Override + protected JpaRepository<CompanyField, Long> getRepository() { + return this.companyFieldRepository; + } + + // �뾽泥� 異붽� + @Override + public CompanyField addCompany(CompanyFieldForm companyFieldForm) { + CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); + companyFieldRepository.saveAndFlush(companyField); + return companyField; + } + + // �뾽泥� 紐⑸줉�쓣 媛��졇�삩�떎. + @Override + public List<CompanyFieldVo> findCompany(Map<String, Object> resJsonData, + CompanyFieldCondition condition, Pageable pageable) { + condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); + condition.setPageSize(pageable.getPageSize()); + + List<Map<String, Object>> results = this.companyFieldMapper.find(condition); + Long totalCompanyCount = this.companyFieldMapper.count(condition); + + return this.convertCompanyVoToMap(results, totalCompanyCount, pageable, resJsonData); + } + + + // �뾽泥� �긽�꽭 議고쉶�븳�떎. + @Override + public void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition companyFieldCondition) { + CompanyFieldVo companyFieldVo = new CompanyFieldVo(); + + Long companyId = companyFieldCondition.getId(); + if (companyId != null) { + CompanyField companyField = this.getCompany(companyId); + companyFieldVo = ConvertUtil.copyProperties(companyField, CompanyFieldVo.class); + } + resJsonData.put(Constants.REQ_KEY_CONTENT, companyFieldVo); + } + + // �뾽泥� �젙濡쒕�� �닔�젙�븳�떎. + @Override + public void modifyCompany(CompanyFieldForm companyFieldForm) { + CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); + companyFieldRepository.saveAndFlush(companyField); + } + + + // �뾽泥대�� �궘�젣�븳�떎. + @Override + public void removeCompany(CompanyFieldForm companyFieldForm) { + if (companyFieldForm.getRemoveIds().size() < 1) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT)); + } + for (Long id : companyFieldForm.getRemoveIds()) { + if (!this.userService.useUserLevel(id)) { + this.companyFieldRepository.deleteById(id); + } else { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE)); + } + + } + this.companyFieldRepository.flush(); + } + + // �뾽泥� 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎. + @Override + public ModelAndView downloadExcel(HttpServletRequest request, Model model) { + ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model); + if (modelAndView != null) { + return modelAndView; + } + + Map<String, Object> conditions = new HashMap<>(); + // �뿊�� �떎�슫濡쒕뱶�뿉 �븘�슂�븳 寃��깋 議곌굔 �젙蹂대�� 異붿텧�븯怨� 寃��깋 議곌굔 異붿텧�뿉 �삤瑜섍� 諛쒖깮�븯硫� 寃쎄퀬瑜� �몴�떆�빐以��떎. + modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model); + if (modelAndView != null) { + return modelAndView; + } + + CompanyFieldCondition companyFieldCondition = CompanyFieldCondition.make(conditions); + + + List<Map<String, Object>> results = this.companyFieldMapper.find(companyFieldCondition); + List<CompanyFieldVo> companyFieldVos = ConvertUtil.convertListToListClass(results, CompanyFieldVo.class); + // code_ko_KR �뿉 code紐� �꽕�젙 + ExportExcelVo excelInfo = new ExportExcelVo(); + excelInfo.setFileName(this.messageAccessor.message("�뾽泥� 紐⑸줉")); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyName", this.messageAccessor.message("companyField.companyName"), 6, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyManager", this.messageAccessor.message("companyField.companyManager"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyEmail", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyMemo", this.messageAccessor.message("companyField.companyMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + + excelInfo.setDatas(companyFieldVos); + + model.addAttribute(Constants.EXCEL, excelInfo); + return new ModelAndView(this.excelView); + } + + // �궘�젣 �븷 �뾽泥닿� �엳�뒗吏� �솗�씤 + @Override + public boolean company(Long Id) { + return this.companyFieldMapper.findByCompany(Id) > 0; + } + + // 寃��깋 寃곌낵瑜� CompanyFieldVo 濡� 蹂��솚�븳�떎. + private List<CompanyFieldVo> convertCompanyVoToMap(List<Map<String, Object>> results, Long totalCompanyCount, Pageable pageable, Map<String, Object> resJsonData) { + List<CompanyFieldVo> companyFieldVos = Lists.newArrayList(); + + for (Map<String, Object> result : results) { + CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class); + companyFieldVos.add(companyFieldVo); + } + + int totalPage = (int) Math.ceil((totalCompanyCount - 1) / pageable.getPageSize()) + 1; + + resJsonData.put(Constants.RES_KEY_CONTENTS, companyFieldVos); + resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), + totalPage, totalCompanyCount)); + + return companyFieldVos; + } + + // �뾽泥� ID 濡� 議고쉶�븳�떎 + @Override + public CompanyField getCompany(Long id) { + if (id == null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); + } + + CompanyField companyField = this.findOne(id); + + if (companyField == null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); + } + return companyField; + } +} diff --git a/src/main/java/kr/wisestone/owl/service/impl/IspServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IspServiceImpl.java new file mode 100644 index 0000000..e76466e --- /dev/null +++ b/src/main/java/kr/wisestone/owl/service/impl/IspServiceImpl.java @@ -0,0 +1,197 @@ +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.MsgConstants; +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.exception.OwlRuntimeException; +import kr.wisestone.owl.mapper.CompanyFieldMapper; +import kr.wisestone.owl.repository.CompanyFieldRepository; +import kr.wisestone.owl.service.CompanyFieldService; +import kr.wisestone.owl.service.UserService; +import kr.wisestone.owl.service.WorkspaceService; +import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.vo.CompanyFieldVo; +import kr.wisestone.owl.vo.ExportExcelAttrVo; +import kr.wisestone.owl.vo.ExportExcelVo; +import kr.wisestone.owl.vo.ResPage; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import kr.wisestone.owl.web.view.ExcelView; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class IspServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService { + + @Autowired + private CompanyFieldRepository companyFieldRepository; + + @Autowired + private CompanyFieldMapper companyFieldMapper; + + @Autowired + private UserService userService; + + @Autowired + private WorkspaceService workspaceService; + + @Autowired + private ExcelView excelView; + + @Autowired + private ExcelConditionCheck excelConditionCheck; + + @Override + protected JpaRepository<CompanyField, Long> getRepository() { + return this.companyFieldRepository; + } + + // �뾽泥� 異붽� + @Override + public CompanyField addCompany(CompanyFieldForm companyFieldForm) { + CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); + companyFieldRepository.saveAndFlush(companyField); + return companyField; + } + + // �뾽泥� 紐⑸줉�쓣 媛��졇�삩�떎. + @Override + public List<CompanyFieldVo> findCompany(Map<String, Object> resJsonData, + CompanyFieldCondition condition, Pageable pageable) { + condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); + condition.setPageSize(pageable.getPageSize()); + + List<Map<String, Object>> results = this.companyFieldMapper.find(condition); + Long totalCompanyCount = this.companyFieldMapper.count(condition); + + return this.convertCompanyVoToMap(results, totalCompanyCount, pageable, resJsonData); + } + + + // �뾽泥� �긽�꽭 議고쉶�븳�떎. + @Override + public void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition companyFieldCondition) { + CompanyFieldVo companyFieldVo = new CompanyFieldVo(); + + Long companyId = companyFieldCondition.getId(); + if (companyId != null) { + CompanyField companyField = this.getCompany(companyId); + companyFieldVo = ConvertUtil.copyProperties(companyField, CompanyFieldVo.class); + } + resJsonData.put(Constants.REQ_KEY_CONTENT, companyFieldVo); + } + + // �뾽泥� �젙濡쒕�� �닔�젙�븳�떎. + @Override + public void modifyCompany(CompanyFieldForm companyFieldForm) { + CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); + companyFieldRepository.saveAndFlush(companyField); + } + + + // �뾽泥대�� �궘�젣�븳�떎. + @Override + public void removeCompany(CompanyFieldForm companyFieldForm) { + if (companyFieldForm.getRemoveIds().size() < 1) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT)); + } + for (Long id : companyFieldForm.getRemoveIds()) { + if (!this.userService.useUserLevel(id)) { + this.companyFieldRepository.deleteById(id); + } else { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE)); + } + + } + this.companyFieldRepository.flush(); + } + + // �뾽泥� 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎. + @Override + public ModelAndView downloadExcel(HttpServletRequest request, Model model) { + ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model); + if (modelAndView != null) { + return modelAndView; + } + + Map<String, Object> conditions = new HashMap<>(); + // �뿊�� �떎�슫濡쒕뱶�뿉 �븘�슂�븳 寃��깋 議곌굔 �젙蹂대�� 異붿텧�븯怨� 寃��깋 議곌굔 異붿텧�뿉 �삤瑜섍� 諛쒖깮�븯硫� 寃쎄퀬瑜� �몴�떆�빐以��떎. + modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model); + if (modelAndView != null) { + return modelAndView; + } + + CompanyFieldCondition companyFieldCondition = CompanyFieldCondition.make(conditions); + + + List<Map<String, Object>> results = this.companyFieldMapper.find(companyFieldCondition); + List<CompanyFieldVo> companyFieldVos = ConvertUtil.convertListToListClass(results, CompanyFieldVo.class); + // code_ko_KR �뿉 code紐� �꽕�젙 + ExportExcelVo excelInfo = new ExportExcelVo(); + excelInfo.setFileName(this.messageAccessor.message("�뾽泥� 紐⑸줉")); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyName", this.messageAccessor.message("companyField.companyName"), 6, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyManager", this.messageAccessor.message("companyField.companyManager"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyEmail", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyMemo", this.messageAccessor.message("companyField.companyMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + + excelInfo.setDatas(companyFieldVos); + + model.addAttribute(Constants.EXCEL, excelInfo); + return new ModelAndView(this.excelView); + } + + // �궘�젣 �븷 �뾽泥닿� �엳�뒗吏� �솗�씤 + @Override + public boolean company(Long Id) { + return this.companyFieldMapper.findByCompany(Id) > 0; + } + + // 寃��깋 寃곌낵瑜� CompanyFieldVo 濡� 蹂��솚�븳�떎. + private List<CompanyFieldVo> convertCompanyVoToMap(List<Map<String, Object>> results, Long totalCompanyCount, Pageable pageable, Map<String, Object> resJsonData) { + List<CompanyFieldVo> companyFieldVos = Lists.newArrayList(); + + for (Map<String, Object> result : results) { + CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class); + companyFieldVos.add(companyFieldVo); + } + + int totalPage = (int) Math.ceil((totalCompanyCount - 1) / pageable.getPageSize()) + 1; + + resJsonData.put(Constants.RES_KEY_CONTENTS, companyFieldVos); + resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), + totalPage, totalCompanyCount)); + + return companyFieldVos; + } + + // �뾽泥� ID 濡� 議고쉶�븳�떎 + @Override + public CompanyField getCompany(Long id) { + if (id == null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); + } + + CompanyField companyField = this.findOne(id); + + if (companyField == null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST)); + } + return companyField; + } +} diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java index 47e33bb..ad7edf2 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java @@ -244,8 +244,7 @@ // DepartmentManage�뿉 �엫�떆濡� Name, Description 媛� 異붽� DepartmentManageForm departmentManageForm = new DepartmentManageForm(); - departmentManageForm.setDepartmentName("媛쒕컻��"); - departmentManageForm.setDepartmentDescription("�쎒�궗�씠�듃 諛� �빋 �꽌鍮꾩뒪 媛쒕컻"); + departmentManageForm.setDepartmentName("遺��꽌 �뾾�쓬"); DepartmentManage departmentManage = this.departmentManageService.addDepartmentManage(departmentManageForm); user.setDepartmentManage(departmentManage); diff --git a/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java b/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java index 6798acc..c206567 100644 --- a/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java +++ b/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java @@ -8,6 +8,7 @@ private Long id; private String departmentName; private String departmentDescription; + private String defaultYn; private Long departmentCount; public DepartmentManageVo() {} diff --git a/src/main/java/kr/wisestone/owl/vo/HostingVo.java b/src/main/java/kr/wisestone/owl/vo/HostingVo.java new file mode 100644 index 0000000..f9855b1 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/vo/HostingVo.java @@ -0,0 +1,71 @@ +package kr.wisestone.owl.vo; + +public class HostingVo extends BaseVo{ + + private Long id; + private String name; + private String manager; + private String tel; + private String email; + private String memo; + + public HostingVo() {} + + public HostingVo(Long id, String name, String manager, String tel, String email, String memo) { + + this.id = id; + 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; + } +} diff --git a/src/main/java/kr/wisestone/owl/vo/IspVo.java b/src/main/java/kr/wisestone/owl/vo/IspVo.java new file mode 100644 index 0000000..5ed4f90 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/vo/IspVo.java @@ -0,0 +1,71 @@ +package kr.wisestone.owl.vo; + +public class IspVo extends BaseVo{ + + private Long id; + private String name; + private String manager; + private String tel; + private String email; + private String memo; + + public IspVo() {} + + public IspVo(Long id, String name, String manager, String tel, String email, String memo) { + + this.id = id; + 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; + } +} diff --git a/src/main/java/kr/wisestone/owl/web/condition/HostingCondition.java b/src/main/java/kr/wisestone/owl/web/condition/HostingCondition.java new file mode 100644 index 0000000..477cb95 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/web/condition/HostingCondition.java @@ -0,0 +1,85 @@ +package kr.wisestone.owl.web.condition; + +import kr.wisestone.owl.util.ConvertUtil; + +import java.util.Map; + +public class HostingCondition { + private Long id; + private String name; + private String manager; + private String tel; + private String email; + private String memo; + + private Integer Page; + private Integer PageSize; + + public static HostingCondition make(Map<String, Object> companyFieldCondition) { + return ConvertUtil.convertMapToClass(companyFieldCondition, HostingCondition.class); + } + + 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 Integer getPage() { + return Page; + } + + public void setPage(Integer page) { + Page = page; + } + + public Integer getPageSize() { + return PageSize; + } + + public void setPageSize(Integer pageSize) { + PageSize = pageSize; + } +} diff --git a/src/main/java/kr/wisestone/owl/web/condition/IspCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IspCondition.java new file mode 100644 index 0000000..d13871d --- /dev/null +++ b/src/main/java/kr/wisestone/owl/web/condition/IspCondition.java @@ -0,0 +1,85 @@ +package kr.wisestone.owl.web.condition; + +import kr.wisestone.owl.util.ConvertUtil; + +import java.util.Map; + +public class IspCondition { + private Long id; + private String name; + private String manager; + private String tel; + private String email; + private String memo; + + private Integer Page; + private Integer PageSize; + + public static IspCondition make(Map<String, Object> companyFieldCondition) { + return ConvertUtil.convertMapToClass(companyFieldCondition, IspCondition.class); + } + + 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 Integer getPage() { + return Page; + } + + public void setPage(Integer page) { + Page = page; + } + + public Integer getPageSize() { + return PageSize; + } + + public void setPageSize(Integer pageSize) { + PageSize = pageSize; + } +} diff --git a/src/main/java/kr/wisestone/owl/web/controller/HostingController.java b/src/main/java/kr/wisestone/owl/web/controller/HostingController.java new file mode 100644 index 0000000..d16c779 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/web/controller/HostingController.java @@ -0,0 +1,96 @@ +package kr.wisestone.owl.web.controller; + +import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.service.HostingService; +import kr.wisestone.owl.web.condition.HostingCondition; +import kr.wisestone.owl.web.form.HostingForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +@Controller +public class HostingController extends BaseController{ + + @Autowired + private HostingService HostingService; + + // �뾽泥� �깮�꽦 + @RequestMapping(value = "/hosting/add", method = RequestMethod.POST) + public + @ResponseBody + Map<String, Object> add(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); + this.HostingService.addCompany(HostingForm.make(content)); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� 議고쉶 + @RequestMapping(value = "/hosting/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params)); + + this.HostingService.findCompany(resJsonData, HostingCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� �긽�꽭 議고쉶 + @RequestMapping(value = "/hosting/detail", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + this.HostingService.detailCompany(resJsonData, HostingCondition.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� �닔�젙 + @RequestMapping(value = "/hosting/modify", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + + this.HostingService.modifyCompany(HostingForm.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� �궘�젣 + @RequestMapping(value = "/hosting/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); + + this.HostingService.removeCompany(HostingForm.make(content)); + + return this.setSuccessMessage(resJsonData); + } + + + // �뾽泥� �뿊�� �떎�슫濡쒕뱶 + @RequestMapping(value = "/hosting/downloadExcel", method = RequestMethod.POST) + public ModelAndView downloadExcel(HttpServletRequest request, Model model) { + return this.HostingService.downloadExcel(request, model); + } +} + diff --git a/src/main/java/kr/wisestone/owl/web/controller/IspController.java b/src/main/java/kr/wisestone/owl/web/controller/IspController.java new file mode 100644 index 0000000..3a9d989 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/web/controller/IspController.java @@ -0,0 +1,96 @@ +package kr.wisestone.owl.web.controller; + +import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.service.IspService; +import kr.wisestone.owl.web.condition.IspCondition; +import kr.wisestone.owl.web.form.IspForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +@Controller +public class IspController extends BaseController{ + + @Autowired + private IspService IspService; + + // �뾽泥� �깮�꽦 + @RequestMapping(value = "/isp/add", method = RequestMethod.POST) + public + @ResponseBody + Map<String, Object> add(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); + this.IspService.addCompany(IspForm.make(content)); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� 議고쉶 + @RequestMapping(value = "/isp/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params)); + + this.IspService.findCompany(resJsonData, IspCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� �긽�꽭 議고쉶 + @RequestMapping(value = "/isp/detail", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + this.IspService.detailCompany(resJsonData, IspCondition.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� �닔�젙 + @RequestMapping(value = "/isp/modify", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + + this.IspService.modifyCompany(IspForm.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + + // �뾽泥� �궘�젣 + @RequestMapping(value = "/isp/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); + + this.IspService.removeCompany(IspForm.make(content)); + + return this.setSuccessMessage(resJsonData); + } + + + // �뾽泥� �뿊�� �떎�슫濡쒕뱶 + @RequestMapping(value = "/isp/downloadExcel", method = RequestMethod.POST) + public ModelAndView downloadExcel(HttpServletRequest request, Model model) { + return this.IspService.downloadExcel(request, model); + } +} + diff --git a/src/main/resources/migration/V1_10__Alter_Table.sql b/src/main/resources/migration/V1_10__Alter_Table.sql index c65a167..be68bc8 100644 --- a/src/main/resources/migration/V1_10__Alter_Table.sql +++ b/src/main/resources/migration/V1_10__Alter_Table.sql @@ -4,13 +4,12 @@ CREATE TABLE `department_manage`( `id` BIGINT(11) AUTO_INCREMENT, - `department_name` VARCHAR(50) NOT NULL, - `department_description` VARCHAR(255) NOT NULL, + `department_name` VARCHAR(50) NULL, + `department_description` VARCHAR(255) NULL, `register_id` BIGINT(20) NOT NULL, `register_date` TIMESTAMP NULL, `modify_id` BIGINT(20) NOT NULL, `modify_date` TIMESTAMP NULL, - `default_department` VARCHAR (50) NULL DEFAULT '遺��꽌 �뾾�쓬', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/src/main/resources/migration/V1_11__Alter_Table.sql b/src/main/resources/migration/V1_11__Alter_Table.sql index b8631f1..b49db13 100644 --- a/src/main/resources/migration/V1_11__Alter_Table.sql +++ b/src/main/resources/migration/V1_11__Alter_Table.sql @@ -11,4 +11,33 @@ `modify_date` TIMESTAMP NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/* �씠硫붿씪�� ID 媛믪쑝濡� 諛쏄퀬 �뿰�씫泥섎룄 user�뿉 phone�뿉�꽌 諛쏆쑝硫� �릺怨�*/ \ No newline at end of file + +CREATE TABLE `isp`( + `id` BIGINT(11) AUTO_INCREMENT, + `name` VARCHAR(50) NOT NULL, + `manager` VARCHAR(50) NULL, + `tel` VARCHAR (50) NULL, + `email` VARCHAR (255) NULL, + `memo` VARCHAR(255) NULL, + `register_id` BIGINT(20) NOT NULL, + `register_date` TIMESTAMP NULL, + `modify_id` BIGINT(20) NOT NULL, + `modify_date` TIMESTAMP NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +CREATE TABLE `hosting`( + `id` BIGINT(11) AUTO_INCREMENT, + `name` VARCHAR(50) NOT NULL, + `manager` VARCHAR(50) NULL, + `tel` VARCHAR (50) NULL, + `email` VARCHAR (255) NULL, + `memo` VARCHAR(255) NULL, + `register_id` BIGINT(20) NOT NULL, + `register_date` TIMESTAMP NULL, + `modify_id` BIGINT(20) NOT NULL, + `modify_date` TIMESTAMP NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + diff --git a/src/main/resources/mybatis/query-template/departmentManage-template.xml b/src/main/resources/mybatis/query-template/departmentManage-template.xml index 8269244..e73a692 100644 --- a/src/main/resources/mybatis/query-template/departmentManage-template.xml +++ b/src/main/resources/mybatis/query-template/departmentManage-template.xml @@ -8,7 +8,6 @@ dm.id as id, dm.department_name as departmentName, dm.department_description as departmentDescription, - dm.default_department as defalutDepartment, (SELECT COUNT(u.id) FROM user u WHERE dm.id = u.department_id) AS departmentCount FROM department_manage dm -- Gitblit v1.8.0