package xin.glue.ui.H.H05; import com.posdata.glue.PosException; 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.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; public class XinSaveMoveYard_TWO extends PosActivity{ public String runActivity(PosContext context){ String[] FROM_COIL = (String[]) context.get("FROM_COIL"); String[] FROM_YARD = (String[]) context.get("FROM_YARD"); String[] TO_COIL = (String[]) context.get("TO_COIL"); String[] TO_YARD = (String[]) context.get("TO_YARD"); String[] TMP_YARD = (String[]) context.get("TMP_YARD"); String[] REG_ID = (String[]) context.get("REG_ID"); String[] ENTRY_SHIFT = (String[]) context.get("ENTRY_SHIFT"); String[] ENTRY_GROUP = (String[]) context.get("ENTRY_GROUP"); String[] ENTRY_REG = (String[]) context.get("ENTRY_REG"); String[] ENTRY_DTIME = (String[]) context.get("ENTRY_DTIME"); //判断当前移动的卷的状态,如果是发货完成的。不能进行移垛操作 PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, FROM_COIL[0]); PosRowSet rowsA = getDao("mesdao").find("UIH050710_03.select", paramA); String CUR_PROG_CD = null; try{ if(rowsA.hasNext()){ PosRow rowA = rowsA.next(); CUR_PROG_CD = (String) rowA.getAttribute("CUR_PROG_CD"); if(!CUR_PROG_CD.equals("SFF")){ Number SEQ = null; int SEQ_1 = 0; Number SEQ1 = null; int SEQ_2 = 0; //如果临时位置不存在卷,就不需要判断 PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0, TO_YARD[0]); PosRowSet rows = getDao("mesdao").find("UIH050600_05.select", param0); if(!rows.hasNext()){ logger.logInfo("垛位不存在!"); String vtemp = "COIL_NO"; context.put("rs", vtemp); return PosBizControlConstants.SUCCESS; } if(!(null == TMP_YARD[0] || TMP_YARD[0].equals(""))){ param0 = new PosParameter(); param0.setWhereClauseParameter(0, TMP_YARD[0]); rows = getDao("mesdao").find("UIH050600_05.select", param0); if(!rows.hasNext()){ logger.logInfo("垛位不存在!"); String vtemp = "COIL_NO"; context.put("rs", vtemp); return PosBizControlConstants.SUCCESS; } } PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, TMP_YARD[0]); rows = getDao("mesdao").find("UIH050700_04.select", param1); String coil_no = null; if(rows.hasNext()){ PosRow row = rows.next(); coil_no = (String) row.getAttribute("COIL_NO"); if(null == coil_no){ //可以进行相应的移动,进行清理 if(TO_COIL[0] != null){ PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, TO_COIL[0]); param2.setWhereClauseParameter(1, "H050070_2"); param2.setWhereClauseParameter(2, TMP_YARD[0].substring(0, 5)); param2.setWhereClauseParameter(3, TMP_YARD[0].substring(5, 7)); param2.setWhereClauseParameter(4, TMP_YARD[0].substring(7, 8)); param2.setWhereClauseParameter(5, TMP_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_04.update", param2); //更新公共表 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, TMP_YARD[0]); param3.setWhereClauseParameter(1, TO_COIL[0]); getDao("mesdao").update("UIH050700_05.update", param3); //记录库存移动的情况 PosParameter param11 = new PosParameter(); PosRowSet rows11 = getDao("mesdao").find("UIH050700_05.select", param11); if(rows11.hasNext()){ PosRow row11 = rows11.next(); SEQ = (Number) row11.getAttribute("ROLL_SEQ"); if(null == SEQ){ SEQ_1 = 1; }else{ SEQ_1 = SEQ.intValue()+1; } //取出主键后,更新移动表 PosParameter param4 = new PosParameter(); param4.setValueParamter(0, new Integer(SEQ_1)); param4.setValueParamter(1, TO_YARD[0]); param4.setValueParamter(2, TMP_YARD[0]); param4.setValueParamter(3, TO_COIL[0]); param4.setValueParamter(4, ENTRY_REG[0]); param4.setValueParamter(5, ENTRY_SHIFT[0]); param4.setValueParamter(6, ENTRY_GROUP[0]); param4.setValueParamter(7, ENTRY_DTIME[0]); param4.setValueParamter(8, REG_ID[0]); getDao("mesdao").insert("UIH050700_01.insert", param4); } // 再移动来源卷和,清空来源位置 if(FROM_COIL[0] != null){ PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, FROM_COIL[0]); param5.setWhereClauseParameter(1, "H050070_2"); param5.setWhereClauseParameter(2, TO_YARD[0].substring(0, 5)); param5.setWhereClauseParameter(3, TO_YARD[0].substring(5, 7)); param5.setWhereClauseParameter(4, TO_YARD[0].substring(7, 8)); param5.setWhereClauseParameter(5, TO_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_04.update", param5); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, TO_YARD[0]); param6.setWhereClauseParameter(1, FROM_COIL[0]); getDao("mesdao").update("UIH050700_05.update", param6); // 这里还需要清空来源位置的钢卷 PosParameter param9 = new PosParameter(); param9.setWhereClauseParameter(0, FROM_YARD[0].substring(0, 5)); param9.setWhereClauseParameter(1, FROM_YARD[0].substring(5, 7)); param9.setWhereClauseParameter(2, FROM_YARD[0].substring(7, 8)); param9.setWhereClauseParameter(3, FROM_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_06.update", param9); PosParameter param7 = new PosParameter(); PosRowSet rows7 = getDao("mesdao").find("UIH050700_05.select", param7); if(rows7.hasNext()){ PosRow row7 = rows7.next(); SEQ1 = (Number) row7.getAttribute("ROLL_SEQ"); if(null == SEQ1 && "".equals(SEQ1)){ SEQ_2 = 1; }else{ SEQ_2 = SEQ1.intValue()+1; } //取出主键后,更新移动表 PosParameter param8 = new PosParameter(); param8.setValueParamter(0, new Integer(SEQ_2)); param8.setValueParamter(1, FROM_YARD[0]); param8.setValueParamter(2, TO_YARD[0]); param8.setValueParamter(3, FROM_COIL[0]); param8.setValueParamter(4, ENTRY_REG[0]); param8.setValueParamter(5, ENTRY_SHIFT[0]); param8.setValueParamter(6, ENTRY_GROUP[0]); param8.setValueParamter(7, ENTRY_DTIME[0]); param8.setValueParamter(8, REG_ID[0]); getDao("mesdao").insert("UIH050700_01.insert", param8); } } }else{ //去向位置不存在卷,就直接更新来源到去向 if(FROM_COIL[0] != null){ PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, FROM_COIL[0]); param5.setWhereClauseParameter(1, "H050070_2"); param5.setWhereClauseParameter(2, TO_YARD[0].substring(0, 5)); param5.setWhereClauseParameter(3, TO_YARD[0].substring(5, 7)); param5.setWhereClauseParameter(4, TO_YARD[0].substring(7, 8)); param5.setWhereClauseParameter(5, TO_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_04.update", param5); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, TO_YARD[0]); param6.setWhereClauseParameter(1, FROM_COIL[0]); getDao("mesdao").update("UIH050700_05.update", param6); // 这里还需要清空来源位置的钢卷 PosParameter param9 = new PosParameter(); param9.setWhereClauseParameter(0, FROM_YARD[0].substring(0, 5)); param9.setWhereClauseParameter(1, FROM_YARD[0].substring(5, 7)); param9.setWhereClauseParameter(2, FROM_YARD[0].substring(7, 8)); param9.setWhereClauseParameter(3, FROM_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_06.update", param9); PosParameter param7 = new PosParameter(); PosRowSet rows7 = getDao("mesdao").find("UIH050700_05.select", param7); if(rows7.hasNext()){ PosRow row7 = rows7.next(); SEQ1 = (Number) row7.getAttribute("ROLL_SEQ"); if(null == SEQ1 && "".equals(SEQ1)){ SEQ_2 = 1; }else{ SEQ_2 = SEQ1.intValue()+1; } //取出主键后,更新移动表 PosParameter param8 = new PosParameter(); param8.setValueParamter(0, new Integer(SEQ_2)); param8.setValueParamter(1, FROM_YARD[0]); param8.setValueParamter(2, TO_YARD[0]); param8.setValueParamter(3, FROM_COIL[0]); param8.setValueParamter(4, ENTRY_REG[0]); param8.setValueParamter(5, ENTRY_SHIFT[0]); param8.setValueParamter(6, ENTRY_GROUP[0]); param8.setValueParamter(7, ENTRY_DTIME[0]); param8.setValueParamter(8, REG_ID[0]); getDao("mesdao").insert("UIH050700_01.insert", param8); } } } }else{ //不能进行相应的移动 logger.logDebug("XinSaveMoveYard_TWO 希望移动的位置存在钢卷信息! "); String vtemp="ERROR"; context.put("rs", vtemp); } }else{ //临时位置不存在值的话,只判断去向位置就可以了 if(!"".equals(TO_COIL[0])){ //提示,给出希望替换的位置 logger.logDebug("XinSaveMoveYard_TWO 希望移动的位置没有填写,不能移动钢卷! "); String vtemp="ERROR_TMP"; context.put("rs", vtemp); }else{ //直接移动 //再移动来源卷和,清空来源位置 if(null != FROM_COIL[0] && !"".equals(FROM_COIL[0])){ if(!"".equals(TO_YARD[0]) && null != TO_YARD[0]){ //给出长度限制,来源垛位不对的情况不能进行清除来源位置的操作 if(FROM_YARD[0].length() == 9){ PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, FROM_COIL[0]); param5.setWhereClauseParameter(1, "H050070_2"); param5.setWhereClauseParameter(2, TO_YARD[0].substring(0, 5)); param5.setWhereClauseParameter(3, TO_YARD[0].substring(5, 7)); param5.setWhereClauseParameter(4, TO_YARD[0].substring(7, 8)); param5.setWhereClauseParameter(5, TO_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_04.update", param5); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, TO_YARD[0]); param6.setWhereClauseParameter(1, FROM_COIL[0]); getDao("mesdao").update("UIH050700_05.update", param6); //这里还需要清空来源位置的钢卷 PosParameter param9 = new PosParameter(); param9.setWhereClauseParameter(0, FROM_YARD[0].substring(0, 5)); param9.setWhereClauseParameter(1, FROM_YARD[0].substring(5, 7)); param9.setWhereClauseParameter(2, FROM_YARD[0].substring(7, 8)); param9.setWhereClauseParameter(3, FROM_YARD[0].substring(8, 9)); getDao("mesdao").update("UIH050700_06.update", param9); PosParameter param7 = new PosParameter(); PosRowSet rows7 = getDao("mesdao").find("UIH050700_05.select", param7); if(rows7.hasNext()){ PosRow row7 = rows7.next(); SEQ1 = (Number) row7.getAttribute("ROLL_SEQ"); if(null == SEQ1 && "".equals(SEQ1)){ SEQ_2 = 1; }else{ SEQ_2 = SEQ1.intValue()+1; } //取出主键后,更新移动表 PosParameter param8 = new PosParameter(); param8.setValueParamter(0, new Integer(SEQ_2)); param8.setValueParamter(1, FROM_YARD[0]); param8.setValueParamter(2, TO_YARD[0]); param8.setValueParamter(3, FROM_COIL[0]); param8.setValueParamter(4, ENTRY_REG[0]); param8.setValueParamter(5, ENTRY_SHIFT[0]); param8.setValueParamter(6, ENTRY_GROUP[0]); param8.setValueParamter(7, ENTRY_DTIME[0]); param8.setValueParamter(8, REG_ID[0]); getDao("mesdao").insert("UIH050700_01.insert", param8); } }else{ logger.logDebug("XinSaveMoveYard_TWO 来源卷垛位信息不正确,不能移动钢卷! "); String vtemp="FROM_YARD"; context.put("rs", vtemp); } }else{ logger.logDebug("XinSaveMoveYard_TWO 去向的位置没有填写,不能移动钢卷! "); String vtemp="ERROR_TO"; context.put("rs", vtemp); } } } } }else{ logger.logDebug("XinSaveMoveYard_TWO 此卷已发货,不能移动钢卷! "); String vtemp="CUR_PROG_CD"; context.put("rs", vtemp); } } }catch(Exception e){ //e.printStackTrace(); //throw new PosException(e.getMessage()); logger.logDebug(" 移垛异常情况 "+e.getMessage()); String vtemp="XX"; context.put("rs", vtemp); } return PosBizControlConstants.SUCCESS; } }