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.context.PosContext; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; /***************************** * 这个类专门用于给销售重新发送重量信息,前提是销售先进行退结算操作。 * TL 090829 * ********************************/ public class SendWgt 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,a.DLIV_DIRNO 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; String DLIV_DIRNO = 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"); DLIV_DIRNO = (String) CoilRow.getAttribute("DLIV_DIRNO"); if(null != CUR_PROG_CD && CUR_PROG_CD.equals("SFF")){ //这里需要判断卷重修改标志是否修改,以及销售的回退标志是否置为1. PosParameter param2 = new PosParameter(); String sql22 = "select max(a.ISCHANGEWGT) ISCHANGEWGT from tbj02_coil_comm a,tbh02_coil_comm b where a.DLIV_DIRNO = b.DLIV_DIRNO and a.DLIV_DIRNO = ?"; param2.setWhereClauseParameter(0,DLIV_DIRNO); PosRowSet ISCHANGEWGTVo = getDao("mesdao").findByQueryStatement(sql22, param2); String ISCHANGEWGT = null; if(ISCHANGEWGTVo.hasNext()){ PosRow ISCHANGEWGTRow = ISCHANGEWGTVo.next(); ISCHANGEWGT = (String) ISCHANGEWGTRow.getAttribute("ISCHANGEWGT"); if(null != ISCHANGEWGT && !ISCHANGEWGT.equals("0")){ // 如果标志为1的情况下,说明结算已经进行了退结算操作。这里可以进行发送操作 if(SEND_WGT.equals("1")){ //必须先进行明细后的重量修改,才能进行重量的再次发送 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, DLIV_DIRNO); getDao("mesdao").update("UIH051500_04.update", param3); }else{ //没有进行卷重修改操作不能再次进行卷重发送 logger.logDebug("SendWgt 没有对打完明细的卷进行卷重修改不能进行卷重发送,卷重修改标志为; "+SEND_WGT+" 卷号为: "+coil_no[0]); String vtemp="SEND_WGT"; context.put("rs", vtemp); } }else{ //结算没有进行相应的退结算操作,这里提示发送不成功 logger.logDebug("SendWgt 结算科没有进行退结算操作,成品不能点击发送按钮。退结算标志为; "+ISCHANGEWGT+" 卷号为: "+coil_no[0]); String vtemp="ISCHANGEWGT"; context.put("rs", vtemp); } }else{ //卷号信息在接口表中不存在 logger.logDebug("SendWgt 接口表中不存在卷号为; "+coil_no[0]+" 的数据"); String vtemp="coil_no"; context.put("rs", vtemp); } }else{ //没有发行明细的卷,不能在此改重量 logger.logDebug("SendWgt 钢卷状态没有到发货完成,不能再次发送卷重:"+CUR_PROG_CD+" ;卷号为; "+coil_no[0]); String vtemp="CUR_PROG_CD"; context.put("rs", vtemp); } }else{ //此卷在库中没有,给出相应的提示 logger.logDebug("SendWgt 钢卷在公共表中不存在,卷号为; "+coil_no[0]); String vtemp="old_sampl_no"; context.put("rs", vtemp); } return PosBizControlConstants.SUCCESS; } }