Commit ba9e0b16 authored by dkasliwal's avatar dkasliwal

Modify WIPStatus EJB and Servlet for PDF File.

Add PendingQCPurchase and PendingQCWorkOrder EJB and Related servlet and Local and Remote file. for Pending QC Dashboard


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98571 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 9e8cdee0
package ibase.dashboard.mfg.ejb;
import ibase.dashboard.Report.Utility.DashboardUtility;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.EMail;
import ibase.webitm.utility.ITMException;
import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.Stateless;
import org.json.simple.JSONObject;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
@Stateless
public class PendingQCPurchaseOrder implements PendingQCPurchaseOrderLocal, PendingQCPurchaseOrderRemote
{
public PendingQCPurchaseOrder()
{
// TODO Auto-generated constructor stub
}
@SuppressWarnings("unchecked")
public JSONObject getPendingQCOrderPurchase(String geoLocation, String siteCode, String dataSourceName) throws RemoteException,ITMException
{
System.out.println("In PendingQCOrder getPendingQCOrderPurchase geoLocation :"+geoLocation+"----siteCode :"+siteCode+"---dataSourceName :"+dataSourceName);
JSONObject rowDataPendingQCOrderPurc = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
DashboardUtility dashboardUtility = null;
try
{
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
int count = 0;
dashboardUtility = new DashboardUtility();
siteCode = dashboardUtility.getCommaSeparated(siteCode);
if(geoLocation.trim().length()>0 && geoLocation!=null && siteCode!=null && siteCode.trim().length()>0)
{
sql= " SELECT no_of_days, ITEM_SER, NO_OF_OPEN_QCORDER, CHK_VAL,GIM_VALUE_In_Rs" +
" FROM (SELECT z.no_of_days AS no_of_days, z.ITEM_SER AS ITEM_SER," +
" SUM(z.NO_OF_OPEN_QCORDER) AS NO_OF_OPEN_QCORDER, z.CHK_VAL AS CHK_VAL, " +
" sum(z.amt) as GIM_VALUE_IN_RS FROM (SELECT CASE " +
" WHEN TO_CHAR(A.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>=0 AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)<90 THEN '>0-90 days'" +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>=90" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)<180 THEN '>90-180 days'" +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>=180 " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)<365 THEN '>180-365 days'" +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>365 THEN '>365 days' " +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')<> TO_CHAR(SYSDATE,'YYYY') " +
" THEN TO_CHAR(a.TRAN_DATE,'YYYY') END no_of_days, A.ITEM_SER,COUNT(G.QORDER_NO)" +
" AS NO_OF_OPEN_QCORDER, (CASE WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 0 " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) < 90 THEN 1 " +
" WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 90 " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) < 180 THEN 2 WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 180 AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) < 365 THEN 3 " +
" WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 365 THEN 4 " +
" WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
" THEN TO_NUMBER ( 4 + ABS ( TO_NUMBER (TO_CHAR (a.TRAN_DATE, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) AS CHK_VAL, sum(b.quantity*b.rate*A.EXCH_RATE) " +
" as amt FROM PORCP A,PORCPDET B,ITEM C,SUPPLIER D,QC_ORDER G " +
" WHERE " +
" A.SITE_CODE IN ("+siteCode+") " +
" AND A.ITEM_SER IN ('RM1','BD','PM1','BDI') " +
" AND " +
" A.CONFIRMED='Y' AND G.STATUS='U' AND A.TRAN_ID=B.TRAN_ID " +
" AND B.ITEM_CODE=C.ITEM_CODE AND A.SUPP_CODE=D.SUPP_CODE AND G.LOT_NO=B.LOT_NO " +
" AND g.PORCP_NO=A.TRAN_ID AND G.ITEM_CODE=B.ITEM_CODE GROUP BY A.item_ser,A.TRAN_DATE) z GROUP BY z.no_of_days,z.ITEM_SER,z.CHK_VAL ORDER BY z.ITEM_SER) ORDER BY CHK_VAL ASC ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
String noOfOpenQCOrderVal="";
String gimValue="";
String noOfDay="",subType="";
List<String> noOfDayList= new ArrayList<String>();
List<String> subTypeList= new ArrayList<String>();
String key="";
LinkedHashMap<String, String> graphDataMap = new LinkedHashMap<String, String>();
LinkedHashMap<String, String> sortedGraphDataMap = new LinkedHashMap<String, String>();
while (rs.next())
{
noOfOpenQCOrderVal = rs.getString("NO_OF_OPEN_QCORDER");
noOfDay = rs.getString("NO_OF_DAYS");
subType= rs.getString("ITEM_SER");
gimValue=rs.getString("GIM_VALUE_IN_RS");
if(!noOfDayList.contains(noOfDay))
{
noOfDayList.add(noOfDay);
}
if(!subTypeList.contains(subType))
{
subTypeList.add(subType);
}
key = (noOfDay.trim()+"@"+subType.trim());
if(graphDataMap.size()==0)
{
graphDataMap.put(key, (noOfOpenQCOrderVal+"-"+gimValue));
}
if(graphDataMap !=null && graphDataMap.size()>0)
{
if(graphDataMap.containsKey(key))
{
//wipValue = wipValue + graphDataMap.get(key);
noOfOpenQCOrderVal = graphDataMap.get(key);
}
else if(! graphDataMap.containsKey(key))
{
noOfOpenQCOrderVal = noOfOpenQCOrderVal+"-"+gimValue;
}
graphDataMap.put(key, noOfOpenQCOrderVal);
}
}
System.out.println("graphDataMap: "+graphDataMap);
String sbType="";
String grpKey="";
for(int itmCtr=0;itmCtr<subTypeList.size();itmCtr++)
{
sbType = subTypeList.get(itmCtr);
for (Map.Entry<String, String> grpentry : graphDataMap.entrySet())
{
for(int dayCtr=0;dayCtr<noOfDayList.size();dayCtr++)
{
grpKey = (noOfDayList.get(dayCtr).trim()+"@"+sbType.trim());
if(graphDataMap.containsKey(grpKey))
{
sortedGraphDataMap.put(grpKey, graphDataMap.get(grpKey));
}
if(!graphDataMap.containsKey(grpKey) )
{
sortedGraphDataMap.put(grpKey, "0-0");
}
}
}
}
System.out.println("sortedGraphDataMap: "+sortedGraphDataMap);
rowData = new JSONObject();
String noDays="",qcOrd="";
String subType1="",prvsubType1="";
LinkedHashMap<String, String> catValues = new LinkedHashMap<String, String>();
LinkedHashMap<String, String> catGimValues = new LinkedHashMap<String, String>();
int cnt=0;
for (Map.Entry<String, String> entry : sortedGraphDataMap.entrySet())
{
cnt++;
String mapKey = entry.getKey();
String value = entry.getValue();// need to split
String[] temp;
temp = mapKey.split("@");
noDays = temp[0].trim();
subType1 = temp[1].trim();
String[] qcOrdArr;
qcOrdArr = value.split("-");
qcOrd = qcOrdArr[0].trim();
if( subType1 != null && ("").equals(prvsubType1) && subType1.trim().length()>0)
{
catValues.put(noDays,qcOrd);
catGimValues.put(noDays,value);
rowData.put("month",cnt);
rowData.put("product_category",subType1);
rowData.put("category_value",catValues);
rowData.put("category_gimvalue",catGimValues);
}
else if(!("").equals(prvsubType1) && prvsubType1.equals(subType1))
{
catValues.put(noDays,qcOrd);
catGimValues.put(noDays,value);
}
if(!("").equals(prvsubType1) && ! prvsubType1.equals(subType1))
{
rowData.put("month",cnt);
rowData.put("product_category",prvsubType1);
rowData.put("category_value",catValues);
rowData.put("category_gimvalue",catGimValues);
rowDataPendingQCOrderPurc.put(count, rowData);
count++;
rowData = new JSONObject();
catValues = new LinkedHashMap<String, String>();
catGimValues = new LinkedHashMap<String, String>();
catGimValues.put(noDays,value);
catValues.put(noDays,qcOrd);
}
if(cnt==sortedGraphDataMap.size())
{
rowData.put("month",cnt);
rowData.put("product_category",prvsubType1);
rowData.put("category_value",catValues);
rowData.put("category_gimvalue",catGimValues);
rowDataPendingQCOrderPurc.put(count, rowData);
}
prvsubType1=subType1;
}
}
System.out.println("rowDataPendingQCOrderPurc :"+rowDataPendingQCOrderPurc);
/*Document document = new Document();
String subtype = "";
PdfWriter.getInstance(document,new FileOutputStream("/home/base/Desktop/HelloWorld-Table.pdf"));
JSONObject fetchRowWiseValJsn = null;
document.open();
PdfPTable table = null; // 3 columns.
PdfPCell cell1 = null;
PdfPCell cell2 = null;
PdfPCell cell3 = null;
// LinkedHashMap<String, Integer> catValues = null;
DecimalFormat df = new DecimalFormat("#.###");
List<String> valList = new ArrayList<String>();
for (int jsnCnt = 0; jsnCnt < rowDataPendingQCOrderPurc.size(); jsnCnt++)
{
catGimValues = new LinkedHashMap<String, String>();
fetchRowWiseValJsn = new JSONObject();
fetchRowWiseValJsn = (JSONObject) rowDataPendingQCOrderPurc.get(jsnCnt);
subtype = ""+fetchRowWiseValJsn.get("product_category");
System.out.println("subtype :"+subtype);
catGimValues = (LinkedHashMap<String, String>) fetchRowWiseValJsn.get("category_gimvalue");
System.out.println("catValuesTemp :"+catGimValues);
count = 0;
System.out.println("catValuesGim.size() :"+catGimValues.size());
if(jsnCnt == 0)
{
table = new PdfPTable(catGimValues.size()+1+catGimValues.size());
cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell1.setBackgroundColor(Color.gray);
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell2.setColspan(2);
cell2.setBackgroundColor(Color.gray);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
table = new PdfPTable(catGimValues.size()+1+catGimValues.size());
cell1 = new PdfPCell(new Paragraph("", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph("Open QC Order Count", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph("GIM Value", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
}
table.setWidthPercentage(100);
document.add(table);
}
table = new PdfPTable(catGimValues.size() * 2 + 1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
String val = entry.getValue();
String[] temp;
String noOfQC = "";
String gimVal = "";
double total= 0.0;
temp = val.split("-");
noOfQC = temp[0].trim();
gimVal = temp[1].trim();
total = Double.parseDouble(noOfQC) + Double.parseDouble(gimVal);
System.out.println("noOfQC :"+noOfQC+"---- gimVal :"+gimVal);
cell2 = new PdfPCell(new Paragraph(noOfQC, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph(gimVal, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
if(count == jsnCnt && jsnCnt == 0)
{
valList.add(""+total);
}
else if(count >=0 && count<catValues.size())
{
double sum = total + Double.parseDouble(valList.get(count));
valList.set(count, df.format(sum));
count++;
}
}
table.setWidthPercentage(100);
document.add(table);
}
System.out.println("valList :"+valList);
table = new PdfPTable(catValues.size()* 2 +1);
cell1 = new PdfPCell(new Paragraph("TOTAL", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
table.addCell(cell1);
for (int i=0; i<valList.size(); i++)
{
cell2 = new PdfPCell(new Paragraph(""+valList.get(i), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
cell2.setColspan(2);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
document.close();
System.out.println("PDF Create Successfully");*/
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
} finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in :PendingQCPurchaseOrder : getPendingQCOrderPurchase():" + d.getMessage());
throw new ITMException(d);
}
}
return rowDataPendingQCOrderPurc;
}
@SuppressWarnings("unchecked")
public JSONObject getPendingQCOrderPurchaseGrid(String geoLocation, String siteCode, String dataSourceName) throws RemoteException, ITMException
{
JSONObject rowDataPendingQCOrderPurcGrid = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
DashboardUtility dashboardUtility = null;
try
{
System.out.println(" Inside getPendingQCOrderPurchase for getPendingQCOrderPurchaseGrid Data Soruc Name ="+dataSourceName);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
int count = 0;
dashboardUtility = new DashboardUtility();
siteCode = dashboardUtility.getCommaSeparated(siteCode);
if(geoLocation.trim().length()>0 && geoLocation!=null && siteCode!=null && siteCode.trim().length()>0)
{
sql= " SELECT no_of_days, ITEM_SER, NO_OF_OPEN_QCORDER, CHK_VAL,GIM_VALUE_In_Rs" +
" FROM (SELECT z.no_of_days AS no_of_days, z.ITEM_SER AS ITEM_SER," +
" SUM(z.NO_OF_OPEN_QCORDER) AS NO_OF_OPEN_QCORDER, z.CHK_VAL AS CHK_VAL, " +
" sum(z.amt) as GIM_VALUE_In_Rs FROM (SELECT CASE " +
" WHEN TO_CHAR(A.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>=0 AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)<90 THEN '>0-90 days'" +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>=90" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)<180 THEN '>90-180 days'" +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>=180 " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)<365 THEN '>180-365 days'" +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE)>365 THEN '>365 days' " +
" WHEN TO_CHAR(a.TRAN_DATE,'YYYY')<> TO_CHAR(SYSDATE,'YYYY') " +
" THEN TO_CHAR(a.TRAN_DATE,'YYYY') END no_of_days, A.ITEM_SER,COUNT(G.QORDER_NO)" +
" AS NO_OF_OPEN_QCORDER, (CASE WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 0 " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) < 90 THEN 1 " +
" WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 90 " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) < 180 THEN 2 WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 180 AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) < 365 THEN 3 " +
" WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.TRAN_DATE) >= 365 THEN 4 " +
" WHEN TO_CHAR (a.TRAN_DATE, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
" THEN TO_NUMBER ( 4 + ABS ( TO_NUMBER (TO_CHAR (a.TRAN_DATE, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) AS CHK_VAL, sum(b.quantity*b.rate*A.EXCH_RATE) " +
" as amt FROM PORCP A,PORCPDET B,ITEM C,SUPPLIER D,QC_ORDER G " +
" WHERE " +
" A.SITE_CODE IN ("+siteCode+") " +
" AND A.ITEM_SER IN ('RM1','BD','PM1','BDI') " +
" AND " +
" A.CONFIRMED='Y' AND G.STATUS='U' AND A.TRAN_ID=B.TRAN_ID " +
" AND B.ITEM_CODE=C.ITEM_CODE AND A.SUPP_CODE=D.SUPP_CODE AND G.LOT_NO=B.LOT_NO " +
" AND g.PORCP_NO=A.TRAN_ID AND G.ITEM_CODE=B.ITEM_CODE GROUP BY A.item_ser,A.TRAN_DATE) z GROUP BY z.no_of_days,z.ITEM_SER,z.CHK_VAL ORDER BY z.ITEM_SER) ORDER BY CHK_VAL ASC ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next())
{
rowData = new JSONObject();
rowData.put("no_of_days", rs.getString("NO_OF_DAYS"));
rowData.put("item_ser", rs.getString("ITEM_SER"));
rowData.put("no_of_open_qcorder", rs.getString("NO_OF_OPEN_QCORDER"));
rowData.put("gim_value_in_rs", rs.getString("GIM_VALUE_In_Rs"));
rowDataPendingQCOrderPurcGrid.put(count, rowData);
count++;
}
}
System.out.println("rowDataPendingQCOrderPurcGrid :"+rowDataPendingQCOrderPurcGrid);
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in PendingQCPurchaseOrder : getPendingQCOrderPurchaseGrid:" + d.getMessage());
throw new ITMException(d);
}
}
return rowDataPendingQCOrderPurcGrid;
}
/*Start- this method add for generatePDF on 13Aug2015*/
@SuppressWarnings("unchecked")
public String getPDFByScheduler(String rptTitle, String remark, String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException
{
System.out.println("In PendingQCPurchaseOrder EJB.getPDFByScheduler Method ");
PdfWriter writer = null;
OutputStream file = null;
Document document = null;
ConnDriver connDriver = new ConnDriver();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
ArrayList<String> mailInfo=null;
String imageName = null;
Image image = null;
File attachFile = null;
String imgFilePath =null;
File existImgFile =null;
String pdfFileName =null;
String toMailId ="";
String ccMailId ="";
String bccAddress ="";
String subject ="";
String userWiseBodytext="";
String resultFlage ="false";
String exportPDFPath ="";
String exportImagePath = "";
String imgNameArray[] = null;
SimpleDateFormat simpleDateFormat = null;
Calendar calendar = null;
String currDate = "";
int prntTblNo =1;
PdfPTable parentTable=null;
Paragraph preface = null;
PdfPTable table = null;
PdfPCell cell1 = null;
PdfPCell cell2 = null;
PdfPCell cell3 = null;
String subtype = "";
JSONObject fetchRowWiseValJsn = null;
JSONObject rowDataforGrid = null;
List<String> valList = new ArrayList<String>();
int count = 0;
LinkedHashMap<String, String> catGimValues = null;
DecimalFormat df = new DecimalFormat("#.###");
System.out.print("Calling for PDF created step1");
try
{
System.out.println("In PendingQCPurchaseOrder getPDFByScheduler city :"+city+"----siteCode :"+siteCode);
rowDataforGrid = this.getPendingQCOrderPurchase(city, siteCode, "DriverITM");
System.out.println("rowDataforGrid in getPDFByScheduler :"+rowDataforGrid);
//START CODE FOR WINDOWS
//exportPDFPath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportPDF//";
//exportImagePath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportImages//";
//END CODE FOR WINDOWS
//START CODE FOR LINUX
exportPDFPath = CommonConstants.JBOSSHOME + File.separator +"server"+File.separator +"default"+File.separator +"deploy"+File.separator +"ibase.ear"+File.separator + "ibase.war" +File.separator + "dashboard" + File.separator + "mfg"+ File.separator + "Scheduler"+File.separator +"ExportExample"+ File.separator + "ExportPDF"+File.separator;
exportImagePath = CommonConstants.JBOSSHOME + File.separator +"server"+File.separator +"default"+File.separator +"deploy"+File.separator +"ibase.ear"+File.separator + "ibase.war" +File.separator + "dashboard" + File.separator + "mfg"+ File.separator + "Scheduler"+File.separator +"ExportExample"+ File.separator + "ExportImages"+File.separator;
//END CODE FOR LINUX
System.out.println("exportPDFPath----->"+exportPDFPath);
simpleDateFormat = new SimpleDateFormat("dd-MMM-yy");
calendar = Calendar.getInstance();
currDate = simpleDateFormat.format(calendar.getTime());
document = new Document();
//rptTitle = rptTitle+"-"+currDate;
rptTitle = rptTitle+" ("+siteCode+")"+" Pending QC Against Purchase as on " +currDate;
System.out.println("rptTitle in PendingQCPurchaseOrder getPDFByScheduler :"+rptTitle);
pdfFileName = exportPDFPath+rptTitle+".pdf";
System.out.println("modify PDF file name "+ pdfFileName+"current date formate==="+currDate);
file = new FileOutputStream(new File(pdfFileName));
writer = PdfWriter.getInstance(document, file);
document.open();
preface = new Paragraph();
preface.setAlignment(Element.ALIGN_CENTER);
preface.add(new Paragraph(rptTitle, FontFactory.getFont(FontFactory.TIMES_ROMAN, 15)));
preface.add(new Paragraph(" "));
document.add(preface);
imgNameArray = imgName.split(",");
for(int size=0;size<prntTblNo;size++)
{
System.out.println("imageName in PendingQCPurchaseOrder getPDFByScheduler =="+imageName);
if(size==0)
{
imageName= imgNameArray[size];
parentTable = new PdfPTable(1);
imgFilePath = exportImagePath+imageName+".png";
image = Image.getInstance(imgFilePath);
parentTable.addCell(image);
existImgFile= new File(imgFilePath);
if(existImgFile.exists())
{
existImgFile.delete();
System.out.println("Image Deleted after status **First*****"+imgFilePath );
}
parentTable.setWidthPercentage(100);
}
document.add(parentTable);
preface = new Paragraph();
/*preface.add(new Paragraph(" "));*/
document.add(preface);
if(size==0)
{
preface = new Paragraph();
preface.add(new Paragraph("Remark: "+remark, FontFactory.getFont(FontFactory.TIMES_ROMAN, 8)));
preface.add(new Paragraph(" "));
document.add(preface);
}
}
preface.add(new Paragraph(" "));
for (int jsnCnt = 0; jsnCnt < rowDataforGrid.size(); jsnCnt++)
{
catGimValues = new LinkedHashMap<String, String>();
fetchRowWiseValJsn = new JSONObject();
fetchRowWiseValJsn = (JSONObject) rowDataforGrid.get(jsnCnt);
subtype = ""+fetchRowWiseValJsn.get("product_category");
System.out.println("subtype :"+subtype);
catGimValues = (LinkedHashMap<String, String>) fetchRowWiseValJsn.get("category_gimvalue");
System.out.println("catGimValues :"+catGimValues);
count = 0;
System.out.println("catValuesGim.size() :"+catGimValues.size());
if(jsnCnt == 0)
{
table = new PdfPTable(catGimValues.size()*2+1);
cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell1.setBackgroundColor(Color.gray);
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell2.setColspan(2);
cell2.setBackgroundColor(Color.gray);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
table = new PdfPTable(catGimValues.size()*2+1);
cell1 = new PdfPCell(new Paragraph("", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph("Open QC Order Count", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph("GIM Value", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
}
table.setWidthPercentage(100);
document.add(table);
}
table = new PdfPTable(catGimValues.size() * 2 + 1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
String val = entry.getValue();
String[] temp;
String noOfQC = "";
String gimVal = "";
double total= 0.0;
temp = val.split("-");
noOfQC = temp[0].trim();
gimVal = temp[1].trim();
total = Double.parseDouble(noOfQC) + Double.parseDouble(gimVal);
System.out.println("noOfQC :"+noOfQC+"---- gimVal :"+gimVal);
cell2 = new PdfPCell(new Paragraph(noOfQC, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph(gimVal, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
if(count == jsnCnt && jsnCnt == 0)
{
valList.add(""+total);
}
else if(count >=0 && count<catGimValues.size())
{
double sum = total + Double.parseDouble(valList.get(count));
valList.set(count, df.format(sum));
count++;
}
}
table.setWidthPercentage(100);
document.add(table);
}
/*Add code for total by Dhanendra on 08-09-15*/
System.out.println("valList :"+valList);
table = new PdfPTable(catGimValues.size()* 2 +1);
cell1 = new PdfPCell(new Paragraph("TOTAL", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
table.addCell(cell1);
for (int i=0; i<valList.size(); i++)
{
cell2 = new PdfPCell(new Paragraph(""+valList.get(i), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
cell2.setColspan(2);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
/*End code for total by Dhanendra on 08-09-15*/
document.close();
file.close();
System.out.println("PDF Created succesfully in PendingQCPurchaseOrder getPDFByScheduler");
conn = connDriver.getConnectDB("DriverITM");
connDriver =null;
toMailId ="";
ccMailId ="";
bccAddress ="";
subject =rptTitle;
userWiseBodytext ="Dear Sir, Please find attached here with is the Weekly Output:"+rptTitle+" Report in PDF format.";
/*String sql = "select name,user_type,email_id FROM users WHERE code='"+userID+"'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next())
{
toMailId = checkNull(rs.getString("email_id"));
System.out.println("No of Users for WIPStatus.getPDFByScheduler ="+userID +"AND According to the Email ID======="+toMailId);
}*/
city = "WIP_"+city.trim();
System.out.println("Add WIP in city :" +city);
String sql = "SELECT SEND_TO, COPY_TO, BLIND_COPY FROM MAIL_FORMAT WHERE FORMAT_CODE = '"+city+"'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
/*if (rs.next())
{
toMailId = checkNull(rs.getString("SEND_TO").trim());
ccMailId = checkNull(rs.getString("COPY_TO").trim());
bccAddress = checkNull(rs.getString("BLIND_COPY").trim());
System.out.println("No of Users for WIPStatus.getPDFByScheduler city = "+city+" --- toMailId ="+toMailId +"AND According to the ccMailId ======="+ccMailId+"---- bccAddress == "+bccAddress);
}*/
toMailId = "Julian.Soares@sunpharma.com,Bhaumik.Joshi@sunpharma.com,Jigar.Gohil@sunpharma.com";
ccMailId = "";
bccAddress = "";
/*toMailId = "dhanendra.kasliwal@baseinformation.com,nikhil.sawalakhe@baseinformation.com";
ccMailId = "";
bccAddress = "";*/
System.out.println("Export Pdf path for PendingQCPurchaseOrder.getPDFByScheduler ="+pdfFileName);
attachFile = new File(pdfFileName);
if(attachFile.exists() && attachFile.length()>0)
{
mailInfo =new ArrayList<String>();
mailInfo.add(toMailId);
mailInfo.add(ccMailId);
mailInfo.add(bccAddress);
mailInfo.add(subject);
mailInfo.add(userWiseBodytext);
mailInfo.add(attachFile.getPath());
this.sendingMail(mailInfo);
resultFlage="true";
}
System.out.println("*sending mail done succesfully for WIPStatus.getPDFByScheduler*");
} catch (Exception e)
{
System.out.println("Exception :PendingQCPurchaseOrder :getPDFByScheduler "+e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in PendingQCPurchaseOrder.getPDFByScheduler" + d.getMessage());
throw new ITMException(d);
}
}
return resultFlage;
}
public void sendingMail(ArrayList<String> mailInfo)
{
StringBuffer commInfo = new StringBuffer();
commInfo.append("<ROOT>");
commInfo.append("<MAILINFO>");
commInfo.append("<EMAIL_TYPE>").append("page").append("</EMAIL_TYPE>");
commInfo.append("<TO_ADD>").append("<![CDATA[" + mailInfo.get(0) + "]]>").append("</TO_ADD>");
commInfo.append("<CC_ADD>").append("<![CDATA[" + mailInfo.get(1) + "]]>").append("</CC_ADD>");
commInfo.append("<BCC_ADD>").append("<![CDATA[" + mailInfo.get(2) + "]]>").append("</BCC_ADD>");
commInfo.append("<SUBJECT>").append("<![CDATA[" + mailInfo.get(3) + "]]>").append("</SUBJECT>");
commInfo.append("<BODY_TEXT>").append("<![CDATA[" + mailInfo.get(4) + "]]>").append("</BODY_TEXT>");
commInfo.append("<XML_DATA_FILE_PATH>").append("<![CDATA[" + mailInfo.get(5) + "]]>").append("</XML_DATA_FILE_PATH>");
commInfo.append("</MAILINFO>");
commInfo.append("</ROOT>");
EMail email = new EMail();
try
{
System.out.println(" calling sendMail method() for PendingQCPurchaseOrder.getPDFByScheduler");
email.sendMail(commInfo.toString(), "ITM", null);
System.out.println(" ********Email send succesfully for getPendingQCOrderPurchase.getPDFByScheduler ***********");
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception :PendingQCPurchaseOrder :sendMail(String ,String)" + e.getMessage());
}
email = null;
}
/*End- this method add for generatePDF on 13Aug2015*/
}
package ibase.dashboard.mfg.ejb;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
import org.json.simple.JSONObject;
@Local
public interface PendingQCPurchaseOrderLocal
{
public JSONObject getPendingQCOrderPurchase(String itemSer, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public JSONObject getPendingQCOrderPurchaseGrid(String itemSer, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException;
}
package ibase.dashboard.mfg.ejb;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import org.json.simple.JSONObject;
@Remote
public interface PendingQCPurchaseOrderRemote
{
public JSONObject getPendingQCOrderPurchase(String itemSer, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public JSONObject getPendingQCOrderPurchaseGrid(String itemSer, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException;
}
package ibase.dashboard.mfg.ejb;
import ibase.dashboard.Report.Utility.DashboardUtility;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
import ibase.utility.EMail;
import ibase.webitm.utility.ITMException;
import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.Stateless;
import org.json.simple.JSONObject;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
@Stateless
public class PendingQCWorkOrder implements PendingQCWorkOrderLocal, PendingQCWorkOrderRemote
{
public PendingQCWorkOrder()
{
// TODO Auto-generated constructor stub
}
@SuppressWarnings("unchecked")
public JSONObject getPendingQCWorkOrder(String geoLocation, String siteCode, String dataSourceName) throws RemoteException,ITMException
{
System.out.println("In PendingQCOrder getPendingQCWorkOrder geoLocation :"+geoLocation+"----siteCode :"+siteCode+"---dataSourceName :"+dataSourceName);
JSONObject rowDataPendingQCWorkOrder = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
DashboardUtility dashboardUtility = null;
try
{
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
int count = 0;
dashboardUtility = new DashboardUtility();
siteCode = dashboardUtility.getCommaSeparated(siteCode);
if(geoLocation.trim().length()>0 && geoLocation!=null && siteCode!=null && siteCode.trim().length()>0)
{
sql = " SELECT no_of_days, ITEM_SER, NO_OF_OPEN_QCORDER, CHK_VAL,PRODUCTION_VALUE " +
" FROM ( SELECT z.NO_OF_DAYS AS NO_OF_DAYS,z.ITEM_SER " +
" AS ITEM_SER,SUM(z.NO_OF_OPEN_QCORDER) AS NO_OF_OPEN_QCORDER, z.CHK_VAL " +
" AS CHK_VAL,sum(z.production_value) as Production_Value " +
" FROM( SELECT ITEM.ITEM_SER, CASE WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>=0 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)<90 THEN '>0-90 days' " +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>=90 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)<180 THEN '>90-180 days' " +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>=90 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)<365 THEN '>180-365 days'" +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>365 THEN '>365 days' " +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')<> TO_CHAR(SYSDATE,'YYYY') " +
" THEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY') END NO_OF_DAYS,COUNT(DISTINCT QC_ORDER.QORDER_NO) NO_OF_OPEN_QCORDER, " +
" (CASE WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 0 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) < 90 THEN 1 " +
" WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 90 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) < 180 THEN 2 " +
" WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 180 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) < 365 " +
" THEN 3 WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 365 THEN 4 " +
" WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
" THEN TO_NUMBER ( 4 + ABS ( TO_NUMBER (TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) " +
" AS CHK_VAL, sum(d.ACTUAL_PROD_VALUE) as production_value FROM WORKORDER_RECEIPT,ITEM,qc_order,WORKORDER,dwh_production d " +
" WHERE (WORKORDER_RECEIPT.ITEM_CODE = ITEM.ITEM_CODE) " +
" AND workorder_RECEIPT.site_code in(" + siteCode + ") " +
" AND WORKORDER.WORK_ORDER=WORKORDER_RECEIPT.WORK_ORDER " +
" AND WORKORDER.ORDer_TYPE IN ('F','I','R','X','T') " +
" AND WORKORDER_RECEIPT.CONFIRMED='Y'" +
" AND workorder_receipt.lot_no=qc_order.lot_no " +
" AND workorder_receipt.tran_id=qc_order.porcp_no " +
" AND workorder_receipt.item_code=qc_order.item_code " +
" AND QC_ORDER.STATUS='U' and d.work_order=workorder.work_order " +
" GROUP BY WORKORDER_RECEIPT.TRAN_DATE, ITEM.ITEM_SER ORDER BY CHK_VAL,no_of_days,ITEM.ITEM_SER) z " +
" GROUP BY z.no_of_days,z.ITEM_SER,z.CHK_VAL ORDER BY z.ITEM_SER) ORDER BY CHK_VAL ASC ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
String noOfOpenQCOrderVal="";
String productionVal="";
String noOfDay="",subType="";
List<String> noOfDayList= new ArrayList<String>();
List<String> subTypeList= new ArrayList<String>();
String key="";
LinkedHashMap<String, String> graphDataMap = new LinkedHashMap<String, String>();
LinkedHashMap<String, String> sortedGraphDataMap = new LinkedHashMap<String, String>();
while (rs.next())
{
noOfOpenQCOrderVal = rs.getString("NO_OF_OPEN_QCORDER");
noOfDay = rs.getString("NO_OF_DAYS");
subType= rs.getString("ITEM_SER");
productionVal=rs.getString("PRODUCTION_VALUE");
if(!noOfDayList.contains(noOfDay))
{
noOfDayList.add(noOfDay);
}
if(!subTypeList.contains(subType))
{
subTypeList.add(subType);
}
key = (noOfDay.trim()+"@"+subType.trim());
if(graphDataMap.size()==0)
{
graphDataMap.put(key, (noOfOpenQCOrderVal+"-"+productionVal));
}
if(graphDataMap !=null && graphDataMap.size()>0)
{
if(graphDataMap.containsKey(key))
{
//wipValue = wipValue + graphDataMap.get(key);
noOfOpenQCOrderVal = graphDataMap.get(key);
}
else if(! graphDataMap.containsKey(key))
{
noOfOpenQCOrderVal = noOfOpenQCOrderVal+"-"+productionVal;
}
graphDataMap.put(key, noOfOpenQCOrderVal);
}
}
System.out.println("graphDataMap: "+graphDataMap);
String sbType="";
String grpKey="";
for(int itmCtr=0;itmCtr<subTypeList.size();itmCtr++)
{
sbType = subTypeList.get(itmCtr);
for (Map.Entry<String, String> grpentry : graphDataMap.entrySet())
{
for(int dayCtr=0;dayCtr<noOfDayList.size();dayCtr++)
{
grpKey = (noOfDayList.get(dayCtr).trim()+"@"+sbType.trim());
if(graphDataMap.containsKey(grpKey))
{
sortedGraphDataMap.put(grpKey, graphDataMap.get(grpKey));
}
if(!graphDataMap.containsKey(grpKey) )
{
sortedGraphDataMap.put(grpKey, "0-0");
}
}
}
}
System.out.println("sortedGraphDataMap: "+sortedGraphDataMap);
rowData = new JSONObject();
String noDays="",qcOrd="";
String subType1="",prvsubType1="";
LinkedHashMap<String, String> catValues = new LinkedHashMap<String, String>();
LinkedHashMap<String, String> catGimValues = new LinkedHashMap<String, String>();
int cnt=0;
for (Map.Entry<String, String> entry : sortedGraphDataMap.entrySet())
{
cnt++;
String mapKey = entry.getKey();
String value = entry.getValue();// need to split
String[] temp;
temp = mapKey.split("@");
noDays = temp[0].trim();
subType1 = temp[1].trim();
String[] qcOrdArr;
qcOrdArr = value.split("-");
qcOrd = qcOrdArr[0].trim();
if( subType1 != null && ("").equals(prvsubType1) && subType1.trim().length()>0)
{
catValues.put(noDays,qcOrd);
catGimValues.put(noDays,value);
rowData.put("month",cnt);
rowData.put("product_category",subType1);
rowData.put("category_value",catValues);
rowData.put("category_gimvalue",catGimValues);
//rowData.put("pending_value", "100");
}
else if(!("").equals(prvsubType1) && prvsubType1.equals(subType1))
{
catValues.put(noDays,qcOrd);
catGimValues.put(noDays,value);
}
if(!("").equals(prvsubType1) && ! prvsubType1.equals(subType1))
{
rowData.put("month",cnt);
rowData.put("product_category",prvsubType1);
rowData.put("category_value",catValues);
rowData.put("category_gimvalue",catGimValues);
rowDataPendingQCWorkOrder.put(count, rowData);
count++;
rowData = new JSONObject();
catValues = new LinkedHashMap<String, String>();
catGimValues = new LinkedHashMap<String, String>();
catGimValues.put(noDays,value);
catValues.put(noDays,qcOrd);
}
if(cnt==sortedGraphDataMap.size())
{
rowData.put("month",cnt);
rowData.put("product_category",prvsubType1);
rowData.put("category_value",catValues);
rowData.put("category_gimvalue",catGimValues);
rowDataPendingQCWorkOrder.put(count, rowData);
}
prvsubType1=subType1;
}
}
System.out.println("rowDataPendingQCWorkOrder :"+rowDataPendingQCWorkOrder);
/*Document document = new Document();
String subtype = "";
PdfWriter.getInstance(document,new FileOutputStream("/home/base/Desktop/HelloWorld-Table.pdf"));
JSONObject fetchRowWiseValJsn = null;
document.open();
PdfPTable table = null; // 3 columns.
PdfPCell cell1 = null;
PdfPCell cell2 = null;
PdfPCell cell3 = null;
// LinkedHashMap<String, Integer> catValues = null;
DecimalFormat df = new DecimalFormat("#.###");
List<String> valList = new ArrayList<String>();
for (int jsnCnt = 0; jsnCnt < rowDataPendingQCOrderPurc.size(); jsnCnt++)
{
catGimValues = new LinkedHashMap<String, String>();
fetchRowWiseValJsn = new JSONObject();
fetchRowWiseValJsn = (JSONObject) rowDataPendingQCOrderPurc.get(jsnCnt);
subtype = ""+fetchRowWiseValJsn.get("product_category");
System.out.println("subtype :"+subtype);
catGimValues = (LinkedHashMap<String, String>) fetchRowWiseValJsn.get("category_gimvalue");
System.out.println("catValuesTemp :"+catGimValues);
count = 0;
System.out.println("catValuesGim.size() :"+catGimValues.size());
if(jsnCnt == 0)
{
table = new PdfPTable(catGimValues.size()+1+catGimValues.size());
cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell1.setBackgroundColor(Color.gray);
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell2.setColspan(2);
cell2.setBackgroundColor(Color.gray);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
table = new PdfPTable(catGimValues.size()+1+catGimValues.size());
cell1 = new PdfPCell(new Paragraph("", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph("Open QC Order Count", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph("GIM Value", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
}
table.setWidthPercentage(100);
document.add(table);
}
table = new PdfPTable(catGimValues.size() * 2 + 1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
String val = entry.getValue();
String[] temp;
String noOfQC = "";
String gimVal = "";
double total= 0.0;
temp = val.split("-");
noOfQC = temp[0].trim();
gimVal = temp[1].trim();
total = Double.parseDouble(noOfQC) + Double.parseDouble(gimVal);
System.out.println("noOfQC :"+noOfQC+"---- gimVal :"+gimVal);
cell2 = new PdfPCell(new Paragraph(noOfQC, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph(gimVal, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
if(count == jsnCnt && jsnCnt == 0)
{
valList.add(""+total);
}
else if(count >=0 && count<catValues.size())
{
double sum = total + Double.parseDouble(valList.get(count));
valList.set(count, df.format(sum));
count++;
}
}
table.setWidthPercentage(100);
document.add(table);
}
System.out.println("valList :"+valList);
table = new PdfPTable(catValues.size()* 2 +1);
cell1 = new PdfPCell(new Paragraph("TOTAL", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
table.addCell(cell1);
for (int i=0; i<valList.size(); i++)
{
cell2 = new PdfPCell(new Paragraph(""+valList.get(i), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
cell2.setColspan(2);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
document.close();
System.out.println("PDF Create Successfully");*/
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
} finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in :PendingQCWorkOrder : getPendingQCWorkOrder():" + d.getMessage());
throw new ITMException(d);
}
}
return rowDataPendingQCWorkOrder;
}
@SuppressWarnings("unchecked")
public JSONObject getPendingQCWorkOrderGrid(String geoLocation, String siteCode, String dataSourceName) throws RemoteException, ITMException
{
JSONObject rowDataPendingQCWorkOrderGrid = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
DashboardUtility dashboardUtility = null;
try
{
System.out.println(" Inside PendingQCWorkOrder for getPendingQCWorkOrderGrid Data Soruc Name ="+dataSourceName);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
int count = 0;
dashboardUtility = new DashboardUtility();
siteCode = dashboardUtility.getCommaSeparated(siteCode);
if(geoLocation.trim().length()>0 && geoLocation!=null && siteCode!=null && siteCode.trim().length()>0)
{
sql = " SELECT no_of_days, ITEM_SER, NO_OF_OPEN_QCORDER, CHK_VAL,PRODUCTION_VALUE " +
" FROM ( SELECT z.NO_OF_DAYS AS NO_OF_DAYS,z.ITEM_SER " +
" AS ITEM_SER,SUM(z.NO_OF_OPEN_QCORDER) AS NO_OF_OPEN_QCORDER, z.CHK_VAL " +
" AS CHK_VAL,sum(z.production_value) as Production_Value " +
" FROM( SELECT ITEM.ITEM_SER, CASE WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY')" +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>=0 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)<90 THEN '>0-90 days' " +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>=90 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)<180 THEN '>90-180 days' " +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>=90 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)<365 THEN '>180-365 days'" +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')= TO_CHAR(SYSDATE,'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE)>365 THEN '>365 days' " +
" WHEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY')<> TO_CHAR(SYSDATE,'YYYY') " +
" THEN TO_CHAR(WORKORDER_RECEIPT.TRAN_DATE,'YYYY') END NO_OF_DAYS,COUNT(DISTINCT QC_ORDER.QORDER_NO) NO_OF_OPEN_QCORDER, " +
" (CASE WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 0 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) < 90 THEN 1 " +
" WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 90 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) < 180 THEN 2 " +
" WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 180 " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) < 365 " +
" THEN 3 WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
" AND TRUNC (TRUNC (SYSDATE) - WORKORDER_RECEIPT.TRAN_DATE) >= 365 THEN 4 " +
" WHEN TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
" THEN TO_NUMBER ( 4 + ABS ( TO_NUMBER (TO_CHAR (WORKORDER_RECEIPT.TRAN_DATE, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) " +
" AS CHK_VAL, sum(d.ACTUAL_PROD_VALUE) as production_value FROM WORKORDER_RECEIPT,ITEM,qc_order,WORKORDER,dwh_production d " +
" WHERE (WORKORDER_RECEIPT.ITEM_CODE = ITEM.ITEM_CODE) " +
" AND workorder_RECEIPT.site_code in(" + siteCode + ") " +
" AND WORKORDER.WORK_ORDER=WORKORDER_RECEIPT.WORK_ORDER " +
" AND WORKORDER.ORDer_TYPE IN ('F','I','R','X','T') " +
" AND WORKORDER_RECEIPT.CONFIRMED='Y'" +
" AND workorder_receipt.lot_no=qc_order.lot_no " +
" AND workorder_receipt.tran_id=qc_order.porcp_no " +
" AND workorder_receipt.item_code=qc_order.item_code " +
" AND QC_ORDER.STATUS='U' and d.work_order=workorder.work_order " +
" GROUP BY WORKORDER_RECEIPT.TRAN_DATE, ITEM.ITEM_SER ORDER BY CHK_VAL,no_of_days,ITEM.ITEM_SER) z " +
" GROUP BY z.no_of_days,z.ITEM_SER,z.CHK_VAL ORDER BY z.ITEM_SER) ORDER BY CHK_VAL ASC ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next())
{
rowData = new JSONObject();
rowData.put("no_of_days", rs.getString("NO_OF_DAYS"));
rowData.put("item_ser", rs.getString("ITEM_SER"));
rowData.put("no_of_open_qcorder", rs.getString("NO_OF_OPEN_QCORDER"));
rowData.put("production_value", rs.getString("PRODUCTION_VALUE"));
rowDataPendingQCWorkOrderGrid.put(count, rowData);
count++;
}
}
System.out.println("rowDataPendingQCWorkOrderGrid :"+rowDataPendingQCWorkOrderGrid);
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in PendingQCWorkOrderGrid : getPendingQCWorkOrderGrid:" + d.getMessage());
throw new ITMException(d);
}
}
return rowDataPendingQCWorkOrderGrid;
}
/*Start- this method add for generatePDF on 13Aug2015*/
@SuppressWarnings("unchecked")
public String getPDFByScheduler(String rptTitle, String remark, String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException
{
System.out.println("In PendingQCWorkOrderGrid .getPDFByScheduler Method ");
PdfWriter writer = null;
OutputStream file = null;
Document document = null;
ConnDriver connDriver = new ConnDriver();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
ArrayList<String> mailInfo=null;
String imageName = null;
Image image = null;
File attachFile = null;
String imgFilePath =null;
File existImgFile =null;
String pdfFileName =null;
String toMailId ="";
String ccMailId ="";
String bccAddress ="";
String subject ="";
String userWiseBodytext="";
String resultFlage ="false";
String exportPDFPath ="";
String exportImagePath = "";
String imgNameArray[] = null;
SimpleDateFormat simpleDateFormat = null;
Calendar calendar = null;
String currDate = "";
int prntTblNo =1;
PdfPTable parentTable=null;
Paragraph preface = null;
PdfPTable table = null;
PdfPCell cell1 = null;
PdfPCell cell2 = null;
PdfPCell cell3 = null;
String subtype = "";
JSONObject fetchRowWiseValJsn = null;
JSONObject rowDataforGrid = null;
List<String> valList = new ArrayList<String>();
int count = 0;
LinkedHashMap<String, String> catGimValues = null;
DecimalFormat df = new DecimalFormat("#.###");
System.out.print("Calling for PDF created step1");
try
{
System.out.println("In PendingQCWorkOrderGrid getPDFByScheduler city :"+city+"----siteCode :"+siteCode);
rowDataforGrid = this.getPendingQCWorkOrder(city, siteCode, "DriverITM");
System.out.println("rowDataforGrid in getPDFByScheduler :"+rowDataforGrid);
//START CODE FOR WINDOWS
//exportPDFPath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportPDF//";
//exportImagePath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportImages//";
//END CODE FOR WINDOWS
//START CODE FOR LINUX
exportPDFPath = CommonConstants.JBOSSHOME + File.separator +"server"+File.separator +"default"+File.separator +"deploy"+File.separator +"ibase.ear"+File.separator + "ibase.war" +File.separator + "dashboard" + File.separator + "mfg"+ File.separator + "Scheduler"+File.separator +"ExportExample"+ File.separator + "ExportPDF"+File.separator;
exportImagePath = CommonConstants.JBOSSHOME + File.separator +"server"+File.separator +"default"+File.separator +"deploy"+File.separator +"ibase.ear"+File.separator + "ibase.war" +File.separator + "dashboard" + File.separator + "mfg"+ File.separator + "Scheduler"+File.separator +"ExportExample"+ File.separator + "ExportImages"+File.separator;
//END CODE FOR LINUX
System.out.println("exportPDFPath----->"+exportPDFPath);
simpleDateFormat = new SimpleDateFormat("dd-MMM-yy");
calendar = Calendar.getInstance();
currDate = simpleDateFormat.format(calendar.getTime());
document = new Document();
//rptTitle = rptTitle+"-"+currDate;
rptTitle = rptTitle+" ("+siteCode+")"+" Pending QC Against Workorder Receipt as on " +currDate;
System.out.println("rptTitle in PendingQCWorkOrderGrid getPDFByScheduler :"+rptTitle);
pdfFileName = exportPDFPath+rptTitle+".pdf";
System.out.println("modify PDF file name "+ pdfFileName+"current date formate==="+currDate);
file = new FileOutputStream(new File(pdfFileName));
writer = PdfWriter.getInstance(document, file);
document.open();
preface = new Paragraph();
preface.setAlignment(Element.ALIGN_CENTER);
preface.add(new Paragraph(rptTitle, FontFactory.getFont(FontFactory.TIMES_ROMAN, 15)));
preface.add(new Paragraph(" "));
document.add(preface);
imgNameArray = imgName.split(",");
for(int size=0;size<prntTblNo;size++)
{
System.out.println("imageName in PendingQCWorkOrderGrid getPDFByScheduler =="+imageName);
if(size==0)
{
imageName= imgNameArray[size];
parentTable = new PdfPTable(1);
imgFilePath = exportImagePath+imageName+".png";
image = Image.getInstance(imgFilePath);
parentTable.addCell(image);
existImgFile= new File(imgFilePath);
if(existImgFile.exists())
{
existImgFile.delete();
System.out.println("Image Deleted after status **First*****"+imgFilePath );
}
parentTable.setWidthPercentage(100);
}
document.add(parentTable);
preface = new Paragraph();
/*preface.add(new Paragraph(" "));*/
document.add(preface);
if(size==0)
{
preface = new Paragraph();
preface.add(new Paragraph("Remark: "+remark, FontFactory.getFont(FontFactory.TIMES_ROMAN, 8)));
preface.add(new Paragraph(" "));
document.add(preface);
}
}
preface.add(new Paragraph(" "));
for (int jsnCnt = 0; jsnCnt < rowDataforGrid.size(); jsnCnt++)
{
catGimValues = new LinkedHashMap<String, String>();
fetchRowWiseValJsn = new JSONObject();
fetchRowWiseValJsn = (JSONObject) rowDataforGrid.get(jsnCnt);
subtype = ""+fetchRowWiseValJsn.get("product_category");
System.out.println("subtype :"+subtype);
catGimValues = (LinkedHashMap<String, String>) fetchRowWiseValJsn.get("category_gimvalue");
System.out.println("catGimValues :"+catGimValues);
count = 0;
System.out.println("catValuesGim.size() :"+catGimValues.size());
if(jsnCnt == 0)
{
table = new PdfPTable(catGimValues.size()*2+1);
cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell1.setBackgroundColor(Color.gray);
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
cell2.setColspan(2);
cell2.setBackgroundColor(Color.gray);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
table = new PdfPTable(catGimValues.size()*2+1);
cell1 = new PdfPCell(new Paragraph("", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6, Font.BOLD, new Color(255,255,255))));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph("Open QC Order Count", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph("Production Value", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
}
table.setWidthPercentage(100);
document.add(table);
}
table = new PdfPTable(catGimValues.size() * 2 + 1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catGimValues.entrySet())
{
String val = entry.getValue();
String[] temp;
String noOfQC = "";
String gimVal = "";
double total= 0.0;
temp = val.split("-");
noOfQC = temp[0].trim();
gimVal = temp[1].trim();
total = Double.parseDouble(noOfQC) + Double.parseDouble(gimVal);
System.out.println("noOfQC :"+noOfQC+"---- gimVal :"+gimVal);
cell2 = new PdfPCell(new Paragraph(noOfQC, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell3 = new PdfPCell(new Paragraph(gimVal, FontFactory.getFont(FontFactory.TIMES_ROMAN, 6)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
if(count == jsnCnt && jsnCnt == 0)
{
valList.add(""+total);
}
else if(count >=0 && count<catGimValues.size())
{
double sum = total + Double.parseDouble(valList.get(count));
valList.set(count, df.format(sum));
count++;
}
}
table.setWidthPercentage(100);
document.add(table);
}
/*Add code for total by Dhanendra on 08-09-15*/
System.out.println("valList :"+valList);
table = new PdfPTable(catGimValues.size()* 2 +1);
cell1 = new PdfPCell(new Paragraph("TOTAL", FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
table.addCell(cell1);
for (int i=0; i<valList.size(); i++)
{
cell2 = new PdfPCell(new Paragraph(""+valList.get(i), FontFactory.getFont(FontFactory.TIMES_ROMAN, 6,Font.BOLD, new Color(255,0,0))));
cell2.setColspan(2);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
/*End code for total by Dhanendra on 08-09-15*/
document.close();
file.close();
System.out.println("PDF Created succesfully in PendingQCWorkOrderGrid getPDFByScheduler");
conn = connDriver.getConnectDB("DriverITM");
connDriver =null;
toMailId ="";
ccMailId ="";
bccAddress ="";
subject =rptTitle;
userWiseBodytext ="Dear Sir, Please find attached here with is the Weekly Output:"+rptTitle+" Report in PDF format.";
/*String sql = "select name,user_type,email_id FROM users WHERE code='"+userID+"'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next())
{
toMailId = checkNull(rs.getString("email_id"));
System.out.println("No of Users for WIPStatus.getPDFByScheduler ="+userID +"AND According to the Email ID======="+toMailId);
}*/
city = "WIP_"+city.trim();
System.out.println("Add WIP in city :" +city);
String sql = "SELECT SEND_TO, COPY_TO, BLIND_COPY FROM MAIL_FORMAT WHERE FORMAT_CODE = '"+city+"'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
/*if (rs.next())
{
toMailId = checkNull(rs.getString("SEND_TO").trim());
ccMailId = checkNull(rs.getString("COPY_TO").trim());
bccAddress = checkNull(rs.getString("BLIND_COPY").trim());
System.out.println("No of Users for WIPStatus.getPDFByScheduler city = "+city+" --- toMailId ="+toMailId +"AND According to the ccMailId ======="+ccMailId+"---- bccAddress == "+bccAddress);
}*/
toMailId = "Julian.Soares@sunpharma.com,Bhaumik.Joshi@sunpharma.com,Jigar.Gohil@sunpharma.com";
ccMailId = "";
bccAddress = "";
/*toMailId = "dhanendra.kasliwal@baseinformation.com,nikhil.sawalakhe@baseinformation.com";
ccMailId = "";
bccAddress = "";*/
System.out.println("Export Pdf path for PendingQCPurchaseOrder.getPDFByScheduler ="+pdfFileName);
attachFile = new File(pdfFileName);
if(attachFile.exists() && attachFile.length()>0)
{
mailInfo =new ArrayList<String>();
mailInfo.add(toMailId);
mailInfo.add(ccMailId);
mailInfo.add(bccAddress);
mailInfo.add(subject);
mailInfo.add(userWiseBodytext);
mailInfo.add(attachFile.getPath());
this.sendingMail(mailInfo);
resultFlage="true";
}
System.out.println("*sending mail done succesfully for WIPStatus.getPDFByScheduler*");
} catch (Exception e)
{
System.out.println("Exception :PendingQCWorkOrderGrid :getPDFByScheduler "+e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in PendingQCWorkOrderGrid.getPDFByScheduler" + d.getMessage());
throw new ITMException(d);
}
}
return resultFlage;
}
public void sendingMail(ArrayList<String> mailInfo)
{
StringBuffer commInfo = new StringBuffer();
commInfo.append("<ROOT>");
commInfo.append("<MAILINFO>");
commInfo.append("<EMAIL_TYPE>").append("page").append("</EMAIL_TYPE>");
commInfo.append("<TO_ADD>").append("<![CDATA[" + mailInfo.get(0) + "]]>").append("</TO_ADD>");
commInfo.append("<CC_ADD>").append("<![CDATA[" + mailInfo.get(1) + "]]>").append("</CC_ADD>");
commInfo.append("<BCC_ADD>").append("<![CDATA[" + mailInfo.get(2) + "]]>").append("</BCC_ADD>");
commInfo.append("<SUBJECT>").append("<![CDATA[" + mailInfo.get(3) + "]]>").append("</SUBJECT>");
commInfo.append("<BODY_TEXT>").append("<![CDATA[" + mailInfo.get(4) + "]]>").append("</BODY_TEXT>");
commInfo.append("<XML_DATA_FILE_PATH>").append("<![CDATA[" + mailInfo.get(5) + "]]>").append("</XML_DATA_FILE_PATH>");
commInfo.append("</MAILINFO>");
commInfo.append("</ROOT>");
EMail email = new EMail();
try
{
System.out.println(" calling sendMail method() for PendingQCWorkOrderGrid.getPDFByScheduler");
email.sendMail(commInfo.toString(), "ITM", null);
System.out.println(" ********Email send succesfully for WIPStatus.getPDFByScheduler ***********");
} catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception :PendingQCWorkOrderGrid :sendMail(String ,String)" + e.getMessage());
}
email = null;
}
/*End- this method add for generatePDF on 13Aug2015*/
}
package ibase.dashboard.mfg.ejb;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
import org.json.simple.JSONObject;
@Local
public interface PendingQCWorkOrderLocal
{
public JSONObject getPendingQCWorkOrder(String orderType, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public JSONObject getPendingQCWorkOrderGrid(String orderType, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException;
}
package ibase.dashboard.mfg.ejb;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import org.json.simple.JSONObject;
@Remote
public interface PendingQCWorkOrderRemote
{
public JSONObject getPendingQCWorkOrder(String orderType, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public JSONObject getPendingQCWorkOrderGrid(String orderType, String siteCode, String dataSourceName)throws RemoteException, ITMException;
public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException;
}
...@@ -18,6 +18,7 @@ import java.sql.ResultSet; ...@@ -18,6 +18,7 @@ import java.sql.ResultSet;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -35,6 +36,14 @@ import com.lowagie.text.Paragraph; ...@@ -35,6 +36,14 @@ import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.pdf.PdfWriter;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.sql.ResultSetMetaData;
/** /**
* Session Bean implementation class SalesPersonSales * Session Bean implementation class SalesPersonSales
*/ */
...@@ -67,59 +76,9 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -67,59 +76,9 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
city = dashboardUtility.getCommaSeparated(city); city = dashboardUtility.getCommaSeparated(city);
siteCode = dashboardUtility.getCommaSeparated(siteCode); siteCode = dashboardUtility.getCommaSeparated(siteCode);
/*sql="SELECT z.assending, Z.city, z.no_of_days_text, z.sub_type, SUM (z.wip) wip, SUM (z.batch_cost) batch_cost " +
"FROM (SELECT a.site_code__mfg AS site_code,s.city, " +
"CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND " +
"TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND " +
"TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
"THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, " +
"CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
"THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END assending, " +
"a.bom_sub_type AS sub_type, COUNT (a.work_order) wip, SUM (a.actual_prod_value) AS batch_cost " +
"FROM dwh_production a, item b, SITE s WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code " +
"AND s.city in ('"+city+"') " +
"AND (a.item_code >= '00' AND a.item_code <= 'ZZ') AND a.work_order_status = 'R' " +
"AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' AND a.wo_release_date <= TRUNC (SYSDATE) " +
"GROUP BY a.site_code__mfg, CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days'" +
" WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END, " +
"CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END, a.bom_sub_type,s.city) z " +
"GROUP BY z.city,z.no_of_days_text, z.sub_type, z.assending " +
"ORDER BY z.assending "; */
if(city.trim().length()>0 && city!=null && siteCode!=null && siteCode.trim().length()>0) if(city.trim().length()>0 && city!=null && siteCode!=null && siteCode.trim().length()>0)
{ {
sql=" SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL " /*sql=" SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL "
+ "FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, " + "FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, "
+ "CHK_VAL FROM (SELECT a.site_code__mfg AS site_code, s.city, " + "CHK_VAL FROM (SELECT a.site_code__mfg AS site_code, s.city, "
+ "CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, " + "CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, "
...@@ -133,58 +92,155 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -133,58 +92,155 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
+ "AND a.wo_release_date <= TRUNC (SYSDATE) " + "AND a.wo_release_date <= TRUNC (SYSDATE) "
+ "GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city ) z " + "GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city ) z "
+ "GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL ORDER BY z.assending, z.no_of_days_text, z.sub_type ) " + "GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL ORDER BY z.assending, z.no_of_days_text, z.sub_type ) "
+ "ORDER BY CHK_VAL ASC"; + "ORDER BY CHK_VAL ASC";*/
/*sql=" SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL "
+ "FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, "
+ "CHK_VAL FROM (SELECT a.site_code__mfg AS site_code, s.city, "
+ "CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, "
+ "CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END assending, "
+ "a.bom_sub_type AS sub_type, COUNT (a.work_order) wip, SUM (a.actual_prod_value) AS batch_cost, "
+ "(CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN 1 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN 2 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN 3 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN 4 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN 5 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN 6 WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_NUMBER ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) as CHK_VAL "
+ "FROM dwh_production a, item b, SITE s "
+ "WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code AND s.city IN ('MUMBAI') "
+ "AND (a.item_code >= '00' AND a.item_code <= 'ZZ') AND a.work_order_status = 'R' "
+ "AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' "
+ "AND a.wo_release_date <= TRUNC (SYSDATE) "
+ "GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city ) z "
+ "GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL ORDER BY z.assending, z.no_of_days_text, z.sub_type ) "
+ "ORDER BY CHK_VAL ASC";*/
sql="SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL,STATUS " +
"FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, " +
"SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, CHK_VAL ,STATUS " +
"FROM (SELECT a.site_code__mfg AS site_code, s.city, CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days'" +
" WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days'" +
" WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, " +
"CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END assending, a.bom_sub_type AS sub_type, COUNT (a.work_order) wip, SUM (a.actual_prod_value) AS batch_cost, (CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN 1 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN 2 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN 3 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN 4 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN 5 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN 6 WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_NUMBER ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) as CHK_VAL, " +
"(CASE WHEN (QORDER_NO IS NULL AND PRODUCTION_QTY>0) THEN 'QC RELEASE PENDING' " +
"WHEN (QORDER_NO IS NOT NULL AND PRODUCTION_QTY>0) THEN 'PARTIAL TRANSFER DONE' " +
"WHEN (QORDER_NO IS NULL AND PRODUCTION_QTY=0) THEN 'WO RECEIPT PENDING' END) as STATUS " +
"FROM dwh_production a, item b, SITE s " +
" WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code " +
" AND s.city IN ("+city+") " +
" AND a.site_code__mfg in("+siteCode+") " +
"AND (a.item_code >= '00' AND a.item_code <= 'ZZ') " +
"AND a.work_order_status = 'R' AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' AND a.wo_release_date <= TRUNC (SYSDATE) " +
"GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city,QORDER_NO, PRODUCTION_QTY ) z " +
"GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL,STATUS ORDER BY z.assending, z.no_of_days_text, z.sub_type,Z.STATUS ) " +
"ORDER BY CHK_VAL ASC";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
int wipValue=0; int wipValue=0;
int wipValuesSum=0;
String noOfDay="",subType=""; String noOfDay="",subType="";
List<String> noOfDayList= new ArrayList<String>(); List<String> noOfDayList= new ArrayList<String>();
List<String> subTypeList= new ArrayList<String>(); List<String> subTypeList= new ArrayList<String>();
String key=""; String key="";
String status = "";
LinkedHashMap<String, Integer> graphDataMap = new LinkedHashMap<String, Integer>(); LinkedHashMap<String, Integer> graphDataMap = new LinkedHashMap<String, Integer>();
LinkedHashMap<String, Integer> sortedGraphDataMap = new LinkedHashMap<String, Integer>(); LinkedHashMap<String, ArrayList<String>> graphDataMapTemp = new LinkedHashMap<String, ArrayList<String>>();
ArrayList<String> dataList = new ArrayList<String>();
dataList.add("0");
dataList.add("0");
dataList.add("0");
LinkedHashMap<String, String> sortedGraphDataMap = new LinkedHashMap<String, String>();
while (rs.next()) while (rs.next())
{ {
wipValue=0; wipValue=0;
wipValuesSum = 0;
wipValue = rs.getInt("WIP"); wipValue = rs.getInt("WIP");
noOfDay = rs.getString("NO_OF_DAYS_TEXT"); noOfDay = rs.getString("NO_OF_DAYS_TEXT");
subType= rs.getString("SUB_TYPE"); subType= rs.getString("SUB_TYPE");
status = rs.getString("STATUS");
if(!noOfDayList.contains(noOfDay)) if(!noOfDayList.contains(noOfDay))
{ {
noOfDayList.add(noOfDay); noOfDayList.add(noOfDay);
} }
if(!subTypeList.contains(subType)) if(!subTypeList.contains(subType))
{ {
subTypeList.add(subType); subTypeList.add(subType.trim());
} }
key = (noOfDay.trim()+"@"+subType.trim()); key = (noOfDay.trim()+"@"+subType.trim());
if(graphDataMap.size()==0) if(graphDataMap.size()==0)
{ {
graphDataMap.put(key, wipValue); graphDataMap.put(key, wipValue);
if(status.equalsIgnoreCase("PARTIAL TRANSFER DONE"))
{
dataList.set(0, ""+wipValue);
}
else if(status.equalsIgnoreCase("QC RELEASE PENDING"))
{
dataList.set(1, ""+wipValue);
}
else if(status.equalsIgnoreCase("WO RECEIPT PENDING"))
{
dataList.set(2, ""+wipValue);
}
graphDataMapTemp.put(key, dataList);
} }
if(graphDataMap !=null && graphDataMap.size()>0) else if(graphDataMap !=null && graphDataMap.size()>0)
{ {
if(graphDataMap.containsKey(key)) if(graphDataMap.containsKey(key))
{ {
//wipValue = wipValue + graphDataMap.get(key); wipValuesSum = wipValue + graphDataMap.get(key);
wipValue = graphDataMap.get(key); //wipValue = graphDataMap.get(key);
if(status.equalsIgnoreCase("PARTIAL TRANSFER DONE"))
{
dataList.set(0, ""+wipValue);
}
else if(status.equalsIgnoreCase("QC RELEASE PENDING"))
{
dataList.set(1, ""+wipValue);
}
else if(status.equalsIgnoreCase("WO RECEIPT PENDING"))
{
dataList.set(2, ""+wipValue);
}
} }
else if(! graphDataMap.containsKey(key)) else if(! graphDataMap.containsKey(key))
{ {
wipValue = wipValue; dataList = new ArrayList<String>();
dataList.add("0");
dataList.add("0");
dataList.add("0");
wipValuesSum = wipValue;
if(status.equalsIgnoreCase("PARTIAL TRANSFER DONE"))
{
dataList.set(0, ""+wipValue);
}
else if(status.equalsIgnoreCase("QC RELEASE PENDING"))
{
dataList.set(1, ""+wipValue);
}
else if(status.equalsIgnoreCase("WO RECEIPT PENDING"))
{
dataList.set(2, ""+wipValue);
} }
graphDataMap.put(key, wipValue); }
graphDataMap.put(key, wipValuesSum);
graphDataMapTemp.put(key, dataList);
} }
} }
System.out.println("graphDataMap: "+graphDataMap); System.out.println("graphDataMap: "+graphDataMap);
System.out.println("graphDataMapTemp: "+graphDataMapTemp);
String sbType=""; String sbType="";
String grpKey=""; String grpKey="";
System.out.println("subTypeList :"+subTypeList);
for(int itmCtr=0;itmCtr<subTypeList.size();itmCtr++) for(int itmCtr=0;itmCtr<subTypeList.size();itmCtr++)
{ {
sbType = subTypeList.get(itmCtr); sbType = subTypeList.get(itmCtr);
String[] temp;
temp = sbType.split("@");
sbType = temp[0].trim();
for (Map.Entry<String, Integer> grpentry : graphDataMap.entrySet()) for (Map.Entry<String, Integer> grpentry : graphDataMap.entrySet())
{ {
for(int dayCtr=0;dayCtr<noOfDayList.size();dayCtr++) for(int dayCtr=0;dayCtr<noOfDayList.size();dayCtr++)
...@@ -192,11 +248,26 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -192,11 +248,26 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
grpKey = (noOfDayList.get(dayCtr).trim()+"@"+sbType.trim()); grpKey = (noOfDayList.get(dayCtr).trim()+"@"+sbType.trim());
if(graphDataMap.containsKey(grpKey)) if(graphDataMap.containsKey(grpKey))
{ {
sortedGraphDataMap.put(grpKey, graphDataMap.get(grpKey)); if(graphDataMapTemp.get(grpKey)!=null)
{
sortedGraphDataMap.put(grpKey, ""+graphDataMap.get(grpKey)+"@"+graphDataMapTemp.get(grpKey));
}
else
{
sortedGraphDataMap.put(grpKey, "0"+"@"+"[0,0,0]");
}
}
else if(!graphDataMap.containsKey(grpKey))
{
if(graphDataMapTemp.get(grpKey)!=null)
{
sortedGraphDataMap.put(grpKey, "0"+"@"+graphDataMapTemp.get(grpKey));
} }
if(!graphDataMap.containsKey(grpKey) ) else
{ {
sortedGraphDataMap.put(grpKey, 0); sortedGraphDataMap.put(grpKey, "0"+"@"+"[0,0,0]");
}
} }
} }
} }
...@@ -205,48 +276,66 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -205,48 +276,66 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
rowData = new JSONObject(); rowData = new JSONObject();
String noDays=""; String noDays="";
String subType1="",prvsubType1=""; String subType1="",prvsubType1="";
LinkedHashMap<String, Integer> catValues = new LinkedHashMap<String, Integer>(); String statusArrStr = "";
String valueForGraph = "";
LinkedHashMap<String, String> catValues = new LinkedHashMap<String, String>();
LinkedHashMap<String, String> catValuesPDF = new LinkedHashMap<String, String>();
int cnt=0; int cnt=0;
for (Map.Entry<String, Integer> entry : sortedGraphDataMap.entrySet()) for (Map.Entry<String, String> entry : sortedGraphDataMap.entrySet())
{ {
cnt++; cnt++;
String mapKey = entry.getKey(); String mapKey = entry.getKey();
int value = entry.getValue(); String value = entry.getValue();
String[] temp; String[] temp;
String[] temp1;
temp = mapKey.split("@"); temp = mapKey.split("@");
noDays = temp[0].trim(); noDays = temp[0].trim();
subType1 = temp[1].trim(); subType1 = temp[1].trim();
temp1 = value.split("@");
valueForGraph = temp1[0].trim();
statusArrStr = temp1[1].trim();
System.out.println("valueForGraph :"+valueForGraph);
System.out.println("statusArrStr :"+statusArrStr);
if( subType1 != null && ("").equals(prvsubType1) && subType1.trim().length()>0) if( subType1 != null && ("").equals(prvsubType1) && subType1.trim().length()>0)
{ {
catValues.put(noDays,value); catValues.put(noDays,valueForGraph);
catValuesPDF.put(noDays, statusArrStr);
rowData.put("month",cnt); rowData.put("month",cnt);
rowData.put("product_category",subType1); rowData.put("product_category",subType1);
rowData.put("category_value",catValues); rowData.put("category_value",catValues);
//rowData.put("pending_value", "100"); rowData.put("value_pdf",catValuesPDF);
} }
else if(!("").equals(prvsubType1) && prvsubType1.equals(subType1)) else if(!("").equals(prvsubType1) && prvsubType1.equals(subType1))
{ {
catValues.put(noDays,value); catValues.put(noDays,valueForGraph);
catValuesPDF.put(noDays, statusArrStr);
} }
if(!("").equals(prvsubType1) && ! prvsubType1.equals(subType1)) if(!("").equals(prvsubType1) && ! prvsubType1.equals(subType1))
{ {
rowData.put("month",cnt); rowData.put("month",cnt);
rowData.put("product_category",prvsubType1); rowData.put("product_category",prvsubType1);
rowData.put("category_value",catValues); rowData.put("category_value",catValues);
//rowData.put("pending_value", "100"); rowData.put("value_pdf",catValuesPDF);
rawDataWIPStatusDtlJson.put(count, rowData); rawDataWIPStatusDtlJson.put(count, rowData);
count++; count++;
rowData = new JSONObject(); rowData = new JSONObject();
catValues = new LinkedHashMap<String, Integer>(); catValues = new LinkedHashMap<String, String>();
catValues.put(noDays,value); catValuesPDF = new LinkedHashMap<String, String>();
catValues.put(noDays,valueForGraph);
catValuesPDF.put(noDays, statusArrStr);
} }
if(cnt==sortedGraphDataMap.size()) if(cnt==sortedGraphDataMap.size())
{ {
rowData.put("month",cnt); rowData.put("month",cnt);
rowData.put("product_category",prvsubType1); rowData.put("product_category",prvsubType1);
rowData.put("category_value",catValues); rowData.put("category_value",catValues);
//rowData.put("pending_value", "100"); rowData.put("value_pdf",catValuesPDF);
rawDataWIPStatusDtlJson.put(count, rowData); rawDataWIPStatusDtlJson.put(count, rowData);
} }
prvsubType1=subType1; prvsubType1=subType1;
...@@ -262,55 +351,128 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -262,55 +351,128 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
PdfPTable table = null; // 3 columns. PdfPTable table = null; // 3 columns.
PdfPCell cell1 = null; PdfPCell cell1 = null;
PdfPCell cell2 = null; PdfPCell cell2 = null;
PdfPCell cell3 = null;
PdfPCell cell4 = null;
LinkedHashMap<String, String> catValues = null;
List<Integer> valList = new ArrayList<Integer>();
for (int jsnCnt = 0; jsnCnt < rawDataWIPStatusDtlJson.size(); jsnCnt++) for (int jsnCnt = 0; jsnCnt < rawDataWIPStatusDtlJson.size(); jsnCnt++)
{ {
catValues = new LinkedHashMap<String, Integer>(); catValues = new LinkedHashMap<String, String>();
fetchRowWiseValJsn = new JSONObject(); fetchRowWiseValJsn = new JSONObject();
fetchRowWiseValJsn = (JSONObject) rawDataWIPStatusDtlJson.get(jsnCnt); fetchRowWiseValJsn = (JSONObject) rawDataWIPStatusDtlJson.get(jsnCnt);
subtype = ""+fetchRowWiseValJsn.get("product_category"); subtype = ""+fetchRowWiseValJsn.get("product_category");
System.out.println("subtype :"+subtype); System.out.println("subtype :"+subtype);
catValues = (LinkedHashMap<String, Integer>) fetchRowWiseValJsn.get("category_value"); catValues = (LinkedHashMap<String, String>) fetchRowWiseValJsn.get("value_pdf");
System.out.println("catValues :"+catValues); System.out.println("catValues :"+catValues);
count = 0;
System.out.println("catValues.size() :"+catValues.size()); System.out.println("catValues.size() :"+catValues.size());
if(jsnCnt == 0) if(jsnCnt == 0)
{ {
table = new PdfPTable(catValues.size()+1); table = new PdfPTable(catValues.size() * 3 + 1);
cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 8, Font.BOLD, new Color(255,255,255)))); cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4, Font.BOLD, new Color(255,255,255))));
cell1.setBackgroundColor(Color.gray); cell1.setBackgroundColor(Color.gray);
table.addCell(cell1); table.addCell(cell1);
for (Map.Entry<String, Integer> entry : catValues.entrySet()) for (Map.Entry<String, String> entry : catValues.entrySet())
{ {
cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 8, Font.BOLD, new Color(255,255,255)))); cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 4, Font.BOLD, new Color(255,255,255))));
cell2.setColspan(3);
cell2.setBackgroundColor(Color.gray); cell2.setBackgroundColor(Color.gray);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2); table.addCell(cell2);
} }
table.setWidthPercentage(100); table.setWidthPercentage(100);
document.add(table); document.add(table);
}
table = new PdfPTable(catValues.size()+1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 8)));
table.addCell(cell1);
for (Map.Entry<String, Integer> entry : catValues.entrySet()) table = new PdfPTable(catValues.size() * 3 + 1);
cell1 = new PdfPCell(new Paragraph("Status", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catValues.entrySet())
{ {
int val = entry.getValue(); cell2 = new PdfPCell(new Paragraph("Partial Transfer Done", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell2 = new PdfPCell(new Paragraph(""+val, FontFactory.getFont(FontFactory.TIMES_ROMAN, 8))); cell3 = new PdfPCell(new Paragraph("QC Release Pending", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell4 = new PdfPCell(new Paragraph("WO Receipt Pending", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2); table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
} }
table.setWidthPercentage(100); table.setWidthPercentage(100);
document.add(table); document.add(table);
} }
table = new PdfPTable(catValues.size() * 3 +1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catValues.entrySet())
{
String valAgainstStatus = entry.getValue().replace("[", "").replace("]", "");
System.out.println("valAgainstStatus :"+valAgainstStatus);
String[] temp;
String num1= "";
String num2 = "";
String num3 = "";
int total = 0;
temp = valAgainstStatus.split(",");
num1 = temp[0].trim();
num2 = temp[1].trim();
num3 = temp[2].trim();
document.close(); total = Integer.parseInt(num1) + Integer.parseInt(num2) + Integer.parseInt(num3);
System.out.println("PDF Create Successfully");*/
System.out.println("num1 :"+num1+"----- num2 :"+num2+"---- num3 :"+num3);
cell2 = new PdfPCell(new Paragraph(num1, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell3 = new PdfPCell(new Paragraph(num2, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell4 = new PdfPCell(new Paragraph(num3, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
if(count == jsnCnt && jsnCnt == 0)
{
valList.add(total);
}
else if(count >=0 && count<catValues.size())
{
int sum = total + valList.get(count);
valList.set(count, sum);
count++;
}
}
table.setWidthPercentage(100);
document.add(table);
}
System.out.println("valList :"+valList);
table = new PdfPTable(catValues.size()*3+1);
cell1 = new PdfPCell(new Paragraph("TOTAL", FontFactory.getFont(FontFactory.TIMES_ROMAN, 5,Font.BOLD, new Color(255,0,0))));
table.addCell(cell1);
for (int i=0; i<valList.size(); i++)
{
cell2 = new PdfPCell(new Paragraph(""+valList.get(i), FontFactory.getFont(FontFactory.TIMES_ROMAN, 5,Font.BOLD, new Color(255,0,0))));
cell2.setColspan(3);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
}
table.setWidthPercentage(100);
document.add(table);
document.close();
System.out.println("PDF Create Successfully");
*/
} }
catch (Exception e) catch (Exception e)
...@@ -367,58 +529,10 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -367,58 +529,10 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
city = dashboardUtility.getCommaSeparated(city); city = dashboardUtility.getCommaSeparated(city);
siteCode = dashboardUtility.getCommaSeparated(siteCode); siteCode = dashboardUtility.getCommaSeparated(siteCode);
/*sql="SELECT z.assending, Z.city, z.no_of_days_text, z.sub_type, SUM (z.wip) wip, SUM (z.batch_cost) batch_cost " +
"FROM (SELECT a.site_code__mfg AS site_code,s.city, " +
"CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND " +
"TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND " +
"TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
"THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, " +
"CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') " +
"AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') " +
"THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END assending, " +
"a.bom_sub_type AS sub_type, COUNT (a.work_order) wip, SUM (a.actual_prod_value) AS batch_cost " +
"FROM dwh_production a, item b, SITE s WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code " +
"AND s.city in ('"+city+"') " +
"AND (a.item_code >= '00' AND a.item_code <= 'ZZ') AND a.work_order_status = 'R' " +
"AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' AND a.wo_release_date <= TRUNC (SYSDATE) " +
"GROUP BY a.site_code__mfg, CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days'" +
" WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END, " +
"CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END, a.bom_sub_type,s.city) z " +
"GROUP BY z.city,z.no_of_days_text, z.sub_type, z.assending " +
"ORDER BY z.assending, z.no_of_days_text, z.sub_type ";*/
if(city.trim().length()>0 && city!=null && siteCode!=null && siteCode.trim().length()>0) if(city.trim().length()>0 && city!=null && siteCode!=null && siteCode.trim().length()>0)
{ {
sql=" SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL " /*sql=" SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL "
+ "FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, " + "FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, "
+ "CHK_VAL FROM (SELECT a.site_code__mfg AS site_code, s.city, " + "CHK_VAL FROM (SELECT a.site_code__mfg AS site_code, s.city, "
+ "CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, " + "CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, "
...@@ -432,7 +546,45 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -432,7 +546,45 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
+ "AND a.wo_release_date <= TRUNC (SYSDATE) " + "AND a.wo_release_date <= TRUNC (SYSDATE) "
+ "GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city ) z " + "GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city ) z "
+ "GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL ORDER BY z.assending, z.no_of_days_text, z.sub_type ) " + "GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL ORDER BY z.assending, z.no_of_days_text, z.sub_type ) "
+ "ORDER BY CHK_VAL ASC"; + "ORDER BY CHK_VAL ASC";*/
/*sql=" SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL "
+ "FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, "
+ "CHK_VAL FROM (SELECT a.site_code__mfg AS site_code, s.city, "
+ "CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, "
+ "CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END assending, "
+ "a.bom_sub_type AS sub_type, COUNT (a.work_order) wip, SUM (a.actual_prod_value) AS batch_cost, "
+ "(CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN 1 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN 2 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN 3 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN 4 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN 5 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN 6 WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_NUMBER ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) as CHK_VAL "
+ "FROM dwh_production a, item b, SITE s "
+ "WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code AND s.city IN ('MUMBAI') "
+ "AND (a.item_code >= '00' AND a.item_code <= 'ZZ') AND a.work_order_status = 'R' "
+ "AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' "
+ "AND a.wo_release_date <= TRUNC (SYSDATE) "
+ "GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city ) z "
+ "GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL ORDER BY z.assending, z.no_of_days_text, z.sub_type ) "
+ "ORDER BY CHK_VAL ASC";*/
sql="SELECT assending, city, no_of_days_text, sub_type, wip, batch_cost, CHK_VAL,STATUS " +
"FROM ( SELECT z.assending AS assending, Z.city as city, z.no_of_days_text as no_of_days_text, z.sub_type as sub_type, " +
"SUM (z.wip) as wip, SUM (z.batch_cost) batch_cost, CHK_VAL ,STATUS " +
"FROM (SELECT a.site_code__mfg AS site_code, s.city, CASE WHEN TO_CHAR (a.wo_release_date,'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '<15 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') =TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '>15-30 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '>30-60 days'" +
" WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '>60-120 days'" +
" WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '>120-180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '>180 days' " +
"WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR (a.wo_release_date, 'YYYY') END no_of_days_text, " +
"CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN '1' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN '2' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN '3' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN '4' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN '5' WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN '6' WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_CHAR ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) END assending, a.bom_sub_type AS sub_type, COUNT (a.work_order) wip, SUM (a.actual_prod_value) AS batch_cost, (CASE WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 15 THEN 1 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 15 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 30 THEN 2 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 30 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 60 THEN 3 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 60 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 120 THEN 4 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 120 AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) < 180 THEN 5 WHEN TO_CHAR (a.wo_release_date, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND TRUNC (TRUNC (SYSDATE) - a.wo_release_date) >= 180 THEN 6 WHEN TO_CHAR (a.wo_release_date, 'YYYY') <> TO_CHAR (SYSDATE, 'YYYY') THEN TO_NUMBER ( 6 + ABS ( TO_NUMBER (TO_CHAR (a.wo_release_date, 'YYYY' ) ) - TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY')) ) ) ELSE 0 END) as CHK_VAL, " +
"(CASE WHEN (QORDER_NO IS NULL AND PRODUCTION_QTY>0) THEN 'QC RELEASE PENDING' WHEN (QORDER_NO IS NOT NULL AND PRODUCTION_QTY>0) THEN 'PARTIAL TRANSFER DONE' WHEN (QORDER_NO IS NULL AND PRODUCTION_QTY=0) THEN 'WO RECEIPT PENDING' END) as STATUS " +
"FROM dwh_production a, item b, SITE s " +
" WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code " +
" AND s.city IN ("+city+") " +
" AND a.site_code__mfg in("+siteCode+") " +
" AND (a.item_code >= '00' AND a.item_code <= 'ZZ') " +
"AND a.work_order_status = 'R' AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' AND a.wo_release_date <= TRUNC (SYSDATE) " +
"GROUP BY a.site_code__mfg,a.wo_release_date, a.bom_sub_type, s.city,QORDER_NO, PRODUCTION_QTY ) z " +
"GROUP BY z.city, z.no_of_days_text, z.sub_type, z.assending, CHK_VAL,STATUS ORDER BY z.assending, z.no_of_days_text, z.sub_type,Z.STATUS ) " +
"ORDER BY CHK_VAL ASC";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
...@@ -443,8 +595,8 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -443,8 +595,8 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
rowData.put("sub_type", rs.getString("SUB_TYPE")); rowData.put("sub_type", rs.getString("SUB_TYPE"));
rowData.put("wip", rs.getString("WIP")); rowData.put("wip", rs.getString("WIP"));
rowData.put("batch_cost", rs.getString("BATCH_COST")); rowData.put("batch_cost", rs.getString("BATCH_COST"));
rowData.put("city", rs.getString("CITY")); rowData.put("city", rs.getString("CITY"));
rowData.put("status", rs.getString("STATUS"));
rawDataWIPStatusGridDtlJson.put(count, rowData); rawDataWIPStatusGridDtlJson.put(count, rowData);
count++; count++;
...@@ -634,7 +786,7 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -634,7 +786,7 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
} }
/*Start- this method add for generatePDF on 13Aug2015*/ /*Start- this method add for generatePDF on 13Aug2015*/
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public String getPDFByScheduler(String rptTitle, String remark, String userID, String imgName, String city, String siteCode, String dataSourceName) throws RemoteException, ITMException public String getPDFByScheduler(String rptTitle, String remark, String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException
{ {
System.out.println("In WIPStatus EJB.getPDFByScheduler Method "); System.out.println("In WIPStatus EJB.getPDFByScheduler Method ");
PdfWriter writer = null; PdfWriter writer = null;
...@@ -648,9 +800,11 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -648,9 +800,11 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
String imageName = null; String imageName = null;
Image image = null; Image image = null;
File attachFile = null; File attachFile = null;
File attachExcleFile = null;
String imgFilePath =null; String imgFilePath =null;
File existImgFile =null; File existImgFile =null;
String pdfFileName =null; String pdfFileName =null;
String excelFileName = null;
String toMailId =""; String toMailId ="";
String ccMailId =""; String ccMailId ="";
String bccAddress =""; String bccAddress ="";
...@@ -670,20 +824,27 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -670,20 +824,27 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
PdfPTable table = null; PdfPTable table = null;
PdfPCell cell1 = null; PdfPCell cell1 = null;
PdfPCell cell2 = null; PdfPCell cell2 = null;
PdfPCell cell3 = null;
PdfPCell cell4 = null;
String subtype = ""; String subtype = "";
JSONObject fetchRowWiseValJsn = null; JSONObject fetchRowWiseValJsn = null;
LinkedHashMap<String, Integer> catValues = null; LinkedHashMap<String, String> catValues = null;
JSONObject rowDataforGrid = null; JSONObject rowDataforGrid = null;
List<Integer> valList = new ArrayList<Integer>();
int count = 0;
System.out.print("Calling for PDF created step1"); System.out.print("Calling for PDF created step1");
try try
{ {
System.out.println("In WIPStatus getPDFByScheduler city :"+city+"----siteCode :"+siteCode+"-----dataSourceName :"+dataSourceName); System.out.println("In WIPStatus getPDFByScheduler city :"+city+"----siteCode :"+siteCode);
rowDataforGrid = this.getWIPStatus(city, siteCode, dataSourceName); rowDataforGrid = this.getWIPStatus(city, siteCode, "DriverITM");
System.out.println("rowDataforGrid in getPDFByScheduler :"+rowDataforGrid); System.out.println("rowDataforGrid in getPDFByScheduler :"+rowDataforGrid);
this.getExcelGenerate(city, siteCode, "DriverITM");
//START CODE FOR WINDOWS //START CODE FOR WINDOWS
//exportPDFPath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportPDF//"; //exportPDFPath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportPDF//";
//exportImagePath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportImages//"; //exportImagePath ="C://jboss-5.1.0.GA//server//default//deploy//ibase.ear//ibase.war//dashboard//mfg//Scheduler//ExportExample//ExportImages//";
...@@ -703,7 +864,11 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -703,7 +864,11 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
rptTitle = rptTitle+" ("+siteCode+")"+" Plant Open Work Order Status as on " +currDate; rptTitle = rptTitle+" ("+siteCode+")"+" Plant Open Work Order Status as on " +currDate;
System.out.println("rptTitle in WIPStatus getPDFByScheduler :"+rptTitle); System.out.println("rptTitle in WIPStatus getPDFByScheduler :"+rptTitle);
pdfFileName = exportPDFPath+rptTitle+".pdf"; pdfFileName = exportPDFPath+rptTitle+".pdf";
excelFileName = exportPDFPath+rptTitle+".xls";
System.out.println("excelFileName :"+excelFileName);
System.out.println("modify PDF file name "+ pdfFileName+"current date formate==="+currDate); System.out.println("modify PDF file name "+ pdfFileName+"current date formate==="+currDate);
file = new FileOutputStream(new File(pdfFileName)); file = new FileOutputStream(new File(pdfFileName));
...@@ -754,44 +919,120 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -754,44 +919,120 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
preface.add(new Paragraph(" ")); preface.add(new Paragraph(" "));
for (int jsnCnt = 0; jsnCnt < rowDataforGrid.size(); jsnCnt++) for (int jsnCnt = 0; jsnCnt < rowDataforGrid.size(); jsnCnt++)
{ {
catValues = new LinkedHashMap<String, Integer>(); catValues = new LinkedHashMap<String, String>();
fetchRowWiseValJsn = new JSONObject(); fetchRowWiseValJsn = new JSONObject();
fetchRowWiseValJsn = (JSONObject) rowDataforGrid.get(jsnCnt); fetchRowWiseValJsn = (JSONObject) rowDataforGrid.get(jsnCnt);
subtype = ""+fetchRowWiseValJsn.get("product_category"); subtype = ""+fetchRowWiseValJsn.get("product_category");
System.out.println("subtype :"+subtype); System.out.println("subtype :"+subtype);
catValues = (LinkedHashMap<String, Integer>) fetchRowWiseValJsn.get("category_value"); catValues = (LinkedHashMap<String, String>) fetchRowWiseValJsn.get("value_pdf");
System.out.println("catValues :"+catValues); System.out.println("catValues :"+catValues);
count = 0;
System.out.println("catValues.size() :"+catValues.size());
if(jsnCnt == 0) if(jsnCnt == 0)
{ {
table = new PdfPTable(catValues.size()+1); table = new PdfPTable(catValues.size() * 3 + 1);
cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 8, Font.BOLD, new Color(255,255,255)))); cell1 = new PdfPCell(new Paragraph("OPEN SINCE", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4, Font.BOLD, new Color(255,255,255))));
cell1.setBackgroundColor(Color.gray); cell1.setBackgroundColor(Color.gray);
table.addCell(cell1); table.addCell(cell1);
for (Map.Entry<String, Integer> entry : catValues.entrySet()) for (Map.Entry<String, String> entry : catValues.entrySet())
{ {
cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 8, Font.BOLD, new Color(255,255,255)))); cell2 = new PdfPCell(new Paragraph(entry.getKey(), FontFactory.getFont(FontFactory.TIMES_ROMAN, 4, Font.BOLD, new Color(255,255,255))));
cell2.setColspan(3);
cell2.setBackgroundColor(Color.gray); cell2.setBackgroundColor(Color.gray);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2); table.addCell(cell2);
} }
table.setWidthPercentage(100); table.setWidthPercentage(100);
document.add(table); document.add(table);
}
table = new PdfPTable(catValues.size()+1);
cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 8)));
table = new PdfPTable(catValues.size() * 3 + 1);
cell1 = new PdfPCell(new Paragraph("Status", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
table.addCell(cell1); table.addCell(cell1);
for (Map.Entry<String, String> entry : catValues.entrySet())
{
cell2 = new PdfPCell(new Paragraph("Partial Transfer Done", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell3 = new PdfPCell(new Paragraph("QC Release Pending", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell4 = new PdfPCell(new Paragraph("WO Receipt Pending", FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
}
table.setWidthPercentage(100);
document.add(table);
}
table = new PdfPTable(catValues.size() * 3 +1);
for (Map.Entry<String, Integer> entry : catValues.entrySet()) cell1 = new PdfPCell(new Paragraph(subtype, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
table.addCell(cell1);
for (Map.Entry<String, String> entry : catValues.entrySet())
{ {
int val = entry.getValue(); String valAgainstStatus = entry.getValue().replace("[", "").replace("]", "");
cell2 = new PdfPCell(new Paragraph(""+val, FontFactory.getFont(FontFactory.TIMES_ROMAN, 8))); //System.out.println("valAgainstStatus :"+valAgainstStatus);
String[] temp;
String num1= "";
String num2 = "";
String num3 = "";
int total = 0;
temp = valAgainstStatus.split(",");
num1 = temp[0].trim();
num2 = temp[1].trim();
num3 = temp[2].trim();
//System.out.println("num1 :"+num1+"----- num2 :"+num2+"---- num3 :"+num3);
total = Integer.parseInt(num1) + Integer.parseInt(num2) + Integer.parseInt(num3);
cell2 = new PdfPCell(new Paragraph(num1, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell3 = new PdfPCell(new Paragraph(num2, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell4 = new PdfPCell(new Paragraph(num3, FontFactory.getFont(FontFactory.TIMES_ROMAN, 4)));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2); table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
if(count == jsnCnt && jsnCnt == 0)
{
valList.add(total);
}
else if(count >=0 && count<catValues.size())
{
int sum = total + valList.get(count);
valList.set(count, sum);
count++;
}
} }
table.setWidthPercentage(100); table.setWidthPercentage(100);
document.add(table); document.add(table);
}
/*Add code for total by Dhanendra on 08-09-15*/
System.out.println("valList :"+valList);
table = new PdfPTable(catValues.size() *3 +1);
cell1 = new PdfPCell(new Paragraph("TOTAL", FontFactory.getFont(FontFactory.TIMES_ROMAN, 5,Font.BOLD, new Color(255,0,0))));
table.addCell(cell1);
for (int i=0; i<valList.size(); i++)
{
cell2 = new PdfPCell(new Paragraph(""+valList.get(i), FontFactory.getFont(FontFactory.TIMES_ROMAN, 5,Font.BOLD, new Color(255,0,0))));
cell2.setColspan(3);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell2);
} }
table.setWidthPercentage(100);
document.add(table);
/*End code for total by Dhanendra on 08-09-15*/
document.close(); document.close();
file.close(); file.close();
...@@ -803,7 +1044,7 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -803,7 +1044,7 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
ccMailId =""; ccMailId ="";
bccAddress =""; bccAddress ="";
subject =rptTitle; subject =rptTitle;
userWiseBodytext ="Dear Sir, Please find attached herewith is the Weekly Output:"+rptTitle+" Report in PDF format."; userWiseBodytext ="Dear Sir, Please find attached here with is the Weekly Output:"+rptTitle+" Report in PDF format.";
/*String sql = "select name,user_type,email_id FROM users WHERE code='"+userID+"'"; /*String sql = "select name,user_type,email_id FROM users WHERE code='"+userID+"'";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
...@@ -819,7 +1060,6 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -819,7 +1060,6 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
System.out.println("Add WIP in city :" +city); System.out.println("Add WIP in city :" +city);
String sql = "SELECT SEND_TO, COPY_TO, BLIND_COPY FROM MAIL_FORMAT WHERE FORMAT_CODE = '"+city+"'"; String sql = "SELECT SEND_TO, COPY_TO, BLIND_COPY FROM MAIL_FORMAT WHERE FORMAT_CODE = '"+city+"'";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if (rs.next()) if (rs.next())
{ {
...@@ -829,9 +1069,18 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -829,9 +1069,18 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
System.out.println("No of Users for WIPStatus.getPDFByScheduler city = "+city+" --- toMailId ="+toMailId +"AND According to the ccMailId ======="+ccMailId+"---- bccAddress == "+bccAddress); System.out.println("No of Users for WIPStatus.getPDFByScheduler city = "+city+" --- toMailId ="+toMailId +"AND According to the ccMailId ======="+ccMailId+"---- bccAddress == "+bccAddress);
} }
/*toMailId = "Julian.Soares@sunpharma.com,Bhaumik.Joshi@sunpharma.com,Jigar.Gohil@sunpharma.com,Prachi.Joshi@sunpharma.com";
ccMailId = "dhanendra.kasliwal@baseinformation.com";
bccAddress = "";*/
/*toMailId = "nikhil.sawalakhe@baseinformation.com";
ccMailId = "dhanendra.kasliwal@baseinformation.com";
bccAddress = "";*/
System.out.println("Export Pdf path for WIPStatus.getPDFByScheduler ="+pdfFileName); System.out.println("Export Pdf path for WIPStatus.getPDFByScheduler ="+pdfFileName);
attachFile = new File(pdfFileName); attachFile = new File(pdfFileName);
if(attachFile.exists() && attachFile.length()>0) attachExcleFile = new File(excelFileName);
if(attachFile.exists() && attachFile.length()>0 && attachExcleFile.exists() && attachExcleFile.length()>0)
{ {
mailInfo =new ArrayList<String>(); mailInfo =new ArrayList<String>();
mailInfo.add(toMailId); mailInfo.add(toMailId);
...@@ -840,13 +1089,14 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -840,13 +1089,14 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
mailInfo.add(subject); mailInfo.add(subject);
mailInfo.add(userWiseBodytext); mailInfo.add(userWiseBodytext);
mailInfo.add(attachFile.getPath()); mailInfo.add(attachFile.getPath());
mailInfo.add(attachExcleFile.getPath());
this.sendingMail(mailInfo); this.sendingMail(mailInfo);
resultFlage="true"; resultFlage="true";
} }
System.out.println("*sending mail done succesfully for WIPStatus.getPDFByScheduler*"); System.out.println("*sending mail done succesfully for WIPStatus.getPDFByScheduler*");
} catch (Exception e) } catch (Exception e)
{ {
System.out.println("Exception :WIPStatus :getPDFByScheduler(HashMap<String, List<String>>,String,String,String,String"+e.getMessage()); System.out.println("Exception :WIPStatus :getPDFByScheduler "+e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
finally finally
...@@ -887,7 +1137,7 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -887,7 +1137,7 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
commInfo.append("<BCC_ADD>").append("<![CDATA[" + mailInfo.get(2) + "]]>").append("</BCC_ADD>"); commInfo.append("<BCC_ADD>").append("<![CDATA[" + mailInfo.get(2) + "]]>").append("</BCC_ADD>");
commInfo.append("<SUBJECT>").append("<![CDATA[" + mailInfo.get(3) + "]]>").append("</SUBJECT>"); commInfo.append("<SUBJECT>").append("<![CDATA[" + mailInfo.get(3) + "]]>").append("</SUBJECT>");
commInfo.append("<BODY_TEXT>").append("<![CDATA[" + mailInfo.get(4) + "]]>").append("</BODY_TEXT>"); commInfo.append("<BODY_TEXT>").append("<![CDATA[" + mailInfo.get(4) + "]]>").append("</BODY_TEXT>");
commInfo.append("<XML_DATA_FILE_PATH>").append("<![CDATA[" + mailInfo.get(5) + "]]>").append("</XML_DATA_FILE_PATH>"); commInfo.append("<XML_DATA_FILE_PATH>").append("<![CDATA[" + mailInfo.get(5)+";"+ mailInfo.get(6) + "]]>").append("</XML_DATA_FILE_PATH>");
commInfo.append("</MAILINFO>"); commInfo.append("</MAILINFO>");
commInfo.append("</ROOT>"); commInfo.append("</ROOT>");
EMail email = new EMail(); EMail email = new EMail();
...@@ -904,6 +1154,171 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus ...@@ -904,6 +1154,171 @@ public class WIPStatus extends ValidatorEJB implements WIPStatusLocal, WIPStatus
email = null; email = null;
} }
/*End- this method add for generatePDF on 13Aug2015*/ /*End- this method add for generatePDF on 13Aug2015*/
/*Add this method for generate Excel file on Date 31-08-15 by Dhanendra*/
public void getExcelGenerate(String city, String siteCode, String dataSourceName)throws RemoteException, ITMException
{
System.out.println("in getExcelGenerate city :"+city+"-----siteCode :"+siteCode);
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
String excelFileName = null;
String exportPDFPath = "";
String currDate="";
SimpleDateFormat simpleDateFormat = null;
Calendar calendar = null;
DashboardUtility dashboardUtility = null;
try
{
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
simpleDateFormat = new SimpleDateFormat("dd-MMM-yy");
calendar = Calendar.getInstance();
exportPDFPath = CommonConstants.JBOSSHOME + File.separator +"server"+File.separator +"default"+File.separator +"deploy"+File.separator +"ibase.ear"+File.separator + "ibase.war" +File.separator + "dashboard" + File.separator + "mfg"+ File.separator + "Scheduler"+File.separator +"ExportExample"+ File.separator + "ExportPDF"+File.separator;
currDate = simpleDateFormat.format(calendar.getTime());
excelFileName = city+" ("+siteCode+")"+" Plant Open Work Order Status as on " +currDate;
dashboardUtility = new DashboardUtility();
city = dashboardUtility.getCommaSeparated(city);
siteCode = dashboardUtility.getCommaSeparated(siteCode);
System.out.println("in getExcelGenerate after dashboardUtility city :"+city+"-----siteCode :"+siteCode);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Excel Sheet");
HSSFRow rowhead = sheet.createRow(0);
HSSFCellStyle cellStyleC=wb.createCellStyle() ;
cellStyleC.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFCellStyle cellStyleSR=wb.createCellStyle() ;
cellStyleSR.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font=wb.createFont();
font.setFontName("Calibri");
font.setFontHeightInPoints((short)10);
cellStyleC.setFont(font);
cellStyleSR.setFont(font);
/*sql="SELECT a.site_code__mfg AS SITE_CODE, a.WORK_ORDER, a.wo_release_date AS REL_DATE, TRUNC (TRUNC (SYSDATE) - a.wo_release_date) AS NO_OF_DAYS, " +
" a.ORDER_TYPE, a.bom_sub_type AS SUB_TYPE, a.ITEM_CODE, b.ITEM_PARNT, b.descr AS ITEM_NAME, a.UNIT, a.lot_no AS BATCH_NO, " +
" a.CURRENT_BATCH_SIZE, a.PRODUCTION_QTY, ((a.current_batch_size * a.std_yield_perc / 100) - a.production_qty ) AS WIP, " +
" a.WORK_ORDER_STATUS AS STATUS, a.STD_YIELD_PERC, a.ACTUAL_YIELD, a.ACTUAL_PROD_VALUE AS BATCH_COST " +
" FROM dwh_production a, item b,SITE s " +
" WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code AND s.city IN ("+city+") " +
" AND a.site_code__mfg in("+siteCode+") AND a.work_order_status = 'R' AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' " +
" AND a.wo_release_date <= TRUNC (SYSDATE) ORDER BY a.item_code, a.lot_no";*/
/*sql=" SELECT a.site_code__mfg AS SITE_CODE, a.WORK_ORDER, a.wo_release_date AS REL_DATE, TRUNC (TRUNC (SYSDATE) - a.wo_release_date) AS NO_OF_DAYS, " +
" a.ORDER_TYPE, a.bom_sub_type AS SUB_TYPE, a.ITEM_CODE, b.ITEM_PARNT, b.descr AS ITEM_NAME, a.UNIT, a.lot_no AS BATCH_NO, " +
" a.CURRENT_BATCH_SIZE, a.PRODUCTION_QTY, ((a.current_batch_size * a.std_yield_perc / 100) - a.production_qty ) AS WIP, " +
" a.WORK_ORDER_STATUS AS STATUS, a.STD_YIELD_PERC, a.ACTUAL_YIELD, a.ACTUAL_PROD_VALUE AS BATCH_COST " +
" FROM dwh_production a, item b, SITE s " +
" WHERE a.item_code = b.item_code AND a.site_code__mfg = s.site_code AND s.city IN ('MUMBAI') " +
" AND a.work_order_status = 'R' AND b.stk_opt = '2' AND a.bom_sub_type <> 'CLEANING' " +
" AND a.wo_release_date <= TRUNC (SYSDATE) ORDER BY a.item_code, a.lot_no";*/
sql="SELECT A.SITE_CODE__MFG AS SITE_CODE, A.WORK_ORDER, A.WO_RELEASE_DATE AS REL_DATE, TRUNC(TRUNC(SYSDATE) - A.WO_RELEASE_DATE) AS NO_OF_DAYS, " +
"A.ORDER_TYPE, A.BOM_SUB_TYPE AS SUB_TYPE, A.ITEM_CODE, B.ITEM_PARNT, B.DESCR AS ITEM_NAME, A.UNIT, A.LOT_NO AS BATCH_NO, " +
"A.CURRENT_BATCH_SIZE, A.PRODUCTION_QTY, ((A.CURRENT_BATCH_SIZE * A.STD_YIELD_PERC/100) - A.PRODUCTION_QTY) AS WIP," +
" A.WORK_ORDER_STATUS, A.STD_YIELD_PERC, A.ACTUAL_YIELD, A.ACTUAL_PROD_VALUE AS BATCH_COST, QORDER_NO, " +
"(CASE WHEN (QORDER_NO IS NULL AND PRODUCTION_QTY>0) THEN 'QC RELEASE PENDING' " +
"WHEN (QORDER_NO IS NOT NULL AND PRODUCTION_QTY>0) THEN 'PARTIAL TRANSFER DONE' " +
"WHEN (QORDER_NO IS NULL AND PRODUCTION_QTY=0) THEN 'WO RECEIPT PENDING' END) STATUS " +
"FROM DWH_PRODUCTION A, ITEM B ,SITE S WHERE A.ITEM_CODE = B.ITEM_CODE " +
"AND A.SITE_CODE__MFG in("+siteCode+") " +
"AND A.WORK_ORDER_STATUS = 'R' AND B.STK_OPT = '2' AND A.BOM_SUB_TYPE <> 'CLEANING' AND a.site_code__mfg = s.site_code " +
"AND s.city IN ("+city+") AND A.WO_RELEASE_DATE <= TRUNC(SYSDATE) ORDER BY A.ITEM_CODE, A.LOT_NO";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
ResultSetMetaData rsmtdt= rs.getMetaData();
int columncount=rsmtdt.getColumnCount();
int index = 0;
boolean flag=true;
HSSFRow row=null;
while(rs.next())
{
//System.out.println("index :"+index);
row = sheet.createRow(index);
if(flag)
{
for(int i=1;i<=columncount;i++)
{
createCell(wb, rowhead, i-1,cellStyleC, rsmtdt.getColumnLabel(i), "String");
}
flag=false;
index++;
row = sheet.createRow(index);
}
for(int i=1;i<=columncount;i++)
{
createCell(wb,row, i-1,cellStyleC,checkNull(rs.getString(i)).trim(),"String");
}
index++;
}
excelFileName = exportPDFPath+excelFileName+".xls";
System.out.println("excelFileName in getExcelGenerate :"+excelFileName);
FileOutputStream out = new FileOutputStream(excelFileName);
wb.write(out);
out.close();
}catch (Exception e)
{
System.out.println("Exception :WIPStatus :getExcelGenerate(String city, String siteCode, String dataSourceName :"+e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in WIPStatusEJB.getPDFByScheduler" + d.getMessage());
throw new ITMException(d);
}
}
}
@SuppressWarnings("deprecation")
private static void createCell(HSSFWorkbook wb, HSSFRow row, int column, HSSFCellStyle cellStyle, String data, String dataType)
{
HSSFCell cell = null;
if("String".equalsIgnoreCase(dataType))
{
cell = row.createCell((short) column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(data);
}
if("Number".equalsIgnoreCase(dataType))
{
cellStyle.setDataFormat((short)2);
cell = row.createCell((short) column, HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(Double.parseDouble(data.trim()));
}
cell.setCellStyle(cellStyle);
}
/*End this method for generate Excel file on Date 31-08-15 by Dhanendra*/
private String checkNull(String str) private String checkNull(String str)
{ {
if(str == null) if(str == null)
......
...@@ -16,5 +16,5 @@ public interface WIPStatusLocal extends ValidatorLocal ...@@ -16,5 +16,5 @@ public interface WIPStatusLocal extends ValidatorLocal
public JSONObject getWIPStatus(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException; public JSONObject getWIPStatus(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getWIPStatusGrid(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException; public JSONObject getWIPStatusGrid(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getWIPStatusLinkGrid(String city, String siteCode, String days,String category,String dataSourceName) throws RemoteException, ITMException; public JSONObject getWIPStatusLinkGrid(String city, String siteCode, String days,String category,String dataSourceName) throws RemoteException, ITMException;
public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode, String dataSourceName) throws RemoteException, ITMException; public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException;
} }
...@@ -17,6 +17,6 @@ public interface WIPStatusRemote extends ValidatorRemote ...@@ -17,6 +17,6 @@ public interface WIPStatusRemote extends ValidatorRemote
public JSONObject getWIPStatus(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException; public JSONObject getWIPStatus(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getWIPStatusGrid(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException; public JSONObject getWIPStatusGrid(String city, String siteCode, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getWIPStatusLinkGrid(String city, String siteCode, String days,String category,String dataSourceName) throws RemoteException, ITMException; public JSONObject getWIPStatusLinkGrid(String city, String siteCode, String days,String category,String dataSourceName) throws RemoteException, ITMException;
public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode, String dataSourceName) throws RemoteException, ITMException; public String getPDFByScheduler(String rptTitle,String remark,String userID, String imgName, String city, String siteCode) throws RemoteException, ITMException;
} }
package ibase.dashboard.mfg.servlet;
import ibase.dashboard.mfg.ejb.PendingQCPurchaseOrderRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
public class PendingQCOrderPurchaseGridServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
PendingQCPurchaseOrderRemote pendingQCOrderRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String siteCode = "";
String geoLocation = "";
try
{
System.out.println("in PendingQCOrderPurchaseGridServlet " );
response.setContentType("application/xml");
dataSourceName = request.getParameter("dataSourceName");
siteCode = request.getParameter("sitecode");
geoLocation = request.getParameter("geoLocation");
System.out.println("in PendingQCOrderPurchaseGridServlet SiteCode :"+siteCode+"----geoLocation :"+geoLocation);
context = new InitialContext(appConnectParm.getProperty());
pendingQCOrderRemote = (PendingQCPurchaseOrderRemote) context.lookup("ibase/PendingQCPurchaseOrder/remote");
JSONObject jsonObjData = (JSONObject) pendingQCOrderRemote.getPendingQCOrderPurchaseGrid(geoLocation,siteCode,dataSourceName);
OutputStream outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println(" in servlet Final data set for PendingQCOrderPurchaseGridServlet build the Graph is===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : PendingQCOrderPurchaseGridServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
package ibase.dashboard.mfg.servlet;
import ibase.dashboard.mfg.ejb.PendingQCPurchaseOrderRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.json.simple.JSONObject;
public class PendingQCOrderPurchaseServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
PendingQCPurchaseOrderRemote pendingQCOrderRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String siteCode = "";
String geoLocation = "";
try
{
System.out.println("in PendingQCOrderPurchaseServlet " );
response.setContentType("application/xml");
HttpSession session = request.getSession(true);
dataSourceName = request.getParameter("dataSourceName");
siteCode = request.getParameter("sitecode");
geoLocation = request.getParameter("geoLocation");
session.setAttribute("geoLocation", geoLocation);
session.setAttribute("siteCode", siteCode);
System.out.println("in PendingQCOrderPurchaseServlet SiteCode :"+siteCode+"----geoLocation :"+geoLocation);
context = new InitialContext(appConnectParm.getProperty());
pendingQCOrderRemote = (PendingQCPurchaseOrderRemote) context.lookup("ibase/PendingQCPurchaseOrder/remote");
JSONObject jsonObjData = (JSONObject) pendingQCOrderRemote.getPendingQCOrderPurchase(geoLocation,siteCode,dataSourceName);
OutputStream outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println(" in servlet Final data set for PendingQCOrderPurchaseServlet build the Graph is===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : PendingQCOrderPurchaseServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
package ibase.dashboard.mfg.servlet;
import ibase.dashboard.mfg.ejb.PendingQCPurchaseOrderRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@SuppressWarnings("serial")
public class PendingQCPurcExportPDFServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost( request, response );
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
String rptTitle ="";
String remark ="";
String userID ="";
String imgName = "";
String resultString ="";
PendingQCPurchaseOrderRemote pendingQCPurchaseOrderRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
System.out.println(" ENTER - PendingQCPurcExportPDFServlet ***********************");
try
{
response.setContentType("application/xml");
HttpSession session = request.getSession(true);
String sessionCity = (String) session.getAttribute("geoLocation");
String sessionSiteCode = (String) session.getAttribute("siteCode");
System.out.println("sessionCity :"+sessionCity+"=======sessionSiteCode :"+sessionSiteCode);
session.invalidate();
userID = request.getParameter("userID");
rptTitle = request.getParameter("rptTitle");
remark = request.getParameter("remark");
imgName = request.getParameter("imgNameList");
System.out.println("userID inside WIPStatusExportPDFServlet====="+ userID +"---rptTitle----->"+rptTitle + "---remark--->"+remark+"---imgName--->"+imgName);
// call EJB method for PDF creation*******************
context = new InitialContext(appConnectParm.getProperty());
pendingQCPurchaseOrderRemote = (PendingQCPurchaseOrderRemote) context.lookup("ibase/PendingQCPurchaseOrder/remote");
resultString = pendingQCPurchaseOrderRemote.getPDFByScheduler(rptTitle,remark,userID,imgName,sessionCity,sessionSiteCode);
response.setContentType("text/html");
if(resultString.equals("false"))
{
response.getWriter().write("false");
}
else
{
response.getWriter().write("true");
}
}
catch (Exception e)
{
System.out.println("Exception :PendingQCPurcExportPDFServlet: ) :"+e.getMessage()); //$NON-NLS-1$
try
{
throw new ITMException(e);
}
catch (ITMException e1)
{
e1.printStackTrace();
}
}
finally
{
userID="";
rptTitle="";
}
}
}
\ No newline at end of file
package ibase.dashboard.mfg.servlet;
import ibase.dashboard.mfg.ejb.PendingQCWorkOrderRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@SuppressWarnings("serial")
public class PendingQCReceiptExportPDFServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost( request, response );
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
String rptTitle ="";
String remark ="";
String userID ="";
String imgName = "";
String resultString ="";
PendingQCWorkOrderRemote PendingQCWorkOrderRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
System.out.println(" ENTER - PendingQCReceiptExportPDFServlet ***********************");
try
{
response.setContentType("application/xml");
HttpSession session = request.getSession(true);
String sessionCity = (String) session.getAttribute("geoLocation");
String sessionSiteCode = (String) session.getAttribute("siteCode");
System.out.println("sessionCity :"+sessionCity+"=======sessionSiteCode :"+sessionSiteCode);
session.invalidate();
userID = request.getParameter("userID");
rptTitle = request.getParameter("rptTitle");
remark = request.getParameter("remark");
imgName = request.getParameter("imgNameList");
System.out.println("userID inside WIPStatusExportPDFServlet====="+ userID +"---rptTitle----->"+rptTitle + "---remark--->"+remark+"---imgName--->"+imgName);
// call EJB method for PDF creation*******************
context = new InitialContext(appConnectParm.getProperty());
PendingQCWorkOrderRemote = (PendingQCWorkOrderRemote) context.lookup("ibase/PendingQCWorkOrder/remote");
resultString = PendingQCWorkOrderRemote.getPDFByScheduler(rptTitle,remark,userID,imgName,sessionCity,sessionSiteCode);
response.setContentType("text/html");
if(resultString.equals("false"))
{
response.getWriter().write("false");
}
else
{
response.getWriter().write("true");
}
}
catch (Exception e)
{
System.out.println("Exception :PendingQCPurcExportPDFServlet: ) :"+e.getMessage()); //$NON-NLS-1$
try
{
throw new ITMException(e);
}
catch (ITMException e1)
{
e1.printStackTrace();
}
}
finally
{
userID="";
rptTitle="";
}
}
}
\ No newline at end of file
package ibase.dashboard.mfg.servlet;
import ibase.dashboard.mfg.ejb.PendingQCWorkOrderRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
public class PendingQCWorkOrderGridServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
PendingQCWorkOrderRemote pendingQCWorkOrderRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String siteCode = "";
String geoLocation = "";
try
{
System.out.println("in PendingQCWorkOrderGridServlet " );
response.setContentType("application/xml");
dataSourceName = request.getParameter("dataSourceName");
siteCode = request.getParameter("sitecode");
geoLocation = request.getParameter("geoLocation");
System.out.println("in PendingQCWorkOrderGridServlet SiteCode :"+siteCode+"----geoLocation :"+geoLocation);
context = new InitialContext(appConnectParm.getProperty());
pendingQCWorkOrderRemote = (PendingQCWorkOrderRemote) context.lookup("ibase/PendingQCWorkOrder/remote");
JSONObject jsonObjData = (JSONObject) pendingQCWorkOrderRemote.getPendingQCWorkOrderGrid(geoLocation,siteCode,dataSourceName);
OutputStream outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println(" in servlet Final data set for PendingQCWorkOrderGridServlet build the Graph is===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : PendingQCWorkOrderGridServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
package ibase.dashboard.mfg.servlet;
import ibase.dashboard.mfg.ejb.PendingQCWorkOrderRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.json.simple.JSONObject;
public class PendingQCWorkOrderServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
PendingQCWorkOrderRemote pendingQCWorkOrderRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String siteCode = "";
String geoLocation = "";
try
{
System.out.println("in PendingQCWorkOrderServlet " );
response.setContentType("application/xml");
HttpSession session = request.getSession(true);
dataSourceName = request.getParameter("dataSourceName");
siteCode = request.getParameter("sitecode");
geoLocation = request.getParameter("geoLocation");
session.setAttribute("geoLocation", geoLocation);
session.setAttribute("siteCode", siteCode);
System.out.println("in PendingQCWorkOrderServlet SiteCode :"+siteCode+"----geoLocation :"+geoLocation);
context = new InitialContext(appConnectParm.getProperty());
pendingQCWorkOrderRemote = (PendingQCWorkOrderRemote) context.lookup("ibase/PendingQCWorkOrder/remote");
JSONObject jsonObjData = (JSONObject) pendingQCWorkOrderRemote.getPendingQCWorkOrder(geoLocation,siteCode,dataSourceName);
OutputStream outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println(" in servlet Final data set for PendingQCWorkOrderServlet build the Graph is===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : PendingQCWorkOrderServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
...@@ -41,10 +41,8 @@ public class WIPStatusExportPDFServlet extends HttpServlet ...@@ -41,10 +41,8 @@ public class WIPStatusExportPDFServlet extends HttpServlet
String sessionCity = (String) session.getAttribute("city"); String sessionCity = (String) session.getAttribute("city");
String sessionSiteCode = (String) session.getAttribute("siteCode"); String sessionSiteCode = (String) session.getAttribute("siteCode");
String sessionDataSrcName = (String) session.getAttribute("dataSourceName");
System.out.println("sessionCity :"+sessionCity+"=======sessionSiteCode :"+sessionSiteCode); System.out.println("sessionCity :"+sessionCity+"=======sessionSiteCode :"+sessionSiteCode);
System.out.println("sessionDataSrcName :"+sessionDataSrcName);
session.invalidate(); session.invalidate();
userID = request.getParameter("userID"); userID = request.getParameter("userID");
...@@ -55,7 +53,7 @@ public class WIPStatusExportPDFServlet extends HttpServlet ...@@ -55,7 +53,7 @@ public class WIPStatusExportPDFServlet extends HttpServlet
// call EJB method for PDF creation******************* // call EJB method for PDF creation*******************
context = new InitialContext(appConnectParm.getProperty()); context = new InitialContext(appConnectParm.getProperty());
wipStatusRemote = (WIPStatusRemote) context.lookup("ibase/WIPStatus/remote"); wipStatusRemote = (WIPStatusRemote) context.lookup("ibase/WIPStatus/remote");
resultString = wipStatusRemote.getPDFByScheduler(rptTitle,remark,userID,imgName,sessionCity,sessionSiteCode,sessionDataSrcName); resultString = wipStatusRemote.getPDFByScheduler(rptTitle,remark,userID,imgName,sessionCity,sessionSiteCode);
response.setContentType("text/html"); response.setContentType("text/html");
if(resultString.equals("false")) if(resultString.equals("false"))
{ {
......
...@@ -44,7 +44,6 @@ public class WIPStatusServlet extends HttpServlet ...@@ -44,7 +44,6 @@ public class WIPStatusServlet extends HttpServlet
session.setAttribute("city", city); session.setAttribute("city", city);
session.setAttribute("siteCode", siteCode); session.setAttribute("siteCode", siteCode);
session.setAttribute("dataSourceName", dataSourceName);
context = new InitialContext(appConnectParm.getProperty()); context = new InitialContext(appConnectParm.getProperty());
wipStatusRemote = (WIPStatusRemote) context.lookup("ibase/WIPStatus/remote"); wipStatusRemote = (WIPStatusRemote) context.lookup("ibase/WIPStatus/remote");
......
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