diff --git a/src/main/java/cokr/xit/fims/rent/RentEnt.java b/src/main/java/cokr/xit/fims/rent/RentEnt.java index 9639a9a2..9c187d65 100644 --- a/src/main/java/cokr/xit/fims/rent/RentEnt.java +++ b/src/main/java/cokr/xit/fims/rent/RentEnt.java @@ -32,6 +32,11 @@ public class RentEnt extends AbstractEntity { */ private String entNo; + /** + * 대표자 명 + */ + private String rprsvNm; + /** * 기업 전화번호 */ @@ -72,4 +77,9 @@ public class RentEnt extends AbstractEntity { */ private String delRsn; + /** + * 기업 IDs + */ + private String[] entIds; + } diff --git a/src/main/java/cokr/xit/fims/rent/RentQuery.java b/src/main/java/cokr/xit/fims/rent/RentQuery.java index 6a704813..dee1224d 100644 --- a/src/main/java/cokr/xit/fims/rent/RentQuery.java +++ b/src/main/java/cokr/xit/fims/rent/RentQuery.java @@ -18,12 +18,17 @@ public class RentQuery extends CmmnQuery { // ID private String crdnId; // 단속 ID + private String mpngId; // 매핑 ID private String userId; // 사용자 ID - private String[] entIds; // 기업 Ids + private String[] entIds; // 기업 IDs private String entId; // 기업 ID private String hirerId; // 임차인 ID private String lsctId; // 임대차계약 ID + private String schEntNo; // 기업 번호 + private String schEntNm; // 기업 명 + private String schRprsvNm; // 대표자 명 + // ETC private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). private String delRsn; // 삭제 사유 @@ -37,6 +42,15 @@ public class RentQuery extends CmmnQuery { return self(); } + public String getMpngId() { + return ifEmpty(mpngId, () -> null); + } + + public T setMpngId(String mpngId) { + this.mpngId = mpngId; + return self(); + } + public String getUserId() { return ifEmpty(userId, () -> null); } @@ -82,6 +96,34 @@ public class RentQuery extends CmmnQuery { return self(); } + + public String getSchEntNo() { + return ifEmpty(schEntNo, () -> null); + } + + public T setSchEntNo(String schEntNo) { + this.schEntNo = schEntNo; + return self(); + } + + public String getSchEntNm() { + return ifEmpty(schEntNm, () -> null); + } + + public T setSchEntNm(String schEntNm) { + this.schEntNm = schEntNm; + return self(); + } + + public String getSchRprsvNm() { + return ifEmpty(schRprsvNm, () -> null); + } + + public T setSchRprsvNm(String schRprsvNm) { + this.schRprsvNm = schRprsvNm; + return self(); + } + // ETC ///////////////////////////////////////////////////////////////////// public String getCallPurpose() { return ifEmpty(callPurpose, () -> null); diff --git a/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java b/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java index 7cae4a7d..b18fdbcc 100644 --- a/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java +++ b/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java @@ -12,19 +12,29 @@ import lombok.Setter; @Setter public class UserRentEntMpng extends AbstractEntity { - /** - * 사용자 ID - */ - private String userId; - - /** - * 기업 ID - */ - private String entId; - - /** - * 삭제 여부 - */ - private String delYn; + /** + * 매핑 ID + */ + private String mpngId; + + /** + * 사용자 ID + */ + private String userId; + + /** + * 기업 ID + */ + private String entId; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 매핑 IDs + */ + private String[] mpngIds; } diff --git a/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java b/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java index b058a668..856ef428 100644 --- a/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java +++ b/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java @@ -34,6 +34,25 @@ public interface UserRentEntMpngMapper extends AbstractMapper { */ List selectUserRentEntMpngs(RentQuery req); + /**지정한 조건에 따라 사용자 임대 기업 매핑 정보를 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + default DataObject selectUserRentEntMpngInfo(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("UREM.MPNG_ID DESC"); + } + + List userRentEntMpngs = selectUserRentEntMpngs(req); + + return !userRentEntMpngs.isEmpty() ? userRentEntMpngs.get(0) : null; + } + /**사용자 임대 기업 매핑 정보를 등록한다. * @param params 파라미터 *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • diff --git a/src/main/java/cokr/xit/fims/rent/service/RentEntService.java b/src/main/java/cokr/xit/fims/rent/service/RentEntService.java index 2a715b8a..4ef4d6de 100644 --- a/src/main/java/cokr/xit/fims/rent/service/RentEntService.java +++ b/src/main/java/cokr/xit/fims/rent/service/RentEntService.java @@ -4,6 +4,7 @@ import java.util.List; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; import cokr.xit.foundation.data.DataObject; /**임대 기업 대장 관리 서비스 인터페이스. @@ -18,6 +19,36 @@ import cokr.xit.foundation.data.DataObject; */ public interface RentEntService { + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + List getUserRentEntMpngList(RentQuery req); + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + List getUserRentEntMpngs(RentQuery req); + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + String createUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**사용자 임대 기업 매핑 정보를 삭제한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng); + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다. * @param req 임대 기업 대장 조회 조건 * @return 임대 기업 대장 목록 diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/RentEntBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntBean.java index dcb7d8c0..d521ebf9 100644 --- a/src/main/java/cokr/xit/fims/rent/service/bean/RentEntBean.java +++ b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntBean.java @@ -6,9 +6,12 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; +import cokr.xit.fims.cmmn.CmmnUtil; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; import cokr.xit.fims.rent.dao.RentEntMapper; +import cokr.xit.fims.rent.dao.UserRentEntMpngMapper; import cokr.xit.foundation.component.AbstractBean; import cokr.xit.foundation.data.DataObject; @@ -25,15 +28,120 @@ import cokr.xit.foundation.data.DataObject; @Component("rentEntBean") public class RentEntBean extends AbstractBean { + /** 사용자 임대 기업 매핑 정보 DAO */ + @Resource(name = "userRentEntMpngMapper") + private UserRentEntMpngMapper userRentEntMpngMapper; + /** 임대 기업 대장 정보 DAO */ @Resource(name = "rentEntMapper") private RentEntMapper rentEntMapper; + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + public List getUserRentEntMpngList(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + if (req.getBy() == null) { + req.setOrderBy("REG_DT"); + } else { + req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + } + } + + return userRentEntMpngMapper.selectUserRentEntMpngList(req); + } + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + public List getUserRentEntMpngs(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + req.setOrderBy("UREM.MPNG_ID DESC"); + } + + return userRentEntMpngMapper.selectUserRentEntMpngs(req); + } + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public String createUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + // 변수 선언 + String rtnMsg = ""; // 처리 결과 메시지 + + RentQuery req = new RentQuery(); + req.setUserId(userRentEntMpng.getUserId()); + req.setEntId(userRentEntMpng.getEntId()); + req.setDelYn("N"); + + // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 정보를 조회한다. + DataObject userRentEntMpngInfo = userRentEntMpngMapper.selectUserRentEntMpngInfo(req); + + if (userRentEntMpngInfo != null) { + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
    이미 등록된 매핑 자료가 존재합니다."; + return rtnMsg; + } + + // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 대장을 등록한다. + int rtnNocs = userRentEntMpngMapper.insertUserRentEntMpng(userRentEntMpng); + if (rtnNocs != 1) { + throw new RuntimeException("임대기업 매핑 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 작업이 정상 처리 되었습니다."; + } + + /**사용자 임대 기업 매핑 정보를 삭제한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 대장을 삭제한다. + int rtnNocs = userRentEntMpngMapper.deleteUserRentEntMpng(userRentEntMpng); + if (rtnNocs < 1) { + throw new RuntimeException("임대기업 매핑 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 작업이 정상 처리 되었습니다."; + } + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다. * @param req 임대 기업 대장 조회 조건 * @return 임대 기업 대장 목록 */ public List getRentEntList(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + if (req.getBy() == null) { + req.setOrderBy("REG_DT"); + } else { + req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + } + } + return rentEntMapper.selectRentEntList(req); } @@ -42,6 +150,15 @@ public class RentEntBean extends AbstractBean { * @return 임대 기업 대장 객체 목록 */ public List getRentEnts(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + req.setOrderBy("RE.ENT_ID DESC"); + } + return rentEntMapper.selectRentEnts(req); } diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java index 8c0579b1..0e2d9271 100644 --- a/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java +++ b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; import cokr.xit.fims.rent.service.RentEntService; import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.data.DataObject; @@ -29,6 +30,26 @@ public class RentEntServiceBean extends AbstractServiceBean implements RentEntSe @Resource(name = "rentEntBean") private RentEntBean rentEntBean; + @Override + public List getUserRentEntMpngList(RentQuery req) { + return rentEntBean.getUserRentEntMpngList(req); + } + + @Override + public List getUserRentEntMpngs(RentQuery req) { + return rentEntBean.getUserRentEntMpngs(req); + } + + @Override + public String createUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return rentEntBean.createUserRentEntMpng(userRentEntMpng); + } + + @Override + public String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return rentEntBean.removeUserRentEntMpng(userRentEntMpng); + } + @Override public List getRentEntList(RentQuery req) { return rentEntBean.getRentEntList(req); diff --git a/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java b/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java index 970a3502..dffe46f7 100644 --- a/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java +++ b/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java @@ -25,6 +25,7 @@ import cokr.xit.fims.cmmn.xls.FormatMaker; import cokr.xit.fims.cmmn.xls.StyleMaker; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; import cokr.xit.fims.rent.service.RentEntService; import cokr.xit.fims.task.Task; import cokr.xit.foundation.data.DataObject; @@ -47,12 +48,15 @@ public class Rent01Controller extends ApplicationController { public class METHOD_URL { public static final String - rentEnterpriseMain = "/010/main.do" // 임대 기업 관리 메인 화면 - , getRentEnterpriseList = "/010/list.do" // 임대 기업 대장 목록 조회 - , removeRentEnterprise = "/010/remove.do" // 임대 기업 대장 삭제 - , getRentEnterpriseInfo = "/020/info.do" // 임대 기업 대장 상세 조회 - , createRentEnterprise = "/020/create.do" // 임대 기업 대장 등록 - , updateRentEnterprise = "/020/update.do" // 임대 기업 대장 수정 + userRentEnterpriseMappingMain = "/010/main.do" // 사용자 임대 기업 매핑 관리 메인 화면 + , getUserRentEnterpriseMappingList = "/010/list.do" // 사용자 임대 기업 매핑 대장 목록 조회 + , removeUserRentEnterpriseMapping = "/010/removeMpng.do" // 사용자 임대 기업 매핑 대장 삭제 + , getUserRentEnterpriseMappingInfo = "/020/info.do" // 사용자 임대 기업 매핑 대장 상세 조회 + , createUserRentEnterpriseMapping = "/020/createMpng.do" // 사용자 임대 기업 매핑 대장 등록 + , getRentEnterpriseList = "/020/list.do" // 임대 기업 대장 목록 조회 + , createRentEnterprise = "/020/create.do" // 임대 기업 대장 등록 + , updateRentEnterprise = "/020/update.do" // 임대 기업 대장 수정 + , removeRentEnterprise = "/020/remove.do" // 임대 기업 대장 삭제 ; } @@ -68,8 +72,8 @@ public class Rent01Controller extends ApplicationController { * 조건없는 {@link #getRentEntList(RentEntQuery) 임대 기업 대장 조회 결과}를 포함시킨다. * @return /rent/rent01010-main */ - @RequestMapping(name = "임대기업 대장 메인", value=METHOD_URL.rentEnterpriseMain) - public ModelAndView rentEnterpriseMain() { + @RequestMapping(name = "사용자 임대기업 대장 메인", value=METHOD_URL.userRentEnterpriseMappingMain) + public ModelAndView userRentEnterpriseMappingMain() { ModelAndView mav = new ModelAndView("fims/rent/rent01010-main"); // 사용자 정보 @@ -77,7 +81,7 @@ public class Rent01Controller extends ApplicationController { return mav .addObject("pageName", "rent01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("infoPrefix", "levyExcl") // prefix + .addObject("infoPrefix", "userRentEntMpng") // prefix .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("sggCd", fimsUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID) @@ -97,11 +101,11 @@ public class Rent01Controller extends ApplicationController { * } */ @Task("CMN") - @RequestMapping(name = "임대기업 대장 조회", value=METHOD_URL.getRentEnterpriseList) - public ModelAndView getRentEnterpriseList(RentQuery req) { + @RequestMapping(name = "사용자 임대기업 대장 조회", value=METHOD_URL.getUserRentEnterpriseMappingList) + public ModelAndView getUserRentEnterpriseMappingList(RentQuery req) { if (!"xls".equals(req.getDownload())) { - List result = rentEntService.getRentEntList(setFetchSize(req)); - return setCollectionInfo(new ModelAndView("jsonView"), result, "rentEnt"); + List result = rentEntService.getUserRentEntMpngList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "userRentEntMpng"); } else { // 현재 날짜 구하기 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -112,51 +116,32 @@ public class Rent01Controller extends ApplicationController { XLSWriter xlsx = new XLSWriter().worksheet(0); Format format = new Format(xlsx); CellStyle center = format.cellStyle(Style.CENTER); - CellStyle numeric = format.n_nn0(); - CellStyle dateYMD = format.yyyy_mm_dd(); CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss(); - List list = rentEntService.getRentEntList(req.setFetchSize(0)); + List list = rentEntService.getUserRentEntMpngList(req.setFetchSize(0)); Map valueMap = new HashMap(); - valueMap.put("업무구분", format.of("TASK_SE_NM").style(center)); - valueMap.put("부과제외일자", FormatMaker.yyyy_mm_dd(format, "LEVY_EXCL_YMD").style(dateYMD)); - valueMap.put("부과제외구분", format.of("LEVY_EXCL_SE_NM").style(center)); - valueMap.put("부과제외사유", format.of("LEVY_EXCL_RSN_NM")); - valueMap.put("기타내용", format.of("ETC_CN")); - valueMap.put("민원신청번호", format.of("CVLCPT_APLY_NO").style(center)); - valueMap.put("민원접수번호", format.of("CVLCPT_RCPT_NO").style(center)); - valueMap.put("민원접수일자", FormatMaker.yyyy_mm_dd(format, "CVLCPT_RCPT_YMD").style(dateYMD)); - valueMap.put("단속일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CRDN_YMD_TM").style(dateDT)); - valueMap.put("차량번호", format.of("VHRNO")); - valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center)); - valueMap.put("납부자번호", format.of("RTPYR_NO").style(center)); - valueMap.put("납부자명", format.of("RTPYR_NM")); - valueMap.put("단속법정동", format.of("CRDN_STDG_NM").style(center)); - valueMap.put("단속장소", format.of("CRDN_PLC")); - valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC")); - valueMap.put("위반항목", format.of("VLTN_ARTCL")); - valueMap.put("단속원금", format.of("FFNLG_CRDN_AMT").style(numeric)); - valueMap.put("처리상태", format.of("CRDN_STTS_NM")); - valueMap.put("단속특별구역", format.of("CRDN_SPAREA_NM").style(center)); - valueMap.put("사용연료", format.of("USE_FUEL_NM").style(center)); - valueMap.put("주차가능여부", format.of("PRK_PSBLTY_RSLT_NM").style(center)); - valueMap.put("우편번호", format.of("ZIP").style(center)); - valueMap.put("주소", format.of("ADDR")); - valueMap.put("상세주소", format.of("DTL_ADDR")); + valueMap.put("기업구분", format.of("ENT_SE_NM").style(center)); + valueMap.put("기업명", format.of("ENT_NM")); + valueMap.put("법인(사업자)번호", format.of("ENT_NO").style(center)); + valueMap.put("대표자명", format.of("RPRSV_NM")); + valueMap.put("전화번호", format.of("ENT_TELNO").style(center)); + valueMap.put("팩스번호", format.of("ENT_FXNO").style(center)); + valueMap.put("이메일주소", format.of("ENT_EML_ADDR")); + valueMap.put("우편번호", format.of("ENT_ZIP").style(center)); + valueMap.put("주소", format.of("ENT_ADDR")); + valueMap.put("상세주소", format.of("ENT_DTL_ADDR")); valueMap.put("등록일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "REG_DT").style(dateDT)); valueMap.put("등록사용자", format.of("RGTR_NM").style(center)); - valueMap.put("수정일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "MDFCN_DT").style(dateDT)); - valueMap.put("수정사용자", format.of("MDFR_NM").style(center)); CellDef.setValues(cellDefs, valueMap); - xlsx.cell(0, 0).value("부과제외").value(center).merge(0, cellDefs.size() - 1) + xlsx.cell(0, 0).value("임대기업").value(center).merge(0, cellDefs.size() - 1) .cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx))) .cell(4, 0).values(list, CellDef.values(cellDefs.stream().map(i -> {if(i.getValue() instanceof Format) {i.setField(null);}; return i;}).toList())); return new ModelAndView("downloadView") - .addObject("download", xlsx.getDownloadable().setFilename("부과제외" + "_목록_" + dateTime + ".xlsx")); + .addObject("download", xlsx.getDownloadable().setFilename("임대기업" + "_목록_" + dateTime + ".xlsx")); } } @@ -165,25 +150,134 @@ public class Rent01Controller extends ApplicationController { * @return /rentEnt/rentEnt-main */ @Task("CMN") - @RequestMapping(name = "임대기업 정보 상세 조회", value=METHOD_URL.getRentEnterpriseInfo) - public ModelAndView getRentEnterpriseInfo(HttpServletRequest hReq, RentQuery req) { - DataObject info = rentEntService.getRentEntInfo(req); + @RequestMapping(name = "임대 기업 상세 조회", value=METHOD_URL.getUserRentEnterpriseMappingInfo) + public ModelAndView getUserRentEnterpriseMappingInfo(HttpServletRequest hReq, RentQuery req) { + List list = rentEntService.getRentEnts(req); boolean json = jsonResponse(); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/rent/rent01020-info"); + // 사용자 정보 + FimsUser fimsUser = (FimsUser)currentUser().getUser(); + // View(jsp)에서 사용할 공통코드를 조회 - Map> commonCodes = getCodesOf("FIM054"); + Map> commonCodes = getCodesOf("FIM088"); + + mav.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("pageName", "rent01020") // jsp pageName + .addObject("infoPrefix", "rentEnt") // prefix + .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl + .addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID) + .addObject("FIM088List", commonCodes.get("FIM088")) // 기업 구분 코드(ENT_SE_CD) + ; + + return setCollectionInfo(mav, list, "rentEnt"); + } - return mav - .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName - .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("pageName", "rent01020") // jsp pageName - .addObject("infoPrefix", "rentEnt") // prefix - .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) - .addObject("rentEntInfo", json ? info : toJson(info)) // 임대기업 정보 - ; + /**사용자 임대 기업 매핑를 등록한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 정보 + * @return jsonView + *
     {
    +     *     "saved": 등록되었으면 true, 그렇지 않으면 false
    +     * }
    + */ + @Task("CMN") + @RequestMapping(name = "사용자 임대 기업 매핑 등록", value = METHOD_URL.createUserRentEnterpriseMapping) + public ModelAndView createUserRentEnterpriseMapping(UserRentEntMpng userRentEntMpng) { + boolean saved = false; + String rtnMsg = rentEntService.createUserRentEntMpng(userRentEntMpng); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**지정한 사용자 임대 기업 매핑를 제거한다. + * @param userRentEntMpngIDs 사용자 임대 기업 매핑 아이디 + * @return jsonView + *
     {
    +     *     "affected": 저장된 정보수
    +     *     "saved": 저장되었으면 true, 그렇지 않으면 false
    +     * }
    + */ + @Task("CMN") + @RequestMapping(name = "사용자 임대 기업 매핑 제거", value = METHOD_URL.removeUserRentEnterpriseMapping) + public ModelAndView removeUserRentEnterpriseMapping(UserRentEntMpng userRentEntMpng) { + boolean saved = false; + String rtnMsg = rentEntService.removeUserRentEntMpng(userRentEntMpng); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**임대 기업 대장 목록을 조회하여 반환한다.
    + * {@link RentEntService#getRentEntList(RentEntQuery)} 참고 + * @param req 임대 기업 대장 조회 조건 + * @return jsonView + *
     {
    +     *     "rentEntList": [임대 기업 대장 목록]
    +     *     "rentEntStart": 임대 기업 대장 목록 시작 인덱스
    +     *     "rentEntFetch": 한 번에 가져오는 임대 기업 대장 목록 수
    +     *     "rentEntTotal": 조회 결과 찾은 전체 임대 기업 대장 수
    +     * }
    + */ + @Task("CMN") + @RequestMapping(name = "임대 기업 대장 조회", value = METHOD_URL.getRentEnterpriseList) + public ModelAndView getRentEnterpriseList(RentQuery req) { + if (!"xls".equals(req.getDownload())) { + List result = rentEntService.getRentEntList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "rentEnt"); + } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + + List cellDefs = fromJson(req.getCellDefs(), CellDef.listType()); + + XLSWriter xlsx = new XLSWriter().worksheet(0); + Format format = new Format(xlsx); + CellStyle center = format.cellStyle(Style.CENTER); + CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss(); + + List list = rentEntService.getRentEntList(req.setFetchSize(0)); + + Map valueMap = new HashMap(); + valueMap.put("기업구분", format.of("ENT_SE_NM").style(center)); + valueMap.put("기업명", format.of("ENT_NM")); + valueMap.put("법인(사업자)번호", format.of("ENT_NO").style(center)); + valueMap.put("대표자명", format.of("RPRSV_NM")); + valueMap.put("전화번호", format.of("ENT_TELNO").style(center)); + valueMap.put("팩스번호", format.of("ENT_FXNO").style(center)); + valueMap.put("이메일주소", format.of("ENT_EML_ADDR")); + valueMap.put("우편번호", format.of("ENT_ZIP").style(center)); + valueMap.put("주소", format.of("ENT_ADDR")); + valueMap.put("상세주소", format.of("ENT_DTL_ADDR")); + valueMap.put("등록일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "REG_DT").style(dateDT)); + valueMap.put("등록사용자", format.of("RGTR_NM").style(center)); + + CellDef.setValues(cellDefs, valueMap); + + xlsx.cell(0, 0).value("임대기업").value(center).merge(0, cellDefs.size() - 1) + .cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx))) + .cell(4, 0).values(list, CellDef.values(cellDefs.stream().map(i -> {if(i.getValue() instanceof Format) {i.setField(null);}; return i;}).toList())); + + return new ModelAndView("downloadView") + .addObject("download", xlsx.getDownloadable().setFilename("임대기업" + "_목록_" + dateTime + ".xlsx")); + } } /**임대 기업 대장를 등록한다. @@ -193,7 +287,7 @@ public class Rent01Controller extends ApplicationController { * "saved": 등록되었으면 true, 그렇지 않으면 false * } */ - @Task + @Task("CMN") @RequestMapping(name = "임대기업 대장 등록", value=METHOD_URL.createRentEnterprise) public ModelAndView createRentEnterprise(RentEnt rentEnt) { boolean saved = false; @@ -217,7 +311,7 @@ public class Rent01Controller extends ApplicationController { * "saved": 수정되었으면 true, 그렇지 않으면 false * } */ - @Task + @Task("CMN") @RequestMapping(name = "임대기업 대장 수정", value=METHOD_URL.updateRentEnterprise) public ModelAndView updateRentEnterprise(RentEnt rentEnt) { boolean saved = false; @@ -242,7 +336,7 @@ public class Rent01Controller extends ApplicationController { * "saved": 저장되었으면 true, 그렇지 않으면 false * } */ - @Task + @Task("CMN") @RequestMapping(name = "임대기업 대장 제거", value=METHOD_URL.removeRentEnterprise) public ModelAndView removeRentEnterprise(RentEnt rentEnt) { boolean saved = false; diff --git a/src/main/resources/sql/mapper/fims/rent/rentEnt-mapper.xml b/src/main/resources/sql/mapper/fims/rent/rentEnt-mapper.xml index f37f2b09..a0548906 100644 --- a/src/main/resources/sql/mapper/fims/rent/rentEnt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rent/rentEnt-mapper.xml @@ -12,6 +12,7 @@ + @@ -28,76 +29,94 @@ - - SELECT UREM.USER_ID - , UREM.ENT_ID - , U.USER_ACNT - , U.USER_NM + + SELECT RE.ENT_ID , RE.ENT_SE_CD + , (SELECT GET_CODE_NM('FIM088', RE.ENT_SE_CD) FROM DUAL) AS ENT_SE_NM , RE.ENT_NM , RE.ENT_NO + , RE.RPRSV_NM , RE.ENT_TELNO , RE.ENT_FXNO , RE.ENT_EML_ADDR , RE.ENT_ZIP , RE.ENT_ADDR , RE.ENT_DTL_ADDR - , UREM.DEL_YN - , UREM.REG_DT - , UREM.RGTR - FROM TB_USER_RENT_ENT_MPNG UREM - INNER JOIN TB_USER U ON (UREM.USER_ID = U.USER_ID) - INNER JOIN TB_RENT_ENT RE ON (UREM.ENT_ID = RE.ENT_ID) + , RE.DEL_YN + , RE.REG_DT + , RE.RGTR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = RE.RGTR) AS RGTR_NM + , RE.MDFCN_DT + , RE.MDFR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = RE.MDFR) AS MDFR_NM + FROM TB_RENT_ENT RE - - SELECT ENT_ID - , ENT_SE_CD - , ENT_NM - , ENT_NO - , ENT_TELNO - , ENT_FXNO - , ENT_EML_ADDR - , ENT_ZIP - , ENT_ADDR - , ENT_DTL_ADDR - , DEL_YN - , REG_DT - , RGTR - , MDFCN_DT - , MDFR - , DEL_DT - , DLTR - , DEL_RSN - FROM TB_RENT_ENT - - /* 임대 기업 대장 등록(rentEntMapper.insertRentEnt) */ + + + + + + + INSERT INTO TB_RENT_ENT ( ENT_ID , ENT_SE_CD - , ENT_NM , ENT_NO + , ENT_NM + , RPRSV_NM , ENT_TELNO , ENT_FXNO , ENT_EML_ADDR @@ -116,8 +135,9 @@ VALUES ( #{entId} , #{entSeCd} - , #{entNm} , #{entNo} + , #{entNm} + , #{rprsvNm} , #{entTelno} , #{entFxno} , #{entEmlAddr} @@ -129,6 +149,9 @@ , #{createdBy} , , #{modifiedBy} + , NULL + , NULL + , NULL ) @@ -137,6 +160,7 @@ SET ENT_SE_CD = #{entSeCd} , ENT_NM = #{entNm} , ENT_NO = #{entNo} + , RPRSV_NM = #{rprsvNm} , ENT_TELNO = #{entTelno} , ENT_FXNO = #{entFxno} , ENT_EML_ADDR = #{entEmlAddr} diff --git a/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml b/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml index 18aa9252..0baf768c 100644 --- a/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml @@ -8,6 +8,7 @@ ============================ --> + @@ -20,34 +21,88 @@ - SELECT USER_ID - , ENT_ID - , DEL_YN - , REG_DT - , RGTR - , MDFCN_DT - , MDFR - FROM TB_USER_RENT_ENT_MPNG + SELECT UREM.MPNG_ID + , UREM.USER_ID + , UREM.ENT_ID + , UREM.DEL_YN + , (SELECT GET_CODE_NM('CMN007', UREM.DEL_YN) FROM DUAL) AS DEL_YN_NM + , UREM.REG_DT + , UREM.RGTR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = UREM.RGTR) AS RGTR_NM + , U.USER_ACNT + , U.USER_NM + , RE.ENT_SE_CD + , (SELECT GET_CODE_NM('FIM088', RE.ENT_SE_CD) FROM DUAL) AS ENT_SE_NM + , RE.ENT_NM + , RE.ENT_NO + , RE.RPRSV_NM + , RE.ENT_TELNO + , RE.ENT_FXNO + , RE.ENT_EML_ADDR + , RE.ENT_ZIP + , RE.ENT_ADDR + , RE.ENT_DTL_ADDR + FROM TB_USER_RENT_ENT_MPNG UREM + INNER JOIN TB_USER U ON (UREM.USER_ID = U.USER_ID) + INNER JOIN TB_RENT_ENT RE ON (UREM.ENT_ID = RE.ENT_ID) /* 사용자 임대 기업 매핑 등록(userRentEntMpngMapper.insertUserRentEntMpng) */ + + + + + + + INSERT INTO TB_USER_RENT_ENT_MPNG ( - USER_ID + MPNG_ID + , USER_ID , ENT_ID , DEL_YN , REG_DT @@ -56,34 +111,32 @@ , MDFR ) VALUES ( - #{userId} + #{mpngId} + , #{userId} , #{entId} , 'N' , , #{createdBy} , , #{modifiedBy} - ) + ) - /* 사용자 임대 기업 매핑 수정(userRentEntMpngMapper.updateUserRentEntMpng) */ - UPDATE TB_USER_RENT_ENT_MPNG - SET DEL_YN = #{delYn} - , MDFCN_DT = - , MDFR = #{modifiedBy} - WHERE USER_ID = #{userId} - AND ENT_ID = #{entId} - AND DEL_YN = 'N' - - /* 사용자 임대 기업 매핑 삭제(userRentEntMpngMapper.deleteUserRentEntMpng) */ UPDATE TB_USER_RENT_ENT_MPNG SET DEL_YN = 'Y' , DEL_DT = , DLTR = #{modifiedBy} - WHERE USER_ID = #{userId} - AND ENT_ID = #{entId} - AND DEL_YN = 'N' + + + WHERE MPNG_ID IN ( + #{mpngId} + ) + + + WHERE MPNG_ID = #{mpngId} + +