Merge branch 'master' into sub

This commit is contained in:
subsub 2023-09-08 09:41:09 +09:00
commit 614bfde027
11 changed files with 186 additions and 29 deletions

View File

@ -1,5 +1,6 @@
package kcc.kccadr.adjPgrMgr.cclt.web;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -20,6 +21,8 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.mysql.fabric.xmlrpc.base.Array;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
@ -120,6 +123,7 @@ public class ConciliatorManageController {
model.addAttribute("paginationInfo", paginationInfo);
List<ConciliatorManageVO> list = conciliatorManageService.selectConciliatorManageList(conciliatorManageVO);
this.decryptInfomation(list , null);
model.addAttribute("list", list);
if(StringUtils.isNotBlank(conciliatorManageVO.getSearchKeyword())){
@ -151,8 +155,20 @@ public class ConciliatorManageController {
model.addAttribute("fileList", fileList);
}
this.decryptInfomation(null , info);
String memTeam = info.getMemTeam();
String[] memTeamArray;
if(StringUtil.isNotEmpty(memTeam)) {
memTeamArray = memTeam.split("§");
}else {
memTeamArray = new String[]{""};
}
model.addAttribute("model", info);
model.addAttribute("list", conciliatorManageService.selectConciliatorDeptList(conciliatorManageVO));
model.addAttribute("memTeamArray", memTeamArray);
return "kccadr/adjPgrMgr/cclt/ConciliatorManageDetail";
}

View File

@ -174,6 +174,8 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
private String codeId;
private String loginNextUrl;
private String countryCode;
public String getSrchYear() {
@ -895,6 +897,12 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
public void setExmpMgrId(String exmpMgrId) {
this.exmpMgrId = exmpMgrId;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
}

View File

@ -919,6 +919,13 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
if(CollectionUtils.isNotEmpty(adjstReqVO.getAdjstRpplList())){
for(AdjstReqVO model : adjstReqVO.getAdjstRpplList()){
if(StringUtils.isNotEmpty(model.getCountryCode())) {
model.setRpplPost("["+model.getCountryCode() + "] " +model.getRpplPost());
}
System.out.println(" model.getRpplPost() :: "+ model.getRpplPost());
model.setAdrSeq(adjstReqVO.getAdrSeq());
// 관련인 생성
model.setRpplSeq(rpplIdgenService.getNextStringId());
@ -974,6 +981,13 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
int rs = 0;
if(CollectionUtils.isNotEmpty(adjstReqVO.getAdjstRpplList())){
for(AdjstReqVO model : adjstReqVO.getAdjstRpplList()){
if(StringUtils.isNotEmpty(model.getCountryCode())) {
model.setRpplPost("["+model.getCountryCode() + "] " +model.getRpplPost());
}
System.out.println("model.getRpplPost() ::" + model.getRpplPost());
model.setAdrSeq(adjstReqVO.getAdrSeq());
// 최초등록자
model.setFrstRegisterId(adjstReqVO.getFrstRegisterId());

View File

@ -7,6 +7,8 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -373,6 +375,29 @@ public class AdjstReqWebController {
req.setRpplTy(KccadrConstants.ADR_RPPL_TY_REQ);
list.add(req);
}
int cnt = 0;
for(AdjstReqVO adj : list) {
if("10".equals(adj.getRpplTy())
&& "02".equals(adj.getRpplUsrDiv())) {
Pattern pattern = Pattern.compile("\\[(.*?)\\]");
Matcher matcher = pattern.matcher(adj.getRpplPost());
if (matcher.find()) {
String extracted = matcher.group(1);
// list.get(cnt).setCountryCode(extracted);
adj.setCountryCode(extracted);
System.out.println(" :: adj.getCountryCode() :: "+adj.getCountryCode());
}
// list.get(cnt).setRpplPost(adj.getRpplPost().replaceAll("\\[.*?\\]", ""));
adj.setRpplPost(adj.getRpplPost().replaceAll("\\[.*?\\]", "").trim());
}
cnt++;
}
model.addAttribute("editInfo", adjstReqService.checkAdjsReqEditStatus(adjstReqVO));
model.addAttribute("master", adjMsrMaster);
}else{

View File

@ -60,7 +60,8 @@
DATE_FORMAT(T1.LAST_UPDT_PNTTM, '%Y-%m-%d') AS lastUpdtPnttm,
T1.LAST_UPDUSR_ID AS lastUpdusrId,
DECODE(T2.MEM_DEPT_NMS, NULL , '-', REPLACE(T2.MEM_DEPT_NMS, '부', '')) AS memDeptNms,
(SELECT COUNT(1) FROM ADR_MEM_DEPT_MAP WHERE MEM_SEQ = T1.MEM_SEQ) AS memDeptTot
(SELECT COUNT(1) FROM ADR_MEM_DEPT_MAP WHERE MEM_SEQ = T1.MEM_SEQ) AS memDeptTot,
T1.MEM_TEAM as memTeam
FROM ADR_MEM_MGR T1
LEFT JOIN
( SELECT S2.MEM_SEQ,

View File

@ -45,7 +45,7 @@
}
function fncCancle (){
if(confirm("작성된 내용의 수정을 취소하시겠습니까?")){
if(confirm("작성내용을 저장하려면 수정 버튼을 먼저 클릭해야 합니다.\n저장하지 않고 이전목록으로 돌아가시겠습니까?")){
fncGoList();
}
}
@ -85,7 +85,19 @@
}
if(confirm("작성된 내용을 수정 하시겠습니까?")){
var memTeam = "";
$('tr [id^="memTeam"]').each(function (index, item) {
if(item.value != ''){
if(index != 0){
memTeam += "§" + item.value;
}else{
memTeam += item.value;
}
}
});
$('#memTeam').val(memTeam);
var data = new FormData(document.getElementById("model"));
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
@ -156,7 +168,18 @@
goFrom.action = "<c:url value='/kccadr/adjPgrMgr/adjDept/AdjustDeptManagerDetail.do'/>";
goFrom.submit();
}
function fncMemTeamCreate(obj){
var memTeamArrayLeng = parseInt($('#memArrayCnt').val()) == 0 ? 1 : parseInt($('#memArrayCnt').val());
var memTeamHtml = "<tr><th><span class=\"\">소속"+ memTeamArrayLeng +"</span></th><td><input type=\"text\" id=\"memTeam"+ memTeamArrayLeng +"\" name =\"memTeam"+ memTeamArrayLeng +"\" value=\"\" style=\"width: 400px;\"/></td></tr>";
var newRow = document.getElementById("table0").insertRow($(obj.parentElement.parentElement).closest('tr').prevAll().length + memTeamArrayLeng);
newRow.innerHTML = memTeamHtml;
$('#memArrayCnt').val(memTeamArrayLeng + 1);
}
</script>
</head>
<body>
@ -173,6 +196,8 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${conciliatorManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${conciliatorManageVO.pageIndex}'/>"/>
<input type="hidden" name="memApprYn" id="memApprYn" value=""/>
<input type="hidden" name="memArrayCnt" id="memArrayCnt" value="<c:out value='${fn:length(memTeamArray)}'/>"/>
<input type="hidden" name="memTeam" id="memTeam" value=""/>
<!-- cont -->
<div class="cont_wrap">
@ -191,7 +216,7 @@
<div class="cont">
<p class="tb_tit">조정위원 상세/수정</p>
<div class="tbType02">
<table>
<table id="table0">
<colgroup>
<col style="width: 10%">
<col style="width: 40%">
@ -203,13 +228,49 @@
<th><span class="">아이디</span></th>
<td colspan="3"><c:out value="${model.memId}"/></td>
</tr>
<tr>
<tr id="tr0">
<th><span class="">성명</span></th>
<td><c:out value="${model.memName}"/></td>
<th><span class="">소속</span></th>
<td><input type="text" id="memTeam" name ="memTeam" value="<c:out value='${model.memTeam}'/>"/></td>
</tr>
<c:choose>
<c:when test="${fn:length(memTeamArray) > 0}">
<c:forEach var="memTeam" items="${memTeamArray}" varStatus="status">
<tr>
<th>
<span class="">
소속
<c:if test="${status.index ne 0}">
${status.index}
</c:if>
</span>
</th>
<td>
<input type="text" id="memTeam${status.index}" name ="memTeam${status.index}" value="<c:out value='${memTeam}'/>" style="width: 400px;"/>
<c:if test="${status.index eq 0}">
<button type="button" style="border: none;background-color: transparent;width: 20px;height: 20px;background-image: url(/pb/img/common/plusBtn.png);background-repeat: no-repeat;margin: 15px;cursor: pointer;"
onclick="fncMemTeamCreate(this);"
/>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<th>
<span class="">
소속
</span>
</th>
<td>
<input type="text" id="memTeam0" name ="memTeam0" value="" style="width: 400px;"/>
<button type="button" style="border: none;background-color: transparent;width: 20px;height: 20px;background-image: url(/pb/img/common/plusBtn.png);background-repeat: no-repeat;margin: 15px;cursor: pointer;"
onclick="fncMemTeamCreate(this);"
/>
</td>
</tr>
</c:otherwise>
</c:choose>
<tr>
<th><span class="">연락처</span></th>
<td colspan="3"><c:out value="${model.memCelnum}"/></td>
@ -348,7 +409,7 @@
<c:if test="${model.memApprYn ne 'Y' }">
<button class="btnType06" onclick="fncDelete(); return false;">삭제</button>
</c:if>
<button class="btnType04" onclick="fncCancle(); return false;">취소</button>
<button class="btnType04" onclick="fncCancle(); return false;">이전목록</button>
</div>
</div>
</div>

View File

@ -210,8 +210,9 @@
<colgroup>
<%--<col style="width: 4%">--%>
<col style="width: 3%">
<col style="width: 15%">
<col style="width: 8%">
<col style="width: 4%">
<col style="width: 7%">
<col style="width: 9%">
<col style="width: 7%">
<col style="width: 10%">
@ -226,6 +227,7 @@
<th>번호<button class="sort btn_sort" id="sort_memSeq">▲</button></th>
<th>조정부<button type="button" class="sort sortBtn" id=""></button></th>
<th>이름<button type="button" class="sort sortBtn" id=""></button></th>
<th>소속<button type="button" class="sort sortBtn" id=""></button></th>
<th>아이디<button type="button" class="sort sortBtn" id=""></button></th>
<th>전화번호<button type="button" class="sort sortBtn" id=""></button></th>
<th>위원임기<button type="button" class="sort sortBtn" id=""></button></th>
@ -249,19 +251,18 @@
</c:if>
</td>
<td>
<%-- <c:choose>
<c:when test="${empty list.memDeptTot }">
-
</c:when>
<c:otherwise>
조정부(${list.memDeptTot})
</c:otherwise>
</c:choose> --%>
<c:out value="${list.memDeptNms}"/>
</td>
<td>
<c:out value="${list.memName}"/>
</td>
<td>
<c:set var="memTeamArray" value="${fn:split(list.memTeam,'§')}" />
<c:forEach var="memTeam" items="${memTeamArray}" varStatus="status">
${memTeam} </br>
</c:forEach>
<%-- <c:out value="${list.memTeam}"/> --%>
</td>
<td>
<a href="#LINK" onclick="fncDetailPage('<c:out value="${list.memSeq}"/>')"><c:out value="${list.memId}"/></a>

View File

@ -79,7 +79,7 @@ function tutorialPop(){
<div class="inner">
<div class="cont_tit">
<h2>조정신청</h2>
<button type="button" class="btnType03" onclick="tutorialPop();">조정신청 튜토리얼</button>
<button type="button" class="btnType03" onclick="tutorialPop();">전체과정 미리보기(튜토리얼)</button>
</div>

View File

@ -61,6 +61,10 @@ $( document ).ready(function(){
}
});
}
// fn_countryCodeToggle();
// var rpplUsrDiv = '<c:out value="${list }" />';
// var rpplUsrDiv = '<c:out value="${list[1].rpplUsrDiv }" />';
@ -69,6 +73,22 @@ $( document ).ready(function(){
});
function fn_countryCodeToggle(){
console.log('rpplUsrDiv :: ',$('[name="rpplUsrDiv"]').length);
if($('[name="rpplUsrDiv"]').length){
var divVal = $('[name="rpplUsrDiv"]').val();
console.log('divVal :: ', divVal);
if(divVal == '01'){
$('#countryCode').hide();
}else{
$('#countryCode').show();
}
}
};
</script>
</head>
<body>
@ -448,6 +468,8 @@ $( document ).ready(function(){
<td>
<label for="rpplPost${status.index}" class="label">우편번호 입력</label>
<form:input path="adjstRpplList[${status.index}].rpplPost" id="rpplPost${status.index}" size="20" cssClass="adr_input" value="${list.rpplPost}" readonly="${list.rpplUsrDiv eq '01' || empty list.rpplUsrDiv ? true : ''}" placeholder="우편번호입력"/>
<kc:select codeId="ITN018" defaultText="${empty list.countryCode ? '가나' : list.countryCode }" name="countryCode" id="countryCode" css="style='display:${list.rpplUsrDiv eq '01' || empty list.rpplUsrDiv ? 'none' : ''}' " />
<button type="button" class="btnType01 btn_adr_search" onclick="fn_postCode(this);" title="새창팝업 열림" style="display: ${list.rpplUsrDiv ne '02' ? '' : 'none'}">우편번호 검색</button>
<div class="detail_address">
<label for="rpplAddr${status.index}" class="label">주소 입력</label>

View File

@ -80,7 +80,7 @@ function tutorialPop(){
<div class="inner">
<div class="cont_tit">
<h2>조정신청 체험하기</h2>
<button type="button" class="btnType03" onclick="tutorialPop();">조정신청 튜토리얼</button>
<button type="button" class="btnType03" onclick="tutorialPop();">전체과정 미리보기(튜토리얼)</button>
</div>

View File

@ -1047,7 +1047,7 @@ var AdjstReq = {
if(this.STEP == "${KccadrConstants.STEP9}"){
alert("조정신청에서 첨부파일은 필수입력입니다.");
}else{
alert("파일첨부는 필수입력입니다.");
alert("소명자료 파일첨부는 필수항목입니다.\n미리 준비되지 않은 경우 아래 [임시저장] 후 다시 첨부하시기 바랍니다.");
return false;
}
}
@ -1139,10 +1139,16 @@ var AdjstReq = {
var rpplPhone3 = obj.find("input[name$=rpplPhone3]").val();
var rpplEmailYn = obj.find("input[name$=rpplEmailYn]:checked").val();
var rpplSmsYn = obj.find("input[name$=rpplSmsYn]:checked").val();
var rpplRealPost = obj.find("input[name$=rpplRealPost").val();
var rpplRealAddr = obj.find("input[name$=rpplRealAddr").val();
var rpplRealAddrDtl = obj.find("input[name$=rpplRealAddrDtl").val();
var rpplRealPost = obj.find("input[name$=rpplRealPost]").val();
var rpplRealAddr = obj.find("input[name$=rpplRealAddr]").val();
var rpplRealAddrDtl = obj.find("input[name$=rpplRealAddrDtl]").val();
var countryCode = '';
if(rpplUsrDiv == '02')
{
countryCode = obj.find("#countryCode option:selected").text();
}
var rpplPhone = rpplPhone1+rpplPhone2+rpplPhone3;
var rpplEmail = rpplEmail1+"@"+rpplEmail2;
@ -1169,6 +1175,7 @@ var AdjstReq = {
rpplRealAddr : rpplRealAddr,
rpplRealAddrDtl : rpplRealAddrDtl,
rpplPhone : rpplPhone,
countryCode : countryCode,
rpplEmail : rpplEmail,
rpplTy : rpplTy,
};
@ -1496,12 +1503,12 @@ var AdjstReq = {
if (selectedValue === '01') {
// 가장 가까운 주소 입력란을 찾아 readonly 속성을 추가합니다.
$(thisObj).closest('tbody').find('.adr_input').attr('readonly', true);
// $(thisObj).closest('tbody').find('.adr_input').val('');
$(thisObj).closest('tbody').find('.searchResultAddr').attr('readonly', true);
// $(thisObj).closest('tbody').find('.searchResultAddr').val('');
// 가장 가까운 우편번호 검색 버튼을 찾아 보이게 합니다.
$(thisObj).closest('tbody').find('.btn_adr_search').show();
// 국가코드 selectbox
$('#countryCode').hide();
}
// "02": 외국인일 때
@ -1511,7 +1518,9 @@ var AdjstReq = {
$(thisObj).closest('tbody').find('.searchResultAddr').removeAttr('readonly');
// 가장 가까운 우편번호 검색 버튼을 찾아 숨깁니다.
$(thisObj).closest('tbody').find('.btn_adr_search').hide()
$(thisObj).closest('tbody').find('.btn_adr_search').hide();
// 국가코드 selectbox
$('#countryCode').show();
}
}
,expDivision : function(stepVal){