의견제출 심의위원 관리 추가.

main
jjh 6 months ago
parent f7dbbbc66d
commit 7bbd0ed1a9

@ -22,6 +22,7 @@ public class LevyExclQuery extends CmmnQuery {
private String levyExclId; // 부과제외 ID
private String[] opnnIds; // 의견제출 Ids
private String opnnId; // 의견제출 ID
private String mngId; // 의견제출 심의 회원 ID
private String[] reRegIds; // 재등록 Ids
private String reRegId; // 재등록 ID
@ -100,6 +101,15 @@ public class LevyExclQuery extends CmmnQuery {
return self();
}
public String getMngId() {
return ifEmpty(mngId, () -> null);
}
public <T extends LevyExclQuery> T setMngId(String mngId) {
this.mngId = mngId;
return self();
}
public String[] getReRegIds() {
return ifEmpty(reRegIds, () -> null);
}

@ -0,0 +1,100 @@
package cokr.xit.fims.excl;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author JoJH
*/
@Getter
@Setter
public class OpnnDlbrMbr extends AbstractEntity {
/**
* ID
*/
private String mngId;
/**
*
*/
private String sggCd;
/**
*
*/
private String taskSeCd;
/**
* 1
*/
private String dlbrMbrJbgd1;
/**
* 1
*/
private String dlbrMbrNm1;
/**
* 2
*/
private String dlbrMbrJbgd2;
/**
* 2
*/
private String dlbrMbrNm2;
/**
* 3
*/
private String dlbrMbrJbgd3;
/**
* 3
*/
private String dlbrMbrNm3;
/**
* 4
*/
private String dlbrMbrJbgd4;
/**
* 4
*/
private String dlbrMbrNm4;
/**
* 5
*/
private String dlbrMbrJbgd5;
/**
* 5
*/
private String dlbrMbrNm5;
/**
* 6
*/
private String dlbrMbrJbgd6;
/**
* 6
*/
private String dlbrMbrNm6;
/**
* 7
*/
private String dlbrMbrJbgd7;
/**
* 7
*/
private String dlbrMbrNm7;
}

@ -0,0 +1,84 @@
package cokr.xit.fims.excl.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.excl.LevyExclQuery;
import cokr.xit.fims.excl.OpnnDlbrMbr;
/** DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2024-05-17 JoJH
* ================================
* </pre>
*/
@Mapper("opnnDlbrMbrMapper")
public interface OpnnDlbrMbrMapper extends AbstractMapper {
/** .
* @param req
* @return
*/
List<DataObject> selectOpnnDlbrMbrList(LevyExclQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectOpnnDlbrMbrs(LevyExclQuery req);
/** .
* @param req
* @return
*/
DataObject selectOpnnDlbrMbrInfo(LevyExclQuery req);
/** .
* @param params
* <ul><li>"opnnDlbrMbr" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertOpnnDlbrMbr(Map<String, Object> params);
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insertOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
return opnnDlbrMbr != null && insertOpnnDlbrMbr(params().set("opnnDlbrMbr", opnnDlbrMbr)) == 1;
}
/** .
* @param params
* <ul><li>"opnnDlbrMbr" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateOpnnDlbrMbr(Map<String, Object> params);
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
return opnnDlbrMbr != null && updateOpnnDlbrMbr(params().set("opnnDlbrMbr", opnnDlbrMbr)) == 1;
}
}

@ -0,0 +1,57 @@
package cokr.xit.fims.excl.service;
import java.util.List;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.OpnnDlbrMbr;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-05-17 JoJH
* ================================
* </pre>
*/
public interface OpnnDlbrMbrService {
/** .
* @param req
* @return
*/
List<DataObject> getOpnnDlbrMbrList(LevyExclQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getOpnnDlbrMbrs(LevyExclQuery req);
/** .
* @param req
* @return
*/
DataObject getOpnnDlbrMbrInfo(LevyExclQuery req);
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr);
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr);
}

@ -0,0 +1,119 @@
package cokr.xit.fims.excl.service.bean;
import java.util.List;
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.cmmn.CmmnUtil;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.OpnnDlbrMbr;
import cokr.xit.fims.excl.dao.OpnnDlbrMbrMapper;
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2024-05-17 JoJH
* ================================
* </pre>
*/
@Component("opnnDlbrMbrBean")
public class OpnnDlbrMbrBean extends AbstractBean {
/** 의견제출 심의 회원 정보 DAO */
@Resource(name = "opnnDlbrMbrMapper")
private OpnnDlbrMbrMapper opnnDlbrMbrMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getOpnnDlbrMbrList(LevyExclQuery 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 opnnDlbrMbrMapper.selectOpnnDlbrMbrList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getOpnnDlbrMbrs(LevyExclQuery req) {
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return opnnDlbrMbrMapper.selectOpnnDlbrMbrs(req);
}
/** .
* @param req
* @return
*/
public DataObject getOpnnDlbrMbrInfo(LevyExclQuery req) {
return opnnDlbrMbrMapper.selectOpnnDlbrMbrInfo(req);
}
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
String rtnMsg = ""; // 처리 결과 메시지
boolean rtnScs = opnnDlbrMbrMapper.insertOpnnDlbrMbr(opnnDlbrMbr);
if (!rtnScs) {
throw new RuntimeException("의견제출 심의의원 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
String rtnMsg = ""; // 처리 결과 메시지
boolean rtnScs = opnnDlbrMbrMapper.updateOpnnDlbrMbr(opnnDlbrMbr);
if (!rtnScs) {
throw new RuntimeException("의견제출 심의의원 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
}

@ -0,0 +1,57 @@
package cokr.xit.fims.excl.service.bean;
import java.util.List;
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.excl.LevyExclQuery;
import cokr.xit.fims.excl.OpnnDlbrMbr;
import cokr.xit.fims.excl.service.OpnnDlbrMbrService;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-05-17 JoJH
* ================================
* </pre>
*/
@Service("opnnDlbrMbrService")
public class OpnnDlbrMbrServiceBean extends AbstractServiceBean implements OpnnDlbrMbrService {
/** 의견제출 심의 회원 정보 Bean */
@Resource(name = "opnnDlbrMbrBean")
private OpnnDlbrMbrBean opnnDlbrMbrBean;
@Override
public List<DataObject> getOpnnDlbrMbrList(LevyExclQuery req) {
return opnnDlbrMbrBean.getOpnnDlbrMbrList(req);
}
@Override
public List<DataObject> getOpnnDlbrMbrs(LevyExclQuery req) {
return opnnDlbrMbrBean.getOpnnDlbrMbrs(req);
}
@Override
public DataObject getOpnnDlbrMbrInfo(LevyExclQuery req) {
return opnnDlbrMbrBean.getOpnnDlbrMbrInfo(req);
}
@Override
public String createOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
return opnnDlbrMbrBean.createOpnnDlbrMbr(opnnDlbrMbr);
}
@Override
public String updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
return opnnDlbrMbrBean.updateOpnnDlbrMbr(opnnDlbrMbr);
}
}

@ -63,12 +63,12 @@ public class Excl02Controller extends ApplicationController {
, makeDlbrDecsnFileFromHwpFormat = "/010/makeHwp.do" // 의견제출 심의의결서 HWP 저장
, removeOpinionSubmission = "/010/remove.do" // 의견제출 대장 삭제
, getOpinionSubmissionInfo = "/020/info.do" // 의견제출 대장 조회
, createOpinionSubmission = "/020/create.do" // 의견제출 대장 등
, createOpinionSubmission = "/020/create.do" // 의견제출 대장 등
, updateOpinionSubmission = "/020/update.do" // 의견제출 대장 수정
, getOpinionSubmissionAnswerInfo = "/030/info.do" // 의견제출 대장 심의 조회
, updateOpinionSubmissionAnswer = "/030/update.do" // 의견제출 대장 심의 수정
, getOpinionDeliberationMemberInfo = "/040/info.do" // 의견제출 심의 회원 조회
, createOpinionDeliberationMember = "/040/create.do" // 의견제출 심의 회원 등
, createOpinionDeliberationMember = "/040/create.do" // 의견제출 심의 회원 등
, updateOpinionDeliberationMember = "/040/update.do" // 의견제출 심의 회원 수정
;
}
@ -445,7 +445,7 @@ public class Excl02Controller extends ApplicationController {
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl02030-info");
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl02040-info");
return mav
.addObject("pageName", "excl02040")

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.excl.dao.OpnnDlbrMbrMapper">
<!-- 의견제출 심의 회원 정보 매퍼
========== 변경 이력 ==========
2024-05-17 JoJH 최초 작성
============================ -->
<resultMap id="opnnDlbrMbrRow" type="cokr.xit.fims.excl.OpnnDlbrMbr"> <!-- 의견제출 심의 회원 -->
<result property="mngId" column="MNG_ID" /> <!-- 관리 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="dlbrMbrJbgd1" column="DLBR_MBR_JBGD1" /> <!-- 심의 회원 직급1 -->
<result property="dlbrMbrNm1" column="DLBR_MBR_NM1" /> <!-- 심의 회원 명1 -->
<result property="dlbrMbrJbgd2" column="DLBR_MBR_JBGD2" /> <!-- 심의 회원 직급2 -->
<result property="dlbrMbrNm2" column="DLBR_MBR_NM2" /> <!-- 심의 회원 명2 -->
<result property="dlbrMbrJbgd3" column="DLBR_MBR_JBGD3" /> <!-- 심의 회원 직급3 -->
<result property="dlbrMbrNm3" column="DLBR_MBR_NM3" /> <!-- 심의 회원 명3 -->
<result property="dlbrMbrJbgd4" column="DLBR_MBR_JBGD4" /> <!-- 심의 회원 직급4 -->
<result property="dlbrMbrNm4" column="DLBR_MBR_NM4" /> <!-- 심의 회원 명4 -->
<result property="dlbrMbrJbgd5" column="DLBR_MBR_JBGD5" /> <!-- 심의 회원 직급5 -->
<result property="dlbrMbrNm5" column="DLBR_MBR_NM5" /> <!-- 심의 회원 명5 -->
<result property="dlbrMbrJbgd6" column="DLBR_MBR_JBGD6" /> <!-- 심의 회원 직급6 -->
<result property="dlbrMbrNm6" column="DLBR_MBR_NM6" /> <!-- 심의 회원 명6 -->
<result property="dlbrMbrJbgd7" column="DLBR_MBR_JBGD7" /> <!-- 심의 회원 직급7 -->
<result property="dlbrMbrNm7" column="DLBR_MBR_NM7" /> <!-- 심의 회원 명7 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
</resultMap>
<sql id="select">
SELECT SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, DLBR_MBR_JBGD1 <!-- 심의 회원 직급1 -->
, DLBR_MBR_NM1 <!-- 심의 회원 명1 -->
, DLBR_MBR_JBGD2 <!-- 심의 회원 직급2 -->
, DLBR_MBR_NM2 <!-- 심의 회원 명2 -->
, DLBR_MBR_JBGD3 <!-- 심의 회원 직급3 -->
, DLBR_MBR_NM3 <!-- 심의 회원 명3 -->
, DLBR_MBR_JBGD4 <!-- 심의 회원 직급4 -->
, DLBR_MBR_NM4 <!-- 심의 회원 명4 -->
, DLBR_MBR_JBGD5 <!-- 심의 회원 직급5 -->
, DLBR_MBR_NM5 <!-- 심의 회원 명5 -->
, DLBR_MBR_JBGD6 <!-- 심의 회원 직급6 -->
, DLBR_MBR_NM6 <!-- 심의 회원 명6 -->
, DLBR_MBR_JBGD7 <!-- 심의 회원 직급7 -->
, DLBR_MBR_NM7 <!-- 심의 회원 명7 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
FROM TB_OPNN_DLBR_MBR
</sql>
<select id="selectOpnnDlbrMbrList" parameterType="map" resultType="dataobject">/* 의견제출 심의 회원 목록 조회(opnnDlbrMbrMapper.selectOpnnDlbrMbrList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectOpnnDlbrMbrs" parameterType="map" resultType="dataobject">/* 의견제출 심의 회원 객체 가져오기(opnnDlbrMbrMapper.selectOpnnDlbrMbrs) */
<include refid="select" />
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
</select>
<select id="selectOpnnDlbrMbrInfo" parameterType="map" resultType="dataobject">/* 의견제출 심의 회원 정보 가져오기(opnnDlbrMbrMapper.selectOpnnDlbrMbrInfo) */
SELECT T.SGG_CD <!-- 시군구 코드 -->
, T.TASK_SE_CD <!-- 업무 구분 코드 -->
, ODM.MNG_ID <!-- 관리 ID -->
, ODM.DLBR_MBR_JBGD1 <!-- 심의 회원 직급1 -->
, ODM.DLBR_MBR_NM1 <!-- 심의 회원 명1 -->
, ODM.DLBR_MBR_JBGD2 <!-- 심의 회원 직급2 -->
, ODM.DLBR_MBR_NM2 <!-- 심의 회원 명2 -->
, ODM.DLBR_MBR_JBGD3 <!-- 심의 회원 직급3 -->
, ODM.DLBR_MBR_NM3 <!-- 심의 회원 명3 -->
, ODM.DLBR_MBR_JBGD4 <!-- 심의 회원 직급4 -->
, ODM.DLBR_MBR_NM4 <!-- 심의 회원 명4 -->
, ODM.DLBR_MBR_JBGD5 <!-- 심의 회원 직급5 -->
, ODM.DLBR_MBR_NM5 <!-- 심의 회원 명5 -->
, ODM.DLBR_MBR_JBGD6 <!-- 심의 회원 직급6 -->
, ODM.DLBR_MBR_NM6 <!-- 심의 회원 명6 -->
, ODM.DLBR_MBR_JBGD7 <!-- 심의 회원 직급7 -->
, ODM.DLBR_MBR_NM7 <!-- 심의 회원 명7 -->
, ODM.REG_DT <!-- 등록 일시 -->
, ODM.RGTR <!-- 등록자 -->
, ODM.MDFCN_DT <!-- 수정 일시 -->
, ODM.MDFR <!-- 수정자 -->
FROM TB_TASK T
LEFT OUTER JOIN TB_OPNN_DLBR_MBR ODM ON (T.SGG_CD = ODM.SGG_CD AND T.TASK_SE_CD = ODM.TASK_SE_CD)
WHERE T.SGG_CD = #{sggCd}
AND T.TASK_SE_CD = #{taskSeCd}
</select>
<insert id="insertOpnnDlbrMbr" parameterType="map">/* 의견제출 심의 회원 등록(opnnDlbrMbrMapper.insertOpnnDlbrMbr) */
<selectKey resultType="string" keyProperty="opnnDlbrMbr.mngId" keyColumn="NEW_ID" order="BEFORE">
SELECT LPAD(CAST(IFNULL(MAX(MNG_ID) + 1, 1) AS INT), 10, '0') AS NEW_ID
FROM TB_OPNN_DLBR_MBR
</selectKey>
INSERT
INTO TB_OPNN_DLBR_MBR (
MNG_ID <!-- 관리 ID -->
, SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, DLBR_MBR_JBGD1 <!-- 심의 회원 직급1 -->
, DLBR_MBR_NM1 <!-- 심의 회원 명1 -->
, DLBR_MBR_JBGD2 <!-- 심의 회원 직급2 -->
, DLBR_MBR_NM2 <!-- 심의 회원 명2 -->
, DLBR_MBR_JBGD3 <!-- 심의 회원 직급3 -->
, DLBR_MBR_NM3 <!-- 심의 회원 명3 -->
, DLBR_MBR_JBGD4 <!-- 심의 회원 직급4 -->
, DLBR_MBR_NM4 <!-- 심의 회원 명4 -->
, DLBR_MBR_JBGD5 <!-- 심의 회원 직급5 -->
, DLBR_MBR_NM5 <!-- 심의 회원 명5 -->
, DLBR_MBR_JBGD6 <!-- 심의 회원 직급6 -->
, DLBR_MBR_NM6 <!-- 심의 회원 명6 -->
, DLBR_MBR_JBGD7 <!-- 심의 회원 직급7 -->
, DLBR_MBR_NM7 <!-- 심의 회원 명7 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{opnnDlbrMbr.mngId} <!-- 관리 ID -->
, #{opnnDlbrMbr.sggCd} <!-- 시군구 코드 -->
, #{opnnDlbrMbr.taskSeCd} <!-- 업무 구분 코드 -->
, #{opnnDlbrMbr.dlbrMbrJbgd1} <!-- 심의 회원 직급1 -->
, #{opnnDlbrMbr.dlbrMbrNm1} <!-- 심의 회원 명1 -->
, #{opnnDlbrMbr.dlbrMbrJbgd2} <!-- 심의 회원 직급2 -->
, #{opnnDlbrMbr.dlbrMbrNm2} <!-- 심의 회원 명2 -->
, #{opnnDlbrMbr.dlbrMbrJbgd3} <!-- 심의 회원 직급3 -->
, #{opnnDlbrMbr.dlbrMbrNm3} <!-- 심의 회원 명3 -->
, #{opnnDlbrMbr.dlbrMbrJbgd4} <!-- 심의 회원 직급4 -->
, #{opnnDlbrMbr.dlbrMbrNm4} <!-- 심의 회원 명4 -->
, #{opnnDlbrMbr.dlbrMbrJbgd5} <!-- 심의 회원 직급5 -->
, #{opnnDlbrMbr.dlbrMbrNm5} <!-- 심의 회원 명5 -->
, #{opnnDlbrMbr.dlbrMbrJbgd6} <!-- 심의 회원 직급6 -->
, #{opnnDlbrMbr.dlbrMbrNm6} <!-- 심의 회원 명6 -->
, #{opnnDlbrMbr.dlbrMbrJbgd7} <!-- 심의 회원 직급7 -->
, #{opnnDlbrMbr.dlbrMbrNm7} <!-- 심의 회원 명7 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{opnnDlbrMbr.createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{opnnDlbrMbr.modifiedBy} <!-- 수정자 -->
)
</insert>
<update id="updateOpnnDlbrMbr" parameterType="map">/* 의견제출 심의 회원 수정(opnnDlbrMbrMapper.updateOpnnDlbrMbr) */
UPDATE TB_OPNN_DLBR_MBR
SET DLBR_MBR_JBGD1 = #{opnnDlbrMbr.dlbrMbrJbgd1} <!-- 심의 회원 직급1 -->
, DLBR_MBR_NM1 = #{opnnDlbrMbr.dlbrMbrNm1} <!-- 심의 회원 명1 -->
, DLBR_MBR_JBGD2 = #{opnnDlbrMbr.dlbrMbrJbgd2} <!-- 심의 회원 직급2 -->
, DLBR_MBR_NM2 = #{opnnDlbrMbr.dlbrMbrNm2} <!-- 심의 회원 명2 -->
, DLBR_MBR_JBGD3 = #{opnnDlbrMbr.dlbrMbrJbgd3} <!-- 심의 회원 직급3 -->
, DLBR_MBR_NM3 = #{opnnDlbrMbr.dlbrMbrNm3} <!-- 심의 회원 명3 -->
, DLBR_MBR_JBGD4 = #{opnnDlbrMbr.dlbrMbrJbgd4} <!-- 심의 회원 직급4 -->
, DLBR_MBR_NM4 = #{opnnDlbrMbr.dlbrMbrNm4} <!-- 심의 회원 명4 -->
, DLBR_MBR_JBGD5 = #{opnnDlbrMbr.dlbrMbrJbgd5} <!-- 심의 회원 직급5 -->
, DLBR_MBR_NM5 = #{opnnDlbrMbr.dlbrMbrNm5} <!-- 심의 회원 명5 -->
, DLBR_MBR_JBGD6 = #{opnnDlbrMbr.dlbrMbrJbgd6} <!-- 심의 회원 직급6 -->
, DLBR_MBR_NM6 = #{opnnDlbrMbr.dlbrMbrNm6} <!-- 심의 회원 명6 -->
, DLBR_MBR_JBGD7 = #{opnnDlbrMbr.dlbrMbrJbgd7} <!-- 심의 회원 직급7 -->
, DLBR_MBR_NM7 = #{opnnDlbrMbr.dlbrMbrNm7} <!-- 심의 회원 명7 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{opnnDlbrMbr.modifiedBy} <!-- 수정자 -->
WHERE MNG_ID = #{opnnDlbrMbr.mngId}
</update>
</mapper>

@ -181,6 +181,9 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-info w-px-120" id="btnDlbrMbr--${pageName}" title="심의위원 관리">
심의위원 관리
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="의견제출 수정">
의견제출 수정
</button>
@ -530,8 +533,8 @@
let params = {
callControlName: "pageObject['${pageName}'].control"
, sggCd: $("#sggCd--${pageName}").val()
, taskSeCd: $("input[name=taskSeCd]:checked").val()
, sggCd: $P.control.dataset.getValue("SGG_CD")
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD")
, crdnId: crdnId
}
@ -560,6 +563,34 @@
$P.control.load(1);
}
// 심의의결서 출력
$P.makeHwpFileDlbrDecsn = (params) => {
if (!params) return;
let url = wctx.url("/" + params.taskSeCd + "/excl/excl02/010/makeHwp.do")
let parameter = toQuery({
opnnIds: params.opnnIds
, taskSeCd: params.taskSeCd
});
document.location.href = url + "?" + parameter;
}
// 의견제출 삭제사유 callback
$P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {};
let selected = $P.control.dataset.getKeys("selected");
params[$P.control.prefixed("Ids")] = selected.join(","); // IDs
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params);
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
@ -682,20 +713,6 @@
});
}
// 심의의결서 출력
$P.makeHwpFileDlbrDecsn = (params) => {
if (!params) return;
let url = wctx.url("/" + params.taskSeCd + "/excl/excl02/010/makeHwp.do")
let parameter = toQuery({
opnnIds: params.opnnIds
, taskSeCd: params.taskSeCd
});
document.location.href = url + "?" + parameter;
}
// 심의의결서 출력 버튼 클릭 이벤트
$P.fnPrintDlbrDecsn = (title) => {
// 선택 자료
@ -720,20 +737,6 @@
$P.makeHwpFileDlbrDecsn(params);
}
// 의견제출 삭제사유 callback
$P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {};
let selected = $P.control.dataset.getKeys("selected");
params[$P.control.prefixed("Ids")] = selected.join(","); // IDs
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params);
}
// 의견제출 삭제 버튼 클릭 이벤트
$P.fnRemove = (title) => {
// 선택 자료
@ -769,6 +772,29 @@
});
}
// 심의위원 관리 버튼 클릭 이벤트
$P.fnDlbrMbr = (title) => {
let params = {
title: title
, callPurpose: "update" // 호출용도: 수정
, sggCd: $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd: $("input[name=taskSeCd]:checked").val() // 업무 구분 코드
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/040/info.do")
, data: params
, success: resp => {
dialog.open({
id: $P.control.prefixed("DlbrMbrDialog")
, title: $P.control.prefixName + " 심의위원 관리"
, content: resp
, size: "md"
});
}
});
}
/**************************************************************************
* 초기 설정
**************************************************************************/
@ -816,6 +842,10 @@
$("#btnRemove--${pageName}").on("click", function() {
$P.fnRemove($(this).attr("title"));
});
// 심의위원 관리 버튼 이벤트
$("#btnDlbrMbr--${pageName}").on("click", function() {
$P.fnDlbrMbr($(this).attr("title"));
});
// DataTables width 변경 조정
fnMakeResizableTable($("#table-responsive--${pageName}")[0]);

@ -0,0 +1,252 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">의견제출 심의 정보</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="mngId--${pageName}" name="mngId" data-map="MNG_ID" />
<div class="row g-1">
<!-- 1 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd1--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원1</label>
<label for="dlbrMbrJbgd1--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd1--${pageName}" name="dlbrMbrJbgd1" data-map="DLBR_MBR_JBGD1" />
</div>
<!-- 1 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm1--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm1--${pageName}" name="dlbrMbrNm1" data-map="DLBR_MBR_NM1" />
</div>
<!-- 2 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd2--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원2</label>
<label for="dlbrMbrJbgd2--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd2--${pageName}" name="dlbrMbrJbgd2" data-map="DLBR_MBR_JBGD2" />
</div>
<!-- 2 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm2--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm2--${pageName}" name="dlbrMbrNm2" data-map="DLBR_MBR_NM2" />
</div>
<!-- 3 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd3--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원3</label>
<label for="dlbrMbrJbgd3--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd3--${pageName}" name="dlbrMbrJbgd3" data-map="DLBR_MBR_JBGD3" />
</div>
<!-- 3 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm3--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm3--${pageName}" name="dlbrMbrNm3" data-map="DLBR_MBR_NM3" />
</div>
<!-- 4 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd4--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원4</label>
<label for="dlbrMbrJbgd4--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd4--${pageName}" name="dlbrMbrJbgd4" data-map="DLBR_MBR_JBGD4" />
</div>
<!-- 4 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm4--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm4--${pageName}" name="dlbrMbrNm4" data-map="DLBR_MBR_NM4" />
</div>
<!-- 5 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd5--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원5</label>
<label for="dlbrMbrJbgd5--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd5--${pageName}" name="dlbrMbrJbgd5" data-map="DLBR_MBR_JBGD5" />
</div>
<!-- 5 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm5--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm5--${pageName}" name="dlbrMbrNm5" data-map="DLBR_MBR_NM5" />
</div>
<!-- 6 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd6--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원6</label>
<label for="dlbrMbrJbgd6--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd6--${pageName}" name="dlbrMbrJbgd6" data-map="DLBR_MBR_JBGD6" />
</div>
<!-- 6 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm6--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm6--${pageName}" name="dlbrMbrNm6" data-map="DLBR_MBR_NM6" />
</div>
<!-- 7 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd7--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원7</label>
<label for="dlbrMbrJbgd7--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd7--${pageName}" name="dlbrMbrJbgd7" data-map="DLBR_MBR_JBGD7" />
</div>
<!-- 7 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm7--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm7--${pageName}" name="dlbrMbrNm7" data-map="DLBR_MBR_NM7" />
</div>
</div>
</form> <!-- /입력 영역 -->
</div> <!-- <div class="card"> -->
<!-- 업무 버튼 표시 -->
<div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">저장</button>
</span>
</span>
</div>
<!-- / 업무 버튼 표시 -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> -->
</div> <!-- / inner page html <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
prefix: "opnnDlbrMbr"
, prefixName: "의견제출 심의위원 관리"
, keymapper: info => info ? info.MNG_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
if (!item) return;
// Dataset 셋팅
$P.formFields.set($P.control, item);
// 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD);
}
// 저장 callback
$P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, onOK: () => { }
});
if (resp.saved) {
dialog.close($P.control.prefix + "Dialog");
}
}
// 저장
$P.control.save = (info) => {
if (!info) return;
let create = (info.mngId == "");
ajax.post({
url: !create ? $P.control.urls.update : $P.control.urls.create
, data: info
, success: resp => $P.control.onSave(resp)
});
}
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/update.do"); // 수정
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 저장
$P.fnSave = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 감경 사유 확인
let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val();
let rductRsnCd = $("#rductRsnCd--${pageName} option:selected").val();
let rductRsnNm = $("#rductRsnCd--${pageName} option:selected").text();
if (opnnSbmsnSttsCd == "04" && rductRsnCd == "00") {
dialog.alert({
content: "감경사유가 '" + rductRsnNm + "' 입니다."
+ "<br>" + "[" + $P.control.prefixName + " 저장" + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
}
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, onOK: () => {
$P.control.save($P.formFields.get()); // formFields
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
$P.setEvent = () => {
// 저장 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave());
}
// 초기 화면 설정
$P.initForm = () => {
// Dialog 마우스로 드래그 할 수 있도록 설정.
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog"));
}
/**************************************************************************
* 최초 실행 함수
**************************************************************************/
// 1. 이벤트 설정
$P.setEvent();
// 2. 초기 화면 설정
$P.initForm();
// 3. Dataset 설정
$P.control.setData([${opnnDlbrMbrInfo}]);
});
</script>
Loading…
Cancel
Save