Commit 01a10931 authored by nsawalakhe's avatar nsawalakhe

Add new component for DB2 Franco compliance dashboard.

create 3 method and servlet for compliance report.


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@102064 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 81ff9370
package ibase.dashboard.sfa.ejb;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import javax.ejb.Stateless;
import org.json.simple.JSONObject;
/**
* Session Bean implementation class SalesPersonSales
*/
@Stateless
public class ComplianceDB2 extends ValidatorEJB implements ComplianceDB2Local, ComplianceDB2Remote
{
public ComplianceDB2() {
// TODO Auto-generated constructor stub
}
GenericUtility genericUtility = GenericUtility.getInstance();
/*Start Below 3 methods for Franco Compliance Report by Nikhil
on Dated 21/06/2016*/
@SuppressWarnings("unchecked")
@Override
public JSONObject getComplianceDetailsDb2(String loginId,String dataSourceName,String period) throws RemoteException, ITMException
{
JSONObject rawDataComplianceDetailsDb2Json = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
try
{
System.out.println(" Inside ComplianceEJB for getComplianceDetailsDb2 Data Soruc Namem 11 ="+dataSourceName+" loginId=:"+ loginId+"---- month=:"+ period);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
/*old test sql for Franco*/
/*sql = " Select NSMCODE, NSMNAME, NSMDESG,SMCODE,SMNAME, SMDESG, RSECODE, RSENAME, RSEDESG, REPCODE, " +
" REPNAME, REPDESG, REP_NONREP,CNT " +
" FROM Temp_SALES_HIER_JJ_CNT ORDER BY smcode,rsecode, repcode"; */
/*Final SQL for Franco Compliance by Nikhil on Dated 23 June 2016*/
sql = "SELECT F.NSMCODE ,F.NSMNAME ,F.NSMDESG ,F.SMCODE ,F.SMNAME ,F.SMDESG ," +
"F.RSECODE ,F.RSENAME ,F.RSEDESG ,F.REPCODE ,F.REPNAME ,F.REPDESG ," +
"F.REP_NONREP ,COUNT(*) CNT FROM ( SELECT DISTINCT UF.NSMCODE ,UF.NSMNAME ," +
"UF.NSMDESG ,UF.SMCODE ,UF.SMNAME ,UF.SMDESG ,UF.RSECODE ,UF.RSENAME ," +
"UF.RSEDESG ,UF.REPCODE ,UF.REPNAME ,UF.REPDESG ,UF.AVAILABLE_DY ," +
"UF.ACTIVITY_CODE ,UF.REP_NONREP ,UF.CUSTOMER_NAME " +
"FROM ( SELECT NSMCODE ,NSMNAME ,NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ," +
"RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ," +
"SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' " +
"WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL " +
"THEN '-' ELSE 'NR' END ) AS REP_NONREP ,CONCAT(CONCAT(COALESCE(STRG_CUSTOMER.FIRST_NAME, ''), " +
"COALESCE(STRG_CUSTOMER.MIDDLE_NAME, '')), COALESCE(STRG_CUSTOMER.LAST_NAME, '')) AS CUSTOMER_NAME " +
"FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
"FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a " +
"FROM sfa_time WHERE dt > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ," +
"'00:00:00') AND DT <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') ) AV_DATES WHERE VW_SALES_HIER_JJ.a = AV_DATES.a EXCEPT " +
"SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY " +
"FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno " +
"AND holiday.hol_date > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND holiday.hol_date <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') " +
"AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code " +
"AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S " +
"WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY " +
"LEFT JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE " +
"AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID " +
"LEFT JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ " +
"WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE " +
"AND VW_SALES_HIER_JJ.NSMCODE = '"+loginId+"' " +
"UNION ALL SELECT '' AS NSMCODE ,'' AS NSMNAME ,'' AS NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 " +
"AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ," +
"AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL " +
"THEN '-' ELSE 'NR' END ) AS REP_NONREP ,CONCAT(CONCAT(COALESCE(STRG_CUSTOMER.FIRST_NAME, ''), " +
"COALESCE(STRG_CUSTOMER.MIDDLE_NAME, '')), COALESCE(STRG_CUSTOMER.LAST_NAME, '')) AS CUSTOMER_NAME " +
"FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
"FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a " +
"FROM sfa_time WHERE dt > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND DT <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') ) AV_DATES " +
"WHERE VW_SALES_HIER_JJ.a = AV_DATES.a EXCEPT " +
"SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ," +
"EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno " +
"AND holiday.hol_date > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND holiday.hol_date <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') " +
"AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code " +
"AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV " +
"LEFT JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' " +
"AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY " +
"LEFT JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID " +
"LEFT JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ " +
"WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE " +
"AND VW_SALES_HIER_JJ.SMCODE = '"+loginId+"' " +
"UNION ALL SELECT '' AS NSMCODE ,'' AS NSMNAME ,'' AS NSMDESG ,'' AS SMCODE ,'' AS SMNAME ,'' AS SMDESG ,RSECODE ,RSENAME ,RSEDESG ," +
"REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 " +
"AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' " +
"WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ," +
"AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL " +
"THEN '-' ELSE 'NR' END ) AS REP_NONREP ,CONCAT(CONCAT(COALESCE(STRG_CUSTOMER.FIRST_NAME, ''), " +
"COALESCE(STRG_CUSTOMER.MIDDLE_NAME, '')), COALESCE(STRG_CUSTOMER.LAST_NAME, '')) AS CUSTOMER_NAME " +
"FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
"FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a FROM sfa_time " +
"WHERE dt > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND DT <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') ) AV_DATES " +
"WHERE VW_SALES_HIER_JJ.a = AV_DATES.a EXCEPT SELECT EMPLOYEE.EMP_CODE AS SALESPERS ," +
"holiday.hol_date AS AVAILABLE_DY FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno " +
"AND holiday.hol_date > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND holiday.hol_date <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') " +
"AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code " +
"AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S " +
"WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY " +
"LEFT JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID " +
"LEFT JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ " +
"WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE " +
"AND VW_SALES_HIER_JJ.RSECODE = '"+loginId+"' " +
"UNION ALL SELECT '' AS NSMCODE ,'' AS NSMNAME ,'' AS NSMDESG ,'' AS SMCODE ,'' AS SMNAME ,'' AS SMDESG ,'' AS RSECODE ,'' AS RSENAME ,'' AS RSEDESG ," +
"REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY " +
"ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' " +
"WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ," +
"AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL " +
"THEN '-' ELSE 'NR' END ) AS REP_NONREP ,CONCAT(CONCAT(COALESCE(STRG_CUSTOMER.FIRST_NAME, '')," +
" COALESCE(STRG_CUSTOMER.MIDDLE_NAME, '')), COALESCE(STRG_CUSTOMER.LAST_NAME, '')) AS CUSTOMER_NAME " +
"FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
"FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a " +
"FROM sfa_time WHERE dt > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND DT <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') ) AV_DATES " +
"WHERE VW_SALES_HIER_JJ.a = AV_DATES.a EXCEPT " +
"SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ," +
"EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno " +
"AND holiday.hol_date > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND holiday.hol_date <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') AND NOT EXISTS ( SELECT * FROM sprs_act_tran s " +
"WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV " +
"LEFT JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' " +
"AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT JOIN ( SELECT S.* FROM STRG_MEET S " +
"WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID " +
"LEFT JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ " +
"WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE " +
"AND VW_SALES_HIER_JJ.REPCODE = '"+loginId+"' ) UF WHERE UF.REP_NONREP <> '-' ) F " +
"GROUP BY F.NSMCODE ,F.NSMNAME ,F.NSMDESG ,F.SMCODE ,F.SMNAME ,F.SMDESG ," +
"F.RSECODE ,F.RSENAME ,F.RSEDESG ,F.REPCODE ,F.REPNAME ,F.REPDESG ,F.REP_NONREP " +
"ORDER BY F.NSMCODE ,F.SMCODE ,F.RSECODE ,F.REPCODE ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
while (rs.next())
{
rowData = new JSONObject();
rowData.put("nsmcode", checkNull(rs.getString("NSMCODE")).trim());
rowData.put("nsmname", checkNull(rs.getString("NSMNAME")).trim());
rowData.put("nsmdesg", checkNull(rs.getString("NSMDESG")).trim());
rowData.put("smcode", checkNull(rs.getString("SMCODE")).trim());
rowData.put("smname", checkNull(rs.getString("SMNAME")).trim());
rowData.put("smdesg", checkNull(rs.getString("SMDESG")).trim());
rowData.put("rsecode", checkNull(rs.getString("RSECODE")).trim());
rowData.put("rsename", checkNull(rs.getString("RSENAME")).trim());
rowData.put("rsedesg", checkNull(rs.getString("RSEDESG")).trim());
rowData.put("repcode", checkNull(rs.getString("REPCODE")).trim());
rowData.put("repname", checkNull(rs.getString("REPNAME")).trim());
rowData.put("repdesg", checkNull(rs.getString("REPDESG")).trim());
rowData.put("rep_nonrep", checkNull(rs.getString("REP_NONREP")).trim());
rowData.put("count", rs.getString("CNT"));
rawDataComplianceDetailsDb2Json.put(count, rowData);
count++;
}
}
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 :ComplianceDB2:" + d.getMessage());
throw new ITMException(d);
}
}
System.out.println("ComplianceEJB JSON String======>>"+rawDataComplianceDetailsDb2Json.toString());
return rawDataComplianceDetailsDb2Json;
}
@SuppressWarnings("unchecked")
@Override
public JSONObject getComplianceCustDetailsDb2(String firstVal, String cellVal, String dataSourceName) throws RemoteException, ITMException
{
JSONObject rawDataComplianceCustDetailsDb2Json = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
try
{
System.out.println(" Inside ComplianceEJB for getFrancoComplianceCustDetails Data Soruc Name ="+dataSourceName+" firstVal=:"+ firstVal + "===cellVal :"+ cellVal);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
SimpleDateFormat gridDateFormat = new SimpleDateFormat( "dd-MMM-yy");
SimpleDateFormat convrtToTimStmDate= new SimpleDateFormat("dd/MM/yy");
if(cellVal!=null && cellVal.length()>0)
{
cellVal = gridDateFormat.format(convrtToTimStmDate.parse(cellVal));
}
System.out.println("cellVal :"+cellVal);
/*sql = "Select 'DH' as STRG_TYPE, 'Dhanendra' as CUST_NAME from Dual";*/
sql = "SELECT SM.STRG_TYPE, (SC.FIRST_NAME ||' '||SC.MIDDLE_NAME ||' '||SC.LAST_NAME) AS CUST_NAME " +
"FROM STRG_MEET SM INNER JOIN STRG_CUSTOMER SC ON SM.STRG_CODE = SC.SC_CODE " +
"INNER JOIN VW_SALES_HIER_JJ VW ON SM.SALES_PERS = VW.REPCODE " +
"WHERE SM.EVENT_DATE >= TIMESTAMP('"+cellVal+"','00:00:00') " +
"AND VW.REPNAME = '"+firstVal.trim()+"' ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
while (rs.next())
{
rowData = new JSONObject();
rowData.put("customer_name", checkNull(rs.getString("CUST_NAME")));
rowData.put("strg_type", checkNull(rs.getString("STRG_TYPE")));
rawDataComplianceCustDetailsDb2Json.put(count, rowData);
count++;
}
}
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 :ComplianceDB2:" + d.getMessage());
throw new ITMException(d);
}
}
System.out.println("ComplianceEJB rawDataComplianceCustDetailsDb2Json String======>>"+rawDataComplianceCustDetailsDb2Json.toString());
return rawDataComplianceCustDetailsDb2Json;
}
@SuppressWarnings("unchecked")
@Override
public JSONObject getComplianceGridDb2(String period, String personName, String dataSourceName) throws RemoteException, ITMException
{
JSONObject rawDataComplianceGridDb2Json = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
try
{
System.out.println(" Inside ComplianceEJB for getComplianceGridDb2 Data Soruc Name ="+dataSourceName+" period=:"+ period + "=== personName :"+ personName);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
/*sql = "Select '01/10/2015' as AVAILABLE_DY, 'FW' as ACTIVITY_CODE from Dual";*/
sql = "SELECT F.REPCODE , F.REPNAME , F.REPDESG , F.REP_NONREP , DATE(F.AVAILABLE_DY) AS AVAILABLE_DY ," +
"F.ACTIVITY_CODE FROM ( SELECT DISTINCT REPCODE , REPNAME , REPDESG , SALES_PERS_AV.AVAILABLE_DY ," +
"SPRS_ACT_TRAN.ACTIVITY_CODE , ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ," +
"AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL " +
"THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ," +
"AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) " +
"AS REP_NONREP ,CONCAT(CONCAT(COALESCE(STRG_CUSTOMER.FIRST_NAME, ''), " +
"COALESCE(STRG_CUSTOMER.MIDDLE_NAME, '')), COALESCE(STRG_CUSTOMER.LAST_NAME, '')) AS CUSTOMER_NAME " +
"FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
"FROM ( SELECT REPCODE ,'a' AS a " +
"FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a " +
"FROM sfa_time WHERE dt > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND DT <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') ) AV_DATES " +
"WHERE VW_SALES_HIER_JJ.a = AV_DATES.a EXCEPT SELECT EMPLOYEE.EMP_CODE AS SALESPERS ," +
"holiday.hol_date AS AVAILABLE_DY " +
"FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno " +
"AND holiday.hol_date > TIMESTAMP(last_day((to_date(('"+period+"'),('YYYYMM'))) - 1 month) ,'00:00:00') " +
"AND holiday.hol_date <= TIMESTAMP(last_day(to_date(('"+period+"'),('YYYYMM'))) ,'00:00:00') " +
"AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code " +
"AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV " +
"LEFT JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' " +
"AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY " +
"LEFT JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS " +
"AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID " +
"LEFT JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ " +
"WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE " +
"AND VW_SALES_HIER_JJ.REPNAME = '"+personName+"' ) F WHERE F.REP_NONREP <> '-' " +
"ORDER BY F.AVAILABLE_DY ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
String activityCode = "";
while (rs.next())
{
rowData = new JSONObject();
rowData.put("repcode", checkNull(rs.getString("REPCODE")).trim());
rowData.put("repname", checkNull(rs.getString("REPNAME")).trim());
rowData.put("repdesg", checkNull(rs.getString("REPDESG")).trim());
rowData.put("rep_nonrep", checkNull(rs.getString("REP_NONREP")).trim());
rowData.put("available_dy", checkNull(rs.getString("AVAILABLE_DY")).trim());
activityCode = rs.getString("ACTIVITY_CODE");
System.out.println("activityCode :"+activityCode);
if(activityCode == null)
{
rowData.put("activity_code", "Not-Reported");
}else
{
rowData.put("activity_code", rs.getString("ACTIVITY_CODE"));
}
rawDataComplianceGridDb2Json.put(count, rowData);
count++;
}
}
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 :ComplianceDB2: getComplianceGridDb2 " + d.getMessage());
throw new ITMException(d);
}
}
return rawDataComplianceGridDb2Json;
}
/*End Below 3 methods for Franco Compliance Report by Nikhil
on Dated 21/06/2016*/
private String checkNull(String str)
{
if(str == null)
{
return "";
}
else
{
return str ;
}
}
}
package ibase.dashboard.sfa.ejb;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import javax.ejb.Local;
import org.json.simple.JSONObject;
@Local
public interface ComplianceDB2Local extends ValidatorLocal
{
public JSONObject getComplianceDetailsDb2(String loginId, String dataSourceName,String month) throws RemoteException, ITMException;
public JSONObject getComplianceCustDetailsDb2(String firstVal, String cellVal, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getComplianceGridDb2(String month, String personName, String dataSourceName) throws RemoteException, ITMException;
}
package ibase.dashboard.sfa.ejb;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import javax.ejb.Remote;
import org.json.simple.JSONObject;
@Remote
public interface ComplianceDB2Remote extends ValidatorRemote
{
public JSONObject getComplianceDetailsDb2(String loginId, String dataSourceName,String month) throws RemoteException, ITMException;
public JSONObject getComplianceCustDetailsDb2(String firstVal, String cellVal, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getComplianceGridDb2(String month, String personName, String dataSourceName) throws RemoteException, ITMException;
}
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