diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java index 7e3fdb04..df69ff31 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -40,7 +40,7 @@ import cokr.xit.foundation.data.DataObject; * */ @Controller -@RequestMapping(name="부과제외 관리", value=Excl01Controller.CLASS_URL) +@RequestMapping(name = "부과제외 관리", value=Excl01Controller.CLASS_URL) public class Excl01Controller extends ApplicationController { public static final String CLASS_URL = "/excl/excl01"; @@ -68,7 +68,7 @@ public class Excl01Controller extends ApplicationController { * * @return /fims/excl/excl01010 */ - @RequestMapping(name="부과제외 관리 메인", value=METHOD_URL.levyExclusionMain) + @RequestMapping(name = "부과제외 관리 메인", value=METHOD_URL.levyExclusionMain) public ModelAndView levyExclusionMain() { ModelAndView mav = new ModelAndView("fims/excl/excl01010-main"); @@ -103,7 +103,7 @@ public class Excl01Controller extends ApplicationController { * } */ @Task - @RequestMapping(name="부과제외 대장 목록 조회", value=METHOD_URL.getLevyExclusionList) + @RequestMapping(name = "부과제외 대장 목록 조회", value=METHOD_URL.getLevyExclusionList) public ModelAndView getLevyExclusionList(LevyExclQuery req) { if (!"xls".equals(req.getDownload())) { List result = levyExclService.getLevyExclList(setFetchSize(req)); @@ -175,7 +175,7 @@ public class Excl01Controller extends ApplicationController { * } */ @Task - @RequestMapping(name="부과제외 정보 상세 조회", value=METHOD_URL.getLevyExclusionInfo) + @RequestMapping(name = "부과제외 정보 상세 조회", value=METHOD_URL.getLevyExclusionInfo) public ModelAndView getLevyExclusionInfo(HttpServletRequest hReq, LevyExclQuery req) { DataObject info = levyExclService.getLevyExclInfo(req); @@ -219,7 +219,7 @@ public class Excl01Controller extends ApplicationController { * } */ @Task - @RequestMapping(name="부과제외 대장 등록", value=METHOD_URL.createLevyExclusion) + @RequestMapping(name = "부과제외 대장 등록", value=METHOD_URL.createLevyExclusion) public ModelAndView createLevyExclusion(LevyExcl levyExcl) { boolean saved = false; String rtnMsg = levyExclService.createLevyExcl(levyExcl); @@ -243,7 +243,7 @@ public class Excl01Controller extends ApplicationController { * } */ @Task - @RequestMapping(name="부과제외 대장 수정", value=METHOD_URL.updateLevyExclusion) + @RequestMapping(name = "부과제외 대장 수정", value=METHOD_URL.updateLevyExclusion) public ModelAndView updateLevyExclusion(LevyExcl levyExcl) { boolean saved = false; String rtnMsg = levyExclService.updateLevyExcl(levyExcl); @@ -268,7 +268,7 @@ public class Excl01Controller extends ApplicationController { * } */ @Task - @RequestMapping(name="부과제외 대장 삭제", value=METHOD_URL.removeLevyExclusion) + @RequestMapping(name = "부과제외 대장 삭제", value=METHOD_URL.removeLevyExclusion) public ModelAndView removeLevyExclusion(LevyExcl levyExcl) { boolean saved = false; String rtnMsg = ""; diff --git a/src/main/java/cokr/xit/fims/rent/RentQuery.java b/src/main/java/cokr/xit/fims/rent/RentQuery.java index 8c925a3b..6a704813 100644 --- a/src/main/java/cokr/xit/fims/rent/RentQuery.java +++ b/src/main/java/cokr/xit/fims/rent/RentQuery.java @@ -19,10 +19,15 @@ public class RentQuery extends CmmnQuery { // ID private String crdnId; // 단속 ID private String userId; // 사용자 ID + private String[] entIds; // 기업 Ids private String entId; // 기업 ID private String hirerId; // 임차인 ID private String lsctId; // 임대차계약 ID + // ETC + private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). + private String delRsn; // 삭제 사유 + public String getCrdnId() { return ifEmpty(crdnId, () -> null); } @@ -41,6 +46,15 @@ public class RentQuery extends CmmnQuery { return self(); } + public String[] getEntIds() { + return ifEmpty(entIds, () -> null); + } + + public T setEntIds(String... entIds) { + this.entIds = entIds; + return self(); + } + public String getEntId() { return ifEmpty(entId, () -> null); } @@ -68,4 +82,24 @@ public class RentQuery extends CmmnQuery { return self(); } + // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + return self(); + } + + public String getDelRsn() { + return ifEmpty(delRsn, () -> null); + } + + public T setDelRsn(String delRsn) { + this.delRsn = delRsn; + return self(); + } + // ETC ///////////////////////////////////////////////////////////////////// + } diff --git a/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java b/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java new file mode 100644 index 00000000..7cae4a7d --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java @@ -0,0 +1,30 @@ +package cokr.xit.fims.rent; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 사용자 임대 기업 매핑 + * @author JoJH + */ +@Getter +@Setter +public class UserRentEntMpng extends AbstractEntity { + + /** + * 사용자 ID + */ + private String userId; + + /** + * 기업 ID + */ + private String entId; + + /** + * 삭제 여부 + */ + private String delYn; + +} diff --git a/src/main/java/cokr/xit/fims/rent/dao/RentEntMapper.java b/src/main/java/cokr/xit/fims/rent/dao/RentEntMapper.java index 62479a86..aa7c8385 100644 --- a/src/main/java/cokr/xit/fims/rent/dao/RentEntMapper.java +++ b/src/main/java/cokr/xit/fims/rent/dao/RentEntMapper.java @@ -1,14 +1,13 @@ package cokr.xit.fims.rent.dao; import java.util.List; -import java.util.Map; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; -import cokr.xit.foundation.component.AbstractMapper; -import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; /** 임대 기업 대장 정보 DAO * @@ -32,7 +31,22 @@ public interface RentEntMapper extends AbstractMapper { * @param req 임대 기업 대장 조회 조건 * @return 임대 기업 대장 객체 목록 */ - List selectRentEnts(RentQuery req); + List selectRentEnts(RentQuery req); + + default DataObject selectRentEntInfo(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("RE.ENT_ID DESC"); + } + + List rentEnts = selectRentEnts(req); + + return !rentEnts.isEmpty() ? rentEnts.get(0) : null; + } /**임대 기업 대장 정보를 등록한다. * @param params 파라미터 @@ -41,18 +55,7 @@ public interface RentEntMapper extends AbstractMapper { * * @return 저장된 정보수 */ - int insertRentEnt(Map params); - - /**임대 기업 대장 정보를 등록한다. - * @param rentEnt 임대 기업 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean insert(RentEnt rentEnt) { - return rentEnt != null && insertRentEnt(params().set("rentEnt", rentEnt)) == 1; - } + int insertRentEnt(RentEnt rentEnt); /**임대 기업 대장 정보를 수정한다. * @param params 파라미터 @@ -61,18 +64,7 @@ public interface RentEntMapper extends AbstractMapper { * * @return 저장된 정보수 */ - int updateRentEnt(Map params); - - /**임대 기업 대장 정보를 수정한다. - * @param rentEnt 임대 기업 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean update(RentEnt rentEnt) { - return rentEnt != null && updateRentEnt(params().set("rentEnt", rentEnt)) == 1; - } + int updateRentEnt(RentEnt rentEnt); /**지정한 임대 기업 대장을 삭제한다. * @param params 파라미터 @@ -81,17 +73,6 @@ public interface RentEntMapper extends AbstractMapper { * * @return 저장된 정보수 */ - int deleteRentEnt(Map params); - - /**임대 기업 대장 정보를 삭제한다. - * @param rentEnt 임대 기업 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean delete(RentEnt rentEnt) { - return rentEnt != null && deleteRentEnt(params().set("rentEnt", rentEnt)) == 1; - } + int deleteRentEnt(RentEnt rentEnt); } diff --git a/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java b/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java new file mode 100644 index 00000000..b058a668 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java @@ -0,0 +1,64 @@ +package cokr.xit.fims.rent.dao; + +import java.util.List; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + + +/** 사용자 임대 기업 매핑 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("userRentEntMpngMapper") +public interface UserRentEntMpngMapper extends AbstractMapper { + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다.
+ * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + List selectUserRentEntMpngList(RentQuery req); + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + List selectUserRentEntMpngs(RentQuery req); + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param params 파라미터 + *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**사용자 임대 기업 매핑 정보를 수정한다. + * @param params 파라미터 + *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**지정한 사용자 임대 기업 매핑을 삭제한다. + * @param params 파라미터 + *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteUserRentEntMpng(UserRentEntMpng 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 2754a973..2a715b8a 100644 --- a/src/main/java/cokr/xit/fims/rent/service/RentEntService.java +++ b/src/main/java/cokr/xit/fims/rent/service/RentEntService.java @@ -2,9 +2,9 @@ package cokr.xit.fims.rent.service; import java.util.List; -import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; +import cokr.xit.foundation.data.DataObject; /**임대 기업 대장 관리 서비스 인터페이스. * @@ -12,7 +12,7 @@ import cokr.xit.fims.rent.RentQuery; * *
  * ============ 변경 이력 ============
- * 2024-07-24   mjkhan 최초 작성
+ * 2024-07-24   JoJH 최초 작성
  * ================================
  * 
*/ @@ -28,7 +28,13 @@ public interface RentEntService { * @param req 임대 기업 대장 조회 조건 * @return 임대 기업 대장 객체 목록 */ - List getRentEnts(RentQuery req); + List getRentEnts(RentQuery req); + + /**지정한 조건에 따라 임대 기업 상세 정보를 조회하여 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 상세 정보 + */ + DataObject getRentEntInfo(RentQuery req); /**임대 기업 대장 정보를 등록한다. * @param rentEnt 임대 기업 대장 @@ -37,7 +43,7 @@ public interface RentEntService { *
  • 그렇지 않으면 false
  • * */ - boolean create(RentEnt rentEnt); + String createRentEnt(RentEnt rentEnt); /**임대 기업 대장 정보를 수정한다. * @param rentEnt 임대 기업 대장 @@ -46,7 +52,7 @@ public interface RentEntService { *
  • 그렇지 않으면 false
  • * */ - boolean update(RentEnt rentEnt); + String updateRentEnt(RentEnt rentEnt); /**임대 기업 대장 정보를 삭제한다. * @param rentEnt 임대 기업 대장 @@ -55,6 +61,6 @@ public interface RentEntService { *
  • 그렇지 않으면 false
  • * */ - boolean remove(RentEnt rentEnt); + String removeRentEnt(RentEnt rentEnt); } 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 5dbb5c63..dcb7d8c0 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,11 +6,11 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; -import cokr.xit.foundation.component.AbstractBean; -import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; import cokr.xit.fims.rent.dao.RentEntMapper; +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; /**임대 기업 대장 정보 관리 Bean * @@ -41,10 +41,18 @@ public class RentEntBean extends AbstractBean { * @param req 임대 기업 대장 조회 조건 * @return 임대 기업 대장 객체 목록 */ - public List getRentEnts(RentQuery req) { + public List getRentEnts(RentQuery req) { return rentEntMapper.selectRentEnts(req); } + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 목록 + */ + public DataObject getRentEntInfo(RentQuery req) { + return rentEntMapper.selectRentEntInfo(req); + } + /**임대 기업 대장 정보를 등록한다. * @param rentEnt 임대 기업 대장 * @return 저장 여부 @@ -52,8 +60,14 @@ public class RentEntBean extends AbstractBean { *
  • 그렇지 않으면 false
  • * */ - public boolean create(RentEnt rentEnt) { - return rentEntMapper.insert(rentEnt); + public String createRentEnt(RentEnt rentEnt) { + // 임대기업(TB_RENT_ENT) 대장을 등록한다. + int rtnNocs = rentEntMapper.insertRentEnt(rentEnt); + if (rtnNocs != 1) { + throw new RuntimeException("임대기업 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 작업이 정상 처리 되었습니다."; } /**임대 기업 대장 정보를 수정한다. @@ -63,8 +77,14 @@ public class RentEntBean extends AbstractBean { *
  • 그렇지 않으면 false
  • * */ - public boolean update(RentEnt rentEnt) { - return rentEntMapper.update(rentEnt); + public String updateRentEnt(RentEnt rentEnt) { + // 임대기업(TB_RENT_ENT) 대장을 등록한다. + int rtnNocs = rentEntMapper.updateRentEnt(rentEnt); + if (rtnNocs != 1) { + throw new RuntimeException("임대기업 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 작업이 정상 처리 되었습니다."; } /**임대 기업 대장 정보를 삭제한다. @@ -74,8 +94,14 @@ public class RentEntBean extends AbstractBean { *
  • 그렇지 않으면 false
  • * */ - public boolean remove(RentEnt rentEnt) { - return rentEntMapper.delete(rentEnt); + public String removeRentEnt(RentEnt rentEnt) { + // 임대기업(TB_RENT_ENT) 대장을 등록한다. + int rtnNocs = rentEntMapper.deleteRentEnt(rentEnt); + if (rtnNocs != 1) { + throw new RuntimeException("임대기업 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 작업이 정상 처리 되었습니다."; } } 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 d8213d95..8c0579b1 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 @@ -6,11 +6,11 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; -import cokr.xit.foundation.component.AbstractServiceBean; -import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.rent.RentEnt; import cokr.xit.fims.rent.RentQuery; import cokr.xit.fims.rent.service.RentEntService; +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; /**임대 기업 대장 서비스 구현체. * @@ -35,23 +35,28 @@ public class RentEntServiceBean extends AbstractServiceBean implements RentEntSe } @Override - public List getRentEnts(RentQuery req) { + public List getRentEnts(RentQuery req) { return rentEntBean.getRentEnts(req); } @Override - public boolean create(RentEnt rentEnt) { - return rentEntBean.create(rentEnt); + public DataObject getRentEntInfo(RentQuery req) { + return rentEntBean.getRentEntInfo(req); + } + + @Override + public String createRentEnt(RentEnt rentEnt) { + return rentEntBean.createRentEnt(rentEnt); } @Override - public boolean update(RentEnt rentEnt) { - return rentEntBean.update(rentEnt); + public String updateRentEnt(RentEnt rentEnt) { + return rentEntBean.updateRentEnt(rentEnt); } @Override - public boolean remove(RentEnt rentEnt) { - return rentEntBean.remove(rentEnt); + public String removeRentEnt(RentEnt rentEnt) { + return rentEntBean.removeRentEnt(rentEnt); } } diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/UserRentEntMpngBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/UserRentEntMpngBean.java new file mode 100644 index 00000000..6a1d12ba --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/UserRentEntMpngBean.java @@ -0,0 +1,82 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.fims.rent.dao.UserRentEntMpngMapper; +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; + + +/**사용자 임대 기업 매핑 정보 관리 Bean + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-07-24   JoJH 최초 작성
    + * ================================
    + * 
    + */ +@Component("userRentEntMpngBean") +public class UserRentEntMpngBean extends AbstractBean { + + /** 사용자 임대 기업 매핑 정보 DAO */ + @Resource(name = "userRentEntMpngMapper") + private UserRentEntMpngMapper userRentEntMpngMapper; + + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + public List getUserRentEntMpngList(RentQuery req) { + return userRentEntMpngMapper.selectUserRentEntMpngList(req); + } + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + public List getUserRentEntMpngs(RentQuery req) { + return userRentEntMpngMapper.selectUserRentEntMpngs(req); + } + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public int createUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return userRentEntMpngMapper.insertUserRentEntMpng(userRentEntMpng); + } + + /**사용자 임대 기업 매핑 정보를 수정한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public int updateUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return userRentEntMpngMapper.updateUserRentEntMpng(userRentEntMpng); + } + + /**사용자 임대 기업 매핑 정보를 삭제한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public int removeUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return userRentEntMpngMapper.deleteUserRentEntMpng(userRentEntMpng); + } + +} 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 bfbd4175..eb572390 100644 --- a/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java +++ b/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java @@ -1,19 +1,33 @@ package cokr.xit.fims.rent.web; +import java.text.SimpleDateFormat; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.apache.poi.ss.usermodel.CellStyle; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +import cokr.xit.base.code.CommonCode; +import cokr.xit.base.docs.xls.CellDef; +import cokr.xit.base.docs.xls.Format; +import cokr.xit.base.docs.xls.Style; +import cokr.xit.base.docs.xls.XLSWriter; import cokr.xit.base.web.ApplicationController; +import cokr.xit.fims.base.FimsUser; +import cokr.xit.fims.cmmn.service.bean.StngBean; +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.service.RentEntService; +import cokr.xit.fims.task.Task; +import cokr.xit.foundation.data.DataObject; /**임대 기업 대장 서비스의 웹 컨트롤러 * @@ -26,7 +40,7 @@ import cokr.xit.fims.rent.service.RentEntService; * */ @Controller -@RequestMapping(name="임대차량 관리", value=Rent01Controller.CLASS_URL) +@RequestMapping(name="임대 기업 관리", value=Rent01Controller.CLASS_URL) public class Rent01Controller extends ApplicationController { public static final String CLASS_URL = "/rent/rent01"; @@ -34,11 +48,11 @@ 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" // 임대 기업 대장 수정 + , getRentEnterpriseList = "/010/list.do" // 임대 기업 대장 목록 조회 + , removeRentEnterprise = "/010/remove.do" // 임대 기업 대장 삭제 + , getRentEnterpriseInfo = "/020/info.do" // 임대 기업 대장 상세 조회 + , createRentEnterprise = "/020/create.do" // 임대 기업 대장 등록 + , updateRentEnterprise = "/020/update.do" // 임대 기업 대장 수정 ; } @@ -46,15 +60,31 @@ public class Rent01Controller extends ApplicationController { @Resource(name = "rentEntService") private RentEntService rentEntService; + /**설정 정보 Bean */ + @Resource(name = "stngBean") + private StngBean stngBean; + /**임대 기업 대장 관리 메인화면(rentEnt/rentEnt-main)을 연다. * 조건없는 {@link #getRentEntList(RentEntQuery) 임대 기업 대장 조회 결과}를 포함시킨다. * @return /rentEnt/rentEnt-main */ - @GetMapping(name = "임대 기업 대장 메인", value = "/main.do") - public ModelAndView main() { - ModelAndView mav = getRentEntList(new RentQuery().setPageNum(1)); - mav.setViewName("/rentEnt/rentEnt-main"); - return mav.addObject("rentEntList", toJson(mav.getModel().get("rentEntList"))); + @RequestMapping(name = "임대기업 대장 메인", value=METHOD_URL.rentEnterpriseMain) + public ModelAndView rentEnterpriseMain() { + ModelAndView mav = new ModelAndView("fims/rent/rent01010-main"); + + // 사용자 정보 + FimsUser fimsUser = (FimsUser)currentUser().getUser(); + + // View(jsp)에서 사용할 공통코드를 조회 + Map> commonCodes = getCodesOf("FIM054"); + + return mav + .addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "levyExcl") // prefix + .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl + .addObject("sggCd", fimsUser.getOrgID()) // 시군구 코드(SGG_CD) + .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD) + ; } /**임대 기업 대장 목록을 조회하여 반환한다.
    @@ -68,10 +98,92 @@ public class Rent01Controller extends ApplicationController { * "rentEntTotal": 조회 결과 찾은 전체 임대 기업 대장 수 * } */ - @RequestMapping(name = "임대 기업 대장 조회", value = "/list.do") - public ModelAndView getRentEntList(RentQuery req) { - List result = rentEntService.getRentEntList(setFetchSize(req)); - return setCollectionInfo(new ModelAndView("jsonView"), result, "rentEnt"); + @Task + @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 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)); + + 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("등록일시", 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) + .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")); + } + } + + /**임대 기업 대장 상세 정보 화면(/rent/rent01020-info)을 연다. + * 조건없는 {@link #getRentEntList(RentEntQuery) 임대 기업 대장 조회 결과}를 포함시킨다. + * @return /rentEnt/rentEnt-main + */ + @RequestMapping(name = "임대기업 정보 상세 조회", value=METHOD_URL.getRentEnterpriseInfo) + public ModelAndView getRentEnterpriseInfo(HttpServletRequest hReq, RentQuery req) { + DataObject info = rentEntService.getRentEntInfo(req); + + boolean json = jsonResponse(); + ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/rent/rent01020-info"); + + // View(jsp)에서 사용할 공통코드를 조회 + Map> commonCodes = getCodesOf("FIM054"); + + 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("rentEntInfo", json ? info : toJson(info)) // 임대기업 정보 + ; } /**임대 기업 대장를 등록한다. @@ -81,11 +193,21 @@ public class Rent01Controller extends ApplicationController { * "saved": 등록되었으면 true, 그렇지 않으면 false * } */ - @PostMapping(name = "임대 기업 대장 등록", value = "/create.do") - public ModelAndView create(RentEnt rentEnt) { - boolean saved = rentEntService.create(rentEnt); + @Task + @RequestMapping(name = "임대기업 대장 등록", value=METHOD_URL.createRentEnterprise) + public ModelAndView createRentEnterprise(RentEnt rentEnt) { + boolean saved = false; + String rtnMsg = rentEntService.createRentEnt(rentEnt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); } /**임대 기업 대장 정보를 수정한다. @@ -95,11 +217,21 @@ public class Rent01Controller extends ApplicationController { * "saved": 수정되었으면 true, 그렇지 않으면 false * } */ - @PostMapping(name = "임대 기업 대장 수정", value = "/update.do") - public ModelAndView update(RentEnt rentEnt) { - boolean saved = rentEntService.update(rentEnt); + @Task + @RequestMapping(name = "임대기업 대장 수정", value=METHOD_URL.updateRentEnterprise) + public ModelAndView updateRentEnterprise(RentEnt rentEnt) { + boolean saved = false; + String rtnMsg = rentEntService.updateRentEnt(rentEnt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); } /**지정한 임대 기업 대장를 제거한다. @@ -110,11 +242,21 @@ public class Rent01Controller extends ApplicationController { * "saved": 저장되었으면 true, 그렇지 않으면 false * } */ - @PostMapping(name = "임대 기업 대장 제거", value = "/remove.do") - public ModelAndView remove(RentEnt rentEnt) { - boolean saved = rentEntService.remove(rentEnt); + @Task + @RequestMapping(name = "임대기업 대장 제거", value=METHOD_URL.removeRentEnterprise) + public ModelAndView removeRentEnterprise(RentEnt rentEnt) { + boolean saved = false; + String rtnMsg = rentEntService.removeRentEnt(rentEnt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); } } 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 ab1440c9..684b8dc7 100644 --- a/src/main/resources/sql/mapper/fims/rent/rentEnt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rent/rentEnt-mapper.xml @@ -7,124 +7,129 @@ 2024-07-24 JoJH 최초 작성 ============================ --> - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + -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 + + 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_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 -) VALUES ( - #{rentEnt.entId} - , #{rentEnt.entSeCd} - , #{rentEnt.entNm} - , #{rentEnt.entNo} - , #{rentEnt.entTelno} - , #{rentEnt.entFxno} - , #{rentEnt.entEmlAddr} - , #{rentEnt.entZip} - , #{rentEnt.entAddr} - , #{rentEnt.entDtlAddr} - , #{rentEnt.delYn} - , - , #{currentUser.id} - , - , #{currentUser.id} - , #{rentEnt.removedAt} - , #{rentEnt.removedBy} - , #{rentEnt.delRsn} -) + /* 임대 기업 대장 등록(rentEntMapper.insertRentEnt) */ + INSERT + INTO TB_RENT_ENT ( + 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 + ) + VALUES ( + #{entId} + , #{entSeCd} + , #{entNm} + , #{entNo} + , #{entTelno} + , #{entFxno} + , #{entEmlAddr} + , #{entZip} + , #{entAddr} + , #{entDtlAddr} + , 'N' + , + , #{createdBy} + , + , #{modifiedBy} + ) + -/* 임대 기업 대장 수정(rentEntMapper.updateRentEnt) */ -UPDATE TB_RENT_ENT SET - ENT_SE_CD = #{rentEnt.entSeCd} - , ENT_NM = #{rentEnt.entNm} - , ENT_NO = #{rentEnt.entNo} - , ENT_TELNO = #{rentEnt.entTelno} - , ENT_FXNO = #{rentEnt.entFxno} - , ENT_EML_ADDR = #{rentEnt.entEmlAddr} - , ENT_ZIP = #{rentEnt.entZip} - , ENT_ADDR = #{rentEnt.entAddr} - , ENT_DTL_ADDR = #{rentEnt.entDtlAddr} - , DEL_YN = #{rentEnt.delYn} - , MDFCN_DT = - , MDFR = #{currentUser.id} - , DEL_DT = #{rentEnt.removedAt} - , DLTR = #{rentEnt.removedBy} - , DEL_RSN = #{rentEnt.delRsn} - WHERE ENT_ID = #{rentEnt.entId} + /* 임대 기업 대장 수정(rentEntMapper.updateRentEnt) */ + UPDATE TB_RENT_ENT + SET ENT_SE_CD = #{entSeCd} + , ENT_NM = #{entNm} + , ENT_NO = #{entNo} + , ENT_TELNO = #{entTelno} + , ENT_FXNO = #{entFxno} + , ENT_EML_ADDR = #{entEmlAddr} + , ENT_ZIP = #{entZip} + , ENT_ADDR = #{entAddr} + , ENT_DTL_ADDR = #{entDtlAddr} + , MDFCN_DT = + , MDFR = #{modifiedBy} + WHERE ENT_ID = #{entId} + AND DEL_YN = 'N' + -/* 임대 기업 대장 삭제(rentEntMapper.deleteRentEnt) */ -UPDATE TB_RENT_ENT SET - USE_YN = 'N' - , MDFCN_DT = - , MDFR = #{currentUser.id} - WHERE ENT_ID = #{rentEnt.entId} + /* 임대 기업 대장 삭제(rentEntMapper.deleteRentEnt) */ + UPDATE TB_RENT_ENT + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{modifiedBy} + , DEL_RSN = #{delRsn} + WHERE ENT_ID = #{entId} + AND DEL_YN = 'N' + diff --git a/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml b/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml new file mode 100644 index 00000000..18aa9252 --- /dev/null +++ b/src/main/resources/sql/mapper/fims/rent/userRentEntMpng-mapper.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + SELECT USER_ID + , ENT_ID + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + FROM TB_USER_RENT_ENT_MPNG + + + + + + + /* 사용자 임대 기업 매핑 등록(userRentEntMpngMapper.insertUserRentEntMpng) */ + INSERT + INTO TB_USER_RENT_ENT_MPNG ( + USER_ID + , ENT_ID + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) + VALUES ( + #{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' + + +