시군구 관리, 부서 관리 추가
parent
0a9daa171c
commit
21a210300d
@ -0,0 +1,118 @@
|
||||
package cokr.xit.base.user;
|
||||
|
||||
import cokr.xit.foundation.AbstractEntity;
|
||||
|
||||
/**
|
||||
* 부서 정보
|
||||
* @author mjkhan
|
||||
*/
|
||||
public class Department extends AbstractEntity {
|
||||
/** 시군구 코드 */
|
||||
private String sggID;
|
||||
/** 기관 코드 */
|
||||
private String instCode;
|
||||
/** 부서 코드 */
|
||||
private String deptID;
|
||||
/** 부서 명 */
|
||||
private String name;
|
||||
/** 부서 전화번호 */
|
||||
private String telno;
|
||||
/** 부서 팩스번호 */
|
||||
private String faxno;
|
||||
|
||||
/**
|
||||
* 시군구 코드을(를) 반환한다.
|
||||
* @return 시군구 코드
|
||||
*/
|
||||
public String getSggID() {
|
||||
return sggID;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시군구 코드을(를) 설정한다.
|
||||
* @param sggID 시군구 코드
|
||||
*/
|
||||
public void setSggID(String sggID) {
|
||||
this.sggID = sggID;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 코드을(를) 반환한다.
|
||||
* @return 부서 코드
|
||||
*/
|
||||
public String getDeptID() {
|
||||
return deptID;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 코드을(를) 설정한다.
|
||||
* @param deptID 부서 코드
|
||||
*/
|
||||
public void setDeptID(String deptID) {
|
||||
this.deptID = deptID;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 코드을(를) 반환한다.
|
||||
* @return 기관 코드
|
||||
*/
|
||||
public String getInstCode() {
|
||||
return instCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 코드을(를) 설정한다.
|
||||
* @param instCode 기관 코드
|
||||
*/
|
||||
public void setInstCode(String instCode) {
|
||||
this.instCode = instCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 명을(를) 반환한다.
|
||||
* @return 부서 명
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 명을(를) 설정한다.
|
||||
* @param name 부서 명
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 전화번호을(를) 반환한다.
|
||||
* @return 부서 전화번호
|
||||
*/
|
||||
public String getTelno() {
|
||||
return telno;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 전화번호을(를) 설정한다.
|
||||
* @param telno 부서 전화번호
|
||||
*/
|
||||
public void setTelno(String telno) {
|
||||
this.telno = telno;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 팩스번호을(를) 반환한다.
|
||||
* @return 부서 팩스번호
|
||||
*/
|
||||
public String getFaxno() {
|
||||
return faxno;
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 팩스번호을(를) 설정한다.
|
||||
* @param faxno 부서 팩스번호
|
||||
*/
|
||||
public void setFaxno(String faxno) {
|
||||
this.faxno = faxno;
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package cokr.xit.base.user;
|
||||
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
|
||||
/**부서 정보 정보 조회 요청
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public class DepartmentQuery extends QueryRequest {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** 시군구 코드 */
|
||||
private String sggID;
|
||||
/** 부서 코드 */
|
||||
private String[] deptIDs;
|
||||
|
||||
/**시군구 코드를 반환한다.
|
||||
* @return 시군구 코드
|
||||
*/
|
||||
public String getSggID() {
|
||||
return sggID;
|
||||
}
|
||||
|
||||
/**시군구 코드를 설정한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @return 현재 DepartmentQuery
|
||||
*/
|
||||
public DepartmentQuery setSggID(String sggID) {
|
||||
this.sggID = sggID;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**부서코드를 반환한다.
|
||||
* @return 부서코드
|
||||
*/
|
||||
public String[] getDeptIDs() {
|
||||
return ifEmpty(deptIDs, () -> null);
|
||||
}
|
||||
|
||||
/**부서코드를 설정한다.
|
||||
* @param deptIDs 부서코드
|
||||
* @return 현재 DepartmentQuery
|
||||
*/
|
||||
public DepartmentQuery setDeptIDs(String... deptIDs) {
|
||||
this.deptIDs = deptIDs;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -0,0 +1,172 @@
|
||||
package cokr.xit.base.user;
|
||||
|
||||
import cokr.xit.foundation.AbstractEntity;
|
||||
|
||||
/**
|
||||
* 시군구
|
||||
* @author mjkhan
|
||||
*/
|
||||
public class Sigungu extends AbstractEntity {
|
||||
/** 시군구 코드 */
|
||||
private String sggID;
|
||||
/** 시군구 이름 */
|
||||
private String sggName;
|
||||
/** 기관 코드 */
|
||||
private String instCode;
|
||||
/** 기관 명 */
|
||||
private String instName;
|
||||
/** 기관 주소 */
|
||||
private String instAddress;
|
||||
/** 기관 상세주소 */
|
||||
private String instDetailAddress;
|
||||
/** 기관 우편번호 */
|
||||
private String instituteZipCode;
|
||||
/** 직인 파일 경로 */
|
||||
private String officialSealFilepath;
|
||||
/** 직인 파일 명 */
|
||||
private String officialSealFilename;
|
||||
|
||||
/**
|
||||
* 시군구 코드을(를) 반환한다.
|
||||
* @return 시군구 코드
|
||||
*/
|
||||
public String getSggID() {
|
||||
return sggID;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시군구 코드을(를) 설정한다.
|
||||
* @param id 시군구 코드
|
||||
*/
|
||||
public void setSggID(String id) {
|
||||
this.sggID = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시군구 이름을(를) 반환한다.
|
||||
* @return 시군구 이름
|
||||
*/
|
||||
public String getSggName() {
|
||||
return sggName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시군구 이름을(를) 설정한다.
|
||||
* @param name 시군구 이름
|
||||
*/
|
||||
public void setSggName(String name) {
|
||||
this.sggName = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 코드을(를) 반환한다.
|
||||
* @return 기관 코드
|
||||
*/
|
||||
public String getInstCode() {
|
||||
return instCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 코드을(를) 설정한다.
|
||||
* @param instituteCode 기관 코드
|
||||
*/
|
||||
public void setInstCode(String instituteCode) {
|
||||
this.instCode = instituteCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 명을(를) 반환한다.
|
||||
* @return 기관 명
|
||||
*/
|
||||
public String getInstName() {
|
||||
return instName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 명을(를) 설정한다.
|
||||
* @param instituteName 기관 명
|
||||
*/
|
||||
public void setInstName(String instituteName) {
|
||||
this.instName = instituteName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 주소을(를) 반환한다.
|
||||
* @return 기관 주소
|
||||
*/
|
||||
public String getInstAddress() {
|
||||
return instAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 주소을(를) 설정한다.
|
||||
* @param address 기관 주소
|
||||
*/
|
||||
public void setInstAddress(String address) {
|
||||
this.instAddress = address;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 상세주소을(를) 반환한다.
|
||||
* @return 기관 상세주소
|
||||
*/
|
||||
public String getInstDetailAddress() {
|
||||
return instDetailAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 상세주소을(를) 설정한다.
|
||||
* @param detailAddress 기관 상세주소
|
||||
*/
|
||||
public void setInstDetailAddress(String detailAddress) {
|
||||
this.instDetailAddress = detailAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 우편번호을(를) 반환한다.
|
||||
* @return 기관 우편번호
|
||||
*/
|
||||
public String getInstituteZipCode() {
|
||||
return instituteZipCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 기관 우편번호을(를) 설정한다.
|
||||
* @param zipCode 기관 우편번호
|
||||
*/
|
||||
public void setInstituteZipCode(String zipCode) {
|
||||
this.instituteZipCode = zipCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 직인 파일 경로을(를) 반환한다.
|
||||
* @return 직인 파일 경로
|
||||
*/
|
||||
public String getOfficialSealFilepath() {
|
||||
return officialSealFilepath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 직인 파일 경로을(를) 설정한다.
|
||||
* @param filepath 직인 파일 경로
|
||||
*/
|
||||
public void setOfficialSealFilepath(String filepath) {
|
||||
this.officialSealFilepath = filepath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 직인 파일 명을(를) 반환한다.
|
||||
* @return 직인 파일 명
|
||||
*/
|
||||
public String getOfficialSealFilename() {
|
||||
return officialSealFilename;
|
||||
}
|
||||
|
||||
/**
|
||||
* 직인 파일 명을(를) 설정한다.
|
||||
* @param filename 직인 파일 명
|
||||
*/
|
||||
public void setOfficialSealFilename(String filename) {
|
||||
this.officialSealFilename = filename;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package cokr.xit.base.user;
|
||||
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
|
||||
/**시군구 정보 조회 요청
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public class SigunguQuery extends QueryRequest {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 시군구 코드 */
|
||||
private String[] sggIDs;
|
||||
/** 기관 코드 */
|
||||
private String[] instCodes;
|
||||
|
||||
|
||||
/**시군구 코드를 반환한다.
|
||||
* @return 시군구 코드
|
||||
*/
|
||||
public String[] getSggIDs() {
|
||||
return ifEmpty(sggIDs, () -> null);
|
||||
}
|
||||
|
||||
/**시군구 코드를 설정한다.
|
||||
* @param sggIDs 시군구 코드
|
||||
* @return 현재 SigunguQuery
|
||||
*/
|
||||
public SigunguQuery setSggIDs(String... sggIDs) {
|
||||
this.sggIDs = sggIDs;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**기관 코드를 반환한다.
|
||||
* @return 기관 코드
|
||||
*/
|
||||
public String[] getInstCodes() {
|
||||
return ifEmpty(instCodes, () -> null);
|
||||
}
|
||||
|
||||
/**기관 코드를 설정한다.
|
||||
* @param instituteCodes 기관 코드
|
||||
* @return 현재 SigunguQuery
|
||||
*/
|
||||
public SigunguQuery setInstCodes(String[] instituteCodes) {
|
||||
this.instCodes = instituteCodes;
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package cokr.xit.base.user.service;
|
||||
package cokr.xit.base.user;
|
||||
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
|
@ -0,0 +1,118 @@
|
||||
package cokr.xit.base.user.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||
|
||||
import cokr.xit.base.user.Department;
|
||||
import cokr.xit.base.user.DepartmentQuery;
|
||||
import cokr.xit.foundation.component.AbstractMapper;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/** 부서 정보 정보 DAO
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper("departmentMapper")
|
||||
public interface DepartmentMapper extends AbstractMapper {
|
||||
/**지정한 조건에 따라 부서 정보 목록을 조회하여 반환한다.<br />
|
||||
* @param req 부서 정보 조회 조건
|
||||
* @return 부서 정보 목록
|
||||
*/
|
||||
List<DataObject> selectDepartmentList(DepartmentQuery req);
|
||||
|
||||
/**지정한 조건에 따라 부서 정보 객체들을 반환한다.
|
||||
* @param req 부서 정보 조회 조건
|
||||
* @return 부서 정보 객체 목록
|
||||
*/
|
||||
List<Department> selectDepartments(DepartmentQuery req);
|
||||
|
||||
/**지정한 조건에 따라 부서 정보 객체들을 반환한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptIDs 부서 코드
|
||||
* @return 부서 정보 객체 목록
|
||||
*/
|
||||
default List<Department> selectDepartments(String sggID, String... deptIDs) {
|
||||
return selectDepartments(new DepartmentQuery()
|
||||
.setSggID(sggID)
|
||||
.setDeptIDs(deptIDs)
|
||||
);
|
||||
}
|
||||
|
||||
/**지정한 조건에 따라 부서 정보 객체들을 반환한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptID 부서 코드
|
||||
* @return 부서 정보 객체 목록
|
||||
*/
|
||||
default Department selectDepartment(String sggID, String deptID) {
|
||||
List<Department> list = selectDepartments(sggID, deptID);
|
||||
return !list.isEmpty() ? list.get(0) : null;
|
||||
}
|
||||
|
||||
/**부서 정보 정보를 등록한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"department" - 부서 정보</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int insertDepartment(Map<String, Object> params);
|
||||
|
||||
/**부서 정보 정보를 등록한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean insert(Department department) {
|
||||
return department != null && insertDepartment(params().set("department", department)) == 1;
|
||||
}
|
||||
|
||||
/**부서 정보 정보를 수정한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"department" - 부서 정보</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int updateDepartment(Map<String, Object> params);
|
||||
|
||||
/**부서 정보 정보를 수정한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean update(Department department) {
|
||||
return department != null && updateDepartment(params().set("department", department)) == 1;
|
||||
}
|
||||
|
||||
/**지정한 부서 정보을 삭제한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"department" - 부서 정보</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int deleteDepartment(Map<String, Object> params);
|
||||
|
||||
/**부서 정보 정보를 삭제한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default int delete(String sggID, String... deptIDs) {
|
||||
return deleteDepartment(params().set("sggID", sggID).set("deptIDs", deptIDs));
|
||||
}
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
package cokr.xit.base.user.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||
|
||||
import cokr.xit.base.user.Sigungu;
|
||||
import cokr.xit.base.user.SigunguQuery;
|
||||
import cokr.xit.foundation.component.AbstractMapper;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/** 시군구 정보 DAO
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper("sigunguMapper")
|
||||
public interface SigunguMapper extends AbstractMapper {
|
||||
/**지정한 조건에 따라 시군구 목록을 조회하여 반환한다.<br />
|
||||
* @param req 시군구 조회 조건
|
||||
* @return 시군구 목록
|
||||
*/
|
||||
List<DataObject> selectSigunguList(SigunguQuery req);
|
||||
|
||||
/**지정한 조건에 따라 시군구 객체들을 반환한다.
|
||||
* @param req 시군구 조회 조건
|
||||
* @return 시군구 객체 목록
|
||||
*/
|
||||
List<Sigungu> selectSigungus(SigunguQuery req);
|
||||
|
||||
/**지정한 아이디의 시군구 객체들을 반환한다.
|
||||
* @param sggIDs 시군구 아이디
|
||||
* @return 시군구 객체 목록
|
||||
*/
|
||||
default List<Sigungu> selectSigungus(String... sggIDs) {
|
||||
return selectSigungus(new SigunguQuery().setSggIDs(sggIDs));
|
||||
}
|
||||
|
||||
/**지정한 아이디의 시군구 객체를 반환한다.
|
||||
* @param sggID 시군구 아이디
|
||||
* @return 시군구 객체
|
||||
*/
|
||||
default Sigungu selectSigungu(String sggID) {
|
||||
List<Sigungu> list = selectSigungus(sggID);
|
||||
return !list.isEmpty() ? list.get(0) : null;
|
||||
}
|
||||
|
||||
/**지정한 기관 코드의 시군구 객체들을 반환한다.
|
||||
* @param instCodes 기관 코드
|
||||
* @return 시군구 객체 목록
|
||||
*/
|
||||
default List<Sigungu> selectInstitutes(String... instCodes) {
|
||||
return selectSigungus(new SigunguQuery().setInstCodes(instCodes));
|
||||
}
|
||||
|
||||
/**지정한 기관 코드의 시군구 객체를 반환한다.
|
||||
* @param instCodes 기관 코드
|
||||
* @return 시군구 객체
|
||||
*/
|
||||
default Sigungu selectInstitute(String instCode) {
|
||||
List<Sigungu> list = selectInstitutes(instCode);
|
||||
return !list.isEmpty() ? list.get(0) : null;
|
||||
}
|
||||
|
||||
/**시군구 정보를 등록한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"sigungu" - 시군구</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int insertSigungu(Map<String, Object> params);
|
||||
|
||||
/**시군구 정보를 등록한다.
|
||||
* @param sigungu 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean insert(Sigungu sigungu) {
|
||||
return sigungu != null && insertSigungu(params().set("sigungu", sigungu)) == 1;
|
||||
}
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"sigungu" - 시군구</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int updateSigungu(Map<String, Object> params);
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param sigungu 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean update(Sigungu sigungu) {
|
||||
return sigungu != null && updateSigungu(params().set("sigungu", sigungu)) == 1;
|
||||
}
|
||||
|
||||
/**지정한 시군구을 삭제한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"sggIDs" - 시군구 아이디</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int deleteSigungu(Map<String, Object> params);
|
||||
|
||||
/**시군구 정보를 삭제한다.
|
||||
* @param sggIDs 시군구 아이디
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
default int delete(String... sggIDs) {
|
||||
return !isEmpty(sggIDs) ? deleteSigungu(params().set("sggIDs", sggIDs)) : 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package cokr.xit.base.user.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cokr.xit.base.user.Department;
|
||||
import cokr.xit.base.user.DepartmentQuery;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**부서 정보 관리 서비스 인터페이스.
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public interface DepartmentService {
|
||||
/**지정한 조건에 따라 부서 정보 목록을 조회하여 반환한다.
|
||||
* @param req 부서 정보 조회 조건
|
||||
* @return 부서 정보 목록
|
||||
*/
|
||||
List<DataObject> getDepartmentList(DepartmentQuery req);
|
||||
|
||||
/**부서 정보 정보를 등록한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean create(Department department);
|
||||
|
||||
/**부서 정보 정보를 수정한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean update(Department department);
|
||||
|
||||
/**부서 정보 정보를 삭제한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptIDs 부서 코드
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int remove(String sggID, String... deptIDs);
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package cokr.xit.base.user.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cokr.xit.base.user.Sigungu;
|
||||
import cokr.xit.base.user.SigunguQuery;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**시군구 관리 서비스 인터페이스.
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public interface SigunguService {
|
||||
/**지정한 조건에 따라 시군구 목록을 조회하여 반환한다.
|
||||
* @param req 시군구 조회 조건
|
||||
* @return 시군구 목록
|
||||
*/
|
||||
List<DataObject> getSigunguList(SigunguQuery req);
|
||||
|
||||
/**시군구 정보를 등록한다.
|
||||
* @param sigungu 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean create(Sigungu sigungu);
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param sigungu 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean update(Sigungu sigungu);
|
||||
|
||||
/**시군구 정보를 삭제한다.
|
||||
* @param sggIDs 시군구 아이디
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int remove(String... sggIDs);
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
package cokr.xit.base.user.service.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import cokr.xit.base.user.Department;
|
||||
import cokr.xit.base.user.DepartmentQuery;
|
||||
import cokr.xit.base.user.dao.DepartmentMapper;
|
||||
import cokr.xit.foundation.AbstractComponent;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**부서 정보 정보 관리 Bean
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Component("departmentBean")
|
||||
public class DepartmentBean extends AbstractComponent {
|
||||
/** 부서 정보 정보 DAO */
|
||||
@Resource(name = "departmentMapper")
|
||||
private DepartmentMapper departmentMapper;
|
||||
|
||||
/**지정한 조건에 따라 부서 정보 목록을 조회하여 반환한다.
|
||||
* @param req 부서 정보 조회 조건
|
||||
* @return 부서 정보 목록
|
||||
*/
|
||||
public List<DataObject> getDepartmentList(DepartmentQuery req) {
|
||||
return departmentMapper.selectDepartmentList(req);
|
||||
}
|
||||
|
||||
/**지정한 조건에 따라 부서 정보 객체들을 반환한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptIDs 부서 코드
|
||||
* @return 부서 정보 객체 목록
|
||||
*/
|
||||
public List<Department> getDepartments(String sggID, String... deptIDs) {
|
||||
return departmentMapper.selectDepartments(sggID, deptIDs);
|
||||
}
|
||||
|
||||
/**지정한 조건에 따라 부서 정보 객체를 반환한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptID 부서 코드
|
||||
* @return 부서 정보 객체
|
||||
*/
|
||||
public Department getDepartment(String sggID, String deptID) {
|
||||
return departmentMapper.selectDepartment(sggID, deptID);
|
||||
}
|
||||
|
||||
/**부서 정보 정보를 등록한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean create(Department department) {
|
||||
return departmentMapper.insert(department);
|
||||
}
|
||||
|
||||
/**부서 정보 정보를 수정한다.
|
||||
* @param department 부서 정보
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean update(Department department) {
|
||||
return departmentMapper.update(department);
|
||||
}
|
||||
|
||||
/**부서 정보 정보를 삭제한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptIDs 부서 코드
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
public int remove(String sggID, String... deptIDs) {
|
||||
return departmentMapper.delete(sggID, deptIDs);
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package cokr.xit.base.user.service.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import cokr.xit.base.user.Department;
|
||||
import cokr.xit.base.user.DepartmentQuery;
|
||||
import cokr.xit.base.user.service.DepartmentService;
|
||||
import cokr.xit.foundation.component.AbstractServiceBean;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**부서 정보 서비스 구현체.
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Service("departmentService")
|
||||
public class DepartmentServiceBean extends AbstractServiceBean implements DepartmentService {
|
||||
/** 부서 정보 정보 Bean */
|
||||
@Resource(name = "departmentBean")
|
||||
private DepartmentBean departmentBean;
|
||||
|
||||
@Override
|
||||
public List<DataObject> getDepartmentList(DepartmentQuery req) {
|
||||
return departmentBean.getDepartmentList(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean create(Department department) {
|
||||
return departmentBean.create(department);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(Department department) {
|
||||
return departmentBean.update(department);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int remove(String sggID, String... deptIDs) {
|
||||
return departmentBean.remove(sggID, deptIDs);
|
||||
}
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
package cokr.xit.base.user.service.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import cokr.xit.base.user.Sigungu;
|
||||
import cokr.xit.base.user.SigunguQuery;
|
||||
import cokr.xit.base.user.dao.SigunguMapper;
|
||||
import cokr.xit.foundation.AbstractComponent;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**시군구 정보 관리 Bean
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Component("sigunguBean")
|
||||
public class SigunguBean extends AbstractComponent {
|
||||
/** 시군구 정보 DAO */
|
||||
@Resource(name = "sigunguMapper")
|
||||
private SigunguMapper sigunguMapper;
|
||||
|
||||
/**지정한 조건에 따라 시군구 목록을 조회하여 반환한다.
|
||||
* @param req 시군구 조회 조건
|
||||
* @return 시군구 목록
|
||||
*/
|
||||
public List<DataObject> getSigunguList(SigunguQuery req) {
|
||||
return sigunguMapper.selectSigunguList(req);
|
||||
}
|
||||
|
||||
/**지정한 아이디의 따라 시군구 객체들을 반환한다.
|
||||
* @param sggIDs 시군구 코드
|
||||
* @return 시군구 객체 목록
|
||||
*/
|
||||
public List<Sigungu> getSigungus(String... sggIDs) {
|
||||
return sigunguMapper.selectSigungus(sggIDs);
|
||||
}
|
||||
|
||||
/**지정한 아이디의 시군구 객체를 반환한다.
|
||||
* @param sggID 시군구 조회 조건
|
||||
* @return 시군구 객체
|
||||
*/
|
||||
public Sigungu getSigungu(String sggID) {
|
||||
return sigunguMapper.selectSigungu(sggID);
|
||||
}
|
||||
|
||||
/**지정한 기관코드의 시군구 객체들을 반환한다.
|
||||
* @param instCodes 기관 코드
|
||||
* @return 시군구 객체 목록
|
||||
*/
|
||||
public List<Sigungu> getInstitutes(String... instCodes) {
|
||||
return sigunguMapper.selectInstitutes(instCodes);
|
||||
}
|
||||
|
||||
/**지정한 기관 코드의 시군구 객체를 반환한다.
|
||||
* @param instCode 기관 코드
|
||||
* @return 시군구 객체
|
||||
*/
|
||||
public Sigungu getInstitute(String instCode) {
|
||||
return sigunguMapper.selectInstitute(instCode);
|
||||
}
|
||||
|
||||
/**시군구 정보를 등록한다.
|
||||
* @param sigungu 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean create(Sigungu sigungu) {
|
||||
return sigunguMapper.insert(sigungu);
|
||||
}
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param sigungu 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean update(Sigungu sigungu) {
|
||||
return sigunguMapper.update(sigungu);
|
||||
}
|
||||
|
||||
/**시군구 정보를 삭제한다.
|
||||
* @param sggIDs 시군구 아이디
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
public int remove(String... sggIDs) {
|
||||
return sigunguMapper.delete(sggIDs);
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package cokr.xit.base.user.service.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import cokr.xit.base.user.Sigungu;
|
||||
import cokr.xit.base.user.SigunguQuery;
|
||||
import cokr.xit.base.user.service.SigunguService;
|
||||
import cokr.xit.foundation.component.AbstractServiceBean;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**시군구 서비스 구현체.
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Service("sigunguService")
|
||||
public class SigunguServiceBean extends AbstractServiceBean implements SigunguService {
|
||||
/** 시군구 정보 Bean */
|
||||
@Resource(name = "sigunguBean")
|
||||
private SigunguBean sigunguBean;
|
||||
|
||||
@Override
|
||||
public List<DataObject> getSigunguList(SigunguQuery req) {
|
||||
return sigunguBean.getSigunguList(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean create(Sigungu sigungu) {
|
||||
return sigunguBean.create(sigungu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(Sigungu sigungu) {
|
||||
return sigunguBean.update(sigungu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int remove(String... sggIDs) {
|
||||
return sigunguBean.remove(sggIDs);
|
||||
}
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
package cokr.xit.base.user.web;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.user.Department;
|
||||
import cokr.xit.base.user.DepartmentQuery;
|
||||
import cokr.xit.base.user.service.DepartmentService;
|
||||
import cokr.xit.foundation.web.AbstractController;
|
||||
|
||||
/**부서 정보 서비스의 웹 컨트롤러
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@RequestMapping(name = "부서 정보", value = "/department")
|
||||
public class DepartmentController extends AbstractController {
|
||||
/**부서 정보 서비스*/
|
||||
@Resource(name = "departmentService")
|
||||
private DepartmentService departmentService;
|
||||
|
||||
/**부서 정보 관리 메인화면(department/department-main)을 연다.
|
||||
* 조건없는 {@link #getDepartmentList(DepartmentQuery) 부서 정보 조회 결과}를 포함시킨다.
|
||||
* @return /department/department-main
|
||||
*/
|
||||
@RequestMapping(name = "부서 정보 메인", value = "/main.do")
|
||||
public ModelAndView main() {
|
||||
ModelAndView mav = getDepartmentList(new DepartmentQuery().setPageNum(1));
|
||||
mav.setViewName("/department/department-main");
|
||||
return mav.addObject("departmentList", toJson(mav.getModel().get("departmentList")));
|
||||
}
|
||||
|
||||
/**부서 정보 목록을 조회하여 반환한다.<br />
|
||||
* {@link DepartmentService#getDepartmentList(DepartmentQuery)} 참고
|
||||
* @param req 부서 정보 조회 조건
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "departmentList": [부서 정보 목록]
|
||||
* "departmentStart": 부서 정보 목록 시작 인덱스
|
||||
* "departmentFetch": 한 번에 가져오는 부서 정보 목록 수
|
||||
* "departmentTotal": 조회 결과 찾은 전체 부서 정보 수
|
||||
* }</code></pre>
|
||||
*/
|
||||
@RequestMapping(name = "부서 정보 조회", value = "/list.do")
|
||||
public ModelAndView getDepartmentList(DepartmentQuery req) {
|
||||
List<?> result = departmentService.getDepartmentList(setFetchSize(req));
|
||||
return setCollectionInfo(new ModelAndView("jsonView"), result, "department");
|
||||
}
|
||||
|
||||
/**부서 정보를 등록한다.
|
||||
* @param department 부서 정보 정보
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "부서 정보 등록", value = "/create.do")
|
||||
public ModelAndView create(Department department) {
|
||||
boolean saved = departmentService.create(department);
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
/**부서 정보 정보를 수정한다.
|
||||
* @param department 부서 정보 정보
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "saved": 수정되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "부서 정보 수정", value = "/update.do")
|
||||
public ModelAndView update(Department department) {
|
||||
boolean saved = departmentService.update(department);
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
/**지정한 부서 정보를 제거한다.
|
||||
* @param sggID 시군구 코드
|
||||
* @param deptIDs 부서 코드
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "affected": 저장된 정보수
|
||||
* "saved": 저장되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "부서 정보 제거", value = "/remove.do")
|
||||
public ModelAndView remove(String sggID, String... deptIDs) {
|
||||
int affected = departmentService.remove(sggID, deptIDs);
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("affected", affected)
|
||||
.addObject("saved", affected > 0);
|
||||
}
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
package cokr.xit.base.user.web;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.user.Sigungu;
|
||||
import cokr.xit.base.user.SigunguQuery;
|
||||
import cokr.xit.base.user.service.SigunguService;
|
||||
import cokr.xit.foundation.web.AbstractController;
|
||||
|
||||
/**시군구 서비스의 웹 컨트롤러
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-10-06 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@RequestMapping(name = "시군구", value = "/sigungu")
|
||||
public class SigunguController extends AbstractController {
|
||||
/**시군구 서비스*/
|
||||
@Resource(name = "sigunguService")
|
||||
private SigunguService sigunguService;
|
||||
|
||||
/**시군구 관리 메인화면(sigungu/sigungu-main)을 연다.
|
||||
* 조건없는 {@link #getSigunguList(SigunguQuery) 시군구 조회 결과}를 포함시킨다.
|
||||
* @return /sigungu/sigungu-main
|
||||
*/
|
||||
@RequestMapping(name = "시군구 메인", value = "/main.do")
|
||||
public ModelAndView main() {
|
||||
ModelAndView mav = getSigunguList(new SigunguQuery().setPageNum(1));
|
||||
mav.setViewName("/sigungu/sigungu-main");
|
||||
return mav.addObject("sigunguList", toJson(mav.getModel().get("sigunguList")));
|
||||
}
|
||||
|
||||
/**시군구 목록을 조회하여 반환한다.<br />
|
||||
* {@link SigunguService#getSigunguList(SigunguQuery)} 참고
|
||||
* @param req 시군구 조회 조건
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "sigunguList": [시군구 목록]
|
||||
* "sigunguStart": 시군구 목록 시작 인덱스
|
||||
* "sigunguFetch": 한 번에 가져오는 시군구 목록 수
|
||||
* "sigunguTotal": 조회 결과 찾은 전체 시군구 수
|
||||
* }</code></pre>
|
||||
*/
|
||||
@RequestMapping(name = "시군구 조회", value = "/list.do")
|
||||
public ModelAndView getSigunguList(SigunguQuery req) {
|
||||
List<?> result = sigunguService.getSigunguList(setFetchSize(req));
|
||||
return setCollectionInfo(new ModelAndView("jsonView"), result, "sigungu");
|
||||
}
|
||||
|
||||
/**시군구를 등록한다.
|
||||
* @param sigungu 시군구 정보
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "시군구 등록", value = "/create.do")
|
||||
public ModelAndView create(Sigungu sigungu) {
|
||||
boolean saved = sigunguService.create(sigungu);
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param sigungu 시군구 정보
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "saved": 수정되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "시군구 수정", value = "/update.do")
|
||||
public ModelAndView update(Sigungu sigungu) {
|
||||
boolean saved = sigunguService.update(sigungu);
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
/**지정한 시군구를 제거한다.
|
||||
* @param sigunguIDs 시군구 아이디
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "affected": 저장된 정보수
|
||||
* "saved": 저장되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "시군구 제거", value = "/remove.do")
|
||||
public ModelAndView remove(String... sggIDs) {
|
||||
int affected = sigunguService.remove(sggIDs);
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("affected", affected)
|
||||
.addObject("saved", affected > 0);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue