You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
7.3 KiB
Java

package cokr.xit.fims.excl.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
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.web.ApplicationController;
import cokr.xit.fims.excl.Excl01;
import cokr.xit.fims.excl.Excl01Query;
import cokr.xit.fims.excl.service.Excl01Service;
import cokr.xit.foundation.data.DataObject;
/**부과제외 대장 서비스의 웹 컨트롤러
*
* <p>상세 설명:
*
* <pre>
* ============ 변경 이력 ============
* 2023-06-23 JoJH 최초 작성
* ================================
* </pre>
*/
@Controller
@RequestMapping(name = "부과제외 대장", value = "/excl/excl01")
public class Excl01Controller extends ApplicationController {
/**부과제외 대장 서비스*/
@Resource(name = "excl01Service")
protected Excl01Service excl01Service;
/**부과제외 대장 관리 메인화면(excl/excl01/010-main)을 연다.
* 조건없는 {@link #getLevyExclList(Excl01Query) 부과제외 대장 조회 결과}를 포함시킨다.
* @return /excl/excl01/010-main
*/
@RequestMapping(name = "부과제외 관리 메인", value = "/010/main.do")
public ModelAndView levyExclusionMain() {
ModelAndView mav = new ModelAndView("fims/excl/excl01010-main");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054");
addCodes(commonCodes, mav, "FIM021", "FIM022");
return mav.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("urlPrefix", "/excl/excl01") // URL로 사용할 prefix
.addObject("infoPrefix", "levyExcl") // prefix
.addObject("FIM021List", commonCodes.get("FIM021")) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
;
}
/**부과제외 대장 목록을 조회하여 반환한다.<br />
* {@link LevyExclService#getLevyExclList(Excl01Query)} 참고
* @param req 부과제외 대장 조회 조건
* @return jsonView
* <pre><code> {
* "levyExclList": [부과제외 대장 목록]
* "levyExclStart": 부과제외 대장 목록 시작 인덱스
* "levyExclFetch": 한 번에 가져오는 부과제외 대장 목록 수
* "levyExclTotal": 조회 결과 찾은 전체 부과제외 대장 수
* }</code></pre>
*/
@RequestMapping(name = "부과제외 대장 조회", value = "/010/list.do")
public ModelAndView getLevyExclusionList(Excl01Query req) {
List<?> result = excl01Service.getLevyExclusionList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl");
}
/**지정한 ID의 부과제외 정보를 반환한다.
* @param levyExclId 부과 제외 ID
* @return fims/excl/excl01020-info 또는 jsonView
* <pre>{
* "levyExclusionInfo": 부과제외 정보
* }</pre>
*/
@RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do")
public ModelAndView getLevyExclusionInfo(Excl01Query req) {
// View(jsp)에서 사용할 공통코드를 조회
DataObject levyExclusionInfo = excl01Service.getLevyExclusionInfo(req);
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info")
.addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
;
// 조회 결과가 없다면.. 0
if (levyExclusionInfo == null) {
return mav
.addObject("pageMode", "create") //
.addObject("levyExclSeCd", req.getLevyExclSeCd())
;
} else {
return mav
.addObject("pageMode", "update") //
.addObject("levyExclSeCd", levyExclusionInfo.string("LEVY_EXCL_SE_CD"))
.addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo))
;
}
}
/**부과제외 대장를 등록한다.
* @param levyExcl 부과제외 대장 정보
* @return jsonView
* <pre><code> {
* "saved": 등록되었으면 true, 그렇지 않으면 false
* }</code></pre>
*/
@PostMapping(name = "부과제외 대장 등록", value = "/020/create.do")
public ModelAndView createLevyExclusion(Excl01 excl01) {
boolean saved = excl01Service.createLevyExclusion(excl01);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/**부과제외 대장 정보를 수정한다.
* @param levyExcl 부과제외 대장 정보
* @return jsonView
* <pre><code> {
* "saved": 수정되었으면 true, 그렇지 않으면 false
* }</code></pre>
*/
@PostMapping(name = "부과제외 대장 수정", value = "/020/update.do")
public ModelAndView updateLevyExclusion(Excl01 excl01) {
boolean saved = excl01Service.updateLevyExclusion(excl01);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/**지정한 부과제외 대장를 제거한다.
* @param levyExclIDs 부과제외 대장 아이디
* @return jsonView
* <pre><code> {
* "affected": 저장된 정보수
* "saved": 저장되었으면 true, 그렇지 않으면 false
* }</code></pre>
*/
@PostMapping(name = "부과제외 대장 제거", value = "/010/remove.do")
public ModelAndView removeLevyExclusion(Excl01 excl01) {
boolean saved = excl01Service.removeLevyExclusion(excl01);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}
///**지정한 ID의 부과제외 정보를 반환한다.
// * @param levyExclId 부과 제외 ID
// * @return fims/excl/excl01020-info 또는 jsonView
// * <pre>{
// * "levyExclusionInfo": 부과제외 정보
// * }</pre>
// */
//@RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do")
//public ModelAndView getLevyExclusionInfo(String levyExclId) {
// // View(jsp)에서 사용할 공통코드를 조회
// Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054");
//
// if (!isEmpty(levyExclId)) {
// Excl01 levyExclusionInfo = excl01Service.getLevyExclusionInfo(levyExclId);
//
// boolean json = jsonResponse();
//
// return new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info")
// .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
// .addObject("pageMode", "update") //
// .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
// .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
// .addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo))
// ;
// } else {
// return new ModelAndView("fims/excl/excl01020-info")
// .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
// .addObject("pageMode", "create") //
// .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
// .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
// ;
// }
//}