Commit 177e4aff authored by steurwadkar's avatar steurwadkar

Stock webservice comonents commit on 03-10-16


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@103556 ce508802-f39f-4f6c-b175-0d175dae99d5
parent d1c68100
package ibase.webitm.bean.wms;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "stock")
public class Stock implements Serializable
{
private static final long serialVersionUID = 1L;
private String sku="";
private int stockqty=0;
private int pendpoqty=0;
public Stock(){}
public Stock (String sku, int stockQty, int pendPOQty)
{
this.sku = sku;
this.stockqty = stockQty;
this.pendpoqty = pendPOQty;
System.out.println("Stock getter setter sku ["+this.sku+"] stockQty ["+this.stockqty+"] pendPOQty ["+this.pendpoqty+"]");
}
public String getSku() {
return sku;
}
@XmlElement
public void setSku(String sku) {
this.sku = sku;
}
public int getStockqty() {
return stockqty;
}
@XmlElement
public void setStockqty(int stockqty) {
this.stockqty = stockqty;
}
public int getPendpoqty() {
return pendpoqty;
}
@XmlElement
public void setPendpoqty(int pendpoqty) {
this.pendpoqty = pendpoqty;
}
}
package ibase.webitm.ejb.wms;
import ibase.webitm.bean.wms.Stock;
import ibase.webitm.ejb.ValidatorEJB;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class WMSWebServiceDao extends ValidatorEJB
{
boolean isError = false;
public List<Stock> getSKUStockData(String itemParnt, String colorCode)
{
Connection conn = null;
List<Stock> stockList = new ArrayList<Stock>();
String stockSQL = "",sql = "";
Stock stock = null;
PreparedStatement pstmt = null, pstmt1 = null;
ResultSet rs = null, rs1 = null;
try
{
System.out.println("itemParnt["+itemParnt+"] colorcode ["+colorCode+"]");
conn = getConnection();
stockSQL = "SELECT ITEM_CODE FROM ITEM WHERE ITEM_PARNT = ? AND PHY_ATTRIB_2 = ?";
pstmt = conn.prepareStatement(stockSQL);
pstmt.setString(1, itemParnt);
pstmt.setString(2, colorCode);
rs = pstmt.executeQuery();
while(rs.next())
{
int stockQty = 0, pendPOQty = 0;
String sku = rs.getString("ITEM_CODE");
sql = " SELECT S.ITEM_CODE, SUM(S.QUANTITY - S.ALLOC_QTY - CASE WHEN HOLD_QTY IS NULL THEN 0 ELSE HOLD_QTY END) AS STOCK_QTY"
+ " FROM STOCK S WHERE S.INV_STAT IN ('ACTPK','CASPK') AND S.ITEM_CODE = ? GROUP BY S.ITEM_CODE HAVING SUM(S.QUANTITY - S.ALLOC_QTY - CASE WHEN HOLD_QTY IS NULL THEN 0 ELSE HOLD_QTY END) > 0";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,sku);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
stockQty = rs1.getInt("STOCK_QTY");
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
sql = " SELECT PD.ITEM_CODE, SUM(PD.QUANTITY - PD.DLV_QTY) AS PEND_PO_QTY FROM PORDER P,PORDDET PD"
+ " WHERE P.PURC_ORDER = PD.PURC_ORDER AND P.CONFIRMED = 'Y' AND P.STATUS NOT IN ('C','X') AND PD.STATUS NOT IN('C','X')"
+ " AND PD.ITEM_CODE = ? GROUP BY PD.ITEM_CODE HAVING SUM(PD.QUANTITY - PD.DLV_QTY) > 0";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1,sku);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
pendPOQty = rs1.getInt("PEND_PO_QTY");
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
stock = new Stock(sku,stockQty,pendPOQty);
stockList.add(stock);
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch (Exception e)
{
isError = true;
System.out.println("StockWebServiceDao.getSKUStockData()");
e.printStackTrace();
}
finally
{
try
{
if(isError)
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(conn != null && !conn.isClosed())
{
conn.close();
conn = null;
}
}
}
catch(Exception e)
{
System.out.println("StockWebServiceDao.getSKUStockData()");
e.printStackTrace();
}
}
return stockList;
}
}
package ibase.webitm.servlet.wms;
import ibase.webitm.bean.wms.Stock;
import ibase.webitm.ejb.wms.WMSWebServiceDao;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
@Path("/WebService")
public class WMSWebService
{
WMSWebServiceDao wsDao = new WMSWebServiceDao();
@GET
@Path("/skus")
@Produces({"application/xml", "application/json"})
public List<Stock> getStockData(@QueryParam("itemParnt") String itmeParnt, @QueryParam("colorCode") String ColorCode)
{
return wsDao.getSKUStockData(itmeParnt,ColorCode);
}
}
package ibase.webitm.servlet.wms;
import ibase.webitm.utility.wms.WebServiceAuthenticationService;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import oracle.net.ano.AuthenticationService;
public class WebServiceAuthenticationFilter implements javax.servlet.Filter
{
public static final String AUTHENTICATION_HEADER = "Authorization";
@Override
public void doFilter(ServletRequest request, ServletResponse response,FilterChain filter) throws IOException, ServletException
{
if (request instanceof HttpServletRequest)
{
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
String authCredentials = httpServletRequest.getHeader(AUTHENTICATION_HEADER);
WebServiceAuthenticationService authenticationService = new WebServiceAuthenticationService();
boolean authenticationStatus = authenticationService.authenticate(authCredentials);
if (authenticationStatus)
{
filter.doFilter(request, response);
}
else
{
if (response instanceof HttpServletResponse)
{
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.getWriter().println("Please enter correct username and password!");
httpServletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
}
}
}
}
@Override
public void destroy() {
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
}
\ No newline at end of file
package ibase.webitm.utility.wms;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
import java.util.StringTokenizer;
public class WebServiceAuthenticationService
{
public boolean authenticate(String authCredentials)
{
boolean authenticationStatus = false;
URL url = null;
String responseStr = "";
if (null == authCredentials)
{
return false;
}
final String encodedUserPassword = authCredentials.replaceFirst("Basic"+ " ", "");
String usernameAndPassword = null;
try
{
System.out.println("@@@@@@@@ WebService Authentication started @@@@@@@@");
byte[] decodedBytes = Base64.getDecoder().decode(encodedUserPassword);
usernameAndPassword = new String(decodedBytes, "UTF-8");
final StringTokenizer tokenizer = new StringTokenizer(usernameAndPassword, ":");
final String username = tokenizer.nextToken();
final String password = tokenizer.nextToken();
url = new URL( "http://localhost:9090/ibase/AuthenticateServlet?USER="+username+"&PASSWORD="+password+"");
System.out.println("Calling authentication servlet URL["+url+"]");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
responseStr = in.readLine();
System.out.println("responseStr["+responseStr+"]");
if(responseStr.length() == 0)
{
System.out.println("User is authenticated!");
authenticationStatus = true;
}
else if(responseStr.length() > 0)
{
System.out.println("UnAuthorized webservice access!");
authenticationStatus = false;
}
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println("authenticationStatus return is ["+authenticationStatus+"]");
System.out.println("@@@@@@@@ WebService Authentication ended @@@@@@@@");
return authenticationStatus;
}
}
\ 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