+* ============ 변경 이력 ============
+* 2023-10-24 JoJH 최초 작성
+* ================================
+*
+*/
+public class TaskInfoQuery extends QueryRequest {
+
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java b/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java
new file mode 100644
index 00000000..59eda3d8
--- /dev/null
+++ b/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java
@@ -0,0 +1,99 @@
+package cokr.xit.fims.cmmn.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.cmmn.TaskInfo;
+import cokr.xit.fims.cmmn.TaskInfoQuery;
+
+/** 업무 정보 정보 DAO
+ *
+ *
상세 설명:
+ *
+ *
+ * ============ 변경 이력 ============
+ * 2023-10-24 JoJH 최초 작성
+ * ================================
+ *
+ */
+@Mapper("taskInfoMapper")
+public interface TaskInfoMapper extends AbstractMapper {
+
+ /**지정한 조건에 따라 업무 정보 목록을 조회하여 반환한다.
+ * @param req 업무 정보 조회 조건
+ * @return 업무 정보 목록
+ */
+ List selectTaskInfoList(TaskInfoQuery req);
+
+ /**지정한 조건에 따라 업무 정보 객체들을 반환한다.
+ * @param req 업무 정보 조회 조건
+ * @return 업무 정보 객체 목록
+ */
+ List selectTaskInfos(TaskInfoQuery req);
+
+ /**업무 정보 정보를 등록한다.
+ * @param params 파라미터
+ *
"taskInfo" - 업무 정보
+ *
"currentUser" - 현재 접속한 사용자
+ *
+ * @return 저장된 정보수
+ */
+ int insertTaskInfo(Map params);
+
+ /**업무 정보 정보를 등록한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
+ * ============ 변경 이력 ============
+ * 2023-10-24 mjkhan 최초 작성
+ * ================================
+ *
+ */
+public interface TaskInfoService {
+
+ /**지정한 조건에 따라 업무 정보 목록을 조회하여 반환한다.
+ * @param req 업무 정보 조회 조건
+ * @return 업무 정보 목록
+ */
+ List getTaskInfoList(TaskInfoQuery req);
+
+ /**지정한 조건에 따라 업무 정보 객체들을 반환한다.
+ * @param req 업무 정보 조회 조건
+ * @return 업무 정보 객체 목록
+ */
+ List getTaskInfos(TaskInfoQuery req);
+
+ /**업무 정보 정보를 등록한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
저장됐으면 true
+ *
그렇지 않으면 false
+ *
+ */
+ boolean create(TaskInfo taskInfo);
+
+ /**업무 정보 정보를 수정한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
저장됐으면 true
+ *
그렇지 않으면 false
+ *
+ */
+ boolean update(TaskInfo taskInfo);
+
+ /**업무 정보 정보를 삭제한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
+ * ============ 변경 이력 ============
+ * 2023-10-24 JoJH 최초 작성
+ * ================================
+ *
+ */
+@Component("taskInfoBean")
+public class TaskInfoBean extends AbstractComponent {
+
+ /** 업무 정보 정보 DAO */
+ @Resource(name = "taskInfoMapper")
+ private TaskInfoMapper taskInfoMapper;
+
+ /**지정한 조건에 따라 업무 정보 목록을 조회하여 반환한다.
+ * @param req 업무 정보 조회 조건
+ * @return 업무 정보 목록
+ */
+ public List getTaskInfoList(TaskInfoQuery req) {
+ return taskInfoMapper.selectTaskInfoList(req);
+ }
+
+ /**지정한 조건에 따라 업무 정보 객체들을 반환한다.
+ * @param req 업무 정보 조회 조건
+ * @return 업무 정보 객체 목록
+ */
+ public List getTaskInfos(TaskInfoQuery req) {
+ return taskInfoMapper.selectTaskInfos(req);
+ }
+
+ /**업무 정보 정보를 등록한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
저장됐으면 true
+ *
그렇지 않으면 false
+ *
+ */
+ public boolean create(TaskInfo taskInfo) {
+ return taskInfoMapper.insert(taskInfo);
+ }
+
+ /**업무 정보 정보를 수정한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
저장됐으면 true
+ *
그렇지 않으면 false
+ *
+ */
+ public boolean update(TaskInfo taskInfo) {
+ return taskInfoMapper.update(taskInfo);
+ }
+
+ /**업무 정보 정보를 삭제한다.
+ * @param taskInfo 업무 정보
+ * @return 저장 여부
+ *
+ * ============ 변경 이력 ============
+ * 2023-10-24 JoJH 최초 작성
+ * ================================
+ *
+ */
+@Service("taskInfoService")
+public class TaskInfoServiceBean extends AbstractServiceBean implements TaskInfoService {
+
+ /** 업무 정보 정보 Bean */
+ @Resource(name = "taskInfoBean")
+ private TaskInfoBean taskInfoBean;
+
+ @Override
+ public List getTaskInfoList(TaskInfoQuery req) {
+ return taskInfoBean.getTaskInfoList(req);
+ }
+
+ @Override
+ public List getTaskInfos(TaskInfoQuery req) {
+ return taskInfoBean.getTaskInfos(req);
+ }
+
+ @Override
+ public boolean create(TaskInfo taskInfo) {
+ return taskInfoBean.create(taskInfo);
+ }
+
+ @Override
+ public boolean update(TaskInfo taskInfo) {
+ return taskInfoBean.update(taskInfo);
+ }
+
+ @Override
+ public boolean remove(TaskInfo taskInfo) {
+ return taskInfoBean.remove(taskInfo);
+ }
+
+}
diff --git a/src/main/java/cokr/xit/fims/cmmn/web/TaskInfoController.java b/src/main/java/cokr/xit/fims/cmmn/web/TaskInfoController.java
new file mode 100644
index 00000000..7a5d8c46
--- /dev/null
+++ b/src/main/java/cokr/xit/fims/cmmn/web/TaskInfoController.java
@@ -0,0 +1,105 @@
+package cokr.xit.fims.cmmn.web;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import cokr.xit.foundation.web.AbstractController;
+
+import cokr.xit.fims.cmmn.TaskInfo;
+import cokr.xit.fims.cmmn.TaskInfoQuery;
+import cokr.xit.fims.cmmn.service.TaskInfoService;
+
+/**업무 정보 서비스의 웹 컨트롤러
+ *
+ *
상세 설명:
+ *
+ *
+ * ============ 변경 이력 ============
+ * 2023-10-24 mjkhan 최초 작성
+ * ================================
+ *
+ */
+@RequestMapping(name = "업무 정보", value = "/taskInfo")
+public class TaskInfoController extends AbstractController {
+
+ /**업무 정보 서비스*/
+ @Resource(name = "taskInfoService")
+ private TaskInfoService taskInfoService;
+
+ /**업무 정보 관리 메인화면(taskInfo/taskInfo-main)을 연다.
+ * 조건없는 {@link #getTaskInfoList(TaskInfoQuery) 업무 정보 조회 결과}를 포함시킨다.
+ * @return /taskInfo/taskInfo-main
+ */
+ @RequestMapping(name = "업무 정보 메인", value = "/main.do")
+ public ModelAndView main() {
+ ModelAndView mav = getTaskInfoList(new TaskInfoQuery().setPageNum(1));
+ mav.setViewName("/taskInfo/taskInfo-main");
+ return mav.addObject("taskInfoList", toJson(mav.getModel().get("taskInfoList")));
+ }
+
+ /**업무 정보 목록을 조회하여 반환한다.
+ * {@link TaskInfoService#getTaskInfoList(TaskInfoQuery)} 참고
+ * @param req 업무 정보 조회 조건
+ * @return jsonView
+ *
{
+ * "taskInfoList": [업무 정보 목록]
+ * "taskInfoStart": 업무 정보 목록 시작 인덱스
+ * "taskInfoFetch": 한 번에 가져오는 업무 정보 목록 수
+ * "taskInfoTotal": 조회 결과 찾은 전체 업무 정보 수
+ * }
+ */
+ @RequestMapping(name = "업무 정보 조회", value = "/list.do")
+ public ModelAndView getTaskInfoList(TaskInfoQuery req) {
+ List> result = taskInfoService.getTaskInfoList(setFetchSize(req));
+ return setCollectionInfo(new ModelAndView("jsonView"), result, "taskInfo");
+ }
+
+ /**업무 정보를 등록한다.
+ * @param taskInfo 업무 정보 정보
+ * @return jsonView
+ *
{
+ * "saved": 등록되었으면 true, 그렇지 않으면 false
+ * }
+ */
+ @PostMapping(name = "업무 정보 등록", value = "/create.do")
+ public ModelAndView create(TaskInfo taskInfo) {
+ boolean saved = taskInfoService.create(taskInfo);
+ return new ModelAndView("jsonView")
+ .addObject("saved", saved);
+ }
+
+ /**업무 정보 정보를 수정한다.
+ * @param taskInfo 업무 정보 정보
+ * @return jsonView
+ *
{
+ * "saved": 수정되었으면 true, 그렇지 않으면 false
+ * }
+ */
+ @PostMapping(name = "업무 정보 수정", value = "/update.do")
+ public ModelAndView update(TaskInfo taskInfo) {
+ boolean saved = taskInfoService.update(taskInfo);
+ return new ModelAndView("jsonView")
+ .addObject("saved", saved);
+ }
+
+ /**지정한 업무 정보를 제거한다.
+ * @param taskInfoIDs 업무 정보 아이디
+ * @return jsonView
+ *
{
+ * "affected": 저장된 정보수
+ * "saved": 저장되었으면 true, 그렇지 않으면 false
+ * }