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.

122 lines
3.4 KiB
Java

package cokr.xit.fims.mngt.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.user.SigunguQuery;
import cokr.xit.base.user.service.SigunguDepartmentService;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.base.OgdpQuery;
import cokr.xit.fims.base.service.bean.OgdpBean;
import cokr.xit.fims.cmmn.CmmnQuery;
import cokr.xit.fims.mngt.FimsDepartment;
import cokr.xit.foundation.data.DataObject;
/**부서관리 서비스 웹 컨트롤러.<br />
* {웹 컨텍스트}/mngt/mngt04 로 접근할 수 있다.
* @author leebj
*/
@Controller
@RequestMapping(name="부서 정보 관리", value=Mngt04Controller.CLASS_URL)
public class Mngt04Controller extends ApplicationController {
public static final String CLASS_URL = "/mngt/mngt04";
public class METHOD_URL {
public static final String
deptMngtMain = "/010/main.do"
, getDeptList = "/010/list.do"
, getDeptInfo = "/020/info.do"
, updateDept = "/020/update.do"
;
}
@Resource(name="sigunguDepartmentService")
private SigunguDepartmentService sggDeptService;
/** 소속 정보 서비스 */
@Resource(name = "ogdpBean")
private OgdpBean ogdpBean;
/** 부서관리 메인화면을 연다.
* @return fims/mngt/mngt04010-main
*/
@RequestMapping(name="부서 정보 관리 메인", value=METHOD_URL.deptMngtMain)
public ModelAndView deptMngtMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/mngt/mngt04010-main");
mav.addObject("pageName", "mngt04010");
List<DataObject> allSggList = sggDeptService.getSigunguList(new SigunguQuery());
mav.addObject("sggList", allSggList);
return mav;
}
/**부서 목록을 조회한다.<br />
* {@link OgdpService#getDeptList(CmmnQuery)} 참고
* @param query 부서 목록 조회 조건
* @return jsonView
*/
@RequestMapping(name="부서 목록 조회", value=METHOD_URL.getDeptList)
public ModelAndView getDeptList(OgdpQuery query) {
setFetchSize(query);
return setCollectionInfo(new ModelAndView("jsonView"), ogdpBean.getDeptList(query),"","");
}
/**지정한 ID의 부서 정보(info)를 반환한다.
* @param query 부서 조회 조건
* @return fims/mngt/mngt04020-info 또는 jsonView
* <pre>{
* "deptInfo": 부서 정보
* }</pre>
*/
@RequestMapping(name="부서 상세 조회", value=METHOD_URL.getDeptInfo)
public ModelAndView getDeptInfo(OgdpQuery query) {
DataObject deptInfo = new DataObject();
if(!ifEmpty(query.getDeptCd(), ()->"").equals("")) {
deptInfo = ogdpBean.getDeptInfo(query);
} else {
deptInfo = null;
}
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/mngt/mngt04020-info");
mav.addObject("pageName", "mngt04020");
mav.addObject("deptInfo", json ? deptInfo : toJson(deptInfo));
return mav;
}
/**부서 정보를 수정한다.
* @param dept 부서 정보
* @return jsonView
* <pre><code> {
* "saved": 저장되었으면 true, 그렇지 않으면 false
* }</code></pre>
*/
@RequestMapping(name="부서 수정", value=METHOD_URL.updateDept)
public ModelAndView updateDept(FimsDepartment dept) {
ModelAndView mav = new ModelAndView("jsonView");
boolean saved = ogdpBean.updateDept(dept);
mav.addObject("saved", saved);
return mav;
}
}