Commit 00efc579 authored by vvengurlekar's avatar vvengurlekar

PlanVsActual.java

PlanVsActualLocal.java
PlanVsActualRemote.java
PlanVsActualServlet.java - Added code for showing tree locality wise


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@191949 ce508802-f39f-4f6c-b175-0d175dae99d5
parent b7c1202d
......@@ -38,6 +38,15 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
//System.out.println("Result ---1["+getPlanVsActualTreeStructure(dataSourceName, loginId, fromDate, toDate, salePersons).toJSONString()+"]");
return getPlanVsActualTreeStructure(dataSourceName, loginId, fromDate, toDate, salePersons).toString();
}
//Added method by Varsha V to show data locality wise for particular client
public String getPlanVsActualTreeStructureRpharma(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons,String dummy, String viewOptionSelectd)throws RemoteException,ITMException
{
System.out.println("getPlanVsActualTreeStructure=========\n dataSourceName-["+dataSourceName+"]loginId-["+loginId+"]fromDate-["+fromDate+"]toDate-["+toDate+"]salePersons-["+salePersons+"]"
+ "viewOptionSelectd-["+viewOptionSelectd+"]");
//System.out.println("Result ---1["+getPlanVsActualTreeStructure(dataSourceName, loginId, fromDate, toDate, salePersons).toJSONString()+"]");
return getPlanVsActualTreeStructureRpharma(dataSourceName, loginId, fromDate, toDate, salePersons, viewOptionSelectd).toString();
}
//Ended method by Varsha V to show data locality wise for particular client
public String getTodayAgenda(String dataSourceName,String loginId,String salePersons,String dummy)throws RemoteException,ITMException
{
System.out.println("getTodayAgenda==================\n dataSourceName-["+dataSourceName+"]loginId-["+loginId+"]salePersons-["+salePersons+"]");
......@@ -330,6 +339,268 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
}
return rawDataPlanDtlJson;
}
//Added method by Varsha V to show data locality wise for particular client
@SuppressWarnings("unchecked")
@Override
public JSONObject getPlanVsActualTreeStructureRpharma(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons, String viewOptionSelectd) throws RemoteException, ITMException
{
JSONObject rawDataPlanDtlJson = new JSONObject();
JSONObject rawJson = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
String appendSQL = "";
DashboardUtility dashboardUtility = null;
SimpleDateFormat formatter = null;
E12GenericUtility e12GenericUtility = new E12GenericUtility();
try
{
fromDate = fromDate == null ? "": fromDate.trim();
toDate = toDate == null ? "": toDate.trim();
salePersons = salePersons == null ? "": salePersons.trim();
dashboardUtility = new DashboardUtility();
salePersons = dashboardUtility.getCommaSeparated(salePersons);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
formatter = new SimpleDateFormat("dd-MMM-yy");
HashMap<String, ArrayList<String>> planHashMap = new HashMap<String, ArrayList<String>>();
ArrayList<String> docList = new ArrayList<String>();
TreeMap<String, HashMap<String, ArrayList<String>>> finalMap = new TreeMap<String, HashMap<String,ArrayList<String>>>();
/*----------Planned doctors visited-----Planned--------*/
if("".equalsIgnoreCase(fromDate) && "".equalsIgnoreCase(toDate)){
fromDate = getDateString("firstDayOfWeek",formatter);
toDate = getDateString("lastDayOfWeek",formatter);
appendSQL = " AND SP.SALES_PERS IN (SELECT EMP_CODE FROM EMPLOYEE START WITH EMP_CODE = (SELECT EMP_CODE FROM USERS WHERE CODE='"+loginId+"') connect by prior emp_code = report_to))";
}
else {
appendSQL = " AND sp.sales_pers in("+salePersons+")) ";
fromDate = e12GenericUtility.getValidDateString(fromDate, "dd/MM/yyyy", "dd-MMM-yy");
toDate = e12GenericUtility.getValidDateString(toDate, "dd/MM/yyyy", "dd-MMM-yy");
}
sql = "( SELECT TO_CHAR(ST.TRAVEL_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME , ST.LOCALITY_CODE , "
+ "L.DESCR AS LOCALITY FROM SALES_PERS SP INNER JOIN SPRS_TRAVEL ST ON SP.SALES_PERS=ST.SALES_PERS "
+ "INNER JOIN LOCALITY L ON L.LOCALITY_CODE=ST.LOCALITY_CODE WHERE ST.TRAVEL_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"' "
+ appendSQL
+ " INTERSECT "
+ "(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME , SPP.LOCALITY_CODE ,"
+ " L.DESCR AS LOCALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN "
+ "SPRS_PLAN_PLACE SPP ON SPH.PLAN_ID=SPP.PLAN_ID INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SPP.LOCALITY_CODE WHERE "
+ "SPH.PLAN_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"' "+appendSQL+"";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
//String docName = "", speciality = "", docNamewithImage = "";
String locality = "", eventDate = "";
while(rs.next())
{
eventDate = rs.getString("eventdate");
//docName = rs.getString("DoctorName");
//String scCode = rs.getString("STRG_CODE");
//String customImageSrc = e12GenericUtility.getCustomImageURL("STRG_CUSTOMER", "StrgCustomer", scCode, docName, "Icon");
//docNamewithImage = "<img class='dashboard-userAvatar' src='"+ customImageSrc +"'/><span class='dashboard-userAvatarText'>" + docName + "</span>";
locality = rs.getString("LOCALITY");
//speciality = rs.getString("SPECIALITY");
planHashMap = new HashMap<String, ArrayList<String>>();
if(finalMap!=null && finalMap.containsKey(eventDate))
{
planHashMap = finalMap.get(eventDate);
docList = planHashMap.get("plan");
//docList.add(docNamewithImage+"@"+speciality+"@"+locality);
docList.add(locality+"_location");
planHashMap.put("plan", docList);
planHashMap.put("missed", new ArrayList<String>());
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
else
{
docList = new ArrayList<String>();
//docList.add(docNamewithImage+"@"+speciality+"@"+locality);
docList.add(locality+"_location");
planHashMap.put("plan", docList);
planHashMap.put("missed", new ArrayList<String>());
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
System.out.println(" Planned doctors visited finalMap getPlanVsActualTreeStructure:"+finalMap);
docList = new ArrayList<String>();
sql = "( SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME , SPP.LOCALITY_CODE , "
+ "L.DESCR AS LOCALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN "
+ "SPRS_PLAN_PLACE SPP ON SPH.PLAN_ID=SPP.PLAN_ID INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SPP.LOCALITY_CODE "
+ "WHERE SPH.PLAN_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"' "
+ appendSQL
+ " MINUS "
+ "(SELECT TO_CHAR(ST.TRAVEL_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME , ST.LOCALITY_CODE , "
+ "L.DESCR AS LOCALITY FROM SALES_PERS SP INNER JOIN SPRS_TRAVEL ST ON SP.SALES_PERS=ST.SALES_PERS INNER JOIN LOCALITY L ON"
+ " L.LOCALITY_CODE=ST.LOCALITY_CODE WHERE ST.TRAVEL_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"' "
+ appendSQL;
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
eventDate = rs.getString("eventdate");
//docName = rs.getString("DoctorName");
//String scCode = rs.getString("SC_CODE");
//String customImageSrc = e12GenericUtility.getCustomImageURL("STRG_CUSTOMER", "StrgCustomer", scCode, docName, "Icon");
//docNamewithImage = "<img class='dashboard-userAvatar' src='"+ customImageSrc +"'/><span class='dashboard-userAvatarText'>" + docName + "</span>";
locality = rs.getString("LOCALITY");
//speciality = rs.getString("SPECIALITY");
planHashMap = new HashMap<String, ArrayList<String>>();
if(finalMap!=null && finalMap.containsKey(eventDate))
{
planHashMap = finalMap.get(eventDate);
docList = planHashMap.get("missed");
//docList.add(docNamewithImage+"@"+speciality+"@"+locality);
docList.add(locality+"_location");
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", docList);
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
else
{
docList = new ArrayList<String>();
//docList.add(docNamewithImage+"@"+speciality+"@"+locality);
docList.add(locality+"_location");
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", docList);
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
}
System.out.println(" Planned doctors not visited :"+finalMap);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
docList = new ArrayList<String>();
sql = "( SELECT TO_CHAR(ST.TRAVEL_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME , ST.LOCALITY_CODE , "
+ "L.DESCR AS LOCALITY FROM SALES_PERS SP INNER JOIN SPRS_TRAVEL ST ON SP.SALES_PERS=ST.SALES_PERS INNER JOIN LOCALITY L "
+ "ON L.LOCALITY_CODE=ST.LOCALITY_CODE WHERE ST.TRAVEL_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"' "
+ appendSQL
+ " MINUS "
+ "(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME , SPP.LOCALITY_CODE , "
+ "L.DESCR AS LOCALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN "
+ "SPRS_PLAN_PLACE SPP ON SPH.PLAN_ID=SPP.PLAN_ID INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SPP.LOCALITY_CODE "
+ "WHERE SPH.PLAN_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"' "
+ appendSQL;
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
eventDate = rs.getString("eventdate");
//docName = rs.getString("DoctorName");
//String scCode = rs.getString("STRG_CODE");
//String customImageSrc = e12GenericUtility.getCustomImageURL("STRG_CUSTOMER", "StrgCustomer", scCode, docName, "Icon");
//docNamewithImage = "<img class='dashboard-userAvatar' src='"+ customImageSrc +"'/><span class='dashboard-userAvatarText'>" + docName + "</span>";
locality = rs.getString("LOCALITY");
//speciality = rs.getString("SPECIALITY");
planHashMap = new HashMap<String, ArrayList<String>>();
if(finalMap!=null && finalMap.containsKey(eventDate))
{
planHashMap = finalMap.get(eventDate);
docList = planHashMap.get("unplan");
//docList.add(docNamewithImage+"@"+speciality+"@"+locality);
docList.add(locality+"_location");
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", planHashMap.get("missed"));
planHashMap.put("unplan", docList);
finalMap.put(eventDate, planHashMap);
}
else
{
docList = new ArrayList<String>();
//docList.add(docNamewithImage+"@"+speciality+"@"+locality);
docList.add(locality+"_location");
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", planHashMap.get("missed"));
planHashMap.put("unplan", docList);
finalMap.put(eventDate, planHashMap);
}
}
System.out.println(" Unplanned doctors visited hashMap :"+finalMap);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
int count = 0;
for (Map.Entry<String, HashMap<String, ArrayList<String>>> entry : finalMap.entrySet())
{
rawJson = new JSONObject();
if((getDateString("", formatter)).equalsIgnoreCase(entry.getKey())){
rawJson.put("eventdate", "Today");
}
else if((getDateString("yesterday", formatter)).equalsIgnoreCase(entry.getKey())){
rawJson.put("eventdate", "Yesterday");
}
else{
rawJson.put("eventdate", entry.getKey());
}
rawJson.put("category", entry.getValue());
rawDataPlanDtlJson.put(count, rawJson);
count++;
}
System.out.println("rawDataPlanDtlJson :"+rawDataPlanDtlJson);
}
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 PlanVsActual:getPlanVsActualTreeStructure()" + d.getMessage());
throw new ITMException(d);
}
}
return rawDataPlanDtlJson;
}
//Added method by Varsha V to show data locality wise for particular client
/*
private String getImageStrfromName(String doctorName) {
String userImagePath = CommonConstants.JBOSSHOME + File.separator +"server"+File.separator +"default"+File.separator +"deploy"+File.separator +"ibase.ear"+File.separator + "ibase.war" +File.separator + "resource" + File.separator + "images"+ File.separator + "users"+File.separator;
......
......@@ -11,6 +11,8 @@ public interface PlanVsActualLocal extends ValidatorLocal
{
public JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons)throws RemoteException,ITMException;
//Added method by Varsha V to show data locality wise for particular client
public JSONObject getPlanVsActualTreeStructureRpharma(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons, String viewOptionSelectd)throws RemoteException,ITMException;
public JSONObject getTodayAgenda(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
//public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
......@@ -18,6 +20,8 @@ public interface PlanVsActualLocal extends ValidatorLocal
//Added by Anjali R.[Start]
public String getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons,String dummy)throws RemoteException,ITMException;
//Added method by Varsha V to show data locality wise for particular client
public String getPlanVsActualTreeStructureRpharma(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons,String dummy, String viewOptionSelectd)throws RemoteException,ITMException;
public String getTodayAgenda(String dataSourceName,String loginId,String salePersons,String dummy)throws RemoteException,ITMException;
public String getTodaysCalls(String dataSourceName,String loginId,String salePersons,String dummy,String eventDate)throws RemoteException,ITMException, Exception;
public String getTodaysCallsSummary(String dataSourceName,String loginId,String salePersons,String dummy)throws RemoteException,ITMException;
......
......@@ -11,11 +11,15 @@ public interface PlanVsActualRemote extends ValidatorRemote
{
public JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons) throws RemoteException, ITMException;
//Added method by Varsha V to show data locality wise for particular client
public JSONObject getPlanVsActualTreeStructureRpharma(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons, String viewOptionSelectd)throws RemoteException,ITMException;
public JSONObject getTodayAgenda(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
public JSONObject getTodaysCallsSummary(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
//Added by Anjali R.[Start]
public String getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons,String dummy)throws RemoteException,ITMException;
//Added method by Varsha V to show data locality wise for particular client
public String getPlanVsActualTreeStructureRpharma(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons,String dummy, String viewOptionSelectd)throws RemoteException,ITMException;
public String getTodayAgenda(String dataSourceName,String loginId,String salePersons,String dummy)throws RemoteException,ITMException;
public String getTodaysCalls(String dataSourceName,String loginId,String salePersons,String dummy,String eventDate)throws RemoteException,ITMException,Exception;
public String getTodaysCallsSummary(String dataSourceName,String loginId,String salePersons,String dummy)throws RemoteException,ITMException;
......
......@@ -31,7 +31,7 @@ public class PlanVsActualServlet extends HttpServlet
//AppConnectParm appConnectParm = new AppConnectParm();
PlanVsActual planVsActual = null;
String dataSourceName = "";
String loginId = "",fromDate = "",salePersons = "", toDate = "";
String loginId = "",fromDate = "",salePersons = "", toDate = "", viewOptionSelectd = "";
HttpSession session = null;
//Added by Anjali R. on[28/02/2018][To change return type json to string ]
//JSONObject jsonObjData = null;
......@@ -47,7 +47,8 @@ public class PlanVsActualServlet extends HttpServlet
fromDate = request.getParameter("fromDate");
toDate = request.getParameter("toDate");
salePersons = request.getParameter("salePersons");
System.out.println("loginId = "+loginId+"fromDate = "+fromDate+"toDate = "+toDate+"sales person = "+salePersons);
viewOptionSelectd = request.getParameter("viewOptionSelectd");
System.out.println("loginId = "+loginId+"fromDate = "+fromDate+"toDate = "+toDate+"sales person = "+salePersons+" viewOptionSelectd = "+viewOptionSelectd);
dataSourceName = request.getParameter("dataSourceName");
if(salePersons.length()== 0)
{
......@@ -60,7 +61,17 @@ public class PlanVsActualServlet extends HttpServlet
//jsonObjData = planvsactualRemote.getPlanVsActualTreeStructure(dataSourceName,loginId,fromDate,toDate,salePersons);
//jsonObjData = planvsactualRemote.getPlanVsActualTreeStructure(dataSourceName,loginId,fromDate,toDate,salePersons,"");
planVsActual = new PlanVsActual();
//commented and added by varsha to show tree locality wise on 12-10-18
//jsonObjData = planVsActual.getPlanVsActualTreeStructure(dataSourceName,loginId,fromDate,toDate,salePersons,"");
if(viewOptionSelectd != null && viewOptionSelectd.trim().equalsIgnoreCase("rpharma"))
{
jsonObjData = planVsActual.getPlanVsActualTreeStructureRpharma(dataSourceName,loginId,fromDate,toDate,salePersons,"", viewOptionSelectd);
}
else
{
jsonObjData = planVsActual.getPlanVsActualTreeStructure(dataSourceName,loginId,fromDate,toDate,salePersons,"");
}
//Ended by varsha v to show tree locality wise
System.out.println(" Final data set for PlanVsActualServlet build the Graph is===" + jsonObjData);
outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
......
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