package xin.glue.ui.G.G04; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.SQLException; import com.posdata.glue.PosException; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.biz.control.PosBizProvider; 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; import com.posdata.glue.msg.PosMESMessageImpl; import com.posdata.glue.msg.PosMessage; public class XINSaveJiahui extends PosActivity { public String runActivity(PosContext context) { String[]slabNo = (String[])context.get("SLAB_NO"); String[]yardAddr = (String[])context.get("CUR_LOAD_LOC"); String[]slabThk = (String[])context.get("SLAB_THK"); String[]slabWth = (String[])context.get("SLAB_WTH"); String[]slabLen = (String[])context.get("SLAB_LEN"); String[]slabWgt = (String[])context.get("SLAB_WGT"); String[]scraptWgt = (String[])context.get("SCRAP_WGT"); String[]jhType = (String[])context.get("BACK_TP"); String[]shift = (String[])context.get("SHIFT"); String[]group = (String[])context.get("GROUP"); String[]regId = (String[])context.get("REGID"); String[]ordNo = (String[])context.get("ORD_NO"); String[]ordSeq = (String[])context.get("ORD_SEQ"); String[]befOrdNo = (String[])context.get("ORG_ORD_NO"); String[]befOrdSeq = (String[])context.get("ORG_ORD_SEQ"); String[]progCd = (String[])context.get("CUR_PROG_CD"); String[]befProgCd = (String[])context.get("BEF_PROG_CD"); String StoreLay = ""; PosParameter param = new PosParameter(); param.setWhereClauseParameter(0,yardAddr[0]); PosRowSet CompToVo = getDao("mesdao").find("UIG040060_COMPLUS_TO_ADDR.select", param); if(CompToVo.hasNext()) { PosRow CompToVoROW = CompToVo.next(); StoreLay = (String)CompToVoROW.getAttribute("STORELAY"); if(StoreLay.equals("")||StoreLay == null){ context.put("MESSAGES", " 跺位已经满,不能放置!"); return PosBizControlConstants.SUCCESS; } } for(int i = 0 ; i < slabNo.length ; i++){ if(jhType[0].equals("JH")){ //增加降级历史记录 20101227 wxy //增加降级历史记录 20101227 wxy CallableStatement cstm = null; param = new PosParameter(); try{ cstm = this.getDao("mesdao").getCallableStatement("ORD_HIS_INSERT.call"); cstm.setString(1, "B"); cstm.setString(2, "S"); cstm.setString(3, ""); cstm.setString(4, "UIG040062"); cstm.setString(5, ""); cstm.setString(6, ""); cstm.setString(7, ""); cstm.setString(8, slabNo[0]); cstm.setString(9, "TM"); cstm.setString(10, ""); cstm.setString(11, ""); cstm.setString(12, ""); cstm.setString(13, ""); cstm.execute(); }catch(Exception ex){ logger.logError(ex.getMessage(), ex); }finally{ if (cstm != null) { try { cstm.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); } } } //end 增加降级历史记录 //slab_comm 修改公共表信息 param = new PosParameter(); param.setWhereClauseParameter(0, yardAddr[0]+ StoreLay); param.setWhereClauseParameter(1, shift[0]); param.setWhereClauseParameter(2, group[0]); param.setWhereClauseParameter(3, regId[0]); param.setWhereClauseParameter(4, slabNo[0]); int updateCnt = getDao("mesdao").update("UIG040062_SLABCOMM_JH.update",param); param = new PosParameter(); param.setWhereClauseParameter(0, slabNo[0]); getDao("mesdao").update("UIG040062_SLABCOMM_D_JH.update",param); //clear yard_addr param = new PosParameter(); param.setWhereClauseParameter(0, slabNo[0]); getDao("mesdao").update("UIG040062_CLEAR_SLABYARD.update",param); //slab_yard 修改库存位置 param = new PosParameter(); param.setWhereClauseParameter(0, slabNo[0]); param.setWhereClauseParameter(1, yardAddr[0]); param.setWhereClauseParameter(2, StoreLay); int updateCnt2 = getDao("mesdao").update("UIG040062_SLABYARD.update",param); if(updateCnt < 1||updateCnt2 < 1){ context.put("MESSAGES", " 保存零条记录,操作失败!"); } }else if(jhType[0].equals("ZH")){ //增加降级历史记录 20101227 wxy CallableStatement cstm = null; param = new PosParameter(); try{ cstm = this.getDao("mesdao").getCallableStatement("ORD_HIS_INSERT.call"); cstm.setString(1, "B"); cstm.setString(2, "S"); cstm.setString(3, ""); cstm.setString(4, "UIG040062"); cstm.setString(5, ""); cstm.setString(6, ""); cstm.setString(7, ""); cstm.setString(8, slabNo[0]); cstm.setString(9, "TM"); cstm.setString(10, ""); cstm.setString(11, ""); cstm.setString(12, ""); cstm.setString(13, ""); cstm.execute(); }catch(Exception ex){ logger.logError(ex.getMessage(), ex); }finally{ if (cstm != null) { try { cstm.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); } } } //end 增加降级历史记录 // slab_comm 修改公共表信息 param = new PosParameter(); param.setWhereClauseParameter(0, yardAddr[0]+StoreLay); param.setWhereClauseParameter(1, slabThk[0]); param.setWhereClauseParameter(2, slabWth[0]); param.setWhereClauseParameter(3, slabLen[0]); param.setWhereClauseParameter(4, slabWgt[0]); param.setWhereClauseParameter(5, scraptWgt[0]); param.setWhereClauseParameter(6, shift[0]); param.setWhereClauseParameter(7, group[0]); param.setWhereClauseParameter(8, regId[0]); param.setWhereClauseParameter(9, slabNo[0]); int updateCnt = getDao("mesdao").update("UIG040062_SLABCOMM_ZH.update",param); //clear yard_addr param = new PosParameter(); param.setWhereClauseParameter(0, slabNo[0]); getDao("mesdao").update("UIG040062_CLEAR_SLABYARD.update",param); // slab_yard 修改库存位置 param = new PosParameter(); param.setWhereClauseParameter(0, slabNo[0]); param.setWhereClauseParameter(1, yardAddr[0]); param.setWhereClauseParameter(2, StoreLay); int updateCnt2 = getDao("mesdao").update("UIG040062_SLABYARD.update",param); //slab_comm_d 脱离订单 param = new PosParameter(); param.setWhereClauseParameter(0, slabNo[0]); if(updateCnt < 1||updateCnt2 < 1){ context.put("MESSAGES", " 保存零条记录,操作失败!"); return PosBizControlConstants.SUCCESS; } } SendProg_NIE012070(slabNo[0],ordNo[0],ordSeq[0],befOrdNo[0],befOrdSeq[0],progCd[0],befProgCd[0],"TM",slabWgt[0]); SendProg_NIE012080(); } context.put("MESSAGES", " 操作成功! "); return PosBizControlConstants.SUCCESS; } public String SendProg_NIE012070(String MatNo,String sOrdNo,String sOrdSeq,String sBefOrdNo,String sBefOrdSeq,String sProgCd,String sBefProgCd,String sKind,String nwgt ) { logger.logInfo("PosSaveSlabCutting---> nwgt:"+nwgt ); PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); BigDecimal Wgt = new BigDecimal(nwgt); String TcId = "NIE012070"; message.setTCID(TcId); message.setObject("MSG_ID",TcId); message.setObject("BEF_ORD_NO",sBefOrdNo); message.setObject("BEF_ORD_SEQ",sBefOrdSeq); message.setObject("ORD_NO",sOrdNo); message.setObject("ORD_SEQ",sOrdSeq); message.setObject("BEF_PROG_CD",sBefProgCd); message.setObject("PROG_CD",sProgCd); message.setObject("MAT_TYPE",sKind); message.setObject("MAT_NO",MatNo); message.setObject("WGT", Wgt ); message.setObject("PGMID","PosSaveSlabCutting"); message.setObject("REG_ID","UIG020060"); context.setMessage(message); message.setTCID(TcId); String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX); PosBizProvider.getController().doSubController(context, false); String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG"); logger.logInfo("PosSaveSlabCutting SendProg_NIE012070 SERVICE_ERR_MSG:"+SERVICE_ERR_MSG ); if (SERVICE_ERR_MSG != null) { throw new PosException(SERVICE_ERR_MSG); } return null; } public String SendProg_NIE012080() { PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); String TcId = "NIE012080"; message.setTCID(TcId); message.setObject("MSG_ID",TcId); message.setObject("AA",null); context.setMessage(message); message.setTCID(TcId); String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX); PosBizProvider.getController().doSubController(context, false); String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG"); logger.logInfo("PosSaveSlabCutting SendProg_NIE012080 SERVICE_ERR_MSG:"+SERVICE_ERR_MSG ); if (SERVICE_ERR_MSG != null) { throw new PosException(SERVICE_ERR_MSG); } return null; } }