Commit ff8e609d authored by dpawar's avatar dpawar

handle error and change sql query


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@94356 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 74773974
......@@ -9,6 +9,7 @@ import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants;
......@@ -27,7 +28,9 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
WorkOrderRouteAlt workOrderAltObj=WorkOrderRouteAlt.getInstance();
String loginSiteCode="";
int ll_ctr=0;
ArrayList <String> as_tool=new ArrayList<String>();
Map <Integer,String> as_tool=new TreeMap<Integer,String>();
Map <Integer,Integer> al_toolsr=new TreeMap<Integer,Integer>();
boolean isError=false;
public String confirm(String tranId, String xtraParams, String forcedFlag) throws RemoteException,ITMException
{
......@@ -50,6 +53,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
}
private String worderRouteAltConfirm(String tranId,String xtraParams,String forcedFlag)
{
isError=false;
tranId=tranId==null ? "" :tranId.trim();
ResultSet rs=null;
Connection conn=null;
......@@ -89,6 +93,11 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
}
returnString=gbfRetrieveWoRouteAlt(tranId,xtraParams,conn);
System.out.println("Return String from gbfRetrieveWoRouteAlt---->>["+returnString+"]");
if(isError){
conn.rollback();
errString = itmdbAccess.getErrorString("", "VTWRANC", "", "", conn);
return errString;
}
if("VTMCLHDR".equalsIgnoreCase(returnString)){
errString = itmdbAccess.getErrorString("", "VTMCLHDR", "", "", conn);
conn.rollback();
......@@ -99,9 +108,10 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
conn.rollback();
return errString;
}
if(returnString.length()== 0){
conn.commit();
errString = itmdbAccess.getErrorString("", "VTNCONFT", "", "", conn);
errString = itmdbAccess.getErrorString("", "VTWRACS", "", "", conn);
return errString;
}
......@@ -178,6 +188,8 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
errcode = gbfConfirmWoRouteAlt(amdNo,conn);
System.out.println("Return errCode from gbfConfirmWoRouteAlt------>>["+errcode+"]");
if(errcode.length() == 0){
sql="select work_order,operation,mc_code from worder_route_alt where amd_no= ?";
......@@ -202,12 +214,12 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
// update worder_route and worder_route_alt table
cnt =updateOnConfirmation(conn,updateParamList);
System.out.println("Return int from updateOnConfirmation--->>["+cnt+"]");
if (cnt > 0){
/*if (cnt > 0){
conn.commit();
}
else{
conn.rollback();
}
}*/
}
......@@ -217,6 +229,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
catch(Exception e){
System.out.println("Exception in gbfRetrieveWoRouteAlt-----");
e.printStackTrace();
isError=true;
}
......@@ -243,21 +256,18 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
HashMap mcLoadMap=new HashMap();
HashMap mcLoadDetMap=new HashMap();
try{
sql="select amd_date,work_order,operation,work_ctr,mc_code,mc_code__o where amd_no = ?";
sql="select amd_date,work_order,operation,work_ctr,mc_code,mc_code__o from worder_route_alt where amd_no = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, amdNo);
rs=pstmt.executeQuery();
if(rs.next()){
admDate=rs.getTimestamp(1);
workorder=rs.getString(2); //rs.getString(2);
workorder=checkNull(rs.getString(2));
operation=rs.getInt(3);
workctr=rs.getString(4);
mcCode=rs.getString(5);
mcCodeOld=rs.getString(6);
workctr=checkNull(rs.getString(4));
mcCode=checkNull(rs.getString(5));
mcCodeOld=checkNull(rs.getString(6));
}
workorder=checkNull(workorder);
mcCode=checkNull(mcCode);
mcCodeOld=checkNull(mcCodeOld);
System.out.println("mcCode------->>["+mcCode+"]");
System.out.println("mcCodeOld------->>["+mcCodeOld+"]");
rs.close();
......@@ -389,7 +399,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
pstmt.setString(2, mcCodeOld);
pstmt.setString(3, workorder);
pstmt.setInt(4, operation);
pstmt.setTimestamp(5, loadDate); //check if timestamp date is compare or not............@#@#@#@
pstmt.setTimestamp(5, loadDate);
rs=pstmt.executeQuery();
if(rs.next()){
startTime=checkNull(rs.getString(1));
......@@ -589,6 +599,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
pstmt.close();
pstmt=null;
if(startRow > 1){
for(int i=startRow; i > 1;i--){
sql="select work_calendar.shift,work_calendar.day_no,work_calendar.work_date,"
+ "workshft.in_time,workshft.out_time from work_calendar,workshft"
+ " where ( work_calendar.site_code = workshft.site_code ) and"
......@@ -601,8 +612,8 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
pstmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
pstmt.setString(1, siteCode);
pstmt.setTimestamp(2, loadDate);
pstmt.setTimestamp(3, loadDate);
pstmt.setString(4, shift);
/*pstmt.setTimestamp(3, loadDate);
pstmt.setString(4, shift);*/
rs=pstmt.executeQuery();
while(rs.next()){
current=checkNull(rs.getString(1));
......@@ -612,8 +623,27 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
}
}
}
} //end startRow
if(rs!=null)
rs.beforeFirst();
else{
sql="select work_calendar.shift,work_calendar.day_no,work_calendar.work_date,"
+ "workshft.in_time,workshft.out_time from work_calendar,workshft"
+ " where ( work_calendar.site_code = workshft.site_code ) and"
+ "( work_calendar.day_no = workshft.day_no ) and ( work_calendar.shift = workshft.shift ) and"
+ "( ( work_calendar.working = 'Y' ) and ( work_calendar.confirmed = 'Y' ) and"
+ " ( work_calendar.site_code = ? ) and ( work_calendar.work_date >= ? )) "
+ "order by work_calendar.site_code asc,work_calendar.work_date asc,workshft.in_time asc";
pstmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
pstmt.setString(1, siteCode);
pstmt.setTimestamp(2, loadDate);
/*pstmt.setTimestamp(3, loadDate);
pstmt.setString(4, shift);*/
rs=pstmt.executeQuery();
}
// now we have the calEndar in order just allocate For the no. of shifts
for(int i=1; i<=noOfShiftsActual;i++){
......@@ -654,10 +684,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
machineLoadMap.put("operation_level", operLevel);
machineLoadMap.putAll(machToolMap);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
error=gbfToolAlloc(conn, machineLoadMap,1);
System.out.println("Return string from gbfToolAlloc----->>["+error+"]");
......@@ -668,44 +695,18 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
continue;
}
sql="SELECT site_code,load_date,work_ctr,mc_code,day_no,shift,capacity_inqty,loaded_inqty,"
+ "shift_start_time,shift_end_time,available_time,loaded__intime,work_order "
+ "FROM machine_load WHERE ( load_date >= sysdate ) AND ( site_code = ? )";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, loginSiteCode);
rs=pstmt.executeQuery();
if(rs.next()){
mcLoadMap.put("site_code", checkNull(rs.getString(1)));
mcLoadMap.put("scheduled_date", rs.getTimestamp(2));
mcLoadMap.put("work_centre", checkNull(rs.getString(3)));
mcLoadMap.put("mc_code", checkNull(rs.getString(4)));
mcLoadMap.put("day_no", checkNull(rs.getString(5)));
mcLoadMap.put("shift", checkNull(rs.getString(6)));
mcLoadMap.put("capacity_inqty", rs.getDouble(7));
mcLoadMap.put("loaded_inqty", rs.getDouble(8));
mcLoadMap.put("shift_start_time", checkNull(rs.getString(9)));
mcLoadMap.put("shift_end_time", checkNull(rs.getString(10)));
mcLoadMap.put("available_time", rs.getInt(11));
mcLoadMap.put("loaded__intime", rs.getInt(12));
mcLoadMap.put("work_order", checkNull(rs.getString(13)));
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
//error in finding record in 'machine_load'.
if(gbfMachineLoadUpdate(conn,mcLoadMap,machineLoadMap,1) == -1){
if(gbfMachineLoadUpdate(conn,machineLoadMap,1) == -1){
return "VTMCLHDR";
}else if(gbfMachineLoadDetUpdate(conn,mcLoadMap,machineLoadMap,1) == -1){
return "VTMCDET";
}
}//end for loop
rs.close();
rs=null;
pstmt.close();
pstmt=null;
......@@ -713,6 +714,8 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
}catch(Exception e){
System.out.println("Exception in gbfConfirmWoRouteAlt----- ");
e.printStackTrace();
errorString="Error";
isError=true;
}
return errorString;
......@@ -720,13 +723,14 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
}
/* Long(Right('00' + String((astruct.al_available_time - Mod(astruct.al_available_time,60))/60),2) + &
Right('00' + String(mod(astruct.al_available_time,60)),2))*/
private int gbfMachineLoadUpdate(Connection conn,Map mcLoadMapL,Map machineLoadMapL,int flag)
private int gbfMachineLoadUpdate(Connection conn,Map machineLoadMapL,int flag)
{
ResultSet rs1=null;
PreparedStatement pstmt=null;
int availableTime=0,cnt=0;
String sql="",availTime="",availTime1="";
cnt=mcLoadMapL.size();
//cnt=mcLoadMapL.size();
try{
//The below formula not understand still migrated(values always zero).
......@@ -734,9 +738,29 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
availTime=availTime.substring(availTime.length()-2,availTime.length());
availTime1="00"+availableTime % 60;
availableTime=Integer.parseInt(availTime+availTime1);
if(cnt<=0){
return -1;
}else{
sql="insert into machine_load (site_code,load_date,work_ctr,mc_code,day_no,shift,capacity_inqty,"
+ "loaded_inqty,shift_start_time,shift_end_time,available_time,loaded__intime,work_order)"
+ " values (?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, machineLoadMapL.get("site_code").toString());
pstmt.setTimestamp(2, (Timestamp) machineLoadMapL.get("scheduled_date"));
pstmt.setString(3, machineLoadMapL.get("workcentre").toString());
pstmt.setString(4, machineLoadMapL.get("mc_code").toString());
pstmt.setString(5, machineLoadMapL.get("day_no").toString());
pstmt.setString(6, machineLoadMapL.get("shift").toString());
pstmt.setDouble(7, Double.parseDouble(machineLoadMapL.get("capacity_inqty").toString()));
pstmt.setDouble(8, Integer.parseInt(machineLoadMapL.get("loaded_inqty").toString()));
pstmt.setString(9, machineLoadMapL.get("shift_start_time").toString());
pstmt.setString(10, machineLoadMapL.get("shift_end_time").toString());
pstmt.setInt(11, availableTime);
pstmt.setInt(12, Integer.parseInt(machineLoadMapL.get("loaded_intime").toString()));
pstmt.setString(13, machineLoadMapL.get("work_order").toString());
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
System.out.println("In gbfMachineLoadUpdate flag---->>["+flag+"]");
if(flag==2){
sql="Insert Into machine_load_crp(site_code,load_date,work_ctr,mc_code,day_no,shift,"
......@@ -772,25 +796,56 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
} //end flag cond.
if(as_tool.size() > 0){
for(int j=0;j<as_tool.size();j++)
{
sql="insert into toolplan(load_date,shift,time_fr,time_to,tool_code,tool_sr,mc_code,work_ctr,"
+ "work_order,proc_code,available_time,loaded__intime) values (?,?,?,?,?,?,?,?,?,?,?,?)";
//--------------code pending-----------------------------------------------
pstmt=conn.prepareStatement(sql);
pstmt.setTimestamp(1, (Timestamp) machineLoadMapL.get("scheduled_date"));
pstmt.setString(2, machineLoadMapL.get("shift").toString());
pstmt.setString(3, machineLoadMapL.get("shift_start_time").toString());//time_fr
pstmt.setString(4, machineLoadMapL.get("shift_end_time").toString());//time_to
pstmt.setString(5, as_tool.get(j));
pstmt.setInt(6, al_toolsr.get(j));
pstmt.setString(7, machineLoadMapL.get("mc_code").toString());
pstmt.setString(8, machineLoadMapL.get("workcentre").toString());
pstmt.setString(9, machineLoadMapL.get("work_order").toString());
pstmt.setString(10, machineLoadMapL.get("proc_code").toString());
pstmt.setInt(11, availableTime);
pstmt.setInt(12, Integer.parseInt(machineLoadMapL.get("loaded_intime").toString()));
pstmt.executeUpdate();
pstmt.close();
pstmt=null;
sql="Insert Into toolplan_crp(load_date,shift,mc_code,proc_code,work_ctr,tool_code,"
+ "tool_sr,time_fr,time_to,work_order) "
+ "Values()";
+ "Values(?,?,?,?,?,?,?,?,?,?,)";
pstmt=conn.prepareStatement(sql);
pstmt.setTimestamp(1, (Timestamp) machineLoadMapL.get("scheduled_date"));
pstmt.setString(2, machineLoadMapL.get("shift").toString());
pstmt.setString(3, machineLoadMapL.get("mc_code").toString());
pstmt.setString(4, machineLoadMapL.get("proc_code").toString());
pstmt.setString(5, machineLoadMapL.get("workcentre").toString());
pstmt.setString(6, as_tool.get(j));
pstmt.setInt(7, al_toolsr.get(j));
pstmt.setString(8, machineLoadMapL.get("shift_start_time").toString());//time_fr
pstmt.setString(9, machineLoadMapL.get("shift_end_time").toString());//time_to
pstmt.setString(10, machineLoadMapL.get("work_order").toString());
pstmt.executeUpdate();
pstmt=null;
//--------------code pending--------------------Need to be discuss------------
}
}
}catch(Exception e){
System.out.println("Exception in gbfMachineLoadUpdate method......");
e.printStackTrace();
return -1;
}
return 1;
......@@ -842,12 +897,18 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
// Returns 2 if tool cannot be allocated but it is necessary
private int gbfToolAlloc(Connection conn,HashMap machineLoadMap,int flag)
{
as_tool.clear();
ResultSet rs=null,rs1=null;
PreparedStatement pstmt=null,pstmt1=null;
double capacity=0;
String sql="",sql1="",errorString="",toolCode="",oldToolCode="",option="";
int availUnits=0,reqUnits=0,bookedUnits=0,units=0,cnt=0,countSrNo=0;
boolean isRecordFound=false;
Map <Integer,String> ls_tool=new TreeMap<Integer,String>();
Map<Integer,Integer> ll_cnt=new TreeMap<Integer,Integer>();
Map<Integer,Integer> ai_toolsr=new TreeMap<Integer,Integer>();
int ll_oldctr=0,ll_ctr=0,ll_count=0;
try{
sql="Select A.tool_code,B.req_units,A.capacity From MachineTools A,Toolitem B,Tool C"
......@@ -862,18 +923,17 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
while(rs.next()){
isRecordFound=true;
toolCode=checkNull(rs.getString(1));
reqUnits=rs.getInt(2);
capacity=rs.getDouble(3);
//check the nos of available units.
sql1="Select avail_units From Tool Where tool_code = ?";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, toolCode);
pstmt1.setString(1, ls_tool.get(ll_ctr));
rs1=pstmt1.executeQuery();
if(rs1.next()){
availUnits=rs1.getInt(1);
}
as_tool.add("");
rs1.close();
rs1=null;
pstmt1.close();
......@@ -884,28 +944,32 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
+ "tool_code = ? and alloc = '1'";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, machineLoadMap.get("proc_code").toString());
pstmt1.setString(2, toolCode);
pstmt1.setString(2, ls_tool.get(ll_ctr));
rs1=pstmt1.executeQuery();
int temp=0;
if(rs1.next()){
temp++;
option=checkNull(rs1.getString(1));
}
System.out.println("option for check length------->>["+option+"]");
if(option.length() <= 0){
if(temp == 0){
as_tool.put(ll_ctr,"");
return 0;
}
System.out.println("option for check length------->>["+option+"]");
rs1.close();
rs1=null;
pstmt1.close();
pstmt1=null;
//For Loop is for allocating units according to the units required.
oldToolCode=toolCode;
for(int i=1;i<=reqUnits;i++){
ll_oldctr = ll_ctr;
for(ll_count=1;ll_count<=reqUnits;ll_count++){
//check the number of units that have been booked already.
sql1="Select count(1) From Toolplan Where tool_code = ? and load_date = ? and "
+ "shift = ? and available_time = ?";
pstmt1=conn.prepareStatement(sql1);
pstmt1.setString(1, oldToolCode);
pstmt1.setString(1, ls_tool.get(ll_oldctr));
pstmt1.setTimestamp(2, (Timestamp)machineLoadMap.get("schedule"));
pstmt1.setString(3, machineLoadMap.get("shift").toString());
pstmt.setInt(4, 0);
......@@ -920,7 +984,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
//if the nos of units used are more than available then do not allocate tool
units = availUnits - bookedUnits;
if(units <= 0){
oldToolCode="";
as_tool.put(ll_oldctr,"");
//if option is 'C' then the tool is critical and must be allocated
//else skip that tool and select the next tool
if("C".equalsIgnoreCase(option)){
......@@ -942,10 +1006,11 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
return 2;
}else{ //end C/option cond.
break;
ll_ctr = ll_ctr - 1;
continue;
}
}//end unit cond.
ll_cnt.put(ll_count,0);
//ll_cnt[ll_count] = 0 ------>>>>>>> not created
//get the first available tool, i.e. which is not allocated in Toolplan
sql1="Select Case when Min(A.sr_no) is null then 1 else Min(A.sr_no) end from Tooldet A "
......@@ -955,10 +1020,14 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
pstmt1=conn.prepareStatement(sql1);
pstmt1.setTimestamp(1,(Timestamp)machineLoadMap.get("schedule"));
pstmt1.setString(2, machineLoadMap.get("shift").toString());
pstmt1.setString(3, oldToolCode);
pstmt1.setString(3, ls_tool.get(ll_oldctr));
rs1=pstmt1.executeQuery();
if(rs1.next()){
countSrNo=rs.getInt(1);
as_tool.put(ll_ctr,ls_tool.get(ll_oldctr));//as_tool[ll_ctr] = ls_tool[ll_oldctr]
al_toolsr.put(ll_ctr,ll_cnt.get(ll_count));
//ai_toolsr[ll_ctr] = ll_cnt[ll_count]
}
rs1.close();
......@@ -991,6 +1060,7 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
} //end while
//when no record found then return 0;
if(!(isRecordFound)){
as_tool.put(ll_ctr,"");
return 0;
}
......@@ -1028,9 +1098,10 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
private int updateOnConfirmation(Connection conn,ArrayList<String>updateParamListL)
{
System.out.println("updateOnConfirmation--->>["+updateParamListL+"]");
//[T-PRK , BPRFE0001 , 15, Y, E01712 , WOE0007]
PreparedStatement pstmt=null;
int count=0;
String sql = "";
String sql = "",sql1="";
try{
sql="update worder_route set mc_code = ? where work_order = ? and operation = ?";
pstmt=conn.prepareStatement(sql);
......@@ -1039,15 +1110,18 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
pstmt.setInt(3, Integer.parseInt(updateParamListL.get(2)));
count=pstmt.executeUpdate();
System.out.println("First count in updateOnConfirmation-->>["+count+"]");
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
System.out.println("First count in updateOnConfirmation11-->>["+count+"]");
sql="update worder_route_alt set confirmed = ?,conf_date = ?,emp_code__aprv = ?"
sql1="update worder_route_alt set confirmed = ?,conf_date = sysdate,emp_code__aprv = ?"
+ " where amd_no = ?";
pstmt=conn.prepareStatement(sql1);
pstmt.setString(1, updateParamListL.get(3));
pstmt.setDate(2,new java.sql.Date(System.currentTimeMillis()));
pstmt.setString(3,updateParamListL.get(4));
pstmt.setString(4,updateParamListL.get(5));
pstmt.setString(2,updateParamListL.get(4).trim());
pstmt.setString(3,updateParamListL.get(5).trim());
count=pstmt.executeUpdate();
System.out.println("Second count in updateOnConfirmation-->>["+count+"]");
......@@ -1056,7 +1130,8 @@ public class WorkOrderRouteAltConf extends ActionHandlerEJB implements WorkOrde
{
System.out.println("Exception in updateOnConfirmation----");
e.printStackTrace();
return 0;
isError=true;
return -1;
}
return count;
......
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