Commit 29955964 authored by kmandhre's avatar kmandhre

165-N Manual Stock Allocation to Order (Process Screen): Logic of allocating...

165-N Manual Stock Allocation to Order (Process Screen): Logic of allocating inventory from pre-defined INV_STAT, as it is applied in Wave Process and MSA entry screen


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@93878 ce508802-f39f-4f6c-b175-0d175dae99d5
parent de5e04b2
......@@ -135,7 +135,10 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
String sql= "" ;
String resultString = "";
String sql1 ="",custCodeSord = "",waveType = "", activeAllow="";
String resrvLoc = "",casePickLoc = "",activePickLoc = "" ,deepStoreLoc = "" ,partialResrvLoc = "";//added by kunal on 15/NOV/13
String orderByStkStr = "";
int waveType1 = 0;
double pendingQty = 0;
Connection conn = null;
ResultSet rs = null;
ResultSet rs1 = null;
......@@ -145,8 +148,11 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
StringBuffer retTabSepStrBuff = new StringBuffer();
double pendQty = 0;
double allocQty = 0;
boolean bappend = false ;
boolean bappend = false ;
boolean checkLocation = false;
boolean isActives = false;
SimpleDateFormat sdf=null;
DistCommon dComm = new DistCommon();
retTabSepStrBuff = new StringBuffer("<?xml version = \"1.0\"?>");
retTabSepStrBuff.append("<DocumentRoot>");
retTabSepStrBuff.append("<description>").append("Datawindow Root").append("</description>");
......@@ -161,6 +167,40 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(genericUtility.getDBDateFormat());
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
//added by kunal on 15/NOV/13 DI3ESUN009
resrvLoc = checkNull(dComm.getDisparams("999999","RESERV_LOCATION",conn));
casePickLoc = checkNull(dComm.getDisparams("999999","CASE_PICK_INVSTAT",conn));
activePickLoc = checkNull(dComm.getDisparams("999999","ACTIVE_PICK_INVSTAT",conn));
deepStoreLoc = checkNull(dComm.getDisparams("999999","DEEP_STORE_INVSTAT",conn));
partialResrvLoc = checkNull(dComm.getDisparams("999999","PRSRV_INVSTAT",conn));
if(resrvLoc.trim().length() == 0 || resrvLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
resrvLoc = "";
}
if(casePickLoc.trim().length() == 0 || casePickLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
casePickLoc = "";
}
if(activePickLoc.trim().length() == 0 || activePickLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
activePickLoc = "";
}
if(deepStoreLoc.trim().length() == 0 || deepStoreLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
deepStoreLoc = "";
}
if(partialResrvLoc.trim().length() == 0 || partialResrvLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
partialResrvLoc = "";
}
System.out.println("CASE_PICK_INVSTAT="+casePickLoc+" ACTIVE_PICK_INVSTAT="+activePickLoc+" RESERV_LOCATION="+resrvLoc+" DEEP_STORE_INVSTAT="+deepStoreLoc+" PARTIAL RESERVE LOC="+partialResrvLoc);
if(resrvLoc.trim().length() > 0 || casePickLoc.trim().length() > 0 || activePickLoc.trim().length() > 0 || deepStoreLoc.trim().length() > 0 || partialResrvLoc.trim().length() > 0)
{
checkLocation = true;
}
System.out.println("checkLocation="+checkLocation);
//added by kunal on 15/NOV/13 DI3ESUN009 end
siteCode = genericUtility.getColumnValue("site_code",headerDom);
if ( siteCode == null || siteCode.trim().length() == 0 )
......@@ -353,6 +393,71 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
}
else
{
if(checkLocation)
{
sql =" SELECT SORDER.CUST_CODE, CUSTOMER.CUST_NAME,SORDDET.LINE_NO, "
+"SORDER.SALE_ORDER,SORDER.DUE_DATE,SORDITEM.ITEM_CODE,"
+"ITEM.DESCR,SORDITEM.QUANTITY,"
+"((SORDITEM.QUANTITY*SORDITEM.CONV__QTY_STDQTY) - (SORDITEM.QTY_DESP*SORDITEM.CONV__QTY_STDQTY) - SORDITEM.QTY_ALLOC) PENDING_QUANTITY,"
+"SORDITEM.QTY_ALLOC,SORDDET.PACK_INSTR,"
+"SORDER.SITE_CODE,SORDITEM.EXP_LEV, "
+"SORDER.PART_QTY AS PART_QTY, CUSTOMER.SINGLE_LOT AS SINGLE_LOT, SORDITEM.MIN_SHELF_LIFE AS MIN_SHELF_LIFE "//Gulzar 5/13/2012
+" ,SORDER.ALLOC_FLAG AS ALLOC_FLAG , WAVE_TYPE.MASTER_PACK_ALLOW , WAVE_TYPE.ACTIVE_PICK_ALLOW , WAVE_TYPE.STOCK_TO_DOCK_ALLOW "
+"FROM SORDDET,SORDER,SORDITEM,CUSTOMER,ITEM , WAVE_TYPE "
//Changed by sumit 20/08/12 getting column data end.
+"WHERE ( SORDER.SALE_ORDER = SORDDET.SALE_ORDER ) AND "
+"( SORDITEM.SALE_ORDER = SORDER.SALE_ORDER ) AND "
+"( SORDDET.LINE_NO = SORDITEM.LINE_NO ) AND "
+"( SORDITEM.ITEM_CODE = ITEM.ITEM_CODE ) AND "
+"( SORDER.CUST_CODE = CUSTOMER.CUST_CODE ) AND "
+"( SORDDET.SITE_CODE = SORDITEM.SITE_CODE ) AND "
//Changed by sumit on 20/08/12 join customer with wave_type
+"( CUSTOMER.WAVE_TYPE = WAVE_TYPE.WAVE_TYPE(+)) AND "
//+" SORDER.SITE_CODE = ? AND "
+" SORDER.SALE_ORDER = ? "
+" AND SORDITEM.LINE_NO = ? "
+"AND CASE WHEN SORDDET.STATUS IS NULL THEN 'P' ELSE SORDDET.STATUS end <> 'C' "
+"AND CASE WHEN SORDER.STATUS IS NULL THEN 'P' ELSE SORDER.STATUS end = 'P' "
//Changed by sumit on 12/09/12 considering hold_flag from sorddet
+" AND CASE WHEN SORDDET.HOLD_FLAG IS NULL THEN 'N' ELSE SORDDET.HOLD_FLAG end <> 'Y'"
//Chnaged by Rohan on 11/07/12 revert Changes of Manual Stock Allocation
//Changed by Rohan on 22/06/12
//+"AND SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC > 0 "
//+"AND (SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC > 0 OR SORDER.ALLOC_FLAG='M' )"
//Changed by sumit on 13/08/12 as per manual stock allocation start.
//+"AND SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC > 0 "
+" AND (((SORDITEM.QUANTITY*SORDITEM.CONV__QTY_STDQTY) - (SORDITEM.QTY_DESP*SORDITEM.CONV__QTY_STDQTY) - SORDITEM.QTY_ALLOC > 0 ) "
+" OR (FN_CHECK_MANUAL_STOCK_ALLOC(SORDER.SALE_ORDER, SORDDET.LINE_NO) = 0 ) )"
+"AND SORDITEM.LINE_TYPE = 'I'";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,rs.getString(4));
pstmt1.setString(2, rs.getString(3));
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
pendingQty = rs1.getInt("PENDING_QUANTITY");
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
HashMap itemVolMap = getItemVoumeMap( rs.getString(6), "", conn);
double packSize = (Double)itemVolMap.get("PACK_SIZE");
System.out.println(" pendingQty = "+pendingQty+" packSize ="+packSize);
if((pendingQty % packSize) > 0)
{
isActives = true;
orderByStkStr = " AND LOCATION.INV_STAT IN(?,?,?,?,?) ";
}
else
{
isActives = false;
orderByStkStr = " AND LOCATION.INV_STAT IN(?,?,?,?) ";
}
}
sql1 ="SELECT SUM(STOCK.QUANTITY - case when STOCK.ALLOC_QTY is null then 0 else STOCK.ALLOC_QTY end - case when STOCK.HOLD_QTY is null then 0 else STOCK.HOLD_QTY end ),SUM(case when STOCK.HOLD_QTY is null then 0 else STOCK.HOLD_QTY end ) "
+"FROM STOCK,ITEM,LOCATION,INVSTAT "
+"WHERE (ITEM.ITEM_CODE = STOCK.ITEM_CODE) "
......@@ -364,9 +469,25 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
+"AND (STOCK.QUANTITY - case when STOCK.ALLOC_QTY is null then 0 else STOCK.ALLOC_QTY end - case when STOCK.HOLD_QTY is null then 0 else STOCK.HOLD_QTY end ) > 0 ";
// 01/11/12 manoharan preparedstatement used instead of statement
//rs1 = st.executeQuery(sql);
if(checkLocation) //added by kunal on 15/NOV/13 DI3ESUN009
{
sql1=sql1+orderByStkStr;
}
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,rs.getString(6) );
pstmt1.setString(2,rs.getString(12));
if(checkLocation) //added by kunal on 15/NOV/13 DI3ESUN009
{
pstmt1.setString(3,resrvLoc);
pstmt1.setString(4,casePickLoc);
pstmt1.setString(5,activePickLoc);
pstmt1.setString(6,deepStoreLoc);
if(isActives)
{
pstmt1.setString(7,partialResrvLoc);
}
}
rs1 = pstmt1.executeQuery();
if (rs1.next())
......@@ -1030,6 +1151,7 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
String siteCodeMfg =null;
String itemRef = null;
String status =null;
String resrvLoc = "",casePickLoc = "",activePickLoc = "" ,deepStoreLoc = "" ,partialResrvLoc = "";//added by kunal on 14/NOV/13
java.sql.Date expDate = new java.sql.Date(System.currentTimeMillis());
java.sql.Date mfgDate = new java.sql.Date(System.currentTimeMillis());
java.sql.Date dateAlloc= new java.sql.Date(System.currentTimeMillis());
......@@ -1039,7 +1161,8 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
String updateSordalloc = null;
String updateSql= null;
String flag = null;
String sql1 = "";
String sql1 = "",sql = "";
String orderByStkStr = "";
double stockQuantity = 0;
double qtyAvailAlloc = 0;
double lotQtyToBeAllocated = 0;
......@@ -1050,12 +1173,15 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
double pendingQuantity = 0;
int intCnt=0;
int updCnt=0;
int pendingQty = 0;
String varValue1 = "",varValue2 = "";
String errString = "";
String error = "";
String errCode = "";
boolean checkLocation = false;
boolean isActives = false;
Connection conn = null;
PreparedStatement pstmtStock = null;
PreparedStatement pstmtStock = null ,pstmt1 = null;
PreparedStatement pstmtStockInsertSordAlloc = null;
Statement st = null;
ResultSet rs = null ;
......@@ -1114,7 +1240,107 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
}
rsSItem.close();
st.close();
//added by kunal on 14/NOV/13 DI3ESUN009
resrvLoc = checkNull(dComm.getDisparams("999999","RESERV_LOCATION",conn));
casePickLoc = checkNull(dComm.getDisparams("999999","CASE_PICK_INVSTAT",conn));
activePickLoc = checkNull(dComm.getDisparams("999999","ACTIVE_PICK_INVSTAT",conn));
deepStoreLoc = checkNull(dComm.getDisparams("999999","DEEP_STORE_INVSTAT",conn));
partialResrvLoc = checkNull(dComm.getDisparams("999999","PRSRV_INVSTAT",conn));
if(resrvLoc.trim().length() == 0 || resrvLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
resrvLoc = "";
}
if(casePickLoc.trim().length() == 0 || casePickLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
casePickLoc = "";
}
if(activePickLoc.trim().length() == 0 || activePickLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
activePickLoc = "";
}
if(deepStoreLoc.trim().length() == 0 || deepStoreLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
deepStoreLoc = "";
}
if(partialResrvLoc.trim().length() == 0 || partialResrvLoc.trim().equalsIgnoreCase("NULLFOUND"))
{
partialResrvLoc = "";
}
System.out.println("CASE_PICK_INVSTAT="+casePickLoc+" ACTIVE_PICK_INVSTAT="+activePickLoc+" RESERV_LOCATION="+resrvLoc+" DEEP_STORE_INVSTAT="+deepStoreLoc+" PARTIAL RESERVE LOC="+partialResrvLoc);
if(resrvLoc.trim().length() > 0 || casePickLoc.trim().length() > 0 || activePickLoc.trim().length() > 0 || deepStoreLoc.trim().length() > 0 || partialResrvLoc.trim().length() > 0)
{
checkLocation = true;
}
if(checkLocation)
{
sql =" SELECT SORDER.CUST_CODE, CUSTOMER.CUST_NAME,SORDDET.LINE_NO, "
+"SORDER.SALE_ORDER,SORDER.DUE_DATE,SORDITEM.ITEM_CODE,"
+"ITEM.DESCR,SORDITEM.QUANTITY,"
+"((SORDITEM.QUANTITY*SORDITEM.CONV__QTY_STDQTY) - (SORDITEM.QTY_DESP*SORDITEM.CONV__QTY_STDQTY) - SORDITEM.QTY_ALLOC) PENDING_QUANTITY,"
+"SORDITEM.QTY_ALLOC,SORDDET.PACK_INSTR,"
+"SORDER.SITE_CODE,SORDITEM.EXP_LEV, "
+"SORDER.PART_QTY AS PART_QTY, CUSTOMER.SINGLE_LOT AS SINGLE_LOT, SORDITEM.MIN_SHELF_LIFE AS MIN_SHELF_LIFE "//Gulzar 5/13/2012
+" ,SORDER.ALLOC_FLAG AS ALLOC_FLAG , WAVE_TYPE.MASTER_PACK_ALLOW , WAVE_TYPE.ACTIVE_PICK_ALLOW , WAVE_TYPE.STOCK_TO_DOCK_ALLOW "
+"FROM SORDDET,SORDER,SORDITEM,CUSTOMER,ITEM , WAVE_TYPE "
//Changed by sumit 20/08/12 getting column data end.
+"WHERE ( SORDER.SALE_ORDER = SORDDET.SALE_ORDER ) AND "
+"( SORDITEM.SALE_ORDER = SORDER.SALE_ORDER ) AND "
+"( SORDDET.LINE_NO = SORDITEM.LINE_NO ) AND "
+"( SORDITEM.ITEM_CODE = ITEM.ITEM_CODE ) AND "
+"( SORDER.CUST_CODE = CUSTOMER.CUST_CODE ) AND "
+"( SORDDET.SITE_CODE = SORDITEM.SITE_CODE ) AND "
//Changed by sumit on 20/08/12 join customer with wave_type
+"( CUSTOMER.WAVE_TYPE = WAVE_TYPE.WAVE_TYPE(+)) AND "
//+" SORDER.SITE_CODE = ? AND "
+" SORDER.SALE_ORDER = ? "
+" AND SORDITEM.LINE_NO = ? "
+"AND CASE WHEN SORDDET.STATUS IS NULL THEN 'P' ELSE SORDDET.STATUS end <> 'C' "
+"AND CASE WHEN SORDER.STATUS IS NULL THEN 'P' ELSE SORDER.STATUS end = 'P' "
//Changed by sumit on 12/09/12 considering hold_flag from sorddet
+" AND CASE WHEN SORDDET.HOLD_FLAG IS NULL THEN 'N' ELSE SORDDET.HOLD_FLAG end <> 'Y'"
//Chnaged by Rohan on 11/07/12 revert Changes of Manual Stock Allocation
//Changed by Rohan on 22/06/12
//+"AND SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC > 0 "
//+"AND (SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC > 0 OR SORDER.ALLOC_FLAG='M' )"
//Changed by sumit on 13/08/12 as per manual stock allocation start.
//+"AND SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC > 0 "
+" AND (((SORDITEM.QUANTITY*SORDITEM.CONV__QTY_STDQTY) - (SORDITEM.QTY_DESP*SORDITEM.CONV__QTY_STDQTY) - SORDITEM.QTY_ALLOC > 0 ) "
+" OR (FN_CHECK_MANUAL_STOCK_ALLOC(SORDER.SALE_ORDER, SORDDET.LINE_NO) = 0 ) )"
+"AND SORDITEM.LINE_TYPE = 'I'";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,saleOrder);
pstmt1.setString(2,lineNo);
rs = pstmt1.executeQuery();
if(rs.next())
{
pendingQty = rs.getInt("PENDING_QUANTITY");
}
rs.close();
rs = null;
pstmt1.close();
pstmt1 = null;
HashMap itemVolMap = getItemVoumeMap(itemCode, "", conn);
double packSize = (Double)itemVolMap.get("PACK_SIZE");
System.out.println(" pendingQty = "+pendingQty+" packSize ="+packSize);
if((pendingQty % packSize) > 0)
{
isActives = true;
orderByStkStr = " AND LOCATION.INV_STAT IN(?,?,?,?,?) ";
}
else
{
isActives = false;
orderByStkStr = " AND LOCATION.INV_STAT IN(?,?,?,?) ";
}
}
//added by kunal on 14/NOV/13 DI3ESUN009 END
getDataSql = "SELECT STOCK.LOT_NO,STOCK.LOT_SL,"
+"STOCK.LOC_CODE, "
+"STOCK.UNIT, "
......@@ -1137,6 +1363,12 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
}
//Added by manoj dtd 09/08/2013 to implement FEFO concept
getDataSql=getDataSql+"AND (MONTHS_BETWEEN(TO_DATE(STOCK.EXP_DATE),SYSDATE) > ? ) ";
if(checkLocation) //added by kunal on 14/NOV/13 DI3ESUN009
{
getDataSql=getDataSql+orderByStkStr;
}
getDataSql=getDataSql+" ORDER BY CASE WHEN STOCK.EXP_DATE IS NULL THEN STOCK.CREA_DATE ELSE STOCK.EXP_DATE END,INVSTAT.ALLOC_PREF, STOCK.LOC_CODE ";
pstmtStock = conn.prepareStatement(getDataSql);
pstmtStock.setString(1,itemCode);
......@@ -1150,7 +1382,34 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
pstmtStock.setString(3,varValue1);
pstmtStock.setString(4,varValue2);
pstmtStock.setDouble(5,minSelfLife);
} //added by ritesh 0n 7/8/13 for request DI3ESUN009 START
if(checkLocation) //added by kunal on 14/NOV/13 DI3ESUN009
{
pstmtStock.setString(6,resrvLoc);
pstmtStock.setString(7,casePickLoc);
pstmtStock.setString(8,activePickLoc);
pstmtStock.setString(9,deepStoreLoc);
if(isActives)
{
pstmtStock.setString(10,partialResrvLoc);
}
}
}
else
{
if(checkLocation) //added by kunal on 14/NOV/13 DI3ESUN009
{
pstmtStock.setString(4,resrvLoc);
pstmtStock.setString(5,casePickLoc);
pstmtStock.setString(6,activePickLoc);
pstmtStock.setString(7,deepStoreLoc);
if(isActives)
{
pstmtStock.setString(8,partialResrvLoc);
}
}
}
//added by ritesh 0n 7/8/13 for request DI3ESUN009 START
rs = pstmtStock.executeQuery();
System.out.println("siteCode------"+ siteCode);
......@@ -1863,5 +2122,101 @@ public class StockAllocationPrc extends ProcessEJB implements StockAllocationPrc
{
itemCodeMap.clear();
}
private HashMap getItemVoumeMap(String itemCode,String lotNo,Connection con)throws Exception
{
double packSize = 0,itemSize = 0,lotSize = 0;
PreparedStatement pstmt = null;
String sql="";
ResultSet rs = null;
double itmLen = 0,itmWidth = 0,itmHeight = 0,itemWeight = 0,lotLen = 0 ,lotHeight = 0,lotWidth = 0,lotWeight = 0;
HashMap dataVolumeMap = new HashMap();
try {
sql = "SELECT I.LENGTH ITEM_LEN,I.WIDTH ITEM_WID,I.HEIGHT ITEM_HEIGHT,I.GROSS_WEIGHT ITEM_WEIGHT,"
+" L.LENGTH LITEM_LEN,L.WIDTH LITEM_WID,L.HEIGHT LITEM_HEIGHT,L.SHIPPER_SIZE SHIPSIZE,L.GROSS_WEIGHT LOT_WEIGHT FROM"
+" ITEM I,ITEM_LOT_PACKSIZE L"
+" WHERE I.ITEM_CODE = L.ITEM_CODE"
+" AND L.LOT_NO__FROM <= ? AND L.LOT_NO__TO >= ?"
+" AND I.ITEM_CODE = ?";
pstmt = con.prepareStatement(sql);
if(lotNo != null && lotNo.length() > 0)
{
pstmt.setString(1, lotNo);
pstmt.setString(2, lotNo);
}
else
{
pstmt.setString(1, "00");
pstmt.setString(2, "ZZ");
}
pstmt.setString(3, itemCode);
rs = pstmt.executeQuery();
if(rs.next())
{
itmLen = rs.getDouble("ITEM_LEN");
itmWidth = rs.getDouble("ITEM_WID");
itmHeight = rs.getDouble("ITEM_HEIGHT");
itemWeight = rs.getDouble("ITEM_WEIGHT");
lotLen = rs.getDouble("LITEM_LEN");
lotWidth = rs.getDouble("LITEM_WID");
lotHeight = rs.getDouble("LITEM_HEIGHT");
packSize = rs.getDouble("SHIPSIZE");
lotWeight = rs.getDouble("LOT_WEIGHT");
}
//packSize = (lotHeight * lotWidth * lotLen)/(itmLen * itmWidth * itmHeight);
/*itemSize = Math.floor(itmLen * itmWidth * itmHeight);
lotSize = Math.floor((lotHeight * lotWidth * lotLen));*/
itemSize = itmLen * itmWidth * itmHeight;
lotSize = lotHeight * lotWidth * lotLen;
dataVolumeMap.put("PACK_SIZE", packSize);
dataVolumeMap.put("ITEM_SIZE", itemSize);
dataVolumeMap.put("LOT_SIZE", lotSize);
dataVolumeMap.put("ITEM_WEIGHT", itemWeight);
dataVolumeMap.put("PACK_WEIGHT", lotWeight);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
} catch (Exception e) {
// TODO: handle exception
throw e;
}
finally
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
}
return dataVolumeMap;
}
}
\ 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