package xin.glue.ui.H.H05; 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.PosBizControlIF; import com.posdata.glue.biz.control.PosBizProvider; import com.posdata.glue.component.PosConstants; 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 CoilWGTSEND extends PosActivity{ public String runActivity(PosContext context) { //磅重 String[] ACT_WGT = (String[])context.get("ACT_WGT"); //理论重量 String[] CAL_WGT = (String[])context.get("CAL_WGT"); // 操作人 String[] REG_ID = (String[])context.get("REG_ID"); //钢卷号 String[] coil_no = (String[])context.get("coil_no"); PosParameter param1 = new PosParameter(); String sql2 = "select a.CUR_PROG_CD,a.SHIP_PROG_CD,a.COIL_STAT,a.SEND_WGT from tbh02_coil_comm a where a.old_sampl_no = ?"; param1.setWhereClauseParameter(0,coil_no[0] ); PosRowSet CoilVo = getDao("mesdao").findByQueryStatement(sql2, param1); String CUR_PROG_CD = null; String SHIP_PROG_CD = null; String COIL_STAT = null; String SEND_WGT = null; if(CoilVo.hasNext()){ PosRow CoilRow = CoilVo.next(); CUR_PROG_CD = (String) CoilRow.getAttribute("CUR_PROG_CD"); SHIP_PROG_CD = (String) CoilRow.getAttribute("SHIP_PROG_CD"); COIL_STAT = (String) CoilRow.getAttribute("COIL_STAT"); SEND_WGT = (String) CoilRow.getAttribute("SEND_WGT"); if(null != CUR_PROG_CD && CUR_PROG_CD.equals("SFF")){ //这里判断钢卷公共表的是否发送状态,并且给出相应的修改提示 if(!SEND_WGT.equals("0")){ //重量重新发送过不能再次进行发送 logger.logDebug("CoilWGTSEND 发货明细发行后已经修改过重量,修改标志为:"+SEND_WGT+" ;卷号为; "+coil_no[0]); String vtemp="SEND_WGT"; context.put("rs", vtemp); }else{ //钢卷公共表,这里修改过后需要把重量修改标志置为1 PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, ACT_WGT[0]); param2.setWhereClauseParameter(1, REG_ID[0]); param2.setWhereClauseParameter(2, coil_no[0]); getDao("mesdao").update("UIH051500_02.update", param2); //这里还需要更新接口表的重量字段 PosParameter param4 = new PosParameter(); //String.valueOf(Float.valueOf(ACT_WGT[0])/1000) param4.setWhereClauseParameter(0, ACT_WGT[0]); param4.setWhereClauseParameter(1, coil_no[0]); getDao("mesdao").update("UIH051500_03.update", param4); //这里还需要进行订单整理,因为重量进行了改变会影响到订单发货量 SendProg_NIE012080(); } }else{ //没有发行明细的卷,不能在此改重量 logger.logDebug("CoilWGTSEND 钢卷状态没有到发货完成,不能修改重量:"+CUR_PROG_CD+" ;卷号为; "+coil_no[0]); String vtemp="CUR_PROG_CD"; context.put("rs", vtemp); } }else{ //此卷在库中没有,给出相应的提示 logger.logDebug("CoilWGTSEND 钢卷在公共表中不存在,卷号为; "+coil_no[0]); String vtemp="old_sampl_no"; context.put("rs", vtemp); } return PosBizControlConstants.SUCCESS; } public void 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); this.processComponent(PosConstants.CREATE_MESSAGE, context); String transactionCode = context.getMessage().getTC(); message.setTCID(TcId); String serviceName = "NIE012080"; String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX); context.setMessage(message); PosBizControlIF controller = PosBizProvider.getController(); controller.doSubController(context,false); } }