Commit 92c42e83 authored by Ketan Patil's avatar Ketan Patil

Upload New File

parent 81305f5c
package ibase.webitm.ejb.phyzii;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.sql.Types;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.naming.InitialContext;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
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.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.json.JSONArray;
import org.json.JSONObject;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.util.logging.SimpleFormatter;
import java.util.logging.XMLFormatter;
import EasyXLS.ExcelAutoFormat;
//import EasyXLS.ExcelDocument;
//import EasyXLS.Constants.Styles;
import ibase.scheduler.utility.interfaces.Schedule;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.EMail;
import ibase.utility.MailInfo;
//import ibase.webitm.ejb.fin.servlet.ITMDBAccessEJB;
//import ibase.webitm.ejb.fin.servlet.UserInfoBean;
import ibase.webitm.reports.utility.JasperReportGenerator;
import ibase.webitm.reports.utility.ResourceConstants;
import ibase.webitm.reports.utility.XSDParser;
import ibase.webitm.utility.ITMException;
public class PhyzziAcknowledgementSch implements Schedule {
String mailAddress = "";
private InitialContext ctx;
private ServletContext servletContext;
private ServletConfig servletConfig;
private E12GenericUtility genericUtility;
// private ITMDBAccessEJB itmDBAccess;
private String className = getClass().getSimpleName().toString();
private String fileDirectory;
private String filePath;
private String fileName;
private FileOutputStream fileOutputStream;
private XSSFWorkbook excelWorkbook;
private XSSFSheet excelSheet;
private FileHandler loggerFileHandler;
private Set<String> adCodeList;
private Set<String> vaildAdCodeList;
String sheetName = "Phyzii";
// private UserInfoBean userInfo = null;
private Calendar calendar = Calendar.getInstance();
private Logger myLogger = Logger.getLogger(getClass().getSimpleName().toString());
@Override
public String schedule(HashMap arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public String schedule(String arg0) throws Exception {
System.out.println("Inside schedule abc.... " + arg0);
return this.performOp(arg0);
}
@Override
public String schedulePriority(String arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("Inside schedule priority ..........." + arg0);
return this.performOp(arg0);
}
public String performOp(String scheduleParamXML) throws ITMException {
System.out.println("Inside schedule performOp ..........." + scheduleParamXML);
String retString = "";
Connection conn = null;
boolean isError = false;
try {
// printLog("STDOUT","ReportCreationScheduler : performOp => Scheduler
// Started");
// printLog("STDOUT","ReportCreationScheduler : performOp : =>" +
// scheduleParamXML);
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB("APPVIS");
// conn = getConnection();
retString = performOp(scheduleParamXML, conn);
} catch (Exception e) {
isError = true;
e.printStackTrace();
throw new ITMException(e);
} finally {
try {
if (conn != null) {
if (isError) {
conn.rollback();
} else {
conn.commit();
}
conn.close();
conn = null;
}
} catch (Exception e) {
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String performOp(String scheduleParamXML, Connection conn) throws ITMException, Exception {
int i1 =0;
// String[] header1 = {" Expence Unique Id "," Doc No "," Doc Date "," Status "};
String[] header1= null;
// Object excelCell = null ;
// String[] header1 = {" Expence Unique Id "," Doc No "," Doc Date "," Status "};
ArrayList<String> header2 = new ArrayList<String>();
String headColumnName ="";
ResultSetMetaData rsmd= null;
int i = 1;
System.out.println("Inside main method schedule performOp ..........." + scheduleParamXML);
// ExcelDocument workbook = new ExcelDocument();
String retString = "";
String sql = "", objName = "", argumentString = "", jrxmlName = "", sqlGrp1 = "";
String sqlExpr = "", sqlExpr1 = "", sqlExpr2 = "", sqlExpr3 = "", sqlExpr4 = "", sqlExpr5 = "", sqlExpr6 = "",
errfilePath = "",transDb="";
String compSql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
ArrayList<String> objtNamelist = new ArrayList<String>();
String objtNames = "";
String stateCode = "", reportGroup = null;
ibase.utility.UserInfoBean userInfo = null;
E12GenericUtility genericUtility = new E12GenericUtility();
ArrayList<Object> valueContainer = new ArrayList<Object>();
boolean mailSent = false;
String transInfo = "";
// Added By Amit Shrivastava on 04/16/19 for create a variable [Start]
String mailFormat = "";
// Added By Amit Shrivastava on 04/16/19 for create a variable [End]
System.out.println("scheduler xml content:" + scheduleParamXML);
// String
// reportGroup=scheduleParamXML.substring(scheduleParamXML.indexOf("<reportGroup>")+22,
// scheduleParamXML.indexOf("</reportGroup>")-3);
String newMyStr ="";
int rowExcel = 1;
// int excelCell = 1;
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
try {
userInfo = new ibase.utility.UserInfoBean(scheduleParamXML);
Document dom = genericUtility.parseString(scheduleParamXML);
// Dom related stuff goes here.....
NodeList paramList = dom.getElementsByTagName("SCHEDULE");
Node currDetail = null;
int noOfParam = paramList.getLength();
NodeList parentNodeList = null, childNodeList = null;
Node parentNode = null, childNode = null;
String DisparmSites = "";
int childNodeListLength = 0;
String childNodeName = null;
int index = 0;
parentNodeList = dom.getElementsByTagName("ACTUALPARAMETERS");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
for (int ctr = 0; ctr < childNodeListLength; ctr++) {
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if (childNodeName != null && !"#text".equalsIgnoreCase(childNodeName)) {
if (ctr == 0) {
transDb = checkNull(childNode.getFirstChild().getNodeValue());
System.out.println("transDb::" + transDb);
}
else if(ctr==1) {
sqlGrp1=checkNull(childNode.getFirstChild().getNodeValue());
System.out.println("sqlGrp1::"+sqlGrp1); } //Added By amit
// SHrivasatava on 04/06/19 for get the maol format value [Start] else
/*
* if(ctr==2) { mailFormat=checkNull(childNode.getFirstChild().getNodeValue());
* System.out.println("@ MailFormat::"+mailFormat); }
*/
// Added By amit SHrivasatava on 04/06/19 for get the maol format value [end]
}
}
if (sqlGrp1.equalsIgnoreCase("PHYZ") || sqlGrp1.equalsIgnoreCase("PHYZ1") || sqlGrp1.equalsIgnoreCase("PHYZ2") || sqlGrp1.equalsIgnoreCase("PHYZ3") )
{
System.out.println("inside if for EXCEL creation===>>> "+sqlGrp1);
sql = "select line_no,sql_expr,sql_input,sql_expr1,sql_expr2,sql_expr3,sql_expr4,"
+ " sql_expr5,sql_expr6 from tax_bal_grp_det where bal_group=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, sqlGrp1);
rs = pstmt.executeQuery();
while (rs.next()) {
sqlExpr = checkNull(rs.getString("sql_expr"));
sqlExpr1 = checkNull(rs.getString("sql_expr1"));
sqlExpr2 = checkNull(rs.getString("sql_expr2"));
sqlExpr3 = checkNull(rs.getString("sql_expr3"));
sqlExpr4 = checkNull(rs.getString("sql_expr4"));
sqlExpr5 = checkNull(rs.getString("sql_expr5"));
sqlExpr6 = checkNull(rs.getString("sql_expr6"));
objtNames = checkNull(rs.getString("sql_input"));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/* START >> To track exception 20/11/20 */
if (sqlExpr != null || sqlExpr1 != null || sqlExpr2 != null || sqlExpr3 != null || sqlExpr5 != null
|| sqlExpr6 != null) {
compSql = sqlExpr + " " + sqlExpr1 + " " + sqlExpr2 + " " + sqlExpr3 + " " + sqlExpr4 + " " + sqlExpr5
+ " " + sqlExpr6;
System.out.println("Combine SQL Inside if::::" + compSql);
}
System.out.println("Combine SQL outside if::::" + compSql);
/* END */
System.out.println("compSql" );
//new added
pstmt=conn.prepareStatement(compSql);
rs=pstmt.executeQuery();
rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
for ( i = 1; i <= columnCount; i++ )
{
headColumnName = rsmd.getColumnName(i);
System.out.println("headColumnName "+headColumnName);
header2.add(headColumnName);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//new ended
header1 = new String[header2.size()];
for ( i1 = 0; i1 < header2.size(); i1++)
{
header1[i1] = header2.get(i1);
System.out.println("header1[i1] " +header1[i1]);
}
System.out.println("header2 "+header2);
for (String k : header1) {
System.out.println("header1 "+k);
System.out.println("okno");
}
//new ended
if(compSql!=null && compSql.trim().length() > 0 )
{
System.out.println("inside compSql");
pstmt=conn.prepareStatement(compSql,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE);
rs=pstmt.executeQuery();
System.out.println("compSql executed");
//header row added to excel
System.out.println(className+">>>> if compSql creating workbook and adding header started");
createExcelWorkBook();
createExcelSheet(sheetName);
addExcelHeaderRow(header1);
System.out.println(className+">>>> if compSql creating workbook and adding header done");
//ended
}
System.out.println("sqlGrp1 "+sqlGrp1);
//first sql group[START]
if (sqlGrp1.equalsIgnoreCase("PHYZ"))
{
System.out.println("inside if "+sqlGrp1);
while(rs.next())
{
System.out.println("inside while "+sqlGrp1);
jsonObject.put("EXPENSE_UNIQUE_ID", checkNull(rs.getString("EXPENSE_UNIQUE_ID")).trim());
jsonObject.put("DOC_NO", checkNull(rs.getString("DOC_NO")).trim());
jsonObject.put("DOC_DATE", checkNull(rs.getString("DOC_DATE")).trim());
jsonObject.put("STATUS", checkNull(rs.getString("STATUS")).trim());
jsonArray.put(jsonObject);
System.out.println("jsonArray==== "+jsonArray.put(jsonObject));
if (jsonObject != null)
{
System.out.println("inside====jsonObject");
System.out.println(className+">>>> if jsonObject != null addExcelRow rowId ="+rowExcel+" started");
Object[] excelCell = {jsonObject.get("EXPENSE_UNIQUE_ID"),jsonObject.get("DOC_NO"),jsonObject.get("DOC_DATE"),jsonObject.get("STATUS")};
addExcelRow(rowExcel,excelCell);
rowExcel++;
System.out.println(className+">>>> if userAction = DW addExcelRow rowId ="+rowExcel+" ended");
System.out.println("excelCell---->>> "+excelCell);
}
}
}
//first sql group[END]
// ========================================XXXXXXXXXXXXXXXXXXXX==============================================
//SECOND sql group[START]
if (sqlGrp1.equalsIgnoreCase("PHYZ1"))
{
System.out.println("inside if "+sqlGrp1);
while(rs.next())
{
System.out.println("inside while "+sqlGrp1);
jsonObject.put("EXPENSE_UNIQUE_ID", checkNull(rs.getString("EXPENSE_UNIQUE_ID")).trim());
jsonObject.put("DOC_NO", checkNull(rs.getString("DOC_NO")).trim());
jsonObject.put("DOC_DATE", checkNull(rs.getString("DOC_DATE")).trim());
jsonObject.put("DOC_DUE_DATE", checkNull(rs.getString("DOC_DUE_DATE")).trim());
jsonObject.put("PAYMENT_ID", checkNull(rs.getString("PAYMENT_ID")).trim());
jsonObject.put("PAYMENT_DATE", checkNull(rs.getString("PAYMENT_DATE")).trim());
jsonObject.put("PAY_MODE", checkNull(rs.getString("PAY_MODE")).trim());
jsonObject.put("BANK_NAME", checkNull(rs.getString("BANK_NAME")).trim());
jsonObject.put("NET_AMT", checkNull(rs.getString("NET_AMT")).trim());
jsonObject.put("PAY_AMT", checkNull(rs.getString("PAY_AMT")).trim());
jsonObject.put("EMP_CODE", checkNull(rs.getString("EMP_CODE")).trim());
jsonObject.put("PHZYII_EMP_NO", checkNull(rs.getString("PHZYII_EMP_NO")).trim());
jsonObject.put("ADV_AMT", checkNull(rs.getString("ADV_AMT")).trim());
jsonArray.put(jsonObject);
System.out.println("jsonArray==== "+jsonArray.put(jsonObject));
if (jsonObject != null)
{
System.out.println("inside====jsonObject");
System.out.println(className+">>>> if jsonObject != null addExcelRow rowId ="+rowExcel+" started");
Object[] excelCell = {jsonObject.get("EXPENSE_UNIQUE_ID"),jsonObject.get("DOC_NO") ,jsonObject.get("DOC_DATE") ,jsonObject.get("DOC_DUE_DATE") ,jsonObject.get("PAYMENT_ID") ,jsonObject.get("PAYMENT_DATE") ,jsonObject.get("PAY_MODE") ,jsonObject.get("BANK_NAME") ,jsonObject.get("NET_AMT"),jsonObject.get("PAY_AMT") ,jsonObject.get("EMP_CODE") ,jsonObject.get("PHZYII_EMP_NO") ,jsonObject.get("ADV_AMT") };
addExcelRow(rowExcel,excelCell);
rowExcel++;
System.out.println(className+">>>> if userAction = DW addExcelRow rowId ="+rowExcel+" ended");
System.out.println("excelCell---->>> "+excelCell);
}
}
}
//SECOND sql group[END]
// ========================================XXXXXXXXXXXXXXXXXXXX==============================================
//THIRD sql group[START]
if (sqlGrp1.equalsIgnoreCase("PHYZ2"))
{
System.out.println("inside if "+sqlGrp1);
while(rs.next())
{
System.out.println("inside while "+sqlGrp1);
jsonObject.put("PHYZI_TRAN_ID", checkNull(rs.getString("PHYZI_TRAN_ID")).trim());
jsonObject.put("DOC_NO", checkNull(rs.getString("DOC_NO")).trim());
jsonObject.put("DOC_DATE", checkNull(rs.getString("DOC_DATE")).trim());
jsonObject.put("DOC_DUE_DATE", checkNull(rs.getString("DOC_DUE_DATE")).trim());
jsonObject.put("ADV_DOC_NO", checkNull(rs.getString("ADV_DOC_NO")).trim());
jsonObject.put("TOT_AMT", checkNull(rs.getString("TOT_AMT")).trim());
jsonObject.put("ADV_ADJ_AMT", checkNull(rs.getString("ADV_ADJ_AMT")).trim());
jsonObject.put("NET_AMT", checkNull(rs.getString("NET_AMT")).trim());
jsonArray.put(jsonObject);
System.out.println("jsonArray==== "+jsonArray.put(jsonObject));
if (jsonObject != null)
{
System.out.println("inside====jsonObject");
System.out.println(className+">>>> if jsonObject != null addExcelRow rowId ="+rowExcel+" started");
Object[] excelCell = {jsonObject.get("PHYZI_TRAN_ID"),jsonObject.get("DOC_NO") ,jsonObject.get("DOC_DATE") ,jsonObject.get("DOC_DUE_DATE") ,jsonObject.get("ADV_DOC_NO") ,jsonObject.get("TOT_AMT") ,jsonObject.get("ADV_ADJ_AMT") ,jsonObject.get("NET_AMT")};
addExcelRow(rowExcel,excelCell);
rowExcel++;
System.out.println(className+">>>> if userAction = DW addExcelRow rowId ="+rowExcel+" ended");
System.out.println("excelCell---->>> "+excelCell);
}
}
}
//THIRD sql group[END]
// ========================================XXXXXXXXXXXXXXXXXXXX==============================================
//fourth sql group[START]
if (sqlGrp1.equalsIgnoreCase("PHYZ3"))
{
System.out.println("inside if "+sqlGrp1);
while(rs.next())
{
System.out.println("inside while "+sqlGrp1);
jsonObject.put("PHYZI_TRAN_ID", checkNull(rs.getString("PHYZI_TRAN_ID")).trim());
jsonObject.put("DOC_NO", checkNull(rs.getString("DOC_NO")).trim());
jsonObject.put("COMMENTS", checkNull(rs.getString("COMMENTS")).trim());
jsonArray.put(jsonObject);
System.out.println("jsonArray==== "+jsonArray.put(jsonObject));
if (jsonObject != null)
{
System.out.println("inside====jsonObject");
System.out.println(className+">>>> if jsonObject != null addExcelRow rowId ="+rowExcel+" started");
Object[] excelCell = {jsonObject.get("PHYZI_TRAN_ID"),jsonObject.get("DOC_NO"),jsonObject.get("COMMENTS")};
addExcelRow(rowExcel,excelCell);
rowExcel++;
System.out.println(className+">>>> if userAction = DW addExcelRow rowId ="+rowExcel+" ended");
System.out.println("excelCell---->>> "+excelCell);
}
}
}
//fourth sql group[END]
String customResponse = createExcel("Phyzii");
System.out.println("customResponse---->>> "+customResponse);
}
else
{
System.out.println("[[ EXCEPTION IN PHYZII ]] NOT IN SQLGROUP PHYZ // PHYZ1 // PHYZ2 // PHYZ3 AND PUTTED SQLGROUP IS====> " +sqlGrp1);
}
}
catch (SQLException e1) {
System.out.println("Error_Code::::" + e1.getErrorCode());
System.out.println(e1);
String err = String.valueOf(e1.getErrorCode());
printLog("STDERR", "GENERIC REPORTS :: FAIL_SQL ==>" + compSql);
printLog("STDERR", "GENERIC REPORTS :: FAIL_SQL ==>" + e1);
} catch (Exception e) {
throw new Exception(e);
} finally {
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
}
return retString;
}
private PhyzziSch1 appendValue(String string, String string2) {
// TODO Auto-generated method stub
return null;
}
/**
* @param title
* @param msg This method is used for printing the logs in log file
*/
private void printLog(String title, String msg) {
String logFile = "";
String logDir = "";
File logFileDir = null;
FileWriter fileWriter = null;
try {
String logFileName = "";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
logFileName = "ReportScheduler_" + sdf.format(new Date());
System.out.println("Inside the print log method");
logDir = CommonConstants.JBOSSHOME + File.separator + "applnlog" + File.separator + "ReportScheduler_";
System.out.println("Log direction: " + logDir);
logFileDir = new File(logDir);
if (!logFileDir.exists()) {
logFileDir.mkdirs();
}
logFile = logDir + File.separator + logFileName + ".log";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date now = new java.util.Date();
String strDate = sdfDate.format(now);
fileWriter = new FileWriter(logFile, true);
fileWriter.write("\r\n");
fileWriter.write("[ERROR] " + msg);
} catch (Exception ex) {
ex.printStackTrace();
printLog("STDERR", ex);
printLog("STDOUT", "Inside Exception [getLog]>>" + ex.toString());
} finally {
try {
if (fileWriter != null) {
fileWriter.flush();
fileWriter.close();
}
} catch (Exception e) {
e.printStackTrace();
printLog("STDERR", e);
}
}
}
private void printLog(String maildId, String tranId, String fileName, boolean mailSent) {
String logFile = "";
String logDir = "";
File logFileDir = null;
FileWriter fileWriter = null;
try {
String logFileName = "";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
logFileName = "ReportScheduler_" + sdf.format(new Date());
System.out.println("Inside the print log method");
logDir = CommonConstants.JBOSSHOME + File.separator + "applnlog" + File.separator + "ReportScheduler_";
System.out.println("Log direction: " + logDir);
logFileDir = new File(logDir);
if (!logFileDir.exists()) {
logFileDir.mkdirs();
}
logFile = logDir + File.separator + logFileName + ".log";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date now = new java.util.Date();
String strDate = sdfDate.format(now);
fileWriter = new FileWriter(logFile, true);
fileWriter.write("\r\n");
if (mailSent) {
fileWriter.write("Succesfully Sent mail to [" + tranId + "] " + "With File Name" + " [" + fileName
+ "] on Mail Id " + "[" + maildId + "]");
} else {
fileWriter.write("Mail is not Sent to [" + tranId + "] " + "With File Name" + " [" + fileName
+ "] on Mail Id " + "[" + maildId + "]");
}
} catch (Exception ex) {
ex.printStackTrace();
printLog("STDERR", ex);
printLog("STDOUT", "Inside Exception [getLog]>>" + ex.toString());
} finally {
try {
if (fileWriter != null) {
fileWriter.flush();
fileWriter.close();
}
} catch (Exception e) {
e.printStackTrace();
printLog("STDERR", e);
}
}
}
private void printLog(String title, Exception e) {
try {
StringWriter strError = new StringWriter();
e.printStackTrace(new PrintWriter(strError));
String err = strError.toString();
printLog(title, err);
} catch (Exception ex) {
ex.printStackTrace();
printLog("STDERR", "Inside Exception [getLog]>>" + ex.toString());
}
}
private String checkNull(String input) {
if (input == null) {
input = "";
}
return input.trim();
}
// Send mail method will send the mail to stockiest person
// Comment by amit shrivastava on 04/06/19 [start]
/*
* public boolean sendMail(String reportFilePath, String transInfo)throws
* ITMException
*/
public boolean sendMail(String reportFilePath, String transInfo, String mailFormat) throws ITMException
/// Comment by amit shrivastava on 04/06/19 [end]
{
boolean sentMail = false;
String lineNo = "1";
String emailType = "page";
StringBuffer valueXmlString = null;
String retValue = "";
try {
valueXmlString = new StringBuffer("<ROOT>");
/*
* valueXmlString = new StringBuffer("<ROOT><TRANS_INFO>");
* valueXmlString.append("<OBJ_NAME>").append("<![CDATA[" + "" +
* "]]>").append("</OBJ_NAME>");
* valueXmlString.append("<REF_SER>").append("<![CDATA[" + "" +
* "]]>").append("</REF_SER>");
* valueXmlString.append("<REF_ID>").append("<![CDATA[" + "" +
* "]]>").append("</REF_ID>");
* valueXmlString.append("<LINE_NO>").append("<![CDATA[" + lineNo +
* "]]>").append("</LINE_NO>"); valueXmlString.append("</TRANS_INFO>");
*
* valueXmlString.append("<MAIL>");
* valueXmlString.append("<EMAIL_TYPE>").append("<![CDATA[" + emailType +
* "]]>").append("</EMAIL_TYPE>");
* valueXmlString.append("<ENTITY_CODE>").append("<![CDATA[" + "SUN" +
* "]]>").append("</ENTITY_CODE>");
* valueXmlString.append("<ENTITY_TYPE>").append("<![CDATA[" + "" +
* "]]>").append("</ENTITY_TYPE>");
* valueXmlString.append("<FORMAT_CODE>").append("<![CDATA[" + "E"
* +"]]>").append("</FORMAT_CODE>");
* valueXmlString.append("<TO_ADD>").append("<![CDATA[" +mailAddress
* +"]]>").append("</TO_ADD>");
* valueXmlString.append("<CC_ADD>").append("<![CDATA[" +
* mailAddress+"]]>").append("</CC_ADD>");
* valueXmlString.append("<SUBJECT>").append("<![CDATA[" + "Reports"
* +"]]>").append("</SUBJECT>");
* valueXmlString.append("<BODY_TEXT>").append("<![CDATA[" + "PFA of Report(s)"
* +"]]>").append("</BODY_TEXT>");
* valueXmlString.append("<MESSAGE>").append("<![CDATA[" + "PFA of Report(s)"
* +"]]>").append("</MESSAGE>");
* valueXmlString.append("<XML_DATA_FILE_PATH>").append("<![CDATA[" +
* reportFilePath + "]]>").append("</XML_DATA_FILE_PATH>");
* valueXmlString.append("</MAIL>"); valueXmlString.append("</ROOT>");
*/
// valueXmlString.append("<ROOT>");
valueXmlString.append("<MAILINFO>");
valueXmlString.append("<EMAIL_TYPE>").append("page").append("</EMAIL_TYPE>");
// Added By amit Shrivastava on 04/06/19 for add mail format in send mail
// method.[Start]
if (mailFormat != null && mailFormat.trim().length() > 0) {
valueXmlString.append("<FORMAT_CODE>").append("<![CDATA[" + mailFormat + "]]>")
.append("</FORMAT_CODE>");
} else {
valueXmlString.append("<FORMAT_CODE>").append("<![CDATA[GEN_REPORT]]>").append("</FORMAT_CODE>");
}
/*
* valueXmlString.append("<FORMAT_CODE>").append("<![CDATA[GEN_REPORT]]>").
* append("</FORMAT_CODE>");
*/
// Added By amit Shrivastava on 04/06/19 for add mail format in send mail
// method.[End]
// commInfo.append("<TO_ADD>").append("<![CDATA[" + emailTo +
// "]]>").append("</TO_ADD>");
valueXmlString.append("<XML_DATA_FILE_PATH>").append("<![CDATA[" + reportFilePath + "]]>")
.append("</XML_DATA_FILE_PATH>");
valueXmlString.append("</MAILINFO>");
valueXmlString.append("<XML_DATA>").append(transInfo).append("</XML_DATA>");
valueXmlString.append("</ROOT>");
String mailDomStr = valueXmlString.toString();
System.out.println("@@## [Generic Report] :sendMail mailDomStr :-->" + mailDomStr);
EMail email = new EMail();
MailInfo info = new MailInfo();
retValue = email.sendMail(mailDomStr, "ITM");
if ("S".equalsIgnoreCase(retValue)) {
// printLog("STDOUT","ReportCreationScheduler : sendMail => Mail sent
// successfully" );
sentMail = true;
}
System.out.println("[Pdf] mail delivered successfully");
} catch (ITMException itme) {
System.out.println("@@## ITMException [[Generic Report]] :sendMail :sendMail :sendMail() :==>\n");
throw itme;
} catch (Exception e) {
System.out.println("Exception :[[Generic Report]] :sendMail() :==>\n" + e.getMessage());
throw new ITMException(e);
}
return sentMail;
}
/**
* boolean method which will check whether string contains mail address or not
*/
public boolean checkEmailAddress(String emailValue) {
Pattern pattern = Pattern.compile("[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}");
Matcher mat = pattern.matcher(emailValue);
return mat.matches();
}
public static boolean checkDateFormat(String strDate) {
Pattern pattern = Pattern.compile("[0-9]{1,2}-[a-zA-Z]{3}-[0-9]{4}");
Matcher mat = pattern.matcher(strDate);
return mat.matches();
}
public boolean checkDatePattern(String strDate) {
SimpleDateFormat sdfrmt = new SimpleDateFormat("dd-MMM-yyyy");
sdfrmt.setLenient(false);
/*
* Create Date object parse the string into date
*/
Pattern pattern = Pattern.compile("\\d{2}-\\d{3}-\\d{4}");
Matcher mat = pattern.matcher(strDate);
System.out.println("mat==>" + mat);
try {
Date javaDate = sdfrmt.parse(strDate);
System.out.println(strDate + " is valid date format");
SimpleDateFormat sdfrmt1 = new SimpleDateFormat("dd/MM/yy");
String strDate1 = sdfrmt1.format(javaDate);
System.out.println("Converted String: " + strDate1);
} catch (ParseException e) {
System.out.println(strDate + " is Invalid Date format");
e.printStackTrace();
}
return true;
}
private String getDomString(String emailIdPer) throws ITMException {
String retString = "";
StringBuffer valueXmlString = new StringBuffer();
Connection conn = null;
try {
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB();
// changes done by sangita n
SimpleDateFormat sdfOutput = new SimpleDateFormat("dd-MM-yyyy");
// SimpleDateFormat sdfOutput = new SimpleDateFormat(getApplDateFormat());
java.sql.Date currentDate = null;
String sqlCurrDate = "select sysdate from dual ";
PreparedStatement pstmt1 = conn.prepareStatement(sqlCurrDate);
ResultSet rSet = pstmt1.executeQuery();
if (rSet.next()) {
currentDate = rSet.getDate(1);
}
makeNullPstmtAndRs(pstmt1, rSet);
String retDateStr = sdfOutput.format(currentDate);
System.out.println(" add current date retDateStr>>>>>" + retDateStr);
// changes done by sangita n
valueXmlString.append("<ROOT>");
valueXmlString.append("<Detail1>");
valueXmlString.append("<email_id_cust>").append("<![CDATA[" + emailIdPer + "]]>")
.append("</email_id_cust>");
valueXmlString.append("<curr_date><![CDATA[").append(checkNull(retDateStr)).append("]]></curr_date>");
valueXmlString.append("</Detail1>");
valueXmlString.append("</ROOT>");
retString = valueXmlString.toString();
} catch (Exception e) {
e.printStackTrace();
printLog("ERROR", e);
}
return retString;
}
// chages done by sangita
public void makeNullPstmtAndRs(PreparedStatement pstmt, ResultSet rs) {
try {
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
boolean isWorkbookNotEmpty(String fileName) {
boolean isNotEmpty = false;
try {
FileInputStream fileInputStream = new FileInputStream(new File(fileName));
Workbook wb = WorkbookFactory.create(fileInputStream);
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
isNotEmpty = isSheetNotEmpty(wb.getSheetAt(i));
System.out.println("Sheet " + i + " has data: " + isNotEmpty);
if (isNotEmpty) {
return isNotEmpty;
// break;
}
}
} catch (Exception e) {
System.out.println("Exception occur in isWorkbookEmpty(). exception is " + e.getMessage());
e.printStackTrace();
return false;
}
return isNotEmpty;
}
boolean isSheetNotEmpty(Sheet sheet) {
Iterator rows = sheet.rowIterator();
while (rows.hasNext()) {
Row row = (Row) rows.next();
Iterator cells = row.cellIterator();
while (cells.hasNext()) {
Cell cell = (Cell) cells.next();
if (!cell.getStringCellValue().isEmpty()) {
return true;
}
}
}
return false;
}
private String createExcel(String tableName)
{
System.out.println("inside creating excel");
String response = "";
try
{
// SimpleDateFormat dateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
fileDirectory = CommonConstants.JBOSSHOME+File.separator+"Phyzii"+File.separator+"PhyziiExcel";
File dir = new File(fileDirectory);
if(!dir.exists())
{
dir.mkdirs();
}
calendar.setTime(new Timestamp(System.currentTimeMillis()));
// fileName = tableName+"#"+dateFormat.format(calendar.getTime())+"#"+checkDigit(calendar.get(Calendar.HOUR))
// +"-"+checkDigit(calendar.get(Calendar.MINUTE))+"-"+checkDigit(calendar.get(Calendar.SECOND))+".xlsx";//xls //"Pan"
fileName = tableName+"#"+"#"+checkDigit(calendar.get(Calendar.HOUR))
+"-"+checkDigit(calendar.get(Calendar.MINUTE))+"-"+checkDigit(calendar.get(Calendar.SECOND))+".xlsx";
filePath = fileDirectory +File.separator+ fileName;
System.out.println(className+" filePath>>>> "+filePath);
fileOutputStream = new FileOutputStream(filePath);
autoSizeColumns(excelWorkbook);
excelWorkbook.write(fileOutputStream);
response = "Downloaded Successfully!!!!";
}
catch (Exception e)
{
myLogger.log(Level.SEVERE, " createExcel Mtd An Exception Was Thrown ", e);
System.out.println(className+" Exception "+e.getMessage());
response = className+" Exception "+e.getMessage();
e.printStackTrace();
}
return response;
}
private String checkDigit(int input)
{
String result = Integer.toString(input);
if (result.length() == 1)
{
result = "0"+result;
}
return result.trim();
}
public void autoSizeColumns(XSSFWorkbook workbook)
{
int numberOfSheets = workbook.getNumberOfSheets();
for (int i = 0; i < numberOfSheets; i++)
{
XSSFSheet sheet = workbook.getSheetAt(i);
if (sheet.getPhysicalNumberOfRows() > 0)
{
XSSFRow row = sheet.getRow(sheet.getFirstRowNum());
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
int columnIndex = cell.getColumnIndex();
sheet.autoSizeColumn(columnIndex);
}
}
}
}
private void addExcelRow(int row,Object[] cellVal)
{
System.out.println("cellVal "+cellVal);
try
{
System.out.println("starting addExcelRow ");
XSSFRow rowHeader = excelSheet.createRow((short)row);
System.out.println("starting addExcelRow Data ");
for(int i = 0; i < cellVal.length; i++)
{
if(cellVal[i] instanceof String)
{
System.out.println("inside if");
rowHeader.createCell(i).setCellValue((String)cellVal[i]);
}
else if(cellVal[i] instanceof Integer)
{
System.out.println("inside else if");
rowHeader.createCell(i).setCellValue((Integer)cellVal[i]);
}
}
System.out.println("creating for addExcelRow CellStyle ");
XSSFCellStyle style = excelWorkbook.createCellStyle();
XSSFFont font = excelWorkbook.createFont();
font.setFontName("Arial");//XSSFFont.DEFAULT_FONT_NAME
font.setFontHeightInPoints((short)10);
font.setBold(false);
style.setFont(font);
System.out.println("started for addExcelRow style ");
for(int j = 0; j < cellVal.length; j++)
{
rowHeader.getCell(j).setCellStyle(style);
}
System.out.println("ended addExcelRow ");
}
catch (Exception e)
{
myLogger.log(Level.SEVERE, " addExcelRowException Mtd An Exception Was Thrown ", e);
System.out.println(className+" addExcelRowException :- "+e);
e.printStackTrace();
}
}
private void createExcelWorkBook()
{
excelWorkbook = new XSSFWorkbook();
}
private void createExcelSheet(String sheetName)
{
int index = excelWorkbook.getSheetIndex(sheetName);
if (index == -1)
{
excelSheet = excelWorkbook.createSheet(sheetName);
}
else
{
excelSheet = excelWorkbook.getSheet(sheetName);
}
}
private void addExcelHeaderRow(String[] header)
{
try
{
System.out.println("starting addExcelHeaderRow ");
XSSFRow rowHeader = excelSheet.createRow((short)0);
System.out.println("starting addExcelHeaderRow Data ");
for(int i = 0; i < header.length; i++)
{
rowHeader.createCell(i).setCellValue(header[i]);
}
System.out.println("creating for addExcelHeaderRow CellStyle ");
XSSFCellStyle style = excelWorkbook.createCellStyle();
XSSFFont font = excelWorkbook.createFont();
font.setFontName("Arial");//XSSFFont.DEFAULT_FONT_NAME
font.setFontHeightInPoints((short)10);
font.setBold(true);
style.setFont(font);
System.out.println("started for addExcelHeaderRow style ");
for(int j = 0; j<header.length; j++)
{
rowHeader.getCell(j).setCellStyle(style);
//excelSheet.setColumnWidth(j, 25 * 256);
}
System.out.println("ended addExcelHeaderRow ");
}
catch (Exception e)
{
myLogger.log(Level.SEVERE, " addExcelHeaderRowException Mtd An Exception Was Thrown ", e);
System.out.println(className+" addExcelHeaderRowException :- "+e);
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment