Commit 47860d2c authored by dpawar's avatar dpawar

optimise sql in getAvailableLocation ,getAvailableLocationList and populateReplHistory method


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98401 ce508802-f39f-4f6c-b175-0d175dae99d5
parent d7908f13
...@@ -9579,6 +9579,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -9579,6 +9579,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
adsiShippingURL = discommon.getDisparams("999999","WMS_ADSI_SOAP_URL",conn); adsiShippingURL = discommon.getDisparams("999999","WMS_ADSI_SOAP_URL",conn);
locator = new ADSIShippingLocator(); locator = new ADSIShippingLocator();
soap = locator.getADSIShippingSoap(new URL(adsiShippingURL)); soap = locator.getADSIShippingSoap(new URL(adsiShippingURL));
System.out.println( "adsiShippingURL Inside ... ["+adsiShippingURL+"]" );
} }
long timeAfter = System.currentTimeMillis(); long timeAfter = System.currentTimeMillis();
String defPh=""; String defPh="";
...@@ -17856,8 +17857,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17856,8 +17857,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
try try
{ {
//Changed and commented by Dadaso pawar 18/07/15 (As per Pragyan for optimize sql query) [Start]
sql ="SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT" /*@@sql ="SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT"
+ " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' " + " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' "
+ " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' " + " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' "
//Changed By Sankara 08/04/12 To pass the argument items Location Type. //Changed By Sankara 08/04/12 To pass the argument items Location Type.
...@@ -17877,15 +17878,26 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17877,15 +17878,26 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
//sqlItemLotOpt0 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO <> ?"; //sqlItemLotOpt0 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO <> ?";
sqlItemLotOpt0 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE (ITEM_CODE <> ? OR LOT_NO <> ?) AND SITE_CODE = ? AND LOC_CODE = ? AND QUANTITY > 0"; //AND LOT_NO <> ?" sqlItemLotOpt0 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE (ITEM_CODE <> ? OR LOT_NO <> ?) AND SITE_CODE = ? AND LOC_CODE = ? AND QUANTITY > 0"; //AND LOT_NO <> ?"
//sqlItemLotOpt1 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? "; //sqlItemLotOpt1 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? ";
sqlItemLotOpt1 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ? AND QUANTITY > 0"; sqlItemLotOpt1 = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ? AND QUANTITY > 0";@@*/
//orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET WHERE LOC_CODE__TO = ?"; //orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET WHERE LOC_CODE__TO = ?";
//Changed by Rohan on 19-02-13 free location form cancle Repanishment //Changed by Rohan on 19-02-13 free location form cancle Repanishment
//orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') "; //changes done by Ashish Sonawane on 10-jul-12 //orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') "; //changes done by Ashish Sonawane on 10-jul-12
orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? " sql = "SELECT A.SINGLE_LOT_SL,A.LOC_CODE, A.LOC_ZONE, A.LOC_TYPE FROM LOCATION A ,INVSTAT B ,SITE S "
+ "WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' AND A.LOC_TYPE = 'N' AND S.SITE_CODE = ? "
+ "AND (S.FACILITY_CODE = A.FACILITY_CODE or nvl(s.facility_code ,'N') = 'N') "
+ "AND A.INV_STAT IN (?) AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' and nvl((SELECT sum(quantity) "
+ "FROM STOCK WHERE SITE_CODE = ? AND stock.loc_code = a.loc_code and a.SINGLE_LOT_SL ='Y'),0) = 0 "
+ "and nvl((SELECT sum(quantity) FROM STOCK WHERE (ITEM_CODE <> ? OR LOT_NO <> ?) " //5
+ "and SITE_CODE = ? AND stock.loc_code = a.loc_code and a.ITEM_LOT_OPT =0),0) = 0 "
+ "and nvl((SELECT sum(quantity) FROM STOCK WHERE ITEM_CODE <> ? and SITE_CODE = ? "
+ "AND stock.loc_code = a.loc_code and a.ITEM_LOT_OPT =0),0) = 0 ";
/*@@orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? "
+" AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' " +" AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' "
+" AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') "; +" AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') ";@@*/
if ( "A".equalsIgnoreCase(pickType.trim()) )//Active pick if ( "A".equalsIgnoreCase(pickType.trim()) )//Active pick
{ {
...@@ -17899,38 +17911,64 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17899,38 +17911,64 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
{ {
invStatDisparmVar = "PND_INVSTAT"; invStatDisparmVar = "PND_INVSTAT";
//Changed by sumit on 06/08/12 getting pnd location of loc_code from location start. //Changed by sumit on 06/08/12 getting pnd location of loc_code from location start.
sql = "SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT" /*@@sql = "SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT"
+ " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' " + " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' "
+ " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' " + " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' "
//Changed By Sankara 08/04/12 To pass the argument items Location Type. //Changed By Sankara 08/04/12 To pass the argument items Location Type.
//+ " AND A.INV_STAT = ? ORDER BY LOC_CODE "; //+ " AND A.INV_STAT = ? ORDER BY LOC_CODE ";
//+ " AND A.INV_STAT = ? AND A.LOC_TYPE = ? AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? )" //+ " AND A.INV_STAT = ? AND A.LOC_TYPE = ? AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? )"
+ " AND A.INV_STAT = ? AND A.LOC_TYPE = ? AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? )" + " AND A.INV_STAT = ? AND A.LOC_TYPE = ? AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? )"
+ " ORDER BY ABS( A.LOC_ZONE - ?) ,A.LOC_CODE "; + " ORDER BY ABS( A.LOC_ZONE - ?) ,A.LOC_CODE ";@@*/
sql = sql + "AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? ) ";
System.out.println(" pnd sql -> ["+sql+"]"); System.out.println(" pnd sql -> ["+sql+"]");
//Changed by sumit on 06/08/12 getting pnd location of loc_code from location end. //Changed by sumit on 06/08/12 getting pnd location of loc_code from location end.
} }
sql = sql + " ORDER BY ABS(A.LOC_ZONE - ? ),A.LOC_CODE ";
invStat = discommon.getDisparams("999999",invStatDisparmVar,conn); invStat = discommon.getDisparams("999999",invStatDisparmVar,conn);
pstmtStock = conn.prepareStatement(stockSql); //@@pstmtStock = conn.prepareStatement(stockSql);
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmtOrder = conn.prepareStatement(orderSql); //pstmtOrder = conn.prepareStatement(orderSql);
pstmtItemLotOpt0 = conn.prepareStatement( sqlItemLotOpt0 ); //pstmtItemLotOpt0 = conn.prepareStatement( sqlItemLotOpt0 );
pstmtItemLotOpt1 = conn.prepareStatement( sqlItemLotOpt1); //pstmtItemLotOpt1 = conn.prepareStatement( sqlItemLotOpt1);@@/
//Changed by sumit on 06/08/12 commented bellow setString and apply 3 parameter in case of pnd location start. //Changed by sumit on 06/08/12 commented bellow setString and apply 3 parameter in case of pnd location start.
/*pstmt.setString(1, invStat); /*pstmt.setString(1, invStat);
//Changed By Sankara 08/04/12 To pass the argument items Location Type. //Changed By Sankara 08/04/12 To pass the argument items Location Type.
pstmt.setString(2, itemLocType);*/ pstmt.setString(2, itemLocType);*/
pstmt.setString(1, siteCode);
pstmt.setString(2, invStat);
pstmt.setString(3, siteCode);
pstmt.setString(4, itemCode);
pstmt.setString(5, lotNo);
pstmt.setString(6, siteCode);
pstmt.setString(7, itemCode);
pstmt.setString(8, siteCode);
//pstmt.setInt(9, locPrefZone);
if("N".equalsIgnoreCase(pickType.trim())) if("N".equalsIgnoreCase(pickType.trim()))
{
pstmt.setString(9, locCode);
pstmt.setInt(10, locPrefZone);
}
else
{
pstmt.setInt(9, locPrefZone);
}
/*@@if("N".equalsIgnoreCase(pickType.trim()))
{ {
pstmt.setString(1, invStat); pstmt.setString(1, invStat);
//Changed By Sankara 08/04/12 To pass the argument items Location Type. //Changed By Sankara 08/04/12 To pass the argument items Location Type.
pstmt.setString(2, itemLocType); pstmt.setString(2, itemLocType);
pstmt.setString(3, locCode); pstmt.setString(3, locCode);
pstmt.setInt(4, locPrefZone); pstmt.setInt(4, locPrefZone);@@*/
}
//pstmt.setString(10, locCode);
/*@@}
else else
{ {
pstmt.setString(1, invStat); pstmt.setString(1, invStat);
...@@ -17938,7 +17976,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17938,7 +17976,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
pstmt.setString(2, itemLocType); pstmt.setString(2, itemLocType);
pstmt.setInt(3, locPrefZone); pstmt.setInt(3, locPrefZone);
} }@@*/
//Changed by sumit on 06/08/12 apply 3 parameter in case of pnd location end. //Changed by sumit on 06/08/12 apply 3 parameter in case of pnd location end.
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
...@@ -17946,7 +17984,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17946,7 +17984,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
while (rs.next()) while (rs.next())
{ {
suggLocCode = checkNull(rs.getString("LOC_CODE") ); suggLocCode = checkNull(rs.getString("LOC_CODE") );
singleLotSl = checkNull(rs.getString("SINGLE_LOT_SL") ); /*@@singleLotSl = checkNull(rs.getString("SINGLE_LOT_SL") );
itemLotOpt = checkNull(rs.getString("ITEM_LOT_OPT") ); itemLotOpt = checkNull(rs.getString("ITEM_LOT_OPT") );
quantity = 0; quantity = 0;
...@@ -17961,7 +17999,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17961,7 +17999,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
} }
//Changed By Pragyan 11-AUG-14 To check and Facility Master implementation.end //Changed By Pragyan 11-AUG-14 To check and Facility Master implementation.end
/*pstmtOrder.setString(1, suggLocCode); pstmtOrder.setString(1, suggLocCode);
rsOrder = pstmtOrder.executeQuery(); rsOrder = pstmtOrder.executeQuery();
if(rsOrder.next()) if(rsOrder.next())
...@@ -17992,7 +18030,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -17992,7 +18030,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
return suggLocCode; return suggLocCode;
} }
pstmtStock.clearParameters(); pstmtStock.clearParameters();
rsStock.close(); rsStock = null;*/ rsStock.close(); rsStock = null;
if( singleLotSl.trim().equalsIgnoreCase("Y") ) if( singleLotSl.trim().equalsIgnoreCase("Y") )
...@@ -18013,8 +18051,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18013,8 +18051,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
} }
rs1.close(); rs1.close();
rs1 = null; rs1 = null;
/*pstmt.close(); pstmt.close();
pstmt = null;*/ pstmt = null;
//pstmtOrder = conn.prepareStatement(orderSql); //pstmtOrder = conn.prepareStatement(orderSql);
pstmtOrder.setString(1, suggLocCode); pstmtOrder.setString(1, suggLocCode);
...@@ -18025,8 +18063,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18025,8 +18063,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
if( quantity != 0 ) if( quantity != 0 )
{ {
suggLocCode = ""; suggLocCode = "";
/*errList.add( "VTLOCCODE1" ); errList.add( "VTLOCCODE1" );
errFields.add( childNodeName.toLowerCase() );*/ errFields.add( childNodeName.toLowerCase() );
continue; continue;
} }
...@@ -18044,11 +18082,11 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18044,11 +18082,11 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
rsOrder.close(); rsOrder.close();
rsOrder = null; rsOrder = null;
} }
/*if(pstmtOrder != null) if(pstmtOrder != null)
{ {
pstmtOrder.close(); pstmtOrder.close();
pstmtOrder = null; pstmtOrder = null;
}*/ }
if(count > 0) if(count > 0)
{ {
suggLocCode = ""; suggLocCode = "";
...@@ -18063,8 +18101,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18063,8 +18101,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
{ {
if( itemLotOpt.trim().equals("0") ) if( itemLotOpt.trim().equals("0") )
{ {
/*sql = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE (ITEM_CODE <> ? OR LOT_NO <> ?) AND SITE_CODE = ? AND LOC_CODE = ? and Quantity > 0 //AND LOT_NO <> ?"; sql = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE (ITEM_CODE <> ? OR LOT_NO <> ?) AND SITE_CODE = ? AND LOC_CODE = ? and Quantity > 0 //AND LOT_NO <> ?";
pstmtItemLotOpt1 = conn.prepareStatement( sql );*/ pstmtItemLotOpt1 = conn.prepareStatement( sql );
pstmtItemLotOpt0.setString( 1, itemCode ); pstmtItemLotOpt0.setString( 1, itemCode );
//pstmtItemLotOpt0.setString( 2, siteCode ); //pstmtItemLotOpt0.setString( 2, siteCode );
pstmtItemLotOpt0.setString( 2, lotNo ); pstmtItemLotOpt0.setString( 2, lotNo );
...@@ -18124,8 +18162,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18124,8 +18162,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
} }
else if( itemLotOpt.trim().equals("1") ) //Validation for single item_code multiple lot_no else if( itemLotOpt.trim().equals("1") ) //Validation for single item_code multiple lot_no
{ {
/*sql = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ?// AND LOT_NO = ? "; sql = "SELECT COUNT(*) AS COUNT FROM STOCK WHERE ITEM_CODE <> ? AND SITE_CODE = ? AND LOC_CODE = ?// AND LOT_NO = ? ";
pstmt = conn.prepareStatement( sql );*/ pstmt = conn.prepareStatement( sql );
pstmtItemLotOpt1.setString( 1, itemCode ); pstmtItemLotOpt1.setString( 1, itemCode );
pstmtItemLotOpt1.setString( 2, siteCode ); pstmtItemLotOpt1.setString( 2, siteCode );
pstmtItemLotOpt1.setString( 3, suggLocCode ); pstmtItemLotOpt1.setString( 3, suggLocCode );
...@@ -18137,8 +18175,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18137,8 +18175,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
} }
rs2.close(); rs2.close();
rs2 = null; rs2 = null;
/*pstmt.close(); pstmt.close();
pstmt = null;*/ pstmt = null;
if( count > 0 ) if( count > 0 )
{ {
continue; continue;
...@@ -18199,10 +18237,23 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18199,10 +18237,23 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
} }
//Changed by sumit on 11/12/12 suggesting active pick location end //Changed by sumit on 11/12/12 suggesting active pick location end
} }
} }@@*/ //Changed and commented by Dadaso pawar 18/07/15 (As per Pragyan for optimize sql query) [End]
System.out.println("suggested location11-------->>["+suggLocCode+"]");
if("A".equalsIgnoreCase(pickType.trim()) || "T".equalsIgnoreCase(pickType.trim()))
{
//Changed by sumit on 09/02/13 changing parameter as per method
//return getPickLocForSameItemLotNo(invStat,pickType.trim(),itemCode,lotNo, lpnNo, suggLocCode, conn);
String retLoc = getPickLocForSameItemLotNo(invStat,pickType.trim(),itemCode,lotNo, lpnNo, suggLocCode,siteCode, conn);
System.out.println("Suggested location getPickLocForSameItemLotNo--->>["+retLoc+"]");
return retLoc;
}
else
{
return suggLocCode;
}
} } //end while
if( rs != null ) if( rs != null )
{ {
...@@ -18327,7 +18378,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18327,7 +18378,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
System.out.println("Return Suggested Location will throw error == >["+suggLocCode+"]"); System.out.println("Return Suggested Location will throw error == >["+suggLocCode+"]");
long endTime17 = System.currentTimeMillis(); long endTime17 = System.currentTimeMillis();
System.out.println("DIFFERANCE IN TIME FOR getAvilablePickLocation IN SECONDS:::["+(endTime17-startTime17)/1000+"]"); System.out.println("DIFFERANCE IN TIME FOR getAvilablePickLocation@@ IN SECONDS:::["+(endTime17-startTime17)/1000+"]");
return suggLocCode; return suggLocCode;
} }
...@@ -18335,6 +18386,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18335,6 +18386,7 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
//private String getAvilablePickLocation(String pickType,Connection conn,String itemLocType) throws ITMException //private String getAvilablePickLocation(String pickType,Connection conn,String itemLocType) throws ITMException
private ArrayList getAvilableCasePickLocationList(String pickType,Connection conn,String itemLocType,int locPrefZone, String locCode,String itemCode,String siteCode,String lotNo,String lpnNo) throws ITMException private ArrayList getAvilableCasePickLocationList(String pickType,Connection conn,String itemLocType,int locPrefZone, String locCode,String itemCode,String siteCode,String lotNo,String lpnNo) throws ITMException
{ {
System.out.println("-----------in getAvilableCasePickLocationList----------- "+pickType);
long startTime18 = System.currentTimeMillis(); long startTime18 = System.currentTimeMillis();
String sql = ""; String sql = "";
String stockSql = ""; String stockSql = "";
...@@ -18360,13 +18412,12 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18360,13 +18412,12 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
String invStatDisparmVar = ""; String invStatDisparmVar = "";
double quantity = 0; double quantity = 0;
int count = 0; int count = 0;
ArrayList suggestedLocList = new ArrayList(); ArrayList suggestedLocList = new ArrayList();
try try
{ {
//Changed and commented by Dadaso pawar 18/07/15 (As per Pragyan for optimize sql query) [Start]
sql ="SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT" /*@@sql ="SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT"
+ " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' " + " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' "
+ " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' " + " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' "
+ " AND A.INV_STAT = ? AND A.LOC_TYPE = ? ORDER BY ABS( A.LOC_ZONE - ?), A.LOC_CODE "; + " AND A.INV_STAT = ? AND A.LOC_TYPE = ? ORDER BY ABS( A.LOC_ZONE - ?), A.LOC_CODE ";
...@@ -18382,7 +18433,17 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18382,7 +18433,17 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
//orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') "; //changes done by Ashish Sonawane on 10-jul-12 //orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') "; //changes done by Ashish Sonawane on 10-jul-12
orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? " orderSql = "SELECT COUNT(*) AS COUNT FROM REPL_ORD_DET O WHERE O.LOC_CODE__TO = ? "
+" AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' " +" AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' "
+" AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') "; +" AND NOT EXISTS (SELECT 1 FROM REPL_ISS_HDR I WHERE I.REPL_ORDER = O.REPL_ORDER AND I.CONFIRMED = 'Y') ";@@*/
sql = "SELECT A.SINGLE_LOT_SL,A.LOC_CODE, A.LOC_ZONE, A.LOC_TYPE FROM LOCATION A ,INVSTAT B ,SITE S "
+ "WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' AND A.LOC_TYPE = 'N' AND S.SITE_CODE = ? "
+ "AND (S.FACILITY_CODE = A.FACILITY_CODE or nvl(s.facility_code ,'N') = 'N') "
+ "AND A.INV_STAT IN (?) AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' and nvl((SELECT sum(quantity) "
+ "FROM STOCK WHERE SITE_CODE = ? AND stock.loc_code = a.loc_code and a.SINGLE_LOT_SL ='Y'),0) = 0 "
+ "and nvl((SELECT sum(quantity) FROM STOCK WHERE (ITEM_CODE <> ? OR LOT_NO <> ?) " //5
+ "and SITE_CODE = ? AND stock.loc_code = a.loc_code and a.ITEM_LOT_OPT =0),0) = 0 "
+ "and nvl((SELECT sum(quantity) FROM STOCK WHERE ITEM_CODE <> ? and SITE_CODE = ? "//8
+ "AND stock.loc_code = a.loc_code and a.ITEM_LOT_OPT =0),0) = 0 ";
// ORDER BY ABS(A.LOC_ZONE - ? ),A.LOC_CODE";
if ( "A".equalsIgnoreCase(pickType.trim()) ) if ( "A".equalsIgnoreCase(pickType.trim()) )
{ {
...@@ -18396,37 +18457,55 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18396,37 +18457,55 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
{ {
invStatDisparmVar = "PND_INVSTAT"; invStatDisparmVar = "PND_INVSTAT";
sql = "SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT" /*sql = "SELECT A.LOC_CODE AS LOC_CODE,A.SINGLE_LOT_SL AS SINGLE_LOT_SL,A.ITEM_LOT_OPT AS ITEM_LOT_OPT"
+ " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' " + " FROM LOCATION A, INVSTAT B WHERE A.INV_STAT = B.INV_STAT AND B.AVAILABLE = 'Y' "
+ " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' " + " AND (CASE WHEN B.STAT_TYPE IS NULL THEN ' ' ELSE B.STAT_TYPE END) <> 'S' "
+ " AND A.INV_STAT = ? AND A.LOC_TYPE = ? AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? )" + " AND A.INV_STAT = ? AND A.LOC_TYPE = ? AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? )"
+ " ORDER BY ABS( A.LOC_ZONE - ?) ,A.LOC_CODE "; + " ORDER BY ABS( A.LOC_ZONE - ?) ,A.LOC_CODE ";*/
sql = sql + "AND A.LOC_GROUP = (SELECT DROP_GROUP FROM LOCATION WHERE LOC_CODE = ? ) ";
System.out.println(" pnd sql -> ["+sql+"]"); System.out.println(" pnd sql -> ["+sql+"]");
} }
sql = sql + " ORDER BY ABS(A.LOC_ZONE - ? ),A.LOC_CODE";
invStat = discommon.getDisparams("999999",invStatDisparmVar,conn); invStat = discommon.getDisparams("999999",invStatDisparmVar,conn);
pstmtStock = conn.prepareStatement(stockSql); //@@pstmtStock = conn.prepareStatement(stockSql);
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmtOrder = conn.prepareStatement(orderSql); /*@@pstmtOrder = conn.prepareStatement(orderSql);
pstmtItemLotOpt0 = conn.prepareStatement( sqlItemLotOpt0 ); pstmtItemLotOpt0 = conn.prepareStatement( sqlItemLotOpt0 );
pstmtItemLotOpt1 = conn.prepareStatement( sqlItemLotOpt1); pstmtItemLotOpt1 = conn.prepareStatement( sqlItemLotOpt1);@@*/
/*@@pstmt.setString(1, invStat);
pstmt.setString(2, itemLocType);
pstmt.setString(3, locCode);
pstmt.setInt(4, locPrefZone);@@*/
/*pstmt.setString(1, invStat);
pstmt.setString(2, itemLocType);
pstmt.setInt(3, locPrefZone);*/
pstmt.setString(1, siteCode);
pstmt.setString(2, invStat);
pstmt.setString(3, siteCode);
pstmt.setString(4, itemCode);
pstmt.setString(5, lotNo);
pstmt.setString(6, siteCode);
pstmt.setString(7, itemCode);
pstmt.setString(8, siteCode);
//pstmt.setInt(9, locPrefZone);
if("N".equalsIgnoreCase(pickType.trim())) if("N".equalsIgnoreCase(pickType.trim()))
{ {
pstmt.setString(1, invStat); pstmt.setString(9, locCode);
pstmt.setString(2, itemLocType); pstmt.setInt(10, locPrefZone);
pstmt.setString(3, locCode);
pstmt.setInt(4, locPrefZone);
} }
else else
{ {
pstmt.setString(1, invStat); pstmt.setInt(9, locPrefZone);
pstmt.setString(2, itemLocType);
pstmt.setInt(3, locPrefZone);
} }
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
...@@ -18434,14 +18513,14 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18434,14 +18513,14 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
while (rs.next()) while (rs.next())
{ {
suggLocCode = checkNull(rs.getString("LOC_CODE") ); suggLocCode = checkNull(rs.getString("LOC_CODE") );
singleLotSl = checkNull(rs.getString("SINGLE_LOT_SL") ); /*singleLotSl = checkNull(rs.getString("SINGLE_LOT_SL") );
itemLotOpt = checkNull(rs.getString("ITEM_LOT_OPT") ); itemLotOpt = checkNull(rs.getString("ITEM_LOT_OPT") );*/
quantity = 0; quantity = 0;
count = 0; count = 0;
//Changed By Pragyan 11-AUG-14 To check and Facility Master implementation.start //Changed By Pragyan 11-AUG-14 To check and Facility Master implementation.start
if(!commonWmsUtility.isValFacLocation(suggLocCode, siteCode, conn)) /*@@if(!commonWmsUtility.isValFacLocation(suggLocCode, siteCode, conn))
{ {
//Changed by Dhanraj on 13-AUG-14 In suggLocCode var store last location //Changed by Dhanraj on 13-AUG-14 In suggLocCode var store last location
suggLocCode=""; suggLocCode="";
...@@ -18624,9 +18703,21 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -18624,9 +18703,21 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
suggestedLocList.add(suggLocCode) ; suggestedLocList.add(suggLocCode) ;
} }
} }
} }@@*/ //Changed and commented by Dadaso pawar 18/07/15 (As per Pragyan for optimize sql query) [End]
}//END WHILE
if("A".equalsIgnoreCase(pickType.trim()) || "T".equalsIgnoreCase(pickType.trim()))
{
//Changed by sumit on 09/02/13 change as per method
//suggLocCode = getPickLocForSameItemLotNo(invStat,pickType.trim(),itemCode,lotNo, lpnNo, suggLocCode, conn);
suggLocCode = getPickLocForSameItemLotNo(invStat,pickType.trim(),itemCode,lotNo, lpnNo, suggLocCode,siteCode, conn);
suggestedLocList.add(suggLocCode) ;
}
else
{
suggestedLocList.add(suggLocCode) ;
} }
if( rs != null ) if( rs != null )
...@@ -21538,7 +21629,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -21538,7 +21629,8 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
*/ */
//Changed by Rohan on 07-02-13 not consider pnd repanishment in case of active repanishment //Changed by Rohan on 07-02-13 not consider pnd repanishment in case of active repanishment
sqlReplHistory = "SELECT D.LOC_CODE,D.REPL_ORDER,D.QUANTITY,D.ACTUAL_QTY,D.LOC_CODE__TO,D.LINE_NO,D.PICK_ORDER," //Changed by Dadaso pawar on 24/07/15 as per Pragyan for optimize sql query [Start]
/*@@sqlReplHistory = "SELECT D.LOC_CODE,D.REPL_ORDER,D.QUANTITY,D.ACTUAL_QTY,D.LOC_CODE__TO,D.LINE_NO,D.PICK_ORDER,"
//Changed By Pragyan 24-feb-14 ^^^^^ //Changed By Pragyan 24-feb-14 ^^^^^
+ " D.LINE_NO__PICK,S.QUANTITY AS STK_QTY FROM REPL_ORD_DET D,STOCK S ,LOCATION L,REPL_ORD_HDR H WHERE D.ITEM_CODE = ? AND " + " D.LINE_NO__PICK,S.QUANTITY AS STK_QTY FROM REPL_ORD_DET D,STOCK S ,LOCATION L,REPL_ORD_HDR H WHERE D.ITEM_CODE = ? AND "
//+ " D.LINE_NO__PICK,S.QUANTITY AS STK_QTY,REPL_QTY AS REPL_QTY FROM REPL_ORD_DET D,STOCK S ,LOCATION L,REPL_ORD_HDR H WHERE D.ITEM_CODE = ? AND " //+ " D.LINE_NO__PICK,S.QUANTITY AS STK_QTY,REPL_QTY AS REPL_QTY FROM REPL_ORD_DET D,STOCK S ,LOCATION L,REPL_ORD_HDR H WHERE D.ITEM_CODE = ? AND "
...@@ -21552,8 +21644,18 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo ...@@ -21552,8 +21644,18 @@ public class WaveGenerationPrc extends ProcessEJB implements WaveGenerationPrcLo
+" AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' " +" AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' "
//Changed By Pragyan 01/07/15 //Changed By Pragyan 01/07/15
//+" AND H.REPL_ORDER = D.REPL_ORDER AND H.ORDER_TYPE NOT IN('Q','T','P','E','I') AND D.ACTUAL_QTY > 0 AND S.QUANTITY > 0 "; //+" AND H.REPL_ORDER = D.REPL_ORDER AND H.ORDER_TYPE NOT IN('Q','T','P','E','I') AND D.ACTUAL_QTY > 0 AND S.QUANTITY > 0 ";
+" AND H.REPL_ORDER = D.REPL_ORDER AND H.ORDER_TYPE NOT IN('Q','T','P','E','I','U','V') AND D.ACTUAL_QTY > 0 AND S.QUANTITY > 0 "; +" AND H.REPL_ORDER = D.REPL_ORDER AND H.ORDER_TYPE NOT IN('Q','T','P','E','I','U','V') AND D.ACTUAL_QTY > 0 AND S.QUANTITY > 0 ";@@*/
sqlReplHistory = "SELECT D.LOC_CODE,D.REPL_ORDER,D.QUANTITY,D.ACTUAL_QTY,D.LOC_CODE__TO,D.LINE_NO,"
+ "D.PICK_ORDER, D.LINE_NO__PICK,S.QUANTITY AS STK_QTY FROM REPL_ORD_DET D,STOCK S ,LOCATION L,"
+ "REPL_ORD_HDR H WHERE D.ITEM_CODE = ? AND D.SITE_CODE = ? AND D.LOT_NO = ? "
+ "AND D.LOT_SL = ? AND D.ITEM_CODE = S.ITEM_CODE AND D.SITE_CODE = S.SITE_CODE "
+ "AND D.LOT_NO = S.LOT_NO AND D.LOT_SL = S.LOT_SL AND D.LOC_CODE = S.LOC_CODE "
+ "AND S.LOC_CODE = L.LOC_CODE AND D.LOC_CODE = L.LOC_CODE AND D.LOC_CODE__TO = L.LOC_CODE "
+ "AND L.INV_STAT IN(?,? ) AND CASE WHEN CANCEL_MODE IS NULL THEN 'N' ELSE CANCEL_MODE END <> 'Y' "
+ "AND H.REPL_ORDER = D.REPL_ORDER AND H.ORDER_TYPE NOT IN('Q','T','P','E','I','U','V') "
+ " AND D.ACTUAL_QTY > 0 AND S.QUANTITY > 0";
//Changed by Dadaso pawar on 24/07/15 as per Pragyan for optimize sql query [End]
//Changed by Rohan on 06-02-13 to retrive only case Repalnishment.end //Changed by Rohan on 06-02-13 to retrive only case Repalnishment.end
pstmtReplHistory =conn.prepareStatement(sqlReplHistory); pstmtReplHistory =conn.prepareStatement(sqlReplHistory);
...@@ -25519,4 +25621,4 @@ private java.sql.Timestamp getCurrtDate() throws RemoteException,ITMException ...@@ -25519,4 +25621,4 @@ private java.sql.Timestamp getCurrtDate() throws RemoteException,ITMException
return (currDate); return (currDate);
} }
//Added by Dadaso pawar on 06/04/15 [End] //Added by Dadaso pawar on 06/04/15 [End]
} }
\ No newline at end of file
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