Commit 2286e8b9 authored by smisra's avatar smisra

resolves error related to flesh result


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@91482 ce508802-f39f-4f6c-b175-0d175dae99d5
parent a742477d
......@@ -6,8 +6,10 @@
package ibase.webitm.ejb.mfg;
import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.MasterStatefulLocal;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
......@@ -21,11 +23,19 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
......@@ -179,9 +189,9 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
// For qcorder number
sql = "SELECT QORDER_NO, STATUS FROM QC_ORDER WHERE LOT_NO = ? AND LOT_SL = ? ";
pstmt = conn.prepareStatement( sql );
pstmt.setString(1, lotNo);
pstmt.setString(2, lotSl);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lotNo);
pstmt.setString(2,lotSl);
rs = pstmt.executeQuery();
if(rs.next())
{
......@@ -431,7 +441,6 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
return retStr;
}
public String process(Document headerDom, Document detailDom, String windowName, String xtraParams) throws RemoteException,ITMException
{
String qcOrderNo = "";
......@@ -451,19 +460,28 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
int updCnt = 0;
final int VALUE_ONE = 1;
final int VALUE_ZERO = 0;
String specRef = "";
String routeCode = "";
String sql = "";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Date qorderDate = null;
String qorderDate1 = "";
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
String forcedFlag = "";
String childNodeName = "";
String retString = "";
GenericUtility genutility=null;
int childNodeListLength = 0;
int ctr=0;
int rowcnt = 0;
SimpleDateFormat sdf=null;
String errString = "";
ConnDriver connDriver = new ConnDriver();
......@@ -471,6 +489,7 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
try
{
genutility = GenericUtility.getInstance();
conn = connDriver.getConnectDB( "DriverITM" );
connDriver = null;
parentNodeList = detailDom.getElementsByTagName( "Detail2" );
......@@ -481,6 +500,7 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
{
childNode = childNodeList.item( ctr );
childNodeName = childNode.getNodeName();
sdf=new SimpleDateFormat(genutility.getApplDateFormat());
if( childNodeName.equals("qorder_no"))
{
qcOrderNo = genericUtility.getColumnValue( "qorder_no", detailDom );
......@@ -497,21 +517,27 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
System.out.println("lotSl ..........."+ lotSl);
// To retrieve site code from qc_order
sql = "SELECT SITE_CODE FROM QC_ORDER WHERE QORDER_NO = ? AND LOT_NO = ? AND LOT_SL = ? ";
sql = "SELECT SITE_CODE,SPEC_REF,ROUTE_CODE FROM QC_ORDER WHERE QORDER_NO = ? AND LOT_NO = ? AND LOT_SL = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, qcOrderNo);
pstmt.setString(2, lotNo);
pstmt.setString(3, lotSl);
rs = pstmt.executeQuery();
while(rs.next())
if(rs.next())
{
siteCode = rs.getString(1);
siteCode = rs.getString("SITE_CODE");
specRef = rs.getString("SPEC_REF");
routeCode = rs.getString("ROUTE_CODE");
System.out.println("Site CODE is ......."+siteCode);
System.out.println("+++++spec ref++++"+specRef);
System.out.println("+++++r++++"+routeCode);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if (childNodeName.equals("item_code"))
{
......@@ -536,6 +562,23 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
rs = null;
pstmt.close();
pstmt = null;
sql = "select qorder_date from qc_order where site_code = ? and item_code = ? and lot_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, itemCode);
pstmt.setString(3, lotNo);
rs = pstmt.executeQuery();
while(rs.next())
{
qorderDate = rs.getDate("qorder_date");
qorderDate1 = sdf.format(qorderDate);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
if (childNodeName.equals("apprv_rej"))
{
......@@ -555,6 +598,8 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
conn.rollback();
}
}
if(!aprvReject.equals("A"))
{
if (childNodeName.equals("reason_code"))
{
System.out.println("reason_code");
......@@ -571,6 +616,32 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
return errString;
}
}
if ( aprvReject != null && aprvReject.trim().length() != 0 && aprvReject.equals("R") )
{
if ( reasonCode != null )
{
sql = "SELECT COUNT(1) FROM gencodes WHERE fld_value = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,reasonCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt(1)==0)
{
errString = itmDBAccessEJB.getErrorString("","VTIRCE","","",conn);
return errString;
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("^^^Reason code should be exist in gencodes valid from ^^^^^^");
}
}
}
}
if (childNodeName.equals("flesh_result"))
{
......@@ -578,27 +649,37 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
fResult = genericUtility.getColumnValue("flesh_result", detailDom );
System.out.println("fResult ..........."+ fResult);
// to update when reason code, flesh result are empty and approve reject = 'A'
if(fResult == null && reasonCode == null && aprvReject.equals("A"))
//added by chitranjan pandey emp_code__qcaprv to update when reason code, flesh result are empty and approve reject = 'A'
if(aprvReject.equals("A"))
{
updateSql = "UPDATE QC_ORDER SET LOC_CODE__APRV = ? ,QUANTITY = ? , QTY_REJECTED = ? , QTY_PASSED = ? , STATUS = 'C' WHERE QORDER_NO = ? ";
System.out.println("if apprv rej is A");
updateSql = "UPDATE QC_ORDER SET LOC_CODE__APRV = ? ,QUANTITY = ? , QTY_REJECTED = ? , QTY_PASSED = ? ,EMP_CODE__QCAPRV = ? WHERE QORDER_NO = ? ";
pstmt = conn.prepareStatement(updateSql);
pstmt.setString(1, locCodeAprv);
pstmt.setInt(2, VALUE_ONE);
pstmt.setInt(3, VALUE_ZERO);
pstmt.setInt(4, VALUE_ONE);
pstmt.setString(5, qcOrderNo);
pstmt.setString(5, genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode"));
pstmt.setString(6, qcOrderNo);
updCnt = pstmt.executeUpdate();
System.out.println("!!! "+updCnt+"row updated in the case of flesh result & reason are empty & approve reject value is 'A'!!!");
pstmt.close();
pstmt = null;
if(updCnt > 0)
{
conn.commit();
System.out.println("!! IF REASON CODE FRESULT IS NULL Updated SUCCESSFULLY");
}
}
if(fResult != null && fResult.trim().length()!= 0)
{
// retrieves 'expected result' to compare with the flesh result
sql = "SELECT EXPECTED_RESULT FROM QCITEM_SPEC_DET WHERE ITEM_CODE = ? ";
sql = "SELECT EXPECTED_RESULT FROM QCITEM_SPEC_DET WHERE ITEM_CODE = ? AND SPEC_REF = ? AND ROUTE_CODE = ?";
System.out.println("After Is Not Null Expected Result ");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, itemCode);
pstmt.setString(2, specRef);
pstmt.setString(3, routeCode );
rs = pstmt.executeQuery();
if(rs.next())
{
......@@ -618,13 +699,15 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
System.out.println("!!! Approved !!!");
// updates 'Qc Order' as approved 'flesh result' exists between 'expected result'
updateSql = "UPDATE QC_ORDER SET LOC_CODE__APRV = ? , QUANTITY = ? ,QTY_REJECTED = ? , QTY_PASSED = ? , STATUS = 'C' WHERE QORDER_NO = ? ";
updateSql = "UPDATE QC_ORDER SET LOC_CODE__APRV = ? , QUANTITY = ? ,QTY_REJECTED = ? , QTY_PASSED = ? ,EMP_CODE__QCAPRV = ? WHERE QORDER_NO = ? ";
System.out.println("qc order appproved if exist between flesh flesh result^^");
pstmt = conn.prepareStatement(updateSql);
pstmt.setString(1, locCodeAprv);
pstmt.setInt(2, VALUE_ONE);
pstmt.setInt(3, VALUE_ZERO);
pstmt.setInt(4, VALUE_ONE);
pstmt.setString(5, qcOrderNo);
pstmt.setString(5, genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode"));
pstmt.setString(6, qcOrderNo);
updCnt = pstmt.executeUpdate();
System.out.println("!!! "+updCnt+"row updated in the case of Approved after checking the boundary !!!");
}
......@@ -633,22 +716,25 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
System.out.println("!!! Rejected !!!");
// reason code can't be empty if 'Qc Order' is rejected
if ( reasonCode == null || reasonCode == "")
{
System.out.println("*** Automatic rejection... so reasonCode should not be empty ***");
errString = itmDBAccessEJB.getErrorString("","VTRCE","","",conn);
return errString;
}
// if ( reasonCode == null || reasonCode == "")
// {
// System.out.println("*** Automatic rejection... so reasonCode should not be empty ***");
// errString = itmDBAccessEJB.getErrorString("","VTRFRCE","","",conn);
// return errString;
// }
// updates 'Qc Order' as rejected if 'flesh result' not exists between 'expected result'
updateSql = "UPDATE QC_ORDER SET REJECTION_CODE = ? , LOC_CODE__REJ = ? , QUANTITY = ? ,QTY_REJECTED = ? , QTY_PASSED = ? , STATUS = 'C' WHERE QORDER_NO = ? ";
updateSql = "UPDATE QC_ORDER SET REJECTION_CODE = ? , LOC_CODE__REJ = ? , QUANTITY = ? ,QTY_REJECTED = ? , QTY_PASSED = ? ,EMP_CODE__QCAPRV = ? WHERE QORDER_NO = ? ";
System.out.println("^^^qc order update after rejection due to out of range flesh result^^");
pstmt = conn.prepareStatement(updateSql);
pstmt.setString(1, reasonCode);
pstmt.setString(2, locCodeRej);
pstmt.setString(2,locCodeRej);
pstmt.setInt(3, VALUE_ONE);
pstmt.setInt(4, VALUE_ONE);
pstmt.setInt(5, VALUE_ZERO);
pstmt.setString(6, qcOrderNo);
pstmt.setString(6, genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode"));
pstmt.setString(7, qcOrderNo);
updCnt = pstmt.executeUpdate();
System.out.println("!!! "+updCnt+"row updated in the case of Rejected after checking the boundary !!!");
}
......@@ -665,11 +751,21 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
}
else if(expectedResult == null || expectedResult == "")
{
System.out.println("!! There is no expected result value with at this item code::"+itemCode+" !!");
System.out.println("There Is No expected result against this value");
errString = itmDBAccessEJB.getErrorString("","VTRFRCE","","",conn);
return errString;
}
}
}
} //for
}
if( qcOrderNo != null && qcOrderNo.trim().length() > 0)
{
errString = confirmQc("qcorder_new",qcOrderNo,xtraParams,forcedFlag, conn);
System.out.println("retString-------"+errString);
}
} // try
catch(Exception e)
{
......@@ -691,7 +787,99 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
System.out.println("errString: "+errString);
return errString;
} //process
//Method for confirm qcOrder and update stock.
private String confirmQc(String businessObj, String qcOrderNo,String xtraParams,String forcedFlag, Connection conn) throws ITMException
{
String methodName = "gbf_post";
String compName = "";
String retString = "";
String serviceCode = "";
String serviceURI = "";
String actionURI = "";
String sql = "";
//Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
try
{
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
//methodName = "";
System.out.println("++++++++++++++++==process confirmQC for qc order=== +++++++++++ 3 +");
actionURI = "http://NvoServiceurl.org/" + methodName;
System.out.println("Action url"+actionURI);
System.out.println("in qc ");
System.out.println(businessObj+"---"+qcOrderNo+"---"+xtraParams+"---");
sql = "SELECT SERVICE_CODE,COMP_NAME FROM SYSTEM_EVENTS WHERE OBJ_NAME = ? AND EVENT_CODE = 'pre_confirm' ";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1,businessObj);
rs = pStmt.executeQuery();
if ( rs.next() )
{
serviceCode = rs.getString("SERVICE_CODE");
compName = rs.getString("COMP_NAME");
}
System.out.println("===========serviceCode========= = "+serviceCode+" compName "+compName);
sql = "SELECT SERVICE_URI,METHOD_NAME FROM SYSTEM_EVENT_SERVICES WHERE SERVICE_CODE = ? ";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1,serviceCode);
rs = pStmt.executeQuery();
if ( rs.next() )
{
serviceURI = rs.getString("SERVICE_URI");
methodName=rs.getString("METHOD_NAME");
}
System.out.println("serviceURI = "+serviceURI+" compName = "+compName);
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(serviceURI));
call.setOperationName( new javax.xml.namespace.QName("http://NvoServiceurl.org", methodName ) );
call.setUseSOAPAction(true);
call.setSOAPActionURI(actionURI);
System.out.println("call in confirmQC +++++=== 4==========++++++++++=");
Object[] aobj = new Object[4];
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "component_name"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "tran_id"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "xtra_params"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( new javax.xml.namespace.QName("http://NvoServiceurl.org", "forced_flag"), XMLType.XSD_STRING, ParameterMode.IN);
aobj[0] = new String(compName);
aobj[1] = new String(qcOrderNo);
aobj[2] = new String(xtraParams);
aobj[3] = new String(forcedFlag);
call.setReturnType(XMLType.XSD_STRING);
retString = (String)call.invoke(aobj);
System.out.println("Return string from NVO is:==>["+retString+"]");
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if (pStmt != null )
{
pStmt.close();
pStmt = null;
}
if( conn != null ){
conn.close();
conn = null;
}
}
catch(Exception e)
{}
}
return retString;
}
// To check the flesh Result value whether it exists with in the expected result region
boolean isBetween(String fResult, String eResult)
......@@ -699,8 +887,10 @@ public class QcOrderAprv extends ProcessEJB implements QcOrderAprvLocal ,QcOrde
double fleshResult = 0.0, eResultStart = 0.0, eResultEnd = 0.0;
String[] value = eResult.split("-");
fleshResult = Double.parseDouble(fResult);
System.out.println();
eResultStart = Double.parseDouble(value[0]);
eResultEnd = Double.parseDouble(value[1]);
System.out.println("process in inbetween method+++++++++++====6====+++++++++++++++=");
// compare the region
if((fleshResult >= eResultStart)&&(fleshResult <= eResultEnd))
......
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