엑셀불러오기 이름, 치환1~4 바이트수계산 로직 수정

This commit is contained in:
itn 2023-07-24 14:25:08 +09:00
parent 14bce466fa
commit 6f2ba59159
5 changed files with 75 additions and 32 deletions

View File

@ -24,6 +24,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
@ -4445,6 +4446,8 @@ public class MjonMsgDataController {
int errRep2Cnt = 0;
int errRep3Cnt = 0;
int errRep4Cnt = 0;
String errPhoneLine = "";
String errEtcLine = "";
//엑셀 확장자에 따른 처리 로직 분리
if(Ext.equals("xls")) {
@ -4503,6 +4506,7 @@ public class MjonMsgDataController {
jm.put("name", cellValue);
}else {
errNameCnt++;
errEtcLine += (i+1) + "행(이름) ";
errSts = false;
break;
}
@ -4514,6 +4518,7 @@ public class MjonMsgDataController {
jm.put("phone", cellValue);
}else {
errPhoneCnt++;
errPhoneLine += (i+1) + "";
errSts = false;
break;
}
@ -4526,6 +4531,7 @@ public class MjonMsgDataController {
jm.put("replace1", cellValue);
}else {
errRep1Cnt++;
errEtcLine += (i+1) + "행(치환1) ";
errSts = false;
break;
}
@ -4538,6 +4544,7 @@ public class MjonMsgDataController {
jm.put("replace2", cellValue);
}else {
errRep2Cnt++;
errEtcLine += (i+1) + "행(치환2) ";
errSts = false;
break;
}
@ -4551,6 +4558,7 @@ public class MjonMsgDataController {
jm.put("replace3", cellValue);
}else {
errRep3Cnt++;
errEtcLine += (i+1) + "행(치환3) ";
errSts = false;
break;
}
@ -4564,6 +4572,7 @@ public class MjonMsgDataController {
jm.put("replace4", cellValue);
}else {
errRep4Cnt++;
errEtcLine += (i+1) + "행(치환4) ";
errSts = false;
break;
}
@ -4578,13 +4587,29 @@ public class MjonMsgDataController {
}
int resultErrCnt = errPhoneCnt + errNameCnt + errRep1Cnt + errRep2Cnt + errRep3Cnt + errRep4Cnt;
int resultErrCntExceptPhone = errPhoneCnt + errNameCnt + errRep1Cnt + errRep2Cnt + errRep3Cnt + errRep4Cnt;
int resultErrCntExceptPhone = errNameCnt + errRep1Cnt + errRep2Cnt + errRep3Cnt + errRep4Cnt;
jr.setData(json);
jr.setSuccess(true);
if(resultErrCnt > 0) {
jr.setMessage("유효하지 않은 형식의 전화번호 "+ errPhoneCnt +"건,\n이름 : 20byte, [*1*] [*2*] : 40byte 제한글자수 초과 "+ resultErrCntExceptPhone +"건 있습니다.\n해당 건을 제외하고 문자 발송됩니다.");
if (errPhoneCnt <= 10) {
if (StringUtils.isNotEmpty(errPhoneLine.trim())) {
errPhoneLine = "[" + errPhoneLine.trim() + "]";
}
}
else {
errPhoneLine = "";
}
if (resultErrCntExceptPhone <= 10) {
if (StringUtils.isNotEmpty(errEtcLine.trim())) {
errEtcLine = "[" + errEtcLine.trim() + "]";
}
}
else {
errEtcLine = "";
}
jr.setMessage("유효하지 않은 형식의 전화번호 "+ errPhoneCnt +"" + errPhoneLine.trim() + "\n이름 : 20byte, [*1*]~[*4*] : 40byte 제한글자수 초과 "+ resultErrCntExceptPhone +"" + errEtcLine.trim() + " 있습니다.\n해당 건을 제외하고 문자 발송됩니다.");
}else {
jr.setMessage("");
}
@ -4670,6 +4695,7 @@ public class MjonMsgDataController {
jm.put("name", cellValue);
}else {
errNameCnt++;
errEtcLine += (i+1) + "행(이름) ";
errSts = false;
break;
}
@ -4682,6 +4708,7 @@ public class MjonMsgDataController {
jm.put("phone", cellValue);
}else {
errPhoneCnt++;
errPhoneLine += (i+1) + "";
errSts = false;
break;
}
@ -4694,6 +4721,7 @@ public class MjonMsgDataController {
jm.put("replace1", cellValue);
}else {
errRep1Cnt++;
errEtcLine += (i+1) + "행(치환1) ";
errSts = false;
break;
}
@ -4707,6 +4735,7 @@ public class MjonMsgDataController {
jm.put("replace2", cellValue);
}else {
errRep2Cnt++;
errEtcLine += (i+1) + "행(치환2) ";
errSts = false;
break;
}
@ -4720,6 +4749,7 @@ public class MjonMsgDataController {
jm.put("replace3", cellValue);
}else {
errRep3Cnt++;
errEtcLine += (i+1) + "행(치환3) ";
errSts = false;
break;
}
@ -4733,6 +4763,7 @@ public class MjonMsgDataController {
jm.put("replace4", cellValue);
}else {
errRep4Cnt++;
errEtcLine += (i+1) + "행(치환4) ";
errSts = false;
break;
}
@ -4748,13 +4779,29 @@ public class MjonMsgDataController {
}
int resultErrCnt = errPhoneCnt + errNameCnt + errRep1Cnt + errRep2Cnt + errRep3Cnt + errRep4Cnt;
int resultErrCntExceptPhone = errPhoneCnt + errNameCnt + errRep1Cnt + errRep2Cnt + errRep3Cnt + errRep4Cnt;
int resultErrCntExceptPhone = errNameCnt + errRep1Cnt + errRep2Cnt + errRep3Cnt + errRep4Cnt;
jr.setData(json);
jr.setSuccess(true);
if(resultErrCnt > 0) {
jr.setMessage("유효하지 않은 형식의 전화번호 "+ errPhoneCnt +"건,\n이름 : 20byte, [*1*] [*2*] : 40byte 제한글자수 초과 "+ resultErrCntExceptPhone +"건 있습니다.\n해당 건을 제외하고 문자 발송됩니다.");
if (errPhoneCnt <= 10) {
if (StringUtils.isNotEmpty(errPhoneLine.trim())) {
errPhoneLine = "[" + errPhoneLine.trim() + "]";
}
}
else {
errPhoneLine = "";
}
if (resultErrCntExceptPhone <= 10) {
if (StringUtils.isNotEmpty(errEtcLine.trim())) {
errEtcLine = "[" + errEtcLine.trim() + "]";
}
}
else {
errEtcLine = "";
}
jr.setMessage("유효하지 않은 형식의 전화번호 "+ errPhoneCnt +"" + errPhoneLine.trim() + "\n이름 : 20byte, [*1*]~[*4*] : 40byte 제한글자수 초과 "+ resultErrCntExceptPhone +"" + errEtcLine.trim() + " 있습니다.\n해당 건을 제외하고 문자 발송됩니다.");
}else {
jr.setMessage("");
}
@ -5782,32 +5829,28 @@ public class MjonMsgDataController {
return modelAndView;
}
// 치환문자 바이트수 체크
public boolean getNameRepLenChk(String type, String value) {
String charset = "euc-kr";
boolean rtnValue = true;
if(type.equals("name")) {
String tmpNm = value;
int nmLen = tmpNm.length();
if(nmLen > 12) {
rtnValue = false;
try {
if(type.equals("name")) {
String tmpNm = value;
int nmLen = tmpNm.getBytes(charset).length;
if(nmLen >= 20) {
rtnValue = false;
}
}else if(type.equals("rep")) {
String tmpRep = value;
int repLen = tmpRep.getBytes(charset).length;
if(repLen >= 40) {
rtnValue = false;
}
}
}else if(type.equals("rep")) {
String tmpRep = value;
int repLen = tmpRep.length();
if(repLen > 20) {
rtnValue = false;
}
}
catch(Exception e) {
rtnValue = false;
}
return rtnValue;

View File

@ -130,11 +130,11 @@ function excelExport(event){
if(fileExt == "xls" || fileExt == "xlsx"){
url = "/web/mjon/msgcampain/sendExelFilePhoneNumAjax.do";
url = "/web/mjon/msgdata/sendExelFilePhoneNumAjax.do";
}else if(fileExt = "txt"){
url = "/web/mjon/msgcampain/sendTxtFilePhoneNumAjax.do";
url = "/web/mjon/msgdata/sendTxtFilePhoneNumAjax.do";
}else{
@ -3368,7 +3368,7 @@ $(".btn_event_cash").off().on("click", function(){
<div class="titBox">
<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
<p>- [엑셀 불러오기]시 문서의 A, B, C, D열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
<p>- 이름 : 20byte, [*1*] [*2*] : 40byte까지 입력 가능합니다.</p>
<p>- 이름 : 20byte, [*1*]~[*4*] : 40byte까지 입력 가능합니다.</p>
<p>- 휴대폰 항목은 숫자, 하이픈(-)만 인식하며, 번호 앞에 0이 생략되어도 정상 등록됩니다.
</p>
<%-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011651&fileSn=1'"><i></i>샘플파일 다운로드</button> --%>

View File

@ -3010,7 +3010,7 @@ $(".btn_event_cash").off().on("click", function(){
<div class="titBox">
<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
<p>- [엑셀 불러오기]시 문서의 A, B, C, D열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
<p>- 이름 : 20byte, [*1*] [*2*] : 40byte까지 입력 가능합니다.</p>
<p>- 이름 : 20byte, [*1*]~[*4*] : 40byte까지 입력 가능합니다.</p>
<p>- 휴대폰 항목은 숫자, 하이픈(-)만 인식하며, 번호 앞에 0이 생략되어도 정상 등록됩니다.
</p>
<%-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011651&fileSn=1'"><i></i>샘플파일 다운로드</button> --%>

View File

@ -3250,7 +3250,7 @@ $(".btn_event_cash").off().on("click", function(){
<div class="titBox">
<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
<p>- [엑셀 불러오기]시 문서의 A, B, C, D열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
<p>- 이름 : 20byte, [*1*] [*2*] : 40byte까지 입력 가능합니다.</p>
<p>- 이름 : 20byte, [*1*]~[*4*] : 40byte까지 입력 가능합니다.</p>
<p>- 휴대폰 항목은 숫자, 하이픈(-)만 인식하며, 번호 앞에 0이 생략되어도 정상 등록됩니다.
</p>
<!-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011651&fileSn=1'"><i></i>샘플파일 다운로드</button> -->

View File

@ -2901,7 +2901,7 @@ $(".btn_event_cash").off().on("click", function(){
<div class="titBox">
<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
<p>- [엑셀 불러오기]시 문서의 A, B, C, D열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
<p>- 이름 : 20byte, [*1*] [*2*] : 40byte까지 입력 가능합니다.</p>
<p>- 이름 : 20byte, [*1*]~[*4*] : 40byte까지 입력 가능합니다.</p>
<p>- 휴대폰 항목은 숫자, 하이픈(-)만 인식하며, 번호 앞에 0이 생략되어도 정상 등록됩니다.
</p>
<%-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011651&fileSn=1'"><i></i>샘플파일 다운로드</button> --%>