package xin.glue.ui.J.J01; import xin.glue.ui.common.component.PosSiteLog; 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; /* * desc:这里为成品提供换卷的功能,同合同号,同订单号的情况下,可以转换库内已有的卷 * author:唐亮 tangliang * date:2009-7-21 */ public class F_T_coilNo extends PosActivity{ public String runActivity(PosContext context) { // 合同号 String[] ord_no = (String[])context.get("ord_no"); // 订单号 String[] ord_seq = (String[])context.get("ord_seq"); // 原始钢卷号 String[] coil_no = (String[])context.get("coil_no"); // 替换后的钢卷号 String[] coil_back = (String[])context.get("coil_back"); //替换人 String[] reg_id = (String[])context.get("reg_id"); //替换前的规格 String[] T_W = (String[])context.get("T_W"); //替换后的规格 String[] BACK_T_W = (String[])context.get("BACK_T_W"); //公共表中的发货状态 String SHIP_PROG_CD = null; //发货指示号 String SHIP_DIRNO = null; //运输指示号 String DLIV_DIRNO = null; //目的地 String DEST_CD = null; //是否指示标志 String ISUSED = null; //下计划时间 String SHIP_DIR_DTIME = null; //进度代码 String CUR_PROG_CD = null; //车辆号 String TRANS_CAR_NO = null; //排车顺序号 String TRAIN_STEP_NO = null; //火运汽运区分 String DLIV_TP = null; //替换前的合同备注 String HCOLOUR_REM = null; //替换后的合同备注 String HCOLOUR_REM_back = null; //未下计划标志 String[] bool2 = (String[])context.get("bool2"); //已下计划标志 String[] bool1 = (String[])context.get("bool1"); if(bool2[0].equals("true")){ //这里先要查询换上去的合同是否具有颜色标志,如果具有的话要把颜色标志带到公共表 PosParameter param00 = new PosParameter(); param00.setWhereClauseParameter(0, coil_back[0]); param00.setWhereClauseParameter(0, coil_back[0]); PosRowSet rows1 = getDao("mesdao").find("UIJ010040_16.select", param00); if(rows1.hasNext()){ PosRow row1 = rows1.next(); HCOLOUR_REM_back = (String) row1.getAttribute("MK_COIL"); } //如果选择的是未下计划的卷 //这里需要取出原始钢卷号所带的发货信息,给于现在需要替换的钢卷号 PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0,coil_no[0]); PosRowSet rows = getDao("mesdao").find("UIJ010040_05.select", param0); logger.logInfo(coil_no[0]+" F_T_coilNo 中需要替换下来的钢卷,合同号和订单号为 : "+ord_no+ord_seq); if(rows.hasNext()){ PosRow row = rows.next(); SHIP_PROG_CD = (String) row.getAttribute("SHIP_PROG_CD"); SHIP_DIRNO = (String) row.getAttribute("SHIP_DIRNO"); DLIV_DIRNO = (String) row.getAttribute("DLIV_DIRNO"); DEST_CD = (String) row.getAttribute("DEST_CD"); ISUSED = (String) row.getAttribute("ISUSED"); SHIP_DIR_DTIME = (String) row.getAttribute("SHIP_DIR_DTIME"); CUR_PROG_CD = (String) row.getAttribute("CUR_PROG_CD"); TRANS_CAR_NO = (String) row.getAttribute("TRANS_CAR_NO"); TRAIN_STEP_NO = (String) row.getAttribute("TRAIN_STEP_NO"); //为统计新加 DLIV_TP = (String) row.getAttribute("DLIV_TP"); //为外贸合同颜色区分添加 HCOLOUR_REM = (String) row.getAttribute("HCOLOUR_REM"); //更新需要换卷的发货相关信息 PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0,SHIP_PROG_CD); param1.setWhereClauseParameter(1,SHIP_DIRNO); param1.setWhereClauseParameter(2,DLIV_DIRNO); param1.setWhereClauseParameter(3,DEST_CD); param1.setWhereClauseParameter(4,ISUSED); param1.setWhereClauseParameter(5,SHIP_DIR_DTIME); param1.setWhereClauseParameter(6,CUR_PROG_CD); param1.setWhereClauseParameter(7,TRANS_CAR_NO); param1.setWhereClauseParameter(8,TRAIN_STEP_NO); param1.setWhereClauseParameter(9,reg_id[0]); param1.setWhereClauseParameter(10,"规格从"+T_W[0]+"到"+BACK_T_W[0]+"合同备注颜色从:"+HCOLOUR_REM+"到"+HCOLOUR_REM_back); param1.setWhereClauseParameter(11,DLIV_TP); param1.setWhereClauseParameter(12,HCOLOUR_REM_back); param1.setWhereClauseParameter(13,coil_back[0]); logger.logInfo(coil_back[0]+" F_T_coilNo 中需要替换上去的钢卷,合同号和订单号为 : "+ord_no+ord_seq); logger.logInfo(" F_T_coilNo 中替换人为:"+reg_id[0]); logger.logInfo(" F_T_coilNo 中规格从:"+T_W[0]+"到"+BACK_T_W[0]); logger.logInfo(" F_T_coilNo 中合同颜色初始为:"+HCOLOUR_REM); logger.logInfo(" F_T_coilNo 中合同颜色后来变为:"+HCOLOUR_REM_back); getDao("mesdao").update("UIJ010040_07.update", param1); //清除换下来的钢卷的信息 PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0,coil_no[0]); getDao("mesdao").update("UIJ010040_08.update", param2); //进行合同内换卷之后,需要进行整理改变相应的进程量 SendProg_NIE012080(); } }else{ if(bool1[0].equals("true")){ //这里是已下计划的卷之间的互换,所以需要把两个卷的发货信息互换 //这里记录的是替换后的卷的发货信息 String SHIP_PROG_CD_TMP = null; String SHIP_DIRNO_TMP = null; String DLIV_DIRNO_TMP = null; String DEST_CD_TMP = null; String ISUSED_TMP = null; String SHIP_DIR_DTIME_TMP = null; String CUR_PROG_CD_TMP = null; String TRANS_CAR_NO_TMP = null; String TRAIN_STEP_NO_TMP = null; String DLIV_TP_TMP = null; PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0,coil_no[0]); PosRowSet rows = getDao("mesdao").find("UIJ010040_05.select", param0); if(rows.hasNext()){ PosRow row = rows.next(); SHIP_PROG_CD = (String) row.getAttribute("SHIP_PROG_CD"); SHIP_DIRNO = (String) row.getAttribute("SHIP_DIRNO"); DLIV_DIRNO = (String) row.getAttribute("DLIV_DIRNO"); DEST_CD = (String) row.getAttribute("DEST_CD"); ISUSED = (String) row.getAttribute("ISUSED"); SHIP_DIR_DTIME = (String) row.getAttribute("SHIP_DIR_DTIME"); CUR_PROG_CD = (String) row.getAttribute("CUR_PROG_CD"); TRANS_CAR_NO = (String) row.getAttribute("TRANS_CAR_NO"); TRAIN_STEP_NO = (String) row.getAttribute("TRAIN_STEP_NO"); DLIV_TP = (String) row.getAttribute("DLIV_TP"); } PosParameter param00 = new PosParameter(); param00.setWhereClauseParameter(0,coil_back[0]); PosRowSet rows_TMP = getDao("mesdao").find("UIJ010040_05.select", param00); if(rows_TMP.hasNext()){ PosRow row_TMP = rows_TMP.next(); SHIP_PROG_CD_TMP = (String) row_TMP.getAttribute("SHIP_PROG_CD"); SHIP_DIRNO_TMP = (String) row_TMP.getAttribute("SHIP_DIRNO"); DLIV_DIRNO_TMP = (String) row_TMP.getAttribute("DLIV_DIRNO"); DEST_CD_TMP = (String) row_TMP.getAttribute("DEST_CD"); ISUSED_TMP = (String) row_TMP.getAttribute("ISUSED"); SHIP_DIR_DTIME_TMP = (String) row_TMP.getAttribute("SHIP_DIR_DTIME"); CUR_PROG_CD_TMP = (String) row_TMP.getAttribute("CUR_PROG_CD"); TRANS_CAR_NO_TMP = (String) row_TMP.getAttribute("TRANS_CAR_NO"); TRAIN_STEP_NO_TMP = (String) row_TMP.getAttribute("TRAIN_STEP_NO"); DLIV_TP_TMP = (String) row_TMP.getAttribute("DLIV_TP"); } //这里需要根据卷号单独取出合同备注,然后放入各个计划中 PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, coil_back[0]); paramA.setWhereClauseParameter(0, coil_back[0]); PosRowSet rowsA = getDao("mesdao").find("UIJ010040_16.select", paramA); if(rowsA.hasNext()){ PosRow rowA = rowsA.next(); HCOLOUR_REM_back = (String) rowA.getAttribute("MK_COIL"); } PosParameter paramB = new PosParameter(); paramB.setWhereClauseParameter(0, coil_no[0]); paramB.setWhereClauseParameter(0, coil_no[0]); PosRowSet rowsB = getDao("mesdao").find("UIJ010040_16.select", paramB); if(rowsB.hasNext()){ PosRow rowB = rowsB.next(); HCOLOUR_REM = (String) rowB.getAttribute("MK_COIL"); } //先把要换的两个卷的发货信息全部取出来,再进行对调 //更新需要换卷的发货相关信息 PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0,SHIP_PROG_CD); param1.setWhereClauseParameter(1,SHIP_DIRNO); param1.setWhereClauseParameter(2,DLIV_DIRNO); param1.setWhereClauseParameter(3,DEST_CD); param1.setWhereClauseParameter(4,ISUSED); param1.setWhereClauseParameter(5,SHIP_DIR_DTIME); param1.setWhereClauseParameter(6,CUR_PROG_CD); param1.setWhereClauseParameter(7,TRANS_CAR_NO); param1.setWhereClauseParameter(8,TRAIN_STEP_NO); param1.setWhereClauseParameter(9,reg_id[0]); param1.setWhereClauseParameter(10,"规格从"+T_W[0]+"到"+BACK_T_W[0]+"合同备注从"+HCOLOUR_REM+"到"+HCOLOUR_REM_back); param1.setWhereClauseParameter(11,DLIV_TP); param1.setWhereClauseParameter(12,HCOLOUR_REM_back); param1.setWhereClauseParameter(13,coil_back[0]); logger.logInfo(coil_back[0]+" F_T_coilNo 中需要替换上去的钢卷,合同号和订单号为 : "+ord_no+ord_seq); logger.logInfo(" F_T_coilNo 中替换人为:"+reg_id[0]); logger.logInfo(" F_T_coilNo 中规格从:"+T_W[0]+"到"+BACK_T_W[0]); getDao("mesdao").update("UIJ010040_07.update", param1); //更新换出的卷 PosParameter param11 = new PosParameter(); param11.setWhereClauseParameter(0,SHIP_PROG_CD_TMP); param11.setWhereClauseParameter(1,SHIP_DIRNO_TMP); param11.setWhereClauseParameter(2,DLIV_DIRNO_TMP); param11.setWhereClauseParameter(3,DEST_CD_TMP); param11.setWhereClauseParameter(4,ISUSED_TMP); param11.setWhereClauseParameter(5,SHIP_DIR_DTIME_TMP); param11.setWhereClauseParameter(6,CUR_PROG_CD_TMP); param11.setWhereClauseParameter(7,TRANS_CAR_NO_TMP); param11.setWhereClauseParameter(8,TRAIN_STEP_NO_TMP); param11.setWhereClauseParameter(9,reg_id[0]); param11.setWhereClauseParameter(10,"规格从"+BACK_T_W[0]+"到"+T_W[0]+"合同备注从"+HCOLOUR_REM_back+"到"+HCOLOUR_REM); param11.setWhereClauseParameter(11,DLIV_TP); param11.setWhereClauseParameter(12,HCOLOUR_REM); param11.setWhereClauseParameter(13,coil_no[0]); logger.logInfo(coil_no[0]+" F_T_coilNo 中需要替换下来的钢卷,合同号和订单号为 : "+ord_no+ord_seq); logger.logInfo(" F_T_coilNo 中替换人为:"+reg_id[0]); logger.logInfo(" F_T_coilNo 中规格从:"+BACK_T_W[0]+"到"+T_W[0]); getDao("mesdao").update("UIJ010040_07.update", param11); // 进行合同内换卷之后,需要进行整理改变相应的进程量 SendProg_NIE012080(); }else{ //这里给出提示,都没有选中就保存是错误的 logger.logInfo("没有选择计划和非计划就点击保存按钮,提示错误"); String vtemp="ERROR"; 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); } }