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; public class CoilMILLDATA extends PosActivity{ public String runActivity(PosContext context) { //钢卷厚度 String[] COIL_THK = (String[])context.get("COIL_THK"); //宽度 String[] COIL_WTH = (String[])context.get("COIL_WTH"); //长度 String[] COIL_LEN = (String[])context.get("COIL_LEN"); //磅重 String[] ACT_WGT = (String[])context.get("ACT_WGT"); //理论重量 String[] CAL_WGT = (String[])context.get("CAL_WGT"); //瑕疵代码 String[] CRK_CD1 = (String[])context.get("CRK_CD1"); String[] CRK_CD2 = (String[])context.get("CRK_CD2"); String[] CRK_CD3 = (String[])context.get("CRK_CD3"); String[] CRK_CD4 = (String[])context.get("CRK_CD4"); String[] CRK_CD5 = (String[])context.get("CRK_CD5"); //备注 String[] REM = (String[])context.get("REM"); //班次 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"); //操作人 String[] REG_ID = (String[])context.get("REG_ID"); //钢卷号 String[] coil_no = (String[])context.get("coil_no"); //判断瑕疵代码,如果没有就不更新 String coil_no_tmp = null; PosParameter param2 = new PosParameter(); String sql2 = "select a.coil_no from tbh02_coil_comm a where a.old_sampl_no = ?"; param2.setWhereClauseParameter(0,coil_no[0] ); PosRowSet CoilVo = getDao("mesdao").findByQueryStatement(sql2, param2); if(CoilVo.hasNext()){ PosRow CoilRow = CoilVo.next(); coil_no_tmp = (String) CoilRow.getAttribute("coil_no"); } String colil_wgt_tmp = null; String CUR_PROG_CD = null; PosParameter param22 = new PosParameter(); String sql22 = "select TO_CHAR(a.ACT_WGT) ACT_WGT,A.CUR_PROG_CD from tbh02_coil_comm a where a.old_sampl_no = ?"; param22.setWhereClauseParameter(0,coil_no[0] ); PosRowSet CoilVo22 = getDao("mesdao").findByQueryStatement(sql22, param22); if(CoilVo22.hasNext()){ PosRow CoilRow22 = CoilVo22.next(); colil_wgt_tmp = (String) CoilRow22.getAttribute("ACT_WGT"); CUR_PROG_CD = (String) CoilRow22.getAttribute("CUR_PROG_CD"); } //这里更新修改的内容,如果磅重为空的话,记录理论重量为磅重 if(null == colil_wgt_tmp || colil_wgt_tmp.equals("0")){ PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, COIL_THK[0]); param1.setWhereClauseParameter(1, COIL_WTH[0]); param1.setWhereClauseParameter(2, COIL_LEN[0]); param1.setWhereClauseParameter(3, ACT_WGT[0]); param1.setWhereClauseParameter(4, CAL_WGT[0]); //成品不允许录入瑕疵代码,tl 091221 //param1.setWhereClauseParameter(5, CRK_CD1[0]); //param1.setWhereClauseParameter(6, CRK_CD2[0]); //param1.setWhereClauseParameter(7, CRK_CD3[0]); //param1.setWhereClauseParameter(8, CRK_CD4[0]); //param1.setWhereClauseParameter(9, CRK_CD5[0]); param1.setWhereClauseParameter(5, ENTRY_SHIFT[0]); param1.setWhereClauseParameter(6, ENTRY_GROUP[0]); param1.setWhereClauseParameter(7, ENTRY_REG[0]); param1.setWhereClauseParameter(8, ENTRY_DTIME[0]); param1.setWhereClauseParameter(9, REM[0]); param1.setWhereClauseParameter(10, REG_ID[0]); param1.setWhereClauseParameter(11, coil_no[0]); getDao("mesdao").update("UIH051500_01.update", param1); //因为更新了卷重,调用取消判定程序 //需要转换钢卷号为流水号 logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("PKG_TOTL_DCS01"); logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no_tmp); PlRtn.setString(2,REG_ID[0]); //新增加一个字段,为了废弃的时候使用 PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.execute(); logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC PlRtn1:"); } else { logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("CoilMILLDATA---> NIB027010 SQLException:"+e ); } } } }else{ //卷重不为空的情况下。再加一步判断,发货完成的也不取消判定 if(CUR_PROG_CD.equals("SFF") || CUR_PROG_CD.equals("SFB")){ logger.logInfo("操作人:REG_ID ::: "+REG_ID[0]); logger.logInfo("CoilMILLDATA 发货完成/已下计划的情况下改变卷重,不能调用取消判定程序!!!!"+colil_wgt_tmp+" 系统记录卷重/实际修改卷重 "+ACT_WGT[0]); String vtemp="CUR_PROG_CD_1"; context.put("rs", vtemp); }else{ if(!colil_wgt_tmp.equals(ACT_WGT[0]) ){ //重量不相等的情况下,调用 //因为更新了卷重,调用取消判定程序 //需要转换钢卷号为流水号 logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC sql call ACT_WGT" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("PKG_TOTL_DCS01"); logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no_tmp); PlRtn.setString(2,REG_ID[0]); //新增加一个字段,为了废弃的时候使用 PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.execute(); logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC PlRtn1:"); } else { logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("CoilMILLDATA---> NIB027010 SQLException:"+e ); } } } PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, COIL_THK[0]); param1.setWhereClauseParameter(1, COIL_WTH[0]); param1.setWhereClauseParameter(2, COIL_LEN[0]); param1.setWhereClauseParameter(3, ACT_WGT[0]); param1.setWhereClauseParameter(4, CAL_WGT[0]); // 成品不允许录入瑕疵代码,tl 091221 //param1.setWhereClauseParameter(5, CRK_CD1[0]); //param1.setWhereClauseParameter(6, CRK_CD2[0]); //param1.setWhereClauseParameter(7, CRK_CD3[0]); //param1.setWhereClauseParameter(8, CRK_CD4[0]); //param1.setWhereClauseParameter(9, CRK_CD5[0]); param1.setWhereClauseParameter(5, ENTRY_SHIFT[0]); param1.setWhereClauseParameter(6, ENTRY_GROUP[0]); param1.setWhereClauseParameter(7, ENTRY_REG[0]); param1.setWhereClauseParameter(8, ENTRY_DTIME[0]); param1.setWhereClauseParameter(9, REM[0]); param1.setWhereClauseParameter(10, REG_ID[0]); param1.setWhereClauseParameter(11, coil_no[0]); getDao("mesdao").update("UIH051500_01.update", param1); }else{ //在重量一致的情况下,需要记录可对重量的操作人和操作时间。 PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, ENTRY_SHIFT[0]); param1.setWhereClauseParameter(1, ENTRY_GROUP[0]); param1.setWhereClauseParameter(2, ENTRY_REG[0]); param1.setWhereClauseParameter(3, ENTRY_DTIME[0]); param1.setWhereClauseParameter(4, REM[0]); param1.setWhereClauseParameter(5, REG_ID[0]); param1.setWhereClauseParameter(6, coil_no[0]); getDao("mesdao").update("UIH051500_06.update", param1); logger.logInfo("CoilMILLDATA 实际卷重没有修改,不能调用取消判定程序!!!!"+colil_wgt_tmp+" 系统记录卷重/实际修改卷重 "+ACT_WGT[0]); } } } return PosBizControlConstants.SUCCESS; } }