package xin.glue.ui.H.H05; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.SQLException; import java.sql.Types; import xin.glue.ui.common.ProduceFactory; import xin.glue.ui.common.component.PosSiteLog; 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; /* * 冷轧移送处理 * @author siy * @date 2010-08-24 */ public class SEND_ZY extends PosActivity { public String runActivity(PosContext context) { // 钢卷号 String[] COIL_NOS = (String[]) context.get("COIL_NOS"); // 重量 String[] ACT_WGTS = (String[]) context.get("ACT_WGTS"); // 合同号 String[] ORD_NOS = (String[]) context.get("ORD_NOS"); // 订单号 String[] ORD_SEQS = (String[]) context.get("ORD_SEQS"); // 当前进程状态 String[] CUR_PROG_CDS = (String[]) context.get("CUR_PROG_CDS"); // 流水号 String[] LSHS = (String[]) context.get("LSHS"); // 移送顺序 String[] TRANSSEQS = (String[]) context.get("TRANSSEQS"); // 班次 String[] TRNF_SHIFT = (String[]) context.get("TRNF_SHIFT"); // 班组 String[] TRNF_GROUP = (String[]) context.get("TRNF_GROUP"); // 操作人 String[] TRNF_REG = (String[]) context.get("TRNF_REG"); // 操作时间 String[] TRNF_DTIME = (String[]) context.get("TRNF_DTIME"); // 移送方式 String[] TRANSFER_TYPE = (String[]) context.get("TRANSFER_TYPE"); // 步进梁号/车辆号 String[] TRANSFER_NO = (String[]) context.get("TRANSFER_NO"); if (null != COIL_NOS) { String[] coilNos = COIL_NOS[0].split("\\|"); String[] actWgts = ACT_WGTS[0].split("\\|"); String[] ordNos = ORD_NOS[0].split("\\|"); String[] ordSeqs = ORD_SEQS[0].split("\\|"); String[] curProgCds = CUR_PROG_CDS[0].split("\\|"); String[] lshs = LSHS[0].split("\\|"); String[] transSeqs = TRANSSEQS[0].split("\\|"); String transFlag = "N";// 是否移送确认 for (int i = 0; i < coilNos.length; i++) { if (null != coilNos[i] && !"".equals(coilNos[i])) { String showJudge = ""; String sizeJudge = ""; PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, coilNos[i]); PosRowSet rowSet = getDao("mesdao").find( "UIH052400_08.select", param1); while (rowSet.hasNext()) { PosRow row = rowSet.next(); showJudge = row.getAttribute("EXTSHAPE_DEC_GRD") .toString(); sizeJudge = row.getAttribute("SIZE_DEC_RST").toString(); } if (showJudge.equals("1") && sizeJudge.equals("1")) { SENDCHCOIL(coilNos[i]);//发送常化 transFlag = "Y"; } } // 更新热轧库出库信息 updateHCoilTrnfInfo(TRNF_SHIFT[0], TRNF_GROUP[0], TRNF_REG[0], TRNF_DTIME[0], TRANSFER_TYPE[0], TRANSFER_NO[0], transSeqs[i], transFlag, coilNos[i]); // 插入步进梁接口表 if ("B".equals(TRANSFER_TYPE[0])) { PosParameter param = new PosParameter(); param.setValueParamter(0, String.valueOf(i + 1)); param.setValueParamter(1, coilNos[i]); param.setValueParamter(2, TRANSFER_NO[0]);// 步进梁号 param.setValueParamter(3, "1");// 鞍座号 getDao("mesdao").insert("UIH052400_05.insert", param); } // 新增钢卷移送记录 addTransRecord(coilNos[i], TRNF_SHIFT[0], TRNF_GROUP[0], TRNF_REG[0], TRNF_DTIME[0], TRANSFER_TYPE[0], TRANSFER_NO[0], transSeqs[i]); long coilWgt = 0; try { coilWgt = new Long(actWgts[i]).longValue(); } catch (Exception e) { // TODO: handle exception } NIE012070_CALL(lshs[i], coilWgt, ordNos[i], ordSeqs[i], "", "", curProgCds[i], "SGF", "AR", TRNF_REG[0]); } NIE012080_CALL(); } return PosBizControlConstants.SUCCESS; } /** * 更新热轧库移送出库信息 * * @param trnfShift * 班次 * @param trnfGroup * 班组 * @param trnfReg * 操作人 * @param trnfTime * 操作时间 * @param transferType * 移送区分 * @param transferNo * 移送步进梁号/车辆号 * @param coilNo * 钢卷号 * @return boolean */ private boolean updateHCoilTrnfInfo(String trnfShift, String trnfGroup, String trnfReg, String trnfTime, String transferType, String transferNo, String transSeq, String transFlag, String coilNo) { try { boolean updRs = false; if (null != coilNo && !"".equals(coilNo)) { PosParameter param = new PosParameter(); param.setValueParamter(0, trnfShift); param.setValueParamter(1, trnfGroup); param.setValueParamter(2, trnfReg); param.setValueParamter(3, trnfTime); param.setValueParamter(4, "Z"); param.setValueParamter(5, transferNo); param.setValueParamter(6, trnfTime); param.setValueParamter(7, transSeq); param.setValueParamter(8, transFlag); param.setWhereClauseParameter(0, coilNo); int count = getDao("mesdao").update("UIH052402_03.update", param); if (0 < count) { // 把钢卷信息清除垛位表 PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, coilNo); getDao("mesdao").update("UIH052400_04.update", param2); updRs = true; logger .logInfo("updateColdTrnfInfo success ---SEND_LZ.java "); } System.out.println(count + "---------------------"); return updRs; } else { return updRs; } } catch (Exception e) { logger.logError(e.getMessage(), e); // TODO: handle exception } return false; } /** * 新增移送记录 * * @param coilNo * @param yardAddr * @param regOrder * @param regGroup * @param regId * @param regDtime * @return */ private boolean addTransRecord(String coilNo, String regOrder, String regGroup, String regId, String regDtime, String transClf, String transNo, String transSeq) { boolean flag = true; try { PosParameter param = new PosParameter(); param.setValueParamter(0, coilNo); param.setValueParamter(1, coilNo); param.setValueParamter(2, regId); param.setValueParamter(3, regOrder); param.setValueParamter(4, regGroup); param.setValueParamter(5, regDtime); param.setValueParamter(6, transClf); param.setValueParamter(7, transNo); param.setValueParamter(8, transSeq); int count = getDao("mesdao").insert("UIH052400_03.insert", param); if (count < 1) { flag = false; } } catch (Exception e) { // TODO: handle exception logger.logError(e.getMessage(), e); } return flag; } public void SENDCHCOIL(String OLD_SAMPL_NO ) { CallableStatement cstm = null; try { cstm = getDao("mesdao").getCallableStatement("UIH052402_01.CALL"); cstm.setString(1, OLD_SAMPL_NO ); cstm.execute(); ProduceFactory PD= new ProduceFactory(); PD.ErpDataCover("HCOIL",OLD_SAMPL_NO,"55A","1","O","蔡伟平","热轧转出"); PD.ErpDataCover("HCOIL",OLD_SAMPL_NO,"55A","1","N","CHUA","常化转入"); } catch (Exception ex) { ex.printStackTrace(); System.out.println("明细数据发送到常化接口表数据库执行失败UIJ010060_02.CALL**********"); } finally { if (cstm != null) try { cstm.close(); System.out.println("明细数据发送到常化接口表数据库成功执行UIJ010060_02.CALL-------------------"); } catch (Exception e) { e.printStackTrace(); } } } /** * 订单进程标记 * * @param P_MAT_NO * 钢卷号 * @param V_WGT * 重量 * @param V_ORD_NO * 合同号 * @param V_ORD_SEQ * 订单号 * @param P_BEF_ORD_NO * '' * @param P_BEF_ORD_SEQ * '' * @param P_BEF_PROG_CD * 前进程状态 * @param P_CUR_PROG_CD * 当前进程状态 * @param P_MAT_TYPE * 'AR' * @param V_REG_ID * 用户ID * @return */ public PosContext NIE012070_CALL(String P_MAT_NO, long V_WGT, String V_ORD_NO, String V_ORD_SEQ, String P_BEF_ORD_NO, String P_BEF_ORD_SEQ, String P_BEF_PROG_CD, String P_CUR_PROG_CD, String P_MAT_TYPE, String V_REG_ID) { PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); // SaveOrdSts String TcId = "NIE012070"; message.setTCID(TcId); message.setObject("MSG_ID", TcId); message.setObject("BEF_ORD_NO", P_BEF_ORD_NO); message.setObject("BEF_ORD_SEQ", P_BEF_ORD_SEQ); message.setObject("ORD_NO", V_ORD_NO); message.setObject("ORD_SEQ", V_ORD_SEQ); message.setObject("BEF_PROG_CD", P_BEF_PROG_CD); message.setObject("PROG_CD", P_CUR_PROG_CD); message.setObject("MAT_TYPE", P_MAT_TYPE); message.setObject("MAT_NO", P_MAT_NO); message.setObject("WGT", new BigDecimal(V_WGT)); message.setObject("PGMID", "saveOrdNoHH"); message.setObject("REG_ID", V_REG_ID); 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"); if (SERVICE_ERR_MSG != null) { throw new PosException(SERVICE_ERR_MSG); } return context; } /** * 订单进程整理 * * @return */ public PosContext NIE012080_CALL() { PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); // OrdStsMain String TcId = "NIE012080"; message.setTCID(TcId); message.setObject("MSG_ID", TcId); message.setObject("AA", ""); 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"); if (SERVICE_ERR_MSG != null) { throw new PosException(SERVICE_ERR_MSG); } return context; } }