차적변경 수정, 엑셀업로드 차적변경 기능 추가

main
이범준 3 days ago
parent 51e233860d
commit 9c82ce1071

@ -12,6 +12,25 @@
<data xmlns="" />
</xf:instance>
<w2:dataCollection baseNode="map">
<w2:dataList baseNode="list" id="excelUpload" repeatNode="map" saveRemovedData="true" style="">
<w2:columnInfo>
<w2:column id="dummy0" name="더미컬럼0" dataType="text"></w2:column>
<w2:column id="carNo" name="차량번호" dataType="text"></w2:column>
<w2:column id="passDayTimes" name="통과일시" dataType="text"></w2:column>
<w2:column id="fareOfficeBoothId" name="요금소및차로" dataType="text"></w2:column>
<w2:column id="rentCompany" name="렌트회사명" dataType="text"></w2:column>
<w2:column id="dummy1" name="더미컬럼1" dataType="text"></w2:column>
<w2:column id="dummy2" name="더미컬럼2" dataType="text"></w2:column>
<w2:column id="owner" name="소유자명" dataType="text"></w2:column>
<w2:column id="residentNo" name="주민번호" dataType="text"></w2:column>
<w2:column id="postNo" name="우편번호" dataType="text"></w2:column>
<w2:column id="address" name="주소" dataType="text"></w2:column>
<w2:column id="rentPeriod" name="렌트기간" dataType="text"></w2:column>
<w2:column id="rentContact" name="렌트 연락처" dataType="text"></w2:column>
<w2:column id="documentKbn" name="문서분류" dataType="text"></w2:column>
<w2:column id="documentNumber" name="문서관리번호" dataType="text"></w2:column>
</w2:columnInfo>
</w2:dataList>
<w2:dataMap baseNode="map" id="reqCode">
<w2:keyInfo>
<w2:key id="kbn" name="구분" dataType="text"></w2:key>
@ -209,6 +228,8 @@
scwin.onpageload = function() {
documentId.focus();
idx_rentKbn.visible( false );
btn_excelUpTrigger1.setStyle( "display" , "none" );
};
scwin.onpageunload = function() {
@ -219,7 +240,7 @@ scwin.onpageunload = function() {
scwin.inp_keywd_onkeyup = function(e) {
if (e.keyCode == 13) {
reqCode.set( "documentId" , this.getValue() );
//console.log(this.getValue());
scwin.btn_search_onclick();
}
};
@ -630,7 +651,142 @@ scwin.btn_button03_onclick = function(e) {
};
//차적변경
//엑셀다운로드
scwin.btn_excel_down_onclick = function(e) {
if (resCode.getRowCount() == 0) {
com.alert("엑셀다운로드할 정보가 없습니다.");
return;
}
// 엑셀저장
var info = {};
var options = {};
options.showProcess = "true"; //다운로드 시 프로세스 창을 보여줄지 여부 (true:보임)
options.showConfirm = "true"; //다운로드 확인창을 띄울지 여부 (false:미확인)
options.useFooter = "true"; //다운로드 시 Footer를 출력 할지 여부 (true:포함)
options.useSubTotal = "true"; //다운로드 시 SubTotal을 출력 할지 여부 (false:미포함)
options.useSubTotalData = "true"; //다운로드시 SubTotal을 출력 할지 여부 (false:미포함)
options.useFooterData = "true";
options.printSet = {
fitToPage : "true" //엑셀 프린터 출력시 쪽맞춤 사용 유무 (false:미사용)
, landScape : "true" //엑셀 프린터 출력시 가로 방향 출력 유무 (false:세로)
, pageSize : "A4" //엑셀 프린터 출력시 인쇄용지 설정 (A4:A4용지)
};
options.autoSizeColumn = "false"; //너비자동맞춤 설정 유무 (false:미적용)
options.fileName = "과태료납부반송독촉불가처리_"+com.getCurDtime()+".xlsx";
options.sheetName = "과태료납부반송독촉불가처리";
com.fncMakeExcelProvider("finePenaltyDisableProcessingService", "findPaymentOfPenaltyList_kbn", "cfs.fine.vo.FinePenaltyDisableProcessingVO", reqCode, grd_gridView, options, info);
};
//차적변경 엑셀업로드
scwin.btn_excel_up_onclick = function(e) {
var options = {
type : "0",//String, 1이면 엑셀 파일이 그리드의 보이는 결과로 만들어져있을때 0이면 엑셀 파일이 그리드의 실제 데이터로 구성되어있을때
sheetNo : 0, //Number, excel파일에서 그리드의 데이터가 있는 sheet번호
startRowIndex : 2, //Number, [defalut:0] excel파일에서 그리드의 데이터가 시작되는 행의 번호(헤더 포함)
startColumnIndex : 0, //Number, [defalut:0] excel파일에서 그리드의 데이터가 시작되는 열의 번호
endColumnIndex : 16, //Number, [defalut: 0] excel파일에서 그리드의 데이터가 끝나는 열의 index
//( 엑셀컬럼수가 그리드컬럼수 보다 작은 경우 그리드 컬러수를 설정)
headerExist : "0", //String, [defalut:0] excel파일에서 그리드의 데이터에 header가 있는지 여부
//(1이면 header 존재 0이면 없음)
append : "0", //String, [defalut: 0] excel파일에서 가져온 데이터를 그리드에 append시킬지 여부
// (1이면 현재 그리드에 데이터를 추가로 넣어줌 0이면 현재 그리드의 데이터를 삭제하고 넣음)
skipSpace : "1", //String, [defalut: 0] 공백무시 여부(1이면 무시 0이면 포함)
insertColumns : "" ,//Array, radio, checkbox와 같은 컬럼을 엑셀에서 받아 오지 않고
//사용자 컬럼 설정 으로 업로드 ( 데이터 구조 : [ { columnIndex:1, columnValue:"1" } ] )
popupUrl : "websquare/uiplugin/grid/upload/advancedfileUpload_cfs_changeCarInfo.html", //String, 업로드시에 호출할 popup의 url
status : "R", //String, [defalut: R]업로드된 데이터의 초기 상태값, 설정하지 않으면 "R"로 설정되며 "C"값을 설정 할 수 있다.
pwd : "" //String, 엑셀파일에 암호가 걸려 있는 경우, 비밀번호
};
gridExcelUpload.advancedExcelUpload( options );
};
scwin.excelUpActionDt = "";
scwin.excelUpActionUser = "";
//엑셀업로드 처리
scwin.excelUpTrigger1_onclick = function(e) {
scwin.excelUpActionDt = "";
scwin.excelUpActionUser = "";
excelUpload.setJSON( gridExcelUpload.getAllDisplayJSON() );
var aJsonArray = gridExcelUpload.getAllDisplayJSON();
aJsonArray = aJsonArray.filter((element) => (element.dummy0 != "(예시)" && element.carNo != null && element.carNo != ""));
if(aJsonArray.length == 0){
return;
}
scwin.excelUpActionDt = com.getCurDtime();
scwin.excelUpActionUser = com.getLoginUserId();
for(var i=0; i < aJsonArray.length; i++){
aJsonArray[i].actionDt = scwin.excelUpActionDt;
aJsonArray[i].actionUser = scwin.excelUpActionUser;
}
var pureAjaxOpts = [];
var processMsgs = [];
for(var i=0; i < aJsonArray.length; i++){
var pureAjaxOpt = {
url : '/cfs/fine/saveExcelForSecondaryChange.do'
, async : true
, dataType : 'json'
, contentType : 'application/json'
, type: 'POST'
, data : JSON.stringify([aJsonArray[i]])
, success : function(data) {
if(data != null
&& data.rsMsg != null
&& data.rsMsg.statusCode != null
&& data.rsMsg.statusCode == "S"){
gcm.progress.successCount++;
}
gcm.progress.wait = false;
}
, error : function(){
gcm.progress.wait = false;
}
};
pureAjaxOpts.push(pureAjaxOpt);
processMsgs.push("등록 처리 중입니다. (" + (i+1) + " / " + aJsonArray.length + ")");
}
gcm.ajaxStart(pureAjaxOpts, processMsgs, scwin.ajaxExcelUploadCallback);
};
scwin.ajaxExcelUploadCallback = function(sucCnt, dataCnt) {
if(dataCnt == sucCnt){
com.alert("저장 되었습니다.");
return;
}
var link = document.createElement('a');
link.href = "/cfs/fine/saveExcelResultForSecondaryChange.do"+"?"+"actionUser="+scwin.excelUpActionUser+"&"+"actionDt="+scwin.excelUpActionDt;
link.download = "업로드실패목록.xls";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
//차적변경
scwin.btn_button04_onclick = function() {
var row = grd_gridView.getFocusedRowIndex();
if (row == -1) {
@ -678,7 +834,7 @@ scwin.btn_button04_onclick = function() {
com.openPopup(popupUrl, opt, data);
};
//대체차량등록
//대체차량등록
scwin.btn_button05_onclick = function(e) {
var row = grd_gridView.getFocusedRowIndex();
if (row == -1) {
@ -902,7 +1058,6 @@ scwin.btn_button09_onclick = function(e) {
};
scwin.alreadyAlert = function() {
console.log("aaaa")
com.alert('이미 압류된 건이 존재합니다.');
};
@ -1310,35 +1465,7 @@ scwin.btn_addressHistory_onclick = function(e) {
};
scwin.btn_excel_down_onclick = function(e) {
if (resCode.getRowCount() == 0) {
com.alert("엑셀다운로드할 정보가 없습니다.");
return;
}
// 엑셀저장
var info = {};
var options = {};
options.showProcess = "true"; //다운로드 시 프로세스 창을 보여줄지 여부 (true:보임)
options.showConfirm = "true"; //다운로드 확인창을 띄울지 여부 (false:미확인)
options.useFooter = "true"; //다운로드 시 Footer를 출력 할지 여부 (true:포함)
options.useSubTotal = "true"; //다운로드 시 SubTotal을 출력 할지 여부 (false:미포함)
options.useSubTotalData = "true"; //다운로드시 SubTotal을 출력 할지 여부 (false:미포함)
options.useFooterData = "true";
options.printSet = {
fitToPage : "true" //엑셀 프린터 출력시 쪽맞춤 사용 유무 (false:미사용)
, landScape : "true" //엑셀 프린터 출력시 가로 방향 출력 유무 (false:세로)
, pageSize : "A4" //엑셀 프린터 출력시 인쇄용지 설정 (A4:A4용지)
};
options.autoSizeColumn = "false"; //너비자동맞춤 설정 유무 (false:미적용)
options.fileName = "과태료납부반송독촉불가처리_"+com.getCurDtime()+".xlsx";
options.sheetName = "과태료납부반송독촉불가처리";
com.fncMakeExcelProvider("finePenaltyDisableProcessingService", "findPaymentOfPenaltyList_kbn", "cfs.fine.vo.FinePenaltyDisableProcessingVO", reqCode, grd_gridView, options, info);
};
]]></script>
</head>
<body ev:onpageload="scwin.onpageload" ev:onpageunload="scwin.onpageunload">
@ -1429,6 +1556,12 @@ scwin.btn_excel_down_onclick = function(e) {
type="button">
<xf:label><![CDATA[엑셀다운로드]]></xf:label>
</xf:trigger>
<xf:trigger class="btn_act send" ev:onclick="scwin.btn_excel_up_onclick" id="btn_excel_up" style="" type="button">
<xf:label><![CDATA[차적변경 엑셀등록]]></xf:label>
</xf:trigger>
<xf:trigger class="btn_act send" ev:onclick="scwin.excelUpTrigger1_onclick" id="btn_excelUpTrigger1" style="" type="button">
<xf:label><![CDATA[차적변경 엑셀등록 트리거]]></xf:label>
</xf:trigger>
<xf:trigger class="btn_cm" ev:onclick="scwin.btn_button04_onclick" id="btn_button04" style="margin-left:9px;"
type="button">
<xf:label><![CDATA[차적변경]]></xf:label>
@ -2827,6 +2960,109 @@ scwin.btn_excel_down_onclick = function(e) {
</w2:row>
</w2:footer>
</w2:gridView>
<w2:gridView autoFit="allColumn" autoFitMinWidth="600" class="cm_grid" dataList="data:excelUpload" ev:oncelldblclick=""
fixedColumnWithHidden="true" focusMode="row" id="gridExcelUpload" ignoreCellClick="false" ignoreToggleOnDisabled="false"
readOnly="true" scrollByColumn="false" scrollByColumnAdaptive="false" style="height: 150px;" summaryAuto="false" useShiftKey="true"
visibleRowNum="20">
<w2:header id="header1" style="">
<w2:row id="row1" style="">
<w2:column blockSelect="false" displayMode="label" id="column1" inputType="text" style=""
value="순번" width="100">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column2" inputType="text" removeBorderStyle="false" style=""
value="차량번호" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column3" inputType="text" removeBorderStyle="false" style=""
value="통과일시" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column4" inputType="text" removeBorderStyle="false" style=""
value="요금소및차로" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column5" inputType="text" removeBorderStyle="false" style=""
value="렌트회사명" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column6" inputType="text" removeBorderStyle="false" style=""
value="진행상태" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column7" inputType="text" removeBorderStyle="false" style=""
value="수신일" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column8" inputType="text" removeBorderStyle="false" style=""
value="소유자명" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column9" inputType="text" removeBorderStyle="false" style=""
value="주민번호" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column10" inputType="text" removeBorderStyle="false" style=""
value="우편번호" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column11" inputType="text" removeBorderStyle="false" style=""
value="주소" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column12" inputType="text" removeBorderStyle="false" style=""
value="렌트기간" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column13" inputType="text" removeBorderStyle="false" style=""
value="렌트연락처" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column14" inputType="text" removeBorderStyle="false" style=""
value="문서분류" width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="column15" inputType="text" removeBorderStyle="false" style=""
value="문서관리번호" width="120">
</w2:column>
</w2:row>
</w2:header>
<w2:gBody id="gBody1" style="">
<w2:row id="row2" style="">
<w2:column blockSelect="false" displayMode="label" id="dummy0" inputType="text" removeBorderStyle="false"
width="100">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="carNo" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="passDayTimes" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="fareOfficeBoothId" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="rentCompany" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="dummy1" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="dummy2" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="owner" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="residentNo" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="postNo" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="address" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="rentPeriod" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="rentContact" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="documentKbn" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
<w2:column blockSelect="false" displayMode="label" id="documentNumber" inputType="text" removeBorderStyle="false"
width="120">
</w2:column>
</w2:row>
</w2:gBody>
</w2:gridView>
</xf:group>
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -7,28 +7,6 @@
<title>차적변경 엑셀 FILE UPLOAD</title>
<script type="text/javascript" src="../../../message/htmlCommon.js"></script>
<script language="JavaScript">
function isValidDate(yyyymmdd) {
var r = true;
try {
var date = [];
if (yyyymmdd.length == 8) {
date[0] = yyyymmdd.substring(0, 4);
date[1] = yyyymmdd.substring(4, 6);
date[2] = yyyymmdd.substring(6, 8);
} else if (yyyymmdd.length == 10) {
date = yyyymmdd.split("-");
}
var yyyy = parseInt(date[0], 10);
var mm = parseInt(date[1], 10);
var dd = parseInt(date[2], 10);
var dateRegex = /^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-.\/])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
r = dateRegex.test(dd + '-' + mm + '-' + yyyy);
} catch (err) {
r = false;
}
return r;
}
var osName = "";
var vActionUrl = "";
@ -186,51 +164,53 @@
document.getElementById( "isPwd").innerHTML = Upload_pwd;
} catch (e) {
//$l("exception:" + e.message);
}
// header, append, hidden, columnNum, hiddenColumns, action
var advancedHidden = getParameter("advancedHidden");
vheader = uploadInfo.header;
vfooter = uploadInfo.footer;
vappend = uploadInfo.append;
vhidden = uploadInfo.hidden;
vcolumnNum = uploadInfo.columnNum;
vhiddenColumns = uploadInfo.hiddenColumns;
vremoveColumns = uploadInfo.removeColumns;
vheaderRows = uploadInfo.headerRows;
actionUrl = uploadInfo.action;
delim = uploadInfo.delim;
gridID = uploadInfo.gridID;
fillHidden = uploadInfo.fillHidden;
gridStartRow = uploadInfo.gridStartRow;
gridStartCol = uploadInfo.gridStartCol;
gridEndCol = uploadInfo.gridEndCol;
gridSheetNo = uploadInfo.gridSheetNo
vheader = uploadInfo.header;
vfooter = uploadInfo.footer;
vappend = uploadInfo.append;
vhidden = uploadInfo.hidden;
vcolumnNum = uploadInfo.columnNum;
vhiddenColumns = uploadInfo.hiddenColumns;
vremoveColumns = uploadInfo.removeColumns;
vheaderRows = uploadInfo.headerRows;
actionUrl = uploadInfo.action;
delim = uploadInfo.delim;
gridID = uploadInfo.gridID;
fillHidden = uploadInfo.fillHidden;
gridStartRow = uploadInfo.gridStartRow;
gridStartCol = uploadInfo.gridStartCol;
gridEndCol = uploadInfo.gridEndCol;
gridSheetNo = uploadInfo.gridSheetNo
expressionColumns = uploadInfo.expressionColumns;
type = uploadInfo.type;
uploadType = uploadInfo.uploadType;
skipSpace = uploadInfo.skipSpace;
type = uploadInfo.type;
uploadType = uploadInfo.uploadType;
skipSpace = uploadInfo.skipSpace;
var insertColumns = uploadInfo.insertColumns;
processMsg = uploadInfo.processMsg;
processMsg = opener.WebSquare.text.BASE64URLDecoder(processMsg );
dataList = uploadInfo.dataList;
instanceBind = uploadInfo.instanceBind;
columnIds = uploadInfo.columnIds;
status = uploadInfo.status;
pwdStr = uploadInfo.pwd;
loadingMode = uploadInfo.loadingMode;
optionParam = uploadInfo.optionParam;
processMsg = uploadInfo.processMsg;
processMsg = opener.WebSquare.text.BASE64URLDecoder(processMsg );
dataList = uploadInfo.dataList;
instanceBind = uploadInfo.instanceBind;
columnIds = uploadInfo.columnIds;
status = uploadInfo.status;
pwdStr = uploadInfo.pwd;
loadingMode = uploadInfo.loadingMode;
optionParam = uploadInfo.optionParam;
cellDataConvertor = uploadInfo.cellDataConvertor;
decimal = uploadInfo.decimal;
useMaxByteLength = uploadInfo.useMaxByteLength;
dateFormat = uploadInfo.dateFormat;
decimal = uploadInfo.decimal;
useMaxByteLength = uploadInfo.useMaxByteLength;
dateFormat = uploadInfo.dateFormat;
byteCheckEncoding = uploadInfo.byteCheckEncoding;
columnOrder = uploadInfo.columnOrder;
columnOrder = uploadInfo.columnOrder;
var header_Exist = document.getElementsByName("header");
var header_Exist =document.getElementsByName("header");
//skipSpace 처리
if( typeof vheader == "string" ) {
vheader = opener.WebSquare.util.getBoolean(vheader);
}
@ -248,7 +228,7 @@
document.getElementById("domain").value = domain;
var advancedHidden = getParameter("advancedHidden");
// advancedHidden
var advancedSetting = document.getElementById("advancedSetting");
if( typeof advancedHidden == "string") {
advancedHidden = opener.WebSquare.util.getBoolean(advancedHidden);
@ -261,7 +241,7 @@
//row를 가져오는 것을 좀더 좋은 방법으로 수정해야 한다.
var el = opener.WebSquare.xml.getElementsByTagName(opener[gridID].element, "w2:gBody");
var rows =opener.WebSquare.xml.getElementsByTagName(el[0],"w2:row");
var rows = opener.WebSquare.xml.getElementsByTagName(el[0],"w2:row");
var myrows = rows.length;
document.getElementById("bodyRows").value = myrows;
var myhidden =document.getElementsByName("hidden");
@ -278,9 +258,9 @@
}
document.getElementById("delim").value = delim;
//document.getElementById("fillHidden").value = fillHidden;
var myfillHidden =document.getElementsByName("fillHidden");
//fillhiden 처리
if( typeof fillHidden == "string" ) {
fillHidden = opener.WebSquare.util.getBoolean(fillHidden);
@ -396,7 +376,7 @@
if( !find ) {
var layerUP= document.createElement("div");
var src = "";
//alert(layerUP);
layerUP.style.border="1px solid blue";
layerUP.style.width="100px";
layerUP.style.height="100px";
@ -550,7 +530,6 @@
var fileName = fileNameDom.value;
var fileNameArr = fileName.split("\\"); //fileName에 대해서 IE에서는 파일 경로가 나오는데 FF chrome은 나오지 않는다. 따라서 '\\'기준으로 나눠준다.
opener.window[gridID].fireFileReadEnd( fileNameArr[fileNameArr.length-1] );
window.self.close(callback());
} catch (e) {
opener.WebSquare.exception.printStackTrace(e);

@ -6,6 +6,7 @@ import java.util.Map;
import org.springframework.stereotype.Repository;
import cfs.common.vo.CommonStreamVO;
import cfs.common.vo.ExcelUpVO;
import cfs.common.vo.FixedMessageVO;
import cfs.common.vo.RfidInfoVO;
import cfs.common.vo.WorkerInfoVO;
@ -91,4 +92,9 @@ public interface CfsCommonDao {
*/
public Map<String, Object> findCommonSecure(CommonStreamVO param);
public int insertExcelUpLog(ExcelUpVO logVO);
public List<Map<String, String>> selectExcelUpLog(Map<String, String> param);
}

@ -181,4 +181,109 @@
AND mber_se_code = '11'
</select>
<insert id="insertExcelUpLog" parameterType="cfs.common.vo.ExcelUpVO">
INSERT
INTO TB_CFS_EXCEL_UP (
EXCEL_UP_KEY
, ACTION_DT
, ACTION_USER
, STAT_CD
, FAIL_REASON
, COL_A
, COL_B
, COL_C
, COL_D
, COL_E
, COL_F
, COL_G
, COL_H
, COL_I
, COL_J
, COL_K
, COL_L
, COL_M
, COL_N
, COL_O
, COL_P
, COL_Q
, COL_R
, COL_S
, COL_T
, COL_U
, COL_V
, COL_W
, COL_X
, COL_Y
, COL_Z
)
VALUES (
LPAD(SEQ_EXCEL_UP.NEXTVAL,40,'0')
, #{actionDt}
, #{actionUser}
, #{statCd}
, #{failReason}
, #{colA}
, #{colB}
, #{colC}
, #{colD}
, #{colE}
, #{colF}
, #{colG}
, #{colH}
, #{colI}
, #{colJ}
, #{colK}
, #{colL}
, #{colM}
, #{colN}
, #{colO}
, #{colP}
, #{colQ}
, #{colR}
, #{colS}
, #{colT}
, #{colU}
, #{colV}
, #{colW}
, #{colX}
, #{colY}
, #{colZ}
)
</insert>
<select id="selectExcelUpLog" parameterType="java.util.Map" resultType="java.util.Map">
SELECT STAT_CD
, FAIL_REASON
, COL_A
, COL_B
, COL_C
, COL_D
, COL_E
, COL_F
, COL_G
, COL_H
, COL_I
, COL_J
, COL_K
, COL_L
, COL_M
, COL_N
, COL_O
, COL_P
, COL_Q
, COL_R
, COL_S
, COL_T
, COL_U
, COL_V
, COL_W
, COL_X
, COL_Y
, COL_Z
FROM TB_CFS_EXCEL_UP
WHERE ACTION_USER = #{actionUser}
AND ACTION_DT = #{actionDt}
AND STAT_CD = 'F'
ORDER BY EXCEL_UP_KEY
</select>
</mapper>

@ -5,6 +5,7 @@ import java.util.Map;
import org.springframework.stereotype.Repository;
import cfs.common.vo.ExcelUpVO;
import cfs.fine.vo.FinePenaltyDisableProcessingVO;
@ -170,4 +171,5 @@ public interface FinePenaltyDisableProcessDao {
public List<FinePenaltyDisableProcessingVO> findPenaltymobile(FinePenaltyDisableProcessingVO finePenaltyDisableProcessingVO);
public List<FinePenaltyDisableProcessingVO> findPenaltymobile2(FinePenaltyDisableProcessingVO finePenaltyDisableProcessingVO);
}

@ -841,7 +841,7 @@
<result property="workerId" column="WORKER_ID"/>
<result property="workerName" column="WORKER_NAME"/>
<result property="carTypeName" column="CAR_TYPE_NAME"/>
<result property="carTypeName1" column="CAR_TYPE_NAME1"/>
<result property="carTypeNameFromCarRegister" column="CAR_TYPE_NAME_FROM_CAR_REGISTER"/>
<result property="carNo" column="CAR_NO"/>
<result property="owner" column="OWNER"/>
<result property="residentNo" column="RESIDENT_NO"/>
@ -874,7 +874,6 @@
<result property="rentKbn" column="RENT_KBN"/>
<result property="penaltyManageYear" column="PENALTY_MANAGE_YEAR"/>
<result property="penaltySeqNo" column="PENALTY_SEQNO"/>
<result property="lastReader" column="LAST_READER"/>
<result property="rentCompany" column="RENT_COMPANY"/>
<result property="rentPeriod1" column="RENT_PERIOD_1"/>
<result property="rentPeriod2" column="RENT_PERIOD_2"/>
@ -888,11 +887,11 @@
</resultMap>
<!-- 과태료정보 - 과태료 납부(소인)/반송/독촉 불가처리 - 차적변경 팝업 - 조회 -->
<select id="findInfoForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" resultMap="findInfoForSecondaryChange-result">
SELECT D.FARE_OFFICE_ID AS FARE_OFFICE_ID
SELECT F.READER AS READER
, D.FARE_OFFICE_ID AS FARE_OFFICE_ID
, DECODE(D.FARE_OFFICE_ID, '01', '남산1호터널'
, '03', '남산3호터널') AS FARE_OFFICE_NAME
, D.BOOTH_ID AS BOOTH_ID
, F.READER AS READER
, DECODE(D.BOOTH_ID, '01', '제1차로'
, '02', '제2차로'
, '03', '제3차로'
@ -907,25 +906,15 @@
, D.WORK_TIMES AS PASS_TIMES
, D.WORKER_ID AS WORKER_ID
, (SELECT WORKER_NAME FROM WORKER_INFO WHERE WORKER_ID = D.WORKER_ID) AS WORKER_NAME
, R.CAR_TYPE_NAME AS CAR_TYPE_NAME
, H.CAR_TYPE_NAME AS CAR_TYPE_NAME1
, D.CAR_NO AS CAR_NO
, D.OWNER AS OWNER
, DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO) AS RESIDENT_NO
,'검증원' AS LAST_READER
, DECODE(LENGTH(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO)), '13', SUBSTR(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO),1,6)) AS NO1
, DECODE(LENGTH(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO)), '13', SUBSTR(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO),7,7)) AS NO2
, DECODE(LENGTH(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO)), '10', SUBSTR(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO),1,3)) AS NO3
, DECODE(LENGTH(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO)), '10', SUBSTR(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO),4,2)) AS NO4
, DECODE(LENGTH(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO)), '10', SUBSTR(DGUARD.DECRYPT('ENC','COL',D.ENC_RESIDENT_NO),6,5)) AS NO5
, (H.POST_NO1 || H.POST_NO2) AS POST_NO
, H.ADDRESS_NAME AS ADDRESS_NAME
, H.ADDRESS_NUMBER AS ADDRESS_NUMBER
, H.OWNER_TYPE_ID AS OWNER_TYPE_ID
, H.MAX_CARRY_CAPACITY AS MAX_CARRY_CAPACITY
, H.AFTER_CARS_NUMBER_1 AS AFTER_CARS_NUMBER_1
, H.AFTER_CARS_NUMBER_2 AS AFTER_CARS_NUMBER_2
, TO_CHAR(H.RESIDENT_DATE,'yyyymmdd') AS RESIDENT_DATE
, D.COLLECT_ID AS COLLECT_ID
, D.MINI_CAR_KBN AS MINI_CAR_KBN
, D.YEAR AS YEAR
, D.MONTH AS MONTH
@ -935,6 +924,17 @@
, D.RENT_KBN AS RENT_KBN
, D.PENALTY_MANAGE_YEAR AS PENALTY_MANAGE_YEAR
, D.PENALTY_SEQNO AS PENALTY_SEQNO
, (SELECT COUNT(*) FROM PENALTY_DETAIL_INFO_DAMO Z WHERE Z.CAR_NO = D.CAR_NO AND Z.ENC_RESIDENT_NO = D.ENC_RESIDENT_NO) AS COUNT
, (H.POST_NO1 || H.POST_NO2) AS POST_NO
, H.ADDRESS_NAME AS ADDRESS_NAME
, H.ADDRESS_NUMBER AS ADDRESS_NUMBER
, H.OWNER_TYPE_ID AS OWNER_TYPE_ID
, R.CAR_TYPE_NAME AS CAR_TYPE_NAME_FROM_CAR_REGISTER
, H.CAR_TYPE_NAME AS CAR_TYPE_NAME
, H.MAX_CARRY_CAPACITY AS MAX_CARRY_CAPACITY
, H.AFTER_CARS_NUMBER_1 AS AFTER_CARS_NUMBER_1
, H.AFTER_CARS_NUMBER_2 AS AFTER_CARS_NUMBER_2
, TO_CHAR(H.RESIDENT_DATE,'YYYYMMDD') AS RESIDENT_DATE
, G.RENT_COMPANY AS RENT_COMPANY
, G.RENT_PERIOD_1 AS RENT_PERIOD_1
, G.RENT_PERIOD_2 AS RENT_PERIOD_2
@ -943,51 +943,56 @@
, G.RENT_COMPANY_ADDRESS AS RENT_COMPANY_ADDRESS
, G.DOCUMENT_NUMBER AS DOCUMENT_NUMBER
, G.DOCUMENT_KBN AS DOCUMENT_KBN
, (SELECT COUNT(*) FROM PENALTY_DETAIL_INFO_DAMO Z WHERE Z.CAR_NO = D.CAR_NO AND Z.ENC_RESIDENT_NO = D.ENC_RESIDENT_NO) AS COUNT
, D.COLLECT_ID AS COLLECT_ID
FROM DEFAULT_CARS_TRANS_INFO_DAMO R
, PENALTY_DETAIL_INFO_DAMO D
FROM PENALTY_DETAIL_INFO_DAMO D
, PENALTY_HEAD_INFO_DAMO H
, DEFAULT_FARE_READ_INFO_DAMO F
, PENALTY_RENT_DETAIL_INFO G
WHERE R.WORKER_ID = D.WORKER_ID
AND R.FARE_OFFICE_ID = D.FARE_OFFICE_ID
AND R.BOOTH_ID = D.BOOTH_ID
AND R.YEAR = D.YEAR
AND R.MONTH = D.MONTH
AND R.DAY = D.DAY
AND R.WORK_TIMES = D.WORK_TIMES
AND R.SEQNO = D.SEQNO
AND H.CAR_NO = D.CAR_NO
AND H.ENC_RESIDENT_NO = D.ENC_RESIDENT_NO
AND R.WORKER_ID = F.WORKER_ID
AND R.FARE_OFFICE_ID = F.FARE_OFFICE_ID
AND R.BOOTH_ID = F.BOOTH_ID
AND R.YEAR = F.YEAR
AND R.MONTH = F.MONTH
AND R.DAY = F.DAY
AND R.WORK_TIMES = F.WORK_TIMES
AND R.SEQNO = F.SEQNO
, DEFAULT_CARS_TRANS_INFO_DAMO R
WHERE D.WORKER_ID = F.WORKER_ID
AND D.FARE_OFFICE_ID = F.FARE_OFFICE_ID
AND D.BOOTH_ID = F.BOOTH_ID
AND D.YEAR = F.YEAR
AND D.MONTH = F.MONTH
AND D.DAY = F.DAY
AND D.WORK_TIMES = F.WORK_TIMES
AND D.SEQNO = F.SEQNO
AND D.CAR_NO = H.CAR_NO
AND D.ENC_RESIDENT_NO = H.ENC_RESIDENT_NO
AND D.PENALTY_MANAGE_YEAR = G.PENALTY_MANAGE_YEAR(+)
AND D.PENALTY_SEQNO = G.PENALTY_SEQNO(+)
AND D.WORKER_ID = R.WORKER_ID
AND D.FARE_OFFICE_ID = R.FARE_OFFICE_ID
AND D.BOOTH_ID = R.BOOTH_ID
AND D.YEAR = R.YEAR
AND D.MONTH = R.MONTH
AND D.DAY = R.DAY
AND D.WORK_TIMES = R.WORK_TIMES
AND D.SEQNO = R.SEQNO
<choose>
<when test="searchKbn != null and searchKbn != '' ">
AND D.FARE_OFFICE_ID = #{fareOfficeId}
AND D.BOOTH_ID = #{boothId}
AND D.YEAR = #{year}
AND D.MONTH = #{month}
AND D.DAY = #{day}
AND D.WORK_TIMES = #{workTimes}
AND D.CAR_NO = #{carNo}
</when>
<otherwise>
AND D.PENALTY_MANAGE_YEAR = #{penaltyManageYear}
AND D.PENALTY_SEQNO = #{penaltySeqNo}
</otherwise>
</choose>
</select>
<update id="updateDfriForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE DEFAULT_FARE_READ_INFO_DAMO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
, CAR_TYPE_NAME = #{carTypeName1}
, OWNER = #{owner}
<if test="carNo != carNo2">
, CAR_NO = #{carNo}
</if>
<if test="residentNo != residentNo2">
, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</if>
<if test="miniCarKbn != miniCarKbn2 and collectId == '40'">
, MINI_CAR_KBN = #{miniCarKbn}
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL', #{residentNo})
, CAR_NO = #{carNo}, CAR_TYPE_NAME = #{carTypeName}
<if test="collectId == '40'">
, MINI_CAR_KBN = #{miniCarKbn}
</if>
WHERE WORKER_ID = #{workerId}
AND FARE_OFFICE_ID = #{fareOfficeId}
@ -999,10 +1004,9 @@
AND SEQNO = #{seqNo}
</update>
<update id="updateDfrihForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
<update id="updateDfrihForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE DEFAULT_FARE_READ_HISTORY_INFO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, CAR_NO = #{carNo}
WHERE WORKER_ID = #{workerId}
AND FARE_OFFICE_ID = #{fareOfficeId}
@ -1012,22 +1016,14 @@
AND DAY = #{day}
AND WORK_TIMES = #{workTimes}
AND SEQNO = #{seqNo}
</update>
</update>
<update id="updateDctiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE DEFAULT_CARS_TRANS_INFO_DAMO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
, OWNER = #{owner}
, CAR_TYPE_NAME = #{carTypeName1}
, ADDRESS_NAME = #{addressName}
, ADDRESS_NUMBER = #{addressNumber}
<if test="carNo != carNo2">
, CAR_NO = #{carNo}
</if>
<if test="residentNo != residentNo2">
, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</if>
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, POST_NO = #{postNo}, ADDRESS_NAME = #{addressName}, ADDRESS_NUMBER = #{addressNumber}
, CAR_NO = #{carNo}, CAR_TYPE_NAME = #{carTypeName}
WHERE WORKER_ID = #{workerId}
AND FARE_OFFICE_ID = #{fareOfficeId}
AND BOOTH_ID = #{boothId}
@ -1041,36 +1037,34 @@
<insert id="insertPauiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
INSERT
INTO PENALTY_ADDRESS_UPDATE_I_DAMO (
PENALTY_MANAGE_YEAR
, PENALTY_SEQNO
CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, PENALTY_MANAGE_YEAR, PENALTY_SEQNO
, CHANAGE_DATE, CHANAGE_SEQNO
, OWNER, ENC_RESIDENT_NO
, POST_NO1, POST_NO2, ADDRESS_NAME, ADDRESS_NUMBER
, CAR_NO
, ENC_RESIDENT_NO
, CHANAGE_DATE
, CHANAGE_SEQNO
, OWNER
, RESIDENT_DATE
, POST_NO1
, POST_NO2
, ADDRESS_NAME
, ADDRESS_NUMBER
, MOTION_ID
, CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
)
VALUES (
#{penaltyManageYear}
, #{penaltySeqNo}
SYSDATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
, #{penaltyManageYear}, #{penaltySeqNo}
, SYSDATE, (SELECT NVL(MAX(CHANAGE_SEQNO),0)+1
FROM PENALTY_ADDRESS_UPDATE_I_DAMO
WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear}
AND PENALTY_SEQNO = #{penaltySeqNo})
, #{owner}, DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, SUBSTR(#{postNo},1,3), SUBSTR(#{postNo},4,2), #{addressName}, #{addressNumber}
, #{carNo}
, DGUARD.ENCRYPT('ENC','COL',#{residentNo})
<choose>
<when test="carNo != carNo2">
, SYSDATE
, (SELECT NVL(MAX(CHANAGE_SEQNO),0)+1 FROM PENALTY_ADDRESS_UPDATE_I_DAMO WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear} AND PENALTY_SEQNO = #{penaltySeqNo})
, (SELECT OWNER FROM PENALTY_DETAIL_INFO_DAMO WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear} AND PENALTY_SEQNO = #{penaltySeqNo})
, (SELECT RESIDENT_DATE FROM PENALTY_HEAD_INFO_DAMO WHERE CAR_NO = #{carNo2} AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo2}))
, (SELECT POST_NO1 FROM PENALTY_HEAD_INFO_DAMO WHERE CAR_NO = #{carNo2} AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo2}))
, (SELECT POST_NO2 FROM PENALTY_HEAD_INFO_DAMO WHERE CAR_NO = #{carNo2} AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo2}))
, (SELECT ADDRESS_NAME FROM PENALTY_HEAD_INFO_DAMO WHERE CAR_NO = #{carNo2} AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo2}))
, (SELECT ADDRESS_NUMBER FROM PENALTY_HEAD_INFO_DAMO WHERE CAR_NO = #{carNo2} AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo2}))
</when>
<otherwise>
, (SELECT RESIDENT_DATE FROM PENALTY_DETAIL_INFO_DAMO WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear} AND PENALTY_SEQNO = #{penaltySeqNo})
</otherwise>
</choose>
, (SELECT MOTION_ID FROM PENALTY_DETAIL_INFO_DAMO WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear} AND PENALTY_SEQNO = #{penaltySeqNo})
, SYSDATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
)
</insert>
@ -1088,49 +1082,32 @@
<insert id="insertPhiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
INSERT
INTO PENALTY_HEAD_INFO_DAMO (
CAR_NO
, ENC_RESIDENT_NO
, OWNER
, CAR_TYPE_NAME
, MAX_CARRY_CAPACITY
, POST_NO1
, POST_NO2
, ADDRESS_NAME
, ADDRESS_NUMBER
CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, OWNER, ENC_RESIDENT_NO
, POST_NO1, POST_NO2, ADDRESS_NAME, ADDRESS_NUMBER
, CAR_NO, CAR_TYPE_NAME, MAX_CARRY_CAPACITY
, RESIDENT_DATE, DISUSE_DATE
, OWNER_TYPE_ID, CAR_TYPE_ID
, PANALTY_COUNT, PENALTY_AMOUNT, RECEIVE_AMOUNT
, AFTER_CARS_NUMBER_1, AFTER_CARS_NUMBER_2, AFTER_CARS_NUMBER_3
, RENT_KBN
, CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, RESIDENT_DATE
, OWNER_TYPE_ID
, DISUSE_DATE
, CAR_TYPE_ID
, PANALTY_COUNT
, PENALTY_AMOUNT
, RECEIVE_AMOUNT
, AFTER_CARS_NUMBER_1
, AFTER_CARS_NUMBER_2
, AFTER_CARS_NUMBER_3
)
SELECT #{carNo}
, DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, #{owner}
, #{carTypeName1}
, #{maxCarryCapacity}
, SUBSTR(#{postNo},1,3)
, SUBSTR(#{postNo},4,2)
, #{addressName}
, #{addressNumber}
SELECT SYSDATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
, #{owner}, DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, SUBSTR(#{postNo},1,3), SUBSTR(#{postNo},4,2), #{addressName}, #{addressNumber}
, #{carNo}, #{carTypeName}, #{maxCarryCapacity}
<choose>
<when test="carNo != carNo2">
, SYSDATE, ''
</when>
<otherwise>
, RESIDENT_DATE, DISUSE_DATE
</otherwise>
</choose>
, OWNER_TYPE_ID, CAR_TYPE_ID
, PANALTY_COUNT, PENALTY_AMOUNT, RECEIVE_AMOUNT
, AFTER_CARS_NUMBER_1, AFTER_CARS_NUMBER_2, AFTER_CARS_NUMBER_3
, NVL(#{rentKbn},'0')
, CREATE_DATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
, RESIDENT_DATE
, OWNER_TYPE_ID
, DISUSE_DATE
, CAR_TYPE_ID
, PANALTY_COUNT
, PENALTY_AMOUNT
, RECEIVE_AMOUNT
, AFTER_CARS_NUMBER_1
, AFTER_CARS_NUMBER_2
, AFTER_CARS_NUMBER_3
FROM PENALTY_HEAD_INFO_DAMO
WHERE CAR_NO = #{carNo2}
AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo2})
@ -1138,16 +1115,11 @@
<update id="updatePhiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE PENALTY_HEAD_INFO_DAMO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}
, CAR_TYPE_NAME = #{carTypeName1}
, MAX_CARRY_CAPACITY = #{maxCarryCapacity}
, POST_NO1 = SUBSTR(#{postNo},1,3)
, POST_NO2 = SUBSTR(#{postNo},4,2)
, ADDRESS_NAME = #{addressName}
, ADDRESS_NUMBER = #{addressNumber}
, RENT_KBN = nvl(#{rentKbn},'0')
, POST_NO1 = SUBSTR(#{postNo},1,3), POST_NO2 = SUBSTR(#{postNo},4,2), ADDRESS_NAME = #{addressName}, ADDRESS_NUMBER = #{addressNumber}
, CAR_TYPE_NAME = #{carTypeName}, MAX_CARRY_CAPACITY = #{maxCarryCapacity}
, RENT_KBN = NVL(#{rentKbn},'0')
WHERE CAR_NO = #{carNo}
AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</update>
@ -1155,22 +1127,15 @@
<update id="updatePdiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE PENALTY_DETAIL_INFO_DAMO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
, OWNER = #{owner}
, RENT_KBN = nvl(#{rentKbn},'0')
<if test="carNo != carNo2">
, CAR_NO = #{carNo}
</if>
<if test="residentNo != residentNo2">
, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</if>
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, CAR_NO = #{carNo}, MINI_CAR_KBN = #{miniCarKbn}
<if test="miniCarKbn != miniCarKbn2">
, MINI_CAR_KBN = #{miniCarKbn}
, PASS_AMOUNT = DBUSER_CFS.FUN_PENALTY_AMOUNT(#{year},#{month},#{day}, 1, #{miniCarKbn})
, LAVY_AMOUNT = DBUSER_CFS.FUN_PENALTY_AMOUNT(#{year},#{month},#{day}, 3, #{miniCarKbn})
, FINE_AMOUNT = DBUSER_CFS.FUN_PENALTY_AMOUNT(#{year},#{month},#{day}, 2, #{miniCarKbn})
, PASS_AMOUNT = FUN_PENALTY_AMOUNT(#{year},#{month},#{day}, 1, #{miniCarKbn})
, LAVY_AMOUNT = FUN_PENALTY_AMOUNT(#{year},#{month},#{day}, 3, #{miniCarKbn})
, FINE_AMOUNT = FUN_PENALTY_AMOUNT(#{year},#{month},#{day}, 2, #{miniCarKbn})
</if>
, RENT_KBN = nvl(#{rentKbn},'0')
WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear}
AND PENALTY_SEQNO = #{penaltySeqNo}
</update>
@ -1178,30 +1143,18 @@
<update id="updatePihForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE PENALTY_HISTORY_INFO_DAMO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
, OWNER = #{owner}
<if test="carNo != carNo2">
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, CAR_NO = #{carNo}
</if>
<if test="residentNo != residentNo2">
, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</if>
WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear}
AND PENALTY_SEQNO = #{penaltySeqNo}
</update>
<update id="updatePdihForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE PENALTY_HISTORY_DETAIL_I_DAMO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
, OWNER = #{owner}
<if test="carNo != carNo2">
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, CAR_NO = #{carNo}
</if>
<if test="residentNo != residentNo2">
, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</if>
WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear}
AND PENALTY_SEQNO = #{penaltySeqNo}
</update>
@ -1239,68 +1192,38 @@
<insert id="insertPrhiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
INSERT
INTO PENALTY_RENT_HEAD_INFO (
CAR_NO
, ENC_RESIDENT_NO
, OWNER
, CAR_TYPE_NAME
, MAX_CARRY_CAPACITY
, POST_NO1
, POST_NO2
, ADDRESS_NAME
, ADDRESS_NUMBER
, ALTER_DATE
, RENT_KBN
, CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, RESIDENT_DATE
, OWNER_TYPE_ID
, DISUSE_DATE
, CAR_TYPE_ID
, PANALTY_COUNT
, PENALTY_AMOUNT
, RECEIVE_AMOUNT
, AFTER_CARS_NUMBER_1
, AFTER_CARS_NUMBER_2
, AFTER_CARS_NUMBER_3
CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, ALTER_DATE, RENT_KBN
, OWNER, ENC_RESIDENT_NO
, POST_NO1, POST_NO2, ADDRESS_NAME, ADDRESS_NUMBER
, CAR_NO, CAR_TYPE_NAME, MAX_CARRY_CAPACITY
, RESIDENT_DATE, DISUSE_DATE
, OWNER_TYPE_ID, CAR_TYPE_ID
, PANALTY_COUNT, PENALTY_AMOUNT, RECEIVE_AMOUNT
, AFTER_CARS_NUMBER_1, AFTER_CARS_NUMBER_2, AFTER_CARS_NUMBER_3
)
SELECT #{carNo}
, DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, #{owner}
, #{carTypeName1}
, #{maxCarryCapacity}
, SUBSTR(#{postNo},1,3)
, SUBSTR(#{postNo},4,2)
, #{addressName}
, #{addressNumber}
, SYSDATE
, '1'
, SYSDATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
, RESIDENT_DATE
, OWNER_TYPE_ID
, DISUSE_DATE
, CAR_TYPE_ID
, PANALTY_COUNT
, PENALTY_AMOUNT
, RECEIVE_AMOUNT
, ''
, ''
, ''
SELECT SYSDATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
, SYSDATE, '1'
, OWNER, ENC_RESIDENT_NO
, POST_NO1, POST_NO2, ADDRESS_NAME, ADDRESS_NUMBER
, CAR_NO, CAR_TYPE_NAME, MAX_CARRY_CAPACITY
, RESIDENT_DATE, DISUSE_DATE
, OWNER_TYPE_ID, CAR_TYPE_ID
, PANALTY_COUNT, PENALTY_AMOUNT, RECEIVE_AMOUNT
, '', '', ''
FROM PENALTY_HEAD_INFO_DAMO
WHERE ROWNUM = 1
AND CAR_NO = #{carNo}
WHERE CAR_NO = #{carNo}
AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
AND ROWNUM = 1
</insert>
<update id="updatePrhiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE PENALTY_RENT_HEAD_INFO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, ALTER_DATE = SYSDATE
, OWNER = #{owner}
, CAR_TYPE_NAME = #{carTypeName1}
, MAX_CARRY_CAPACITY = #{maxCarryCapacity}
, POST_NO1 = SUBSTR(#{postNo},1,3)
, POST_NO2 = SUBSTR(#{postNo},4,2)
, ADDRESS_NAME = #{addressName}
, ADDRESS_NUMBER = #{addressNumber}
, POST_NO1 = SUBSTR(#{postNo},1,3), POST_NO2 = SUBSTR(#{postNo},4,2), ADDRESS_NAME = #{addressName}, ADDRESS_NUMBER = #{addressNumber}
, CAR_TYPE_NAME = #{carTypeName}, MAX_CARRY_CAPACITY = #{maxCarryCapacity}
WHERE CAR_NO = #{carNo}
AND ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
</update>
@ -1308,31 +1231,35 @@
<insert id="insertPrdiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
INSERT
INTO PENALTY_RENT_DETAIL_INFO (
penalty_manage_year, penalty_seqno
CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, RENT_KBN, ALTER_DATE, MOTION_ID
, penalty_manage_year, penalty_seqno
, worker_id, fare_office_id, booth_id, year, month, day, work_times, seqno
, collect_id, CAR_NO, RESIDENT_DATE, notice_wrong_id, OWNER, notice_id, ENC_RESIDENT_NO
, fine_amount, lavy_amount, notice_date, notice_wrong_date, before_motion_id, pass_amount
, seisure_yn, seizure_date, seizure_id, seizure_termi_date, receipt_yn
, double_receipt_yn, seizure_trmi_yn, double_receipt_date, seizure_termi, seizure_manage_year, seizure_manage_no
, notice_wrong_reason, cars_trans_flag, T_real_time, mini_car_kbn
, c_public, c_loss, rfid_kbn, car_change_yn
, car_no_after, rfid_penalty_kbn, rfid_penalty_reason
, CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, rent_company, rent_period_1, rent_period_2, rent_person, rent_contact, rent_company_address
, document_number, document_kbn, RENT_KBN, ALTER_DATE, motion_id
, OWNER, ENC_RESIDENT_NO
, CAR_NO, RESIDENT_DATE, MINI_CAR_KBN, FINE_AMOUNT, LAVY_AMOUNT, PASS_AMOUNT
, RENT_COMPANY, RENT_PERIOD_1, RENT_PERIOD_2, RENT_PERSON, RENT_CONTACT, RENT_COMPANY_ADDRESS, DOCUMENT_NUMBER, DOCUMENT_KBN
, T_real_time
, cars_trans_flag, before_motion_id, collect_id, notice_id, notice_date, notice_wrong_id, notice_wrong_date, notice_wrong_reason
, rfid_kbn, rfid_penalty_kbn, rfid_penalty_reason
, receipt_yn, double_receipt_yn, double_receipt_date
, c_public, c_loss
, seisure_yn, seizure_date, seizure_id, seizure_termi_date, seizure_trmi_yn, seizure_termi, seizure_manage_year, seizure_manage_no
, car_change_yn, car_no_after
)
SELECT penalty_manage_year, penalty_seqno
SELECT SYSDATE, #{sessionUserNm}, SYSDATE, #{sessionUserNm}
, '1', SYSDATE, '13'
, penalty_manage_year, penalty_seqno
, worker_id, fare_office_id, booth_id, year, month, day, work_times, seqno
, collect_id, CAR_NO, RESIDENT_DATE, notice_wrong_id, OWNER, notice_id, ENC_RESIDENT_NO
, fine_amount, lavy_amount, notice_date, notice_wrong_date, before_motion_id, pass_amount
, seisure_yn, seizure_date, seizure_id, seizure_termi_date, receipt_yn
, double_receipt_yn, seizure_trmi_yn, double_receipt_date, seizure_termi, seizure_manage_year, seizure_manage_no
, notice_wrong_reason, cars_trans_flag, T_real_time, mini_car_kbn
, c_public, c_loss, rfid_kbn, car_change_yn
, car_no_after, rfid_penalty_kbn, rfid_penalty_reason
, CREATE_DATE, CREATER, UPDATE_DATE, UPDATER
, #{rentCompany}, #{rentPeriod1}, #{rentPeriod2}, #{rentPerson}, #{rentContact}, #{rentCompanyAddress}
, #{documentNumber}, #{documentKbn}, '1', sysdate, '13'
, OWNER, ENC_RESIDENT_NO
, CAR_NO, RESIDENT_DATE, MINI_CAR_KBN, FINE_AMOUNT, LAVY_AMOUNT, PASS_AMOUNT
, #{rentCompany}, #{rentPeriod1}, #{rentPeriod2}, #{rentPerson}, #{rentContact}, #{rentCompanyAddress}, #{documentNumber}, #{documentKbn}
, T_real_time
, cars_trans_flag, before_motion_id, collect_id, notice_id, notice_date, notice_wrong_id, notice_wrong_date, notice_wrong_reason
, rfid_kbn, rfid_penalty_kbn, rfid_penalty_reason
, receipt_yn, double_receipt_yn, double_receipt_date
, c_public, c_loss
, seisure_yn, seizure_date, seizure_id, seizure_termi_date, seizure_trmi_yn, seizure_termi, seizure_manage_year, seizure_manage_no
, car_change_yn, car_no_after
FROM PENALTY_DETAIL_INFO_DAMO
WHERE PENALTY_MANAGE_YEAR = #{penaltyManageYear}
AND PENALTY_SEQNO = #{penaltySeqNo}
@ -1340,9 +1267,9 @@
<update id="updatePrdiForSecondaryChange" parameterType="cfs.fine.vo.FinePenaltyDisableProcessingVO" >
UPDATE PENALTY_RENT_DETAIL_INFO
SET UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
, OWNER = #{owner}
SET UPDATE_DATE = SYSDATE, UPDATER = #{sessionUserNm}
, OWNER = #{owner}, ENC_RESIDENT_NO = DGUARD.ENCRYPT('ENC','COL',#{residentNo})
, CAR_NO = #{carNo}
, RENT_COMPANY = #{rentCompany}
, RENT_PERIOD_1 = #{rentPeriod1}
, RENT_PERIOD_2 = #{rentPeriod2}

@ -82,8 +82,8 @@ public class FinePenaltyDisableProcessingServiceImpl implements FinePenaltyDisab
@Override
public void updateDfriForSecondaryChange(FinePenaltyDisableProcessingVO finePenaltyDisableProcessingVO) throws Exception {
finePenaltyDisableProcessDao.updateDfriForSecondaryChange(finePenaltyDisableProcessingVO); //DEFAULT_FARE_READ_INFO_DAMO - update
finePenaltyDisableProcessDao.updateDfrihForSecondaryChange(finePenaltyDisableProcessingVO); //default_fare_read_history_info - update
finePenaltyDisableProcessDao.updateDfriForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessDao.updateDfrihForSecondaryChange(finePenaltyDisableProcessingVO);
}
@Override
@ -389,7 +389,7 @@ public class FinePenaltyDisableProcessingServiceImpl implements FinePenaltyDisab
finePenaltyDisableProcessDao.insertPenaltyHisMotionId_2(pItem); //PENALTY_HISTORY_INFO_DAMO - INSERT
finePenaltyDisableProcessDao.insertPenaltyDetailHistory(pItem); //PENALTY_DETAIL_INFO_DAMO -> PENALTY_HISTORY_DETAIL_I_DAMO - INSERT
finePenaltyDisableProcessDao.insertPenaltyDetailHistory(pItem);
}
}
}

@ -4,6 +4,8 @@ import cfs.common.vo.CommonParamVO;
public class FinePenaltyDisableProcessingVO extends CommonParamVO{
private String searchKbn;
/**
*
*/
@ -448,7 +450,7 @@ public class FinePenaltyDisableProcessingVO extends CommonParamVO{
private String boothName;
private String passDay;
private String passTimes;
private String carTypeName1;
private String carTypeNameFromCarRegister;
private String no1;
private String no2;
private String no3;
@ -525,7 +527,6 @@ public class FinePenaltyDisableProcessingVO extends CommonParamVO{
private String tunnelWorker;
private String reader;
private String readerRemarks;
private String lastReader;
private String asMngYear;
private String asMngNo;
private String asOfficeId;
@ -714,6 +715,13 @@ public class FinePenaltyDisableProcessingVO extends CommonParamVO{
private String egreenSendDate;
public String getSearchKbn() {
return searchKbn;
}
public void setSearchKbn(String searchKbn) {
this.searchKbn = searchKbn;
}
public String getKtSendStatName() {
return ktSendStatName;
@ -2617,12 +2625,12 @@ public class FinePenaltyDisableProcessingVO extends CommonParamVO{
this.passTimes = passTimes;
}
public String getCarTypeName1() {
return carTypeName1;
public String getCarTypeNameFromCarRegister() {
return carTypeNameFromCarRegister;
}
public void setCarTypeName1(String carTypeName1) {
this.carTypeName1 = carTypeName1;
public void setCarTypeNameFromCarRegister(String carTypeNameFromCarRegister) {
this.carTypeNameFromCarRegister = carTypeNameFromCarRegister;
}
public String getNo1() {
@ -3356,14 +3364,6 @@ public class FinePenaltyDisableProcessingVO extends CommonParamVO{
this.rfidPenaltyKbnName = rfidPenaltyKbnName;
}
public String getLastReader() {
return lastReader;
}
public void setLastReader(String lastReader) {
this.lastReader = lastReader;
}
public String getCarNo2() {
return carNo2;
}

@ -1,13 +1,25 @@
package cfs.fine.web;
import java.io.Closeable;
import java.io.PrintStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@ -18,8 +30,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
import com.inswave.util.Result;
import cfs.common.dao.CfsCommonDao;
import cfs.common.vo.ExcelUpVO;
import cfs.common.vo.ParamBean;
import cfs.fine.dao.FinePenaltyDisableProcessDao;
import cfs.fine.service.FinePenaltyDisableProcessingService;
import cfs.fine.vo.CarInfoChangeExcelUpVO;
import cfs.fine.vo.FinePenaltyDisableProcessingVO;
@Controller
@ -28,7 +44,8 @@ public class FinePenaltyDisableProcessingController {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource(name ="finePenaltyDisableProcessingService")
private FinePenaltyDisableProcessingService finePenaltyDisableProcessingService;
@Resource(name ="cfsCommonDao")
private CfsCommonDao cfsCommonDao;
/**
* - / -
@ -316,7 +333,7 @@ public class FinePenaltyDisableProcessingController {
* @return
*
*/
@RequestMapping(value="/cfs/fine/findPaymentOfPenaltySecondaryChange.do", method=RequestMethod.POST)
@RequestMapping(value="/cfs/fine/findInfoForSecondaryChange.do", method=RequestMethod.POST)
public @ResponseBody Map<String, Object> findInfoForSecondaryChange(
@RequestBody ParamBean<FinePenaltyDisableProcessingVO> param,
HttpServletRequest request) throws Exception {
@ -348,30 +365,36 @@ public class FinePenaltyDisableProcessingController {
* @return
*
*/
@RequestMapping(value="/cfs/fine/findPaymentOfPenaltySecondaryChangeUpdate.do", method=RequestMethod.POST)
@RequestMapping(value="/cfs/fine/saveInfoForSecondaryChange.do", method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> saveInfoForSecondaryChange(
@RequestBody ParamBean<FinePenaltyDisableProcessingVO> param,
HttpServletRequest request) throws Exception {
FinePenaltyDisableProcessingVO finePenaltyDisableProcessingVO = param.getParam();
FinePenaltyDisableProcessingVO inVO = param.getParam();
Map<String, String> additionalInfo = finePenaltyDisableProcessingService.findInfoForSecondaryChange(inVO);
inVO.setCollectId(additionalInfo.get("collectId"));
inVO.setCarNo2(additionalInfo.get("carNo"));
inVO.setMiniCarKbn2(additionalInfo.get("miniCarKbn"));
inVO.setResidentNo2(additionalInfo.get("residentNo"));
Result result = new Result();
try {
HttpSession session = request.getSession();
finePenaltyDisableProcessingVO.setSessionUserNm((String) session.getAttribute("EMP_NM"));
inVO.setSessionUserNm((String) session.getAttribute("EMP_NM"));
finePenaltyDisableProcessingService.updateDfriForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.updateDctiForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.insertPauiForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.savePhiForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.updatePdiForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.updatePihForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.updatePdihForSecondaryChange(finePenaltyDisableProcessingVO);
finePenaltyDisableProcessingService.updateDfriForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updateDctiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.insertPauiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.savePhiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updatePdiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updatePihForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updatePdihForSecondaryChange(inVO);
//소유주 변경고지 예정 여부 이면
if (finePenaltyDisableProcessingVO.getRentKbn().trim().equals("1")){
finePenaltyDisableProcessingService.savePriForSecondaryChange(finePenaltyDisableProcessingVO);
if (inVO.getRentKbn().trim().equals("1")){
finePenaltyDisableProcessingService.savePriForSecondaryChange(inVO);
}
result.setMsg(Result.STATUS_SUCESS, "정상적으로 조회가 완료되었습니다.");
@ -384,6 +407,308 @@ public class FinePenaltyDisableProcessingController {
return result.getResult();
}
/**
* - / -
*
* @author allsunday
* @task
* @param param
* @param request
* @return
*
*/
@RequestMapping(value="/cfs/fine/saveExcelForSecondaryChange.do", method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> saveExcelForSecondaryChange(
@RequestBody List<CarInfoChangeExcelUpVO> excelUpVOs,
HttpServletRequest request) throws Exception {
Result result = new Result();
HttpSession session = request.getSession();
String sessionUserNm = (String) session.getAttribute("EMP_NM");
CarInfoChangeExcelUpVO excelUpVO = excelUpVOs.get(0);
ExcelUpVO logVO = new ExcelUpVO();
logVO.setActionDt(excelUpVO.getActionDt());
logVO.setActionUser(excelUpVO.getActionUser());
logVO.setColA(excelUpVO.getDummy0());
logVO.setColB(excelUpVO.getCarNo());
logVO.setColC(excelUpVO.getPassDayTimes());
logVO.setColD(excelUpVO.getFareOfficeBoothId());
logVO.setColE(excelUpVO.getRentCompany());
logVO.setColF(excelUpVO.getDummy1());
logVO.setColG(excelUpVO.getDummy2());
logVO.setColH(excelUpVO.getOwner());
logVO.setColI(excelUpVO.getResidentNo());
logVO.setColJ(excelUpVO.getPostNo());
logVO.setColK(excelUpVO.getAddress());
logVO.setColL(excelUpVO.getRentPeriod());
logVO.setColM(excelUpVO.getRentContact());
logVO.setColN(excelUpVO.getDocumentKbn());
logVO.setColO(excelUpVO.getDocumentNumber());
try {
FinePenaltyDisableProcessingVO inVO = new FinePenaltyDisableProcessingVO();
inVO.setSearchKbn("요금소,차로,통행일시,차량번호");
inVO.setSessionUserNm(sessionUserNm);
String carNo = excelUpVO.getCarNo();
if(carNo == null || carNo.equals("")){
logVO.setStatCd("F");
logVO.setFailReason("차량번호 없음");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
String dayAndTime = excelUpVO.getPassDayTimes();
if(dayAndTime == null || dayAndTime.length() != 19){
logVO.setStatCd("F");
logVO.setFailReason("통행일시 값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
String[] _dayAndTime = dayAndTime.split(" ");
String passDay = _dayAndTime[0].replaceAll("-", "");
String passTimes = _dayAndTime[1].replaceAll(":", "");
String fareOfficeBoothId = excelUpVO.getFareOfficeBoothId();
if(fareOfficeBoothId == null || fareOfficeBoothId.length() != 5){
logVO.setStatCd("F");
logVO.setFailReason("요금소/차로 값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
String[] _fareOfficeBoothId = fareOfficeBoothId.split("-");
inVO.setFareOfficeId(_fareOfficeBoothId[0]);
inVO.setBoothId(_fareOfficeBoothId[1]);
inVO.setPassDay(passDay);
inVO.setYear(passDay.substring(0,4));
inVO.setMonth(passDay.substring(4,6));
inVO.setDay(passDay.substring(6,8));
inVO.setWorkTimes(passTimes);
inVO.setPassTimes(passTimes);
inVO.setCarNo(carNo);
inVO.setCarNo2(carNo);
inVO.setRentCompany(excelUpVO.getRentCompany());
String owner = excelUpVO.getOwner();
if(owner == null || owner.equals("")){
logVO.setStatCd("F");
logVO.setFailReason("변경 후 소유주 값 없음");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
inVO.setOwner(owner);
String residentNo = excelUpVO.getResidentNo();
if(residentNo == null || residentNo.equals("")){
logVO.setStatCd("F");
logVO.setFailReason("변경 후 소유주 식별번호 값 없음");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
residentNo = residentNo.replaceAll("-", "");
if(residentNo.length() != 10 && residentNo.length() != 13){
logVO.setStatCd("F");
logVO.setFailReason("변경 후 소유주 식별번호 값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
inVO.setResidentNo(residentNo);
String postNo = excelUpVO.getPostNo();
if(postNo == null || postNo.length() != 5){
logVO.setStatCd("F");
logVO.setFailReason("우편번호 값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
inVO.setPostNo(postNo);
String address = excelUpVO.getAddress();
if(address == null || address.equals("")){
logVO.setStatCd("F");
logVO.setFailReason("주소 값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
inVO.setAddressName(address);
inVO.setAddressNumber("");
String rentPeriod = excelUpVO.getRentPeriod();
if(rentPeriod != null && !rentPeriod.equals("")){
if(rentPeriod.length() != 17){
logVO.setStatCd("F");
logVO.setFailReason("렌트기간 값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
}
String[] _rentPeriod = rentPeriod.split("-");
inVO.setRentPeriod1(_rentPeriod[0]);
inVO.setRentPeriod2(_rentPeriod[1]);
inVO.setRentContact(excelUpVO.getRentContact());
String documentKbn = excelUpVO.getDocumentKbn();
if(documentKbn != null && !documentKbn.equals("")){
if(!documentKbn.equals("1") && !documentKbn.equals("2")){
logVO.setStatCd("F");
logVO.setFailReason("문서종류값 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
}
inVO.setDocumentKbn(documentKbn);
inVO.setDocumentNumber(excelUpVO.getDocumentNumber());
inVO.setRentPerson("");
inVO.setRentCompanyAddress("");
inVO.setRentKbn("1");
Map<String, String> additionalInfo = finePenaltyDisableProcessingService.findInfoForSecondaryChange(inVO);
if(additionalInfo == null){
logVO.setStatCd("F");
logVO.setFailReason("차량번호,통행일시,요금소,차로로 조회된 자료가 없습니다.");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
inVO.setWorkerId(additionalInfo.get("workerId"));
inVO.setSeqNo(String.valueOf(additionalInfo.get("seqNo")));
inVO.setPenaltyManageYear(additionalInfo.get("penaltyManageYear"));
inVO.setPenaltySeqNo(String.valueOf(additionalInfo.get("penaltySeqNo")));
inVO.setCarTypeName(additionalInfo.get("carTypeName"));
inVO.setMaxCarryCapacity(additionalInfo.get("maxCarryCapacity"));
inVO.setMiniCarKbn(additionalInfo.get("miniCarKbn"));
inVO.setMiniCarKbn2(additionalInfo.get("miniCarKbn"));
inVO.setCollectId(additionalInfo.get("collectId"));
inVO.setResidentNo2(additionalInfo.get("residentNo"));
finePenaltyDisableProcessingService.updateDfriForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updateDctiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.insertPauiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.savePhiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updatePdiForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updatePihForSecondaryChange(inVO);
finePenaltyDisableProcessingService.updatePdihForSecondaryChange(inVO);
finePenaltyDisableProcessingService.savePriForSecondaryChange(inVO);
} catch (Exception ex) {
ex.printStackTrace();
logVO.setStatCd("F");
logVO.setFailReason("알 수 없는 오류");
cfsCommonDao.insertExcelUpLog(logVO);
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
return result.getResult();
}
logVO.setStatCd("S");
cfsCommonDao.insertExcelUpLog(logVO);
result.setMsg(Result.STATUS_SUCESS, "정상적으로 처리가 완료되었습니다.");
return result.getResult();
}
@RequestMapping(value="/cfs/fine/saveExcelResultForSecondaryChange.do")
public void saveExcelResultForSecondaryChange(HttpServletRequest request, HttpServletResponse response) throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook();
try {
Sheet sheet = workbook.createSheet();
Map<String, String> inMap = new HashMap<String, String>();
inMap.put("actionUser", request.getParameter("actionUser"));
inMap.put("actionDt", request.getParameter("actionDt")) ;
List<Map<String,String>> logRows = cfsCommonDao.selectExcelUpLog(inMap);
int rowIndex = 0;
Row headerRow = sheet.createRow(rowIndex++);
Cell headerCell0 = headerRow.createCell(0);
headerCell0.setCellValue("실패사유");
Cell headerCell1 = headerRow.createCell(1);
headerCell1.setCellValue("순번");
Cell headerCell2 = headerRow.createCell(2);
headerCell2.setCellValue("차량번호");
Cell headerCell3 = headerRow.createCell(3);
headerCell3.setCellValue("통행일시");
Cell headerCell4 = headerRow.createCell(4);
headerCell4.setCellValue("요금소,차로");
for (Map<String,String> logRow : logRows) {
Row bodyRow = sheet.createRow(rowIndex++);
Cell bodyCell0 = bodyRow.createCell(0);
bodyCell0.setCellValue(logRow.get("FAIL_REASON"));
Cell bodyCell1 = bodyRow.createCell(1);
bodyCell1.setCellValue(logRow.get("COL_A"));
Cell bodyCell2 = bodyRow.createCell(2);
bodyCell2.setCellValue(logRow.get("COL_B"));
Cell bodyCell3 = bodyRow.createCell(3);
bodyCell3.setCellValue(logRow.get("COL_C"));
Cell bodyCell4 = bodyRow.createCell(4);
bodyCell4.setCellValue(logRow.get("COL_D"));
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition",String.format("attachment;filename=%s", URLEncoder.encode("업로드실패목록.xlsx", "UTF-8")));
workbook.write(response.getOutputStream());
} catch(Exception e){
} finally {
}
}
/**
* - / - -
*

Loading…
Cancel
Save