Commit b384cbaf authored by steurwadkar's avatar steurwadkar

W15JSUN004 added StatusChangeRequest.java by Santosh


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@99982 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 2bd1341d
package ibase.webitm.utility.wms;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import ibase.scheduler.utility.interfaces.Schedule;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.utility.ITMException;
public class StatusChangeRequest implements Schedule {
@Override
public String schedulePriority(String arg0) throws Exception {
return null;
}
@SuppressWarnings("unchecked")
@Override
public String schedule(HashMap arg0) throws Exception {
return null;
}
@Override
public String schedule(String scheduleParamXML) throws Exception
{
String siteCode = "";
ibase.utility.UserInfoBean userInfo = null;
String xtraParams = "";
try
{
System.out.println("************ ["+scheduleParamXML+"]");
userInfo = new ibase.utility.UserInfoBean(scheduleParamXML);
siteCode = userInfo.getSiteCode();
System.out.println("Site code = "+siteCode);
xtraParams = "loginCode="+userInfo.getEmpCode()+"~~chgTerm="+userInfo.getRemoteHost()+"~~loginSiteCode="+siteCode;
statusChange(siteCode,scheduleParamXML,xtraParams);
}
catch(Exception e)
{
throw new Exception(e);
}
return "";
}
public String statusChange(String siteCode , String scheduleParamXML, String xtraParams) throws ITMException
{
String invStat="", sqlVariable="", qtyPerArt = "",unit="",mfgDate="",expiryDate="",quantity="",noArt="",refId="", lineNo="",
palletStatus="", palletNo="", locCode="", lotSl="", lotNo="", itemCode="", lockStat="", lockCode="", tranRefSer="";
String damageLocations="", holdLocations="";
Timestamp today = new Timestamp(System.currentTimeMillis());
ArrayList<HashMap<String, String>> awmsIntrArrList = new ArrayList<HashMap<String, String>>();
ArrayList<String> damageLocArryKList = new ArrayList<String>();
ArrayList<String> holdLocArryKList = new ArrayList<String>();
String sql="", sqlStr ="";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
conn.setAutoCommit(false);
DistCommon distComm = new DistCommon();
CommonWmsUtil connUtil = new CommonWmsUtil();
System.out.println("Inside Status Change Scheduler!");
invStat = distComm.getDisparams("999999","AWMS_LOC_INVSTAT",conn);
sqlVariable = distComm.getDisparams("999999","HLD_LOCK_STAT_CHANGE",conn);
damageLocations = distComm.getDisparams("999999","DM_LOCKS",conn);
holdLocations = distComm.getDisparams("999999","HOLD_LOCKS",conn);
invStat = invStat.replace(",", "','");
invStat = "'"+invStat+"'";
System.out.println("AWMS INVSTAT : "+invStat);
sqlVariable = sqlVariable.replace(",", "','");
sqlVariable = "'"+sqlVariable+"'";
System.out.println("SQL Vaibale Value : "+sqlVariable);
String[] damageLocArry=damageLocations.split(",");
for(String value:damageLocArry){
damageLocArryKList.add(value);
}
System.out.println("DAMAGE LOCATINOS ARRAY LIST : "+damageLocArryKList);
String[] holdLocArry = holdLocations.split(",");
for(String value:holdLocArry){
holdLocArryKList.add(value);
}
System.out.println("HOLD LOCATIONS ARRAY LIST : "+holdLocArryKList);
sql="SELECT REF_SER FROM TRANSETUP WHERE TRAN_WINDOW='w_inv_hold'";
pstmt = conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
tranRefSer=rs.getString("REF_SER");
}
if(pstmt != null){
pstmt.close();pstmt = null;
}
if (rs != null){
rs.close();rs = null;
}
sqlStr = "SELECT S.QTY_PER_ART,S.UNIT,S.MFG_DATE,S.EXP_DATE,S.QUANTITY,S.NO_ART,S.LOC_CODE,S.LOT_SL,S.LOT_NO,S.ITEM_CODE,D.LINE_NO,"
+ "D.TRAN_ID,H.LOCK_CODE "
+ "FROM STOCK S, INV_HOLD H, INV_HOLD_DET D WHERE S.SITE_CODE=? AND S.INV_STAT IN ("+invStat+") AND H.LOCK_CODE IN("+sqlVariable+") "
+ "AND H.TRAN_ID= D.TRAN_ID AND D.LOT_NO = S.LOT_NO AND D.LOT_SL=S.LOT_SL AND D.ITEM_CODE = S.ITEM_CODE AND D.LOC_CODE =S.LOC_CODE "
+ "AND D.HOLD_STATUS='H' AND S.HOLD_QTY > 0 AND FN_CHECK_SWMS_TO_AWMS(H.TRAN_ID,'"+tranRefSer+"','S')=0";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1, siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
qtyPerArt = checkNullAndTrim(rs.getString("QTY_PER_ART"));
unit = rs.getString("UNIT");
mfgDate = checkNullAndTrim(rs.getString("MFG_DATE"));
expiryDate = checkNullAndTrim(rs.getString("EXP_DATE"));
quantity = rs.getString("QUANTITY");
noArt = checkNullAndTrim(rs.getString("NO_ART"));
locCode = rs.getString("LOC_CODE");
palletNo = rs.getString("LOC_CODE");
lotSl = rs.getString("LOT_SL");
lotNo = rs.getString("LOT_NO");
itemCode = rs.getString("ITEM_CODE");
lineNo = checkNullAndTrim(rs.getString("LINE_NO"));
refId = rs.getString("TRAN_ID");
lockCode = rs.getString("LOCK_CODE");
ArrayList<HashMap<String, String>> holdStockList = new ArrayList<HashMap<String,String>>();
HashMap<String, String> damageHoldStockLMap = new HashMap<String, String>();
damageHoldStockLMap.put("PALLET_NO", locCode);
damageHoldStockLMap.put("SITE_CODE", siteCode);
damageHoldStockLMap.put("LOT_SL", lotSl);
damageHoldStockLMap.put("LOT_NO", lotNo);
damageHoldStockLMap.put("ITEM_CODE", itemCode);
damageHoldStockLMap.put("LOCK_CODE", lockCode);
holdStockList.add(damageHoldStockLMap);
palletStatus = getPalletStatus(palletNo, siteCode, holdStockList,lockCode,conn);
System.out.println("palletStatus for AWMS :"+palletStatus);
palletNo = palletNo.charAt(palletNo.trim().length()-1)=='Q'?palletNo.substring(0,palletNo.trim().length()-1):palletNo;
System.out.println("Pallet No After removing Q: "+palletNo);
HashMap<String, String> awmsMap = new HashMap<String, String>();
awmsMap.put("ITEM_CODE", itemCode);
awmsMap.put("REF_ID", refId);
awmsMap.put("REF_SER", tranRefSer);
awmsMap.put("TRAN_DATE", checkNullAndTrim(String.valueOf(today)));
awmsMap.put("QTY_PER_ART", qtyPerArt);
awmsMap.put("LOT_NO", lotNo);
awmsMap.put("LOT_SL", lotSl);
awmsMap.put("QUANTITY", noArt);
awmsMap.put("TOTAL_QTY", quantity);
awmsMap.put("PALLET_NO", palletNo);
awmsMap.put("LINE_NO", lineNo);
awmsMap.put("UNIT", unit);
awmsMap.put("FAMILY_GRP", "");
awmsMap.put("TRAN_ID", "");
awmsMap.put("IN_OUT", "S");
awmsMap.put("EXP_DATE", expiryDate);
awmsMap.put("MFG_DATE", mfgDate);
awmsMap.put("PALLET_STATUS", palletStatus);
awmsMap.put("MSG_STAT", "N");
if(damageLocArryKList.contains(lockCode.trim())){
lockStat = "DAMAGE";
}
else if(holdLocArryKList.contains(lockCode.trim())){
lockStat = "HOLD";
}
awmsMap.put("LOCK_STAT", lockStat);
awmsMap.put("ERR_COD", "");
awmsMap.put("ERR_DESC", "");
awmsMap.put("QC_TYPE", "");
awmsMap.put("TRANS_DT_ACK", "");
awmsMap.put("STRO_PREF", "");
awmsIntrArrList.add(awmsMap);
System.out.println("AWMS HashMap:"+awmsMap);
}
System.out.println("AWMS Interface List:"+awmsIntrArrList);
connUtil.updateAwmsInterface(awmsIntrArrList, siteCode, conn);
}
catch(SQLException se)
{
System.out.println("SQLException : StatusChange :" +se.getMessage());
try
{
pstmt.close();
rs.close();
conn.rollback();
}
catch(Exception se1){}
throw new ITMException(se);
}
catch(Exception e)
{
System.out.println("Exception :StatusChange :"+e.getMessage());
try
{
pstmt.close();
rs.close();
conn.rollback();
}
catch(Exception e1){}
throw new ITMException(e);
}
finally{
try{
conn.commit();
pstmt.close();
rs.close();
conn.close();
}
catch (Exception e) {
System.out.println("Error in Status Change : "+e.getMessage());
}
}
return null;
}
private String getPalletStatus(String palletNo,String siteCode,ArrayList<HashMap<String, String>> damageStockList, String lockCode, Connection conn) throws SQLException
{
String invStat="", sqlStr = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
ArrayList<HashMap<String, String>> stockList = new ArrayList<HashMap<String,String>>();
String palletStatus = "F";
DistCommon distComm = new DistCommon();
invStat = distComm.getDisparams("999999","AWMS_LOC_INVSTAT",conn);
invStat = invStat.replace(",", "','");
invStat = "'"+invStat+"'";
System.out.println("AWMS INVSTAT in getPalletStatus: "+invStat);
System.out.println("Inside getPalletStatus...........");
try
{
sqlStr = "SELECT LOC_CODE,ITEM_CODE,LOT_NO,LOT_SL,SITE_CODE FROM STOCK WHERE QUANTITY > 0 "
+"AND LOC_CODE = ? AND SITE_CODE = ? AND INV_STAT IN ("+invStat+")";
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1, palletNo);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
HashMap<String,String> stockHashMap = new HashMap<String, String>();
stockHashMap.put("PALLET_NO", rs.getString("LOC_CODE"));
stockHashMap.put("SITE_CODE", rs.getString("SITE_CODE"));
stockHashMap.put("LOT_SL", rs.getString("LOT_SL"));
stockHashMap.put("LOT_NO", rs.getString("LOT_NO"));
stockHashMap.put("ITEM_CODE", rs.getString("ITEM_CODE"));
stockHashMap.put("LOCK_CODE", lockCode);
stockList.add(stockHashMap);
}
System.out.println("AWMS Stock List:"+stockList);
for(Iterator<HashMap<String, String>> iter = stockList.iterator();iter.hasNext();)
{
System.out.println("Checking...........");
HashMap<String, String> stock = iter.next();
if(!damageStockList.contains(stock))
{
palletStatus = "P";
break;
}
}
} catch (SQLException e)
{
e.printStackTrace();
throw e;
}
return palletStatus;
}
private String checkNullAndTrim(String str)
{
if(str == null)
{
str = "";
}
return str.trim();
}
}
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