You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
5.8 KiB
Java
156 lines
5.8 KiB
Java
package center.data;
|
|
|
|
import java.io.File;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
|
|
import com.base.FileStreamParser;
|
|
import com.base.FileWorker;
|
|
import com.exception.AppException;
|
|
import com.exception.IllegalRecordException;
|
|
import com.resources.data.Info;
|
|
|
|
import center.dao.VanTransDAO;
|
|
/**
|
|
* 면제차량정보 파일 생성<BR>
|
|
* @author jhban
|
|
* @since JDK 1.4.1
|
|
* @version 0.1, 2015-05-13 초기 작성
|
|
*/
|
|
public class MakeExemptCar extends FileWorker {
|
|
|
|
public static final int LOG_COUNT = 10000; // log count
|
|
|
|
public MakeExemptCar(){
|
|
}
|
|
/**
|
|
* 면제차량정보 생성 실행
|
|
*/
|
|
@Override
|
|
public void execute(){
|
|
String sFileName = null;
|
|
String sPrcsName = "MakeExemptCar";
|
|
VanTransDAO commDAO; // 파일 전송 이력 클래스 변수
|
|
|
|
try{
|
|
logger.logInfo(sPrcsName + " is started");
|
|
|
|
String sPrcsOption = System.getProperty("option");
|
|
if (sPrcsOption == null || sPrcsOption.equals("")) {
|
|
sBaseDate = TODAY;
|
|
}else{
|
|
sBaseDate = sPrcsOption;
|
|
}
|
|
|
|
sFileName = "FC_" + sBaseDate.substring(2) +".txt";
|
|
logger.logInfo( ".... file name : " + sFileName );
|
|
|
|
conn = getConnection();
|
|
conn.setAutoCommit(false);
|
|
|
|
//commonDAO = new TunnelTransDAO(conn);
|
|
|
|
outFile = new FileStreamParser();
|
|
outFile.openWriteFile(new File(freeDir, sFileName));
|
|
/**
|
|
* auth : redkaras
|
|
* history : 2016.04.22 파일생성이 후 집계서버 배포를 위한 처리 추가
|
|
* **/
|
|
if( writeDataRecord() ){
|
|
commDAO = new VanTransDAO(conn);
|
|
String sCreater;
|
|
if(sPrcsName.length() <= 10 )
|
|
sCreater = sPrcsName;
|
|
else sCreater = sPrcsName.substring(0, 10);
|
|
|
|
Info transInfo = null;
|
|
transInfo = new Info();
|
|
transInfo.setString("FILE_KIND_ID" , "1G" );
|
|
transInfo.setString("FORMAT_DATE" , TODAY );
|
|
transInfo.setString("FARE_OFFICE_ID" , "TM");
|
|
transInfo.setString("FILE_TRANS_KBN" , "R" );
|
|
transInfo.setString("FILE_TRANS_YN" , "Y" );
|
|
transInfo.setString("DATA_PROCESS_KBN", "9" );
|
|
transInfo.setString("DIR_NAME" , freeDir );
|
|
transInfo.setString("FILE_NAME" , sFileName.trim() );
|
|
transInfo.setString("CREATER" , sCreater);
|
|
|
|
//파일코드를 통한 순번 획득
|
|
long nSeqNo = commDAO.getNextSeq("1G");
|
|
transInfo.setLong ("DATA_SEQNO" , nSeqNo );
|
|
//전송처리해야할 파일에 대한 정보저장
|
|
commDAO.insertFileTransInfo( transInfo );
|
|
//1호 요금소 전송을 위한 정보등록
|
|
transInfo.setString("FARE_OFFICE_ID" , "01");
|
|
commDAO.insertOfficeTransInfo( transInfo );
|
|
//3호 요금소 전송을 위한 정보등록
|
|
transInfo.setString("FARE_OFFICE_ID" , "03");
|
|
commDAO.insertOfficeTransInfo( transInfo );
|
|
conn.commit();
|
|
}
|
|
logger.logInfo("----------------------------------" );
|
|
logger.logInfo(".... DB Select Count : "+ nSelectCount);
|
|
logger.logInfo(".... File Write Count : "+ nWriteCount );
|
|
|
|
logger.logInfo(sPrcsName + " is ended");
|
|
}catch(Exception e){
|
|
try{ if(conn != null){ conn.rollback(); }}catch(Exception ignore){}
|
|
logger.logFail(sPrcsName + " 프로세스 실패");
|
|
logger.logTrace(e);
|
|
}finally{
|
|
try{ if(outFile != null){ outFile.closeFile(); }}catch(Exception ignore){}
|
|
try{ if(conn != null){ conn.close(); }}catch(Exception ignore){}
|
|
}
|
|
}
|
|
/**
|
|
* Data Format 작성
|
|
* @return
|
|
* @throws SQLException
|
|
* @throws IllegalRecordException
|
|
* @throws AppException
|
|
*/
|
|
private boolean writeDataRecord() throws SQLException, IllegalRecordException, AppException {
|
|
PreparedStatement stmt = null;
|
|
ResultSet rs = null;
|
|
|
|
try{
|
|
/**
|
|
* auth : redkaras
|
|
* history : 2016.09.05 파일생성시 면제차량구분(1:장애인)을 제외한 데이터만 생성하기 위하여 "EXEMPT_KBN <> '1'" 조건 추가
|
|
* **/
|
|
StringBuffer sbQuery = new StringBuffer();
|
|
sbQuery.append(" SELECT DISTINCT CAR_NO, ")
|
|
.append(" EXEMPT_KBN ")
|
|
.append(" FROM EXEMPT_CARS_INFO ")
|
|
.append(" WHERE TO_CHAR(ENFORCE_DATE, 'YYYYMMDD') <= TO_CHAR(sysdate, 'YYYYMMDD') ")
|
|
.append(" AND TO_CHAR(END_DATE, 'YYYYMMDD') >= TO_CHAR(sysdate, 'YYYYMMDD') ")
|
|
.append(" AND EXEMPT_KBN <> '1' ");
|
|
|
|
stmt = conn.prepareStatement(sbQuery.toString());
|
|
rs = stmt.executeQuery();
|
|
|
|
while(rs.next()){
|
|
nSelectCount++;
|
|
|
|
String str = rs.getString("CAR_NO");
|
|
String kbn = rs.getString("EXEMPT_KBN");
|
|
|
|
outFile.writeData(str.trim() + "," + kbn.trim());
|
|
outFile.writeData("\n");
|
|
|
|
nWriteCount++;
|
|
if( nWriteCount%LOG_COUNT == 0 ) {
|
|
logger.logInfo(".... File Write Count : "+ nWriteCount);
|
|
}
|
|
}
|
|
logger.logInfo(".... File Write Count : "+ nWriteCount);
|
|
|
|
}finally{
|
|
if(stmt != null){ try{ stmt.close(); }catch(Exception ignore){} }
|
|
if(rs != null){ try{ rs.close(); }catch(Exception ignore){} }
|
|
}
|
|
return true;
|
|
}
|
|
}
|