소스정리
parent
6bea84b159
commit
a5b89589c4
@ -0,0 +1,71 @@
|
||||
package cokr.xit.fims.base;
|
||||
|
||||
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
|
||||
public class OgdpQuery extends QueryRequest {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
private String sggCd; // 시군구 코드
|
||||
private String deptCd; // 부서 코드
|
||||
private String instCd; // 기관 코드
|
||||
private String useYn; // 사용 여부
|
||||
private String delYn; // 삭제 여부
|
||||
|
||||
private String selectAdd;
|
||||
|
||||
public String getSggCd() {
|
||||
return ifEmpty(sggCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends OgdpQuery> T setSggCd(String sggCd) {
|
||||
this.sggCd = sggCd;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getDeptCd() {
|
||||
return ifEmpty(deptCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends OgdpQuery> T setDeptCd(String deptCd) {
|
||||
this.deptCd = deptCd;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getInstCd() {
|
||||
return ifEmpty(instCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends OgdpQuery> T setInstCd(String instCd) {
|
||||
this.instCd = instCd;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getUseYn() {
|
||||
return ifEmpty(useYn, () -> null);
|
||||
}
|
||||
|
||||
public <T extends OgdpQuery> T setUseYn(String useYn) {
|
||||
this.useYn = useYn;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getDelYn() {
|
||||
return ifEmpty(delYn, () -> null);
|
||||
}
|
||||
|
||||
public <T extends OgdpQuery> T setDelYn(String delYn) {
|
||||
this.delYn = delYn;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getSelectAdd() {
|
||||
return ifEmpty(selectAdd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends OgdpQuery> T setSelectAdd(String selectAdd) {
|
||||
this.selectAdd = selectAdd;
|
||||
return self();
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cokr.xit.fims.base;
|
||||
|
||||
import cokr.xit.base.user.Sigungu;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class OgdpSigungu extends Sigungu {
|
||||
|
||||
/**
|
||||
* 상징 파일 경로
|
||||
*/
|
||||
private String symbolFilepath;
|
||||
|
||||
/**
|
||||
* 상징 파일 명
|
||||
*/
|
||||
private String symbolFilename;
|
||||
|
||||
/**
|
||||
* 로고 파일 경로
|
||||
*/
|
||||
private String logoFilepath;
|
||||
|
||||
/**
|
||||
* 로고 파일 명
|
||||
*/
|
||||
private String logoFilename;
|
||||
|
||||
}
|
@ -0,0 +1,348 @@
|
||||
package cokr.xit.fims.base.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.SelectProvider;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.apache.ibatis.annotations.UpdateProvider;
|
||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||
|
||||
import cokr.xit.applib.SQLUtil;
|
||||
import cokr.xit.fims.base.OgdpQuery;
|
||||
import cokr.xit.fims.base.OgdpSigungu;
|
||||
import cokr.xit.foundation.component.AbstractMapper;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
@Mapper("ogdpMapper")
|
||||
public interface OgdpMapper extends AbstractMapper {
|
||||
|
||||
/**모든 기관,부서 목록을 반환한다.<br />
|
||||
* @param
|
||||
* @return 기관,부서 목록
|
||||
*/
|
||||
@Select(SQLUtil.SCRIPT_START+"""
|
||||
/* 전체 기관,부서 목록 조회(ogdpMapper.selectAllOgdpList) */
|
||||
SELECT CONCAT(A.INST_CD,'/',B.DEPT_CD) AS OGDP_CD
|
||||
, CONCAT(A.SGG_NM, ' / ', A.INST_NM, ' : ', B.DEPT_NM) AS OGDP_NM
|
||||
, A.INST_CD
|
||||
, A.INST_NM
|
||||
, B.DEPT_CD
|
||||
, B.DEPT_NM
|
||||
, A.SGG_CD
|
||||
, A.SGG_NM
|
||||
FROM TB_SGG A
|
||||
LEFT OUTER JOIN TB_DEPT B ON (A.INST_CD = B.INST_CD)
|
||||
UNION
|
||||
SELECT ('default/default') AS OGDP_CD
|
||||
, CONCAT('기본 시군구',' / ','기본 기관', ' : ', '기본 부서') AS OGDP_NM
|
||||
, 'default' AS INST_CD
|
||||
, '기본 기관' AS INST_NM
|
||||
, 'default' AS DEPT_CD
|
||||
, '기본 부서' AS DEPT_NM
|
||||
, 'default' AS SGG_CD
|
||||
, '기본 시군구' AS SGG_NM
|
||||
FROM DUAL
|
||||
"""+SQLUtil.SCRIPT_END)
|
||||
List<DataObject> selectAllOgdpList();
|
||||
|
||||
/**사용가능한 기관,부서 목록을 반환한다.<br />
|
||||
* @param stringMap
|
||||
* @param
|
||||
* @return 기관,부서 목록
|
||||
*/
|
||||
@Select(SQLUtil.SCRIPT_START+"""
|
||||
/* 사용가능한 기관,부서 목록 조회(ogdpMapper.selectAbleOgdpList) */
|
||||
SELECT CONCAT(A.INST_CD,'/',B.DEPT_CD) AS OGDP_CD
|
||||
, CONCAT(A.SGG_NM, ' / ', A.INST_NM, ' : ', B.DEPT_NM) AS OGDP_NM
|
||||
, A.INST_CD
|
||||
, A.INST_NM
|
||||
, B.DEPT_CD
|
||||
, B.DEPT_NM
|
||||
, A.SGG_CD
|
||||
, A.SGG_NM
|
||||
FROM TB_SGG A
|
||||
LEFT OUTER JOIN TB_DEPT B ON (A.INST_CD = B.INST_CD)
|
||||
<choose>
|
||||
<when test='anonymous == "Y" '>
|
||||
WHERE A.SGG_CD = #{sggCd}
|
||||
</when>
|
||||
<otherwise>
|
||||
<if test="currentUser.institute != 'default'">
|
||||
WHERE A.SGG_CD = #{currentUser.user.orgID}
|
||||
</if>
|
||||
<if test="currentUser.institute == 'default'">
|
||||
UNION
|
||||
SELECT 'default/default' AS OGDP_CD
|
||||
, CONCAT('기본 시군구',' / ','기본 기관', ' : ', '기본 부서') AS OGDP_NM
|
||||
, 'default' AS INST_CD
|
||||
, '기본 기관' AS INST_NM
|
||||
, 'default' AS DEPT_CD
|
||||
, '기본 부서' AS DEPT_NM
|
||||
, 'default' AS SGG_CD
|
||||
, '기본 시군구' AS SGG_NM
|
||||
FROM DUAL
|
||||
</if>
|
||||
</otherwise>
|
||||
</choose>
|
||||
"""+SQLUtil.SCRIPT_END)
|
||||
List<DataObject> selectAbleOgdpList(Map<String, Object> params);
|
||||
|
||||
|
||||
|
||||
/**사용자의 시군구코드,시군구명,기관코드,기관명,부서코드,부서명을 반환한다.<br />
|
||||
* @param 사용자ID
|
||||
* @return 시군구코드,시군구명,기관코드,기관명,부서코드,부서명
|
||||
*/
|
||||
@Select(SQLUtil.SCRIPT_START+"""
|
||||
/* 사용자의 시군구,기관,부서 조회(ogdpMapper.selectOgdpInfoOfUser) */
|
||||
SELECT S.SGG_CD
|
||||
, S.SGG_NM
|
||||
, U.NSTT_CD AS INST_CD
|
||||
, S.INST_NM
|
||||
, U.DEPT_CD
|
||||
, D.DEPT_NM
|
||||
FROM TB_USER U
|
||||
LEFT OUTER JOIN TB_SGG S ON (U.ORG_ID = S.SGG_CD)
|
||||
LEFT OUTER JOIN TB_DEPT D ON (U.DEPT_CD = D.DEPT_CD)
|
||||
WHERE U.USER_ID = #{userId}
|
||||
"""+SQLUtil.SCRIPT_END)
|
||||
DataObject selectOgdpInfoOfUser(String userId);
|
||||
|
||||
|
||||
|
||||
|
||||
/**모든 시군구 목록을 반환한다.<br />
|
||||
* @param
|
||||
* @return 시군구 목록
|
||||
*/
|
||||
@Select(SQLUtil.SCRIPT_START+"""
|
||||
/* 모든 시군구 조회(ogdpMapper.selectAllSggList) */
|
||||
SELECT SGG_CD
|
||||
, SGG_NM
|
||||
, (SELECT (CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END) FROM TB_USER WHERE NSTT_CD = A.INST_CD) AS USER_USE_YN
|
||||
FROM TB_SGG A
|
||||
WHERE USE_YN = 'Y'
|
||||
"""+SQLUtil.SCRIPT_END)
|
||||
List<DataObject> selectAllSggList();
|
||||
|
||||
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param sgg 시군구
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean updateSgg(OgdpSigungu sgg) {
|
||||
return sgg != null && updateSgg(params().set("sgg", sgg)) == 1;
|
||||
}
|
||||
|
||||
/**시군구 정보를 수정한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"sgg" - 시군구 정보</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
@Update(SQLUtil.SCRIPT_START+"""
|
||||
/* 시군구 설정정보 수정 (ogdpMapper.updateSgg) */
|
||||
UPDATE TB_SGG
|
||||
SET MDFCN_DT =
|
||||
"""
|
||||
+SQLUtil.now
|
||||
+"""
|
||||
, MDFR = #{sgg.modifiedBy}
|
||||
<if test="sgg.symbolFilepath != null">
|
||||
, SYMBOL_FILE_PATH = #{sgg.symbolFilepath} <!-- 상징 파일 경로 -->
|
||||
, SYMBOL_FILE_NM = #{sgg.symbolFilename} <!-- 상징 파일 명 -->
|
||||
</if>
|
||||
<if test="sgg.logoFilepath != null">
|
||||
, LOGO_FILE_PATH = #{sgg.logoFilepath} <!-- 로고 파일 경로 -->
|
||||
, LOGO_FILE_NM = #{sgg.logoFilename} <!-- 로고 파일 명 -->
|
||||
</if>
|
||||
<if test="sgg.officialSealFilepath != null">
|
||||
, OFFCS_FILE_PATH = #{sgg.officialSealFilepath} <!-- 직인 파일 경로 -->
|
||||
, OFFCS_FILE_NM = #{sgg.officialSealFilename} <!-- 직인 파일 명 -->
|
||||
</if>
|
||||
WHERE SGG_CD = #{sgg.sggID}
|
||||
"""+SQLUtil.SCRIPT_END)
|
||||
int updateSgg(Map<String, Object> params);
|
||||
|
||||
/**지정한 조건에 따라 시군구 객체를 반환한다.
|
||||
* @param req 시군구 조회 조건
|
||||
* @return 시군구 객체
|
||||
*/
|
||||
default DataObject selectSggInfo(OgdpQuery req) {
|
||||
|
||||
// 사용 여부 확인
|
||||
if (req.getUseYn() == null) {
|
||||
req.setUseYn("Y");
|
||||
}
|
||||
|
||||
return selectSgg(req);
|
||||
}
|
||||
|
||||
/**지정한 조건에 따라 시군구 객체들을 반환한다.
|
||||
* @param req 시군구 조회 조건
|
||||
* @return 시군구 객체 목록
|
||||
*/
|
||||
@SelectProvider(type=OgdpMapper.class, method="selectSggProvider")
|
||||
DataObject selectSgg(OgdpQuery req);
|
||||
|
||||
public static String selectSggProvider() {
|
||||
|
||||
String comment = " /* 시군구 객체 가져오기(ogdpMapper.selectSgg) */ ";
|
||||
|
||||
String selectFrom = """
|
||||
SELECT S.SGG_CD <!-- 시군구 코드 -->
|
||||
, S.SGG_NM <!-- 시군구 명 -->
|
||||
, S.INST_SE_CD <!-- 기관 구분 코드 -->
|
||||
, S.INST_CD <!-- 기관 코드 -->
|
||||
, S.INST_NM <!-- 기관 명 -->
|
||||
, (CASE
|
||||
WHEN S.INST_DADDR IS NULL OR S.INST_DADDR = ''
|
||||
THEN S.INST_ADDR
|
||||
ELSE CONCAT(S.INST_ADDR,' ',S.INST_DADDR)
|
||||
END) AS INST_FULL_ADDR <!-- 기관 전체 주소 -->
|
||||
, S.INST_ADDR <!-- 기관 기본 주소 -->
|
||||
, S.INST_DADDR <!-- 기관 상세 주소 -->
|
||||
, S.INST_ZIP <!-- 기관 우편번호 -->
|
||||
, S.SYMBOL_FILE_PATH <!-- 상징 파일 경로 -->
|
||||
, S.SYMBOL_FILE_NM <!-- 상징 파일 명 -->
|
||||
, S.LOGO_FILE_PATH <!-- 로고 파일 경로 -->
|
||||
, S.LOGO_FILE_NM <!-- 로고 파일 명 -->
|
||||
, S.OFFCS_FILE_PATH <!-- 직인 파일 경로 -->
|
||||
, S.OFFCS_FILE_NM <!-- 직인 파일 명 -->
|
||||
FROM TB_SGG S
|
||||
""";
|
||||
String where = """
|
||||
<where>
|
||||
<if test="sggCd != null">
|
||||
AND S.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
|
||||
</if>
|
||||
<if test="useYn != null">
|
||||
AND S.USE_YN = #{useYn} <!-- 사용 여부 -->
|
||||
</if>
|
||||
</where>
|
||||
""";
|
||||
|
||||
return SQLUtil.SCRIPT_START
|
||||
+ comment
|
||||
+ selectFrom + where
|
||||
+ SQLUtil.SCRIPT_END;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@UpdateProvider(type=OgdpMapper.class, method="updateDeptProvider")
|
||||
int updateDept(Map<String, Object> params);
|
||||
|
||||
|
||||
public static String updateDeptProvider(Map<String, Object> params) {
|
||||
|
||||
|
||||
String comment = "/* 부서 수정(ogdpMapper.updateDept) */ ";
|
||||
|
||||
String updateSet = """
|
||||
UPDATE TB_DEPT
|
||||
SET MDFCN_DT =
|
||||
"""
|
||||
+SQLUtil.now
|
||||
+"""
|
||||
<!-- 수정 일시 -->
|
||||
, MDFR = #{dept.modifiedBy} <!-- 수정자 -->
|
||||
""";
|
||||
String where = """
|
||||
WHERE DEPT_CD = #{dept.deptID}
|
||||
AND USE_YN = 'Y'
|
||||
""";
|
||||
|
||||
String updateSetAdd = params.get("updateSetAdd") == null ? "" : (String)params.get("updateSetAdd");
|
||||
|
||||
return SQLUtil.SCRIPT_START
|
||||
+ comment
|
||||
+ updateSet + updateSetAdd + where
|
||||
+ SQLUtil.SCRIPT_END;
|
||||
}
|
||||
|
||||
|
||||
@SelectProvider(type=OgdpMapper.class, method="selectDeptInfoProvider")
|
||||
DataObject selectDeptInfo(OgdpQuery req);
|
||||
|
||||
public static String selectDeptInfoProvider(OgdpQuery req) {
|
||||
|
||||
String comment = "/* 부서 객체 가져오기(ogdpMapper.selectDeptInfo) */ ";
|
||||
|
||||
String selectFromWhere = selectDept(req);
|
||||
|
||||
return SQLUtil.SCRIPT_START
|
||||
+ comment
|
||||
+ selectFromWhere
|
||||
+ SQLUtil.SCRIPT_END;
|
||||
}
|
||||
|
||||
@SelectProvider(type=OgdpMapper.class, method="selectDeptListProvider")
|
||||
List<DataObject> selectDeptList(OgdpQuery query);
|
||||
|
||||
public static String selectDeptListProvider(OgdpQuery req) {
|
||||
|
||||
|
||||
String comment = "/* 부서 객체 목록 가져오기(ogdpMapper.selectDeptList) */ ";
|
||||
|
||||
String selectFromWhere = selectDept(req);
|
||||
|
||||
return SQLUtil.SCRIPT_START
|
||||
+ comment
|
||||
+ SQLUtil.pagingPrefix
|
||||
+ selectFromWhere
|
||||
+ SQLUtil.orderBy
|
||||
+ SQLUtil.pagingSuffix
|
||||
+ SQLUtil.SCRIPT_END;
|
||||
}
|
||||
|
||||
public static String selectDept(OgdpQuery req) {
|
||||
String select = """
|
||||
SELECT D.DEPT_CD <!-- 부서 코드 -->
|
||||
, D.SGG_CD <!-- 시군구 코드 -->
|
||||
, (SELECT SGG_NM FROM TB_SGG WHERE SGG_CD = D.SGG_CD) AS SGG_NM <!-- 시군구 명 -->
|
||||
, D.INST_CD <!-- 기관 코드 -->
|
||||
, (SELECT INST_NM FROM TB_SGG WHERE INST_CD = D.INST_CD) AS INST_NM <!-- 기관 명 -->
|
||||
, D.DEPT_NM <!-- 부서 명 -->
|
||||
, D.DEPT_TELNO <!-- 부서 전화번호 -->
|
||||
, D.DEPT_FXNO <!-- 부서 팩스번호 -->
|
||||
, D.USE_YN <!-- 사용 여부 -->
|
||||
, (CASE D.USE_YN WHEN 'Y' THEN '사용' WHEN 'N' THEN '미사용' ELSE '' END) AS USE_YN_NM <!-- 사용 여부 명 -->
|
||||
, D.REG_DT <!-- 등록 일시 -->
|
||||
, D.RGTR <!-- 등록자 -->
|
||||
, D.MDFCN_DT <!-- 수정 일시 -->
|
||||
, D.MDFR <!-- 수정자 -->
|
||||
""";
|
||||
|
||||
String fromWhere = """
|
||||
FROM TB_DEPT D
|
||||
<where>
|
||||
<if test="sggCd != null">
|
||||
AND D.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
|
||||
</if>
|
||||
<if test="deptCd != null">
|
||||
AND D.DEPT_CD = #{deptCd} <!-- 부서 코드 -->
|
||||
</if>
|
||||
<if test="instCd != null">
|
||||
AND D.INST_CD = #{instCd} <!-- 기관 코드 -->
|
||||
</if>
|
||||
<if test="useYn != null">
|
||||
AND D.USE_YN = #{useYn} <!-- 사용 여부 -->
|
||||
</if>
|
||||
</where>
|
||||
""";
|
||||
|
||||
String selectAdd = req.getSelectAdd() == null ? "" : req.getSelectAdd();
|
||||
|
||||
return select + selectAdd + fromWhere;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue