package xin.glue.ui.G.G04; import java.sql.CallableStatement; import java.util.ArrayList; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; public class XinSaveSlabRecutCancel extends PosActivity { public String runActivity(PosContext context) { String[] REG_ID = (String[])context.get("REG_ID"); String[] SLAB_NO = (String[])context.get("NEW_SLAB_NO"); ArrayList SUB_SLAB_NO = new ArrayList(); CallableStatement cstm = null; PosParameter param = new PosParameter(); PosRowSet rowset = null; PosRow row = null; PosGenericDao dao = getDao("mesdao"); String OR_SLAB_NO = "",sql = "";; sql = "SELECT T.* FROM TBG02_SLAB_INCISE T WHERE T.SLAB_NO = ?"; param = new PosParameter(); param.setWhereClauseParameter(0, SLAB_NO[0]); rowset = dao.findByQueryStatement(sql, param); if(rowset.hasNext()){ row = rowset.next(); OR_SLAB_NO = (String)row.getAttribute("OR_SLAB_NO"); }else{ context.put("MESSAGES", " 未分切不允许撤销! "); return PosBizControlConstants.SUCCESS; } /*找母坯删除子坯数据*/ sql = "SELECT T.* FROM TBG02_SLAB_INCISE T WHERE T.OR_SLAB_NO = ?"; param = new PosParameter(); param.setWhereClauseParameter(0, OR_SLAB_NO); rowset = dao.findByQueryStatement(sql, param); while(rowset.hasNext()){ row = rowset.next(); /*记录子坯号*/ SUB_SLAB_NO.add((String)row.getAttribute("SLAB_NO")); } for(int j = 0;j < SUB_SLAB_NO.size();j++){ /*子坯财务数据上抛*/ try { cstm = dao.getCallableStatement("UPLOAD_DATA.CAL"); cstm.setString(1, SUB_SLAB_NO.get(j)); cstm.setString(2, "11AD"); cstm.setString(3, "D"); cstm.setString(4, "板坯利库撤销"); cstm.setString(5, REG_ID[0]); cstm.registerOutParameter(6, java.sql.Types.VARCHAR); cstm.execute(); String err = cstm.getString(6); System.out.println(err); }catch(Exception ex){ ex.printStackTrace(); }finally{ if(cstm != null){ try{ cstm.close(); }catch(Exception e){ e.printStackTrace(); } } } param = new PosParameter(); param.setWhereClauseParameter(0, SUB_SLAB_NO.get(j)); dao.delete("UIG040070_SLAB_INCISE.delete", param); //删除子坯 param = new PosParameter(); param.setWhereClauseParameter(0, SUB_SLAB_NO.get(j)); dao.delete("UIG040070_SLAB_COMM.delete", param); //删除D表 param = new PosParameter(); param.setWhereClauseParameter(0, SUB_SLAB_NO.get(j)); dao.delete("UIG040070_SLAB_COMM_D.delete", param); /*清空子坯跺位*/ param = new PosParameter(); param.setWhereClauseParameter(0, SUB_SLAB_NO.get(j)); this.getDao("mesdao").update("UIG040070_SLAB_COMM.update", param); } /*母板坯恢复前再上抛母坯*/ try { cstm = dao.getCallableStatement("UPLOAD_DATA.CAL"); cstm.setString(1, OR_SLAB_NO); cstm.setString(2, "11AD"); cstm.setString(3, "D"); cstm.setString(4, "板坯利库撤销"); cstm.setString(5, REG_ID[0]); cstm.registerOutParameter(6, java.sql.Types.VARCHAR); cstm.execute(); String err = cstm.getString(6); System.out.println(err); }catch(Exception ex){ ex.printStackTrace(); } finally{ if(cstm != null){ try{ cstm.close(); }catch(Exception e){ e.printStackTrace(); } } } //恢复母板坯 param = new PosParameter(); param.setWhereClauseParameter(0, OR_SLAB_NO); this.getDao("mesdao").update("UIG040070_SLAB_END_1.update",param); context.put("MESSAGES", " 操作成功! "); return PosBizControlConstants.SUCCESS; } }