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_LZ 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")) { // 无性能结果时不更新冷轧原料库 // if (!curProgCds[i].equals("SED")) { // 更新冷轧原料库钢卷公共表 updateColdCoilComm(coilNos[i], TRANSFER_TYPE[0], TRANSFER_NO[0], TRNF_DTIME[0], transSeqs[i]); // 更新原料钢卷公共_D表 updateColdCoilCommD(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 coilNo * 钢卷号 * @return boolean */ private boolean hasCoilInTBK(String coilNo) { boolean hasCoil = true; int count = 0; if (null != coilNo && !"".equals(coilNo)) { PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, coilNo); PosRowSet rowSet = getDao("mesdao").find("UIH052400_02.select", param); if (rowSet.hasNext()) { PosRow pRow = rowSet.next(); count = Integer.parseInt(pRow.getAttribute("COUNT").toString()); } if (0 == count) { hasCoil = false; } return hasCoil; } else { return hasCoil; } } /** * 将热轧库钢卷信息转移到冷轧原料库 * * @param coilNo * 钢卷号 * @param transType * 移送区分 * @param transNo * 移送步进梁号/车辆号 * @param transTime * 移送时间 * @return boolean */ private boolean updateColdCoilComm(String coilNo, String transType, String transNo, String transTime, String transSeq) { boolean addRs = false; if (null == coilNo || "".equals(coilNo)) { return addRs; } // 如果冷轧原料公共表中不存在此钢卷信息 if (!hasCoilInTBK(coilNo)) { PosParameter param = new PosParameter(); param.setValueParamter(0, transType); param.setValueParamter(1, transNo); param.setValueParamter(2, transTime); param.setValueParamter(3, transSeq); param.setValueParamter(4, coilNo); param.setWhereClauseParameter(0, coilNo); int count = getDao("mesdao").insert("UIH052400_01.insert", param); //调用存货异动点存储过程 /* ProduceFactory PD= new ProduceFactory(); PD.ErpDataCover("HCOIL",coilNo,"55A","1","O","蔡伟平","热轧转出");*/ if (0 < count) { addRs = true; logger.logInfo("addColdCoil success ---SEND_LZ.java "); } } else { // 更新冷轧库钢卷信息,更新热轧库出库信息 PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, coilNo); PosRowSet rowSet = getDao("mesdao").find("UIH052400_07.select", param1); if (rowSet.hasNext()) { PosRow posRow = rowSet.next(); PosParameter param2 = new PosParameter(); param2.setValueParamter(0, posRow.getAttribute("SLAB_NO")); param2.setValueParamter(1, posRow.getAttribute("CUR_PROG_CD")); param2.setValueParamter(2, posRow .getAttribute("CUR_PROG_CD_DTIME")); param2.setValueParamter(3, posRow .getAttribute("CUR_PROG_CD_PGM")); param2.setValueParamter(4, posRow .getAttribute("INSTR_COIL_THK")); param2.setValueParamter(5, posRow .getAttribute("INSTR_COIL_WTH")); param2.setValueParamter(6, posRow .getAttribute("INSTR_COIL_LEN")); param2.setValueParamter(7, posRow .getAttribute("INSTR_COIL_INDIA")); param2.setValueParamter(8, posRow .getAttribute("INSTR_COIL_OUTDIA")); param2.setValueParamter(9, posRow .getAttribute("INSTR_COIL_WGT")); param2 .setValueParamter(10, posRow .getAttribute("DEVLMT_DTIME")); param2.setValueParamter(11, posRow.getAttribute("DEST_CD")); param2.setValueParamter(12, posRow.getAttribute("ORDCUST_CD")); param2.setValueParamter(13, posRow.getAttribute("CUST_CD")); param2.setValueParamter(14, posRow.getAttribute("COIL_LEN")); param2.setValueParamter(15, posRow.getAttribute("COIL_INDIA")); param2.setValueParamter(16, posRow.getAttribute("COIL_OUTDIA")); param2.setValueParamter(17, posRow.getAttribute("COIL_THK")); param2.setValueParamter(18, posRow.getAttribute("COIL_WTH")); param2.setValueParamter(19, posRow.getAttribute("ACT_WGT")); param2.setValueParamter(20, posRow.getAttribute("ORD_FL")); param2.setValueParamter(21, posRow.getAttribute("ORD_NO")); param2.setValueParamter(22, posRow.getAttribute("ORD_SEQ")); param2.setValueParamter(23, posRow.getAttribute("PRODNM_CD")); param2.setValueParamter(24, posRow.getAttribute("SPEC_ABBSYM")); param2 .setValueParamter(25, posRow .getAttribute("SPEC_STL_GRD")); param2.setValueParamter(26, posRow.getAttribute("ORD_USE_CD")); param2.setValueParamter(27, posRow.getAttribute("STL_GRD")); param2 .setValueParamter(28, posRow .getAttribute("PATH_MILL_CD")); param2 .setValueParamter(29, posRow .getAttribute("INGR_DEC_GRD")); param2.setValueParamter(30, posRow .getAttribute("EXTSHAPE_DEC_GRD")); param2 .setValueParamter(31, posRow .getAttribute("SIZE_DEC_RST")); param2.setValueParamter(32, posRow.getAttribute("WGT_DEC_RST")); param2 .setValueParamter(33, posRow .getAttribute("PROC_DEC_RST")); param2.setValueParamter(34, posRow .getAttribute("MATLQLTY_DEC_GRD")); param2.setValueParamter(35, posRow.getAttribute("TOT_DEC_GRD")); param2.setValueParamter(36, posRow.getAttribute("MILL_DTIME")); param2.setValueParamter(37, posRow.getAttribute("CRK_CD1")); param2.setValueParamter(38, posRow.getAttribute("CRK_CD2")); param2.setValueParamter(39, posRow.getAttribute("CRK_CD3")); param2.setValueParamter(40, posRow.getAttribute("CRK_CD4")); param2.setValueParamter(41, posRow.getAttribute("CRK_CD5")); param2.setValueParamter(42, posRow.getAttribute("CAL_WGT")); param2 .setValueParamter(43, posRow .getAttribute("OLD_SAMPL_NO")); param2.setValueParamter(44, transType); param2.setValueParamter(45, transNo); param2.setValueParamter(46, transTime); param2.setValueParamter(47, posRow .getAttribute("FM_EXT_STRIP_THK_AVG")); param2.setValueParamter(48, posRow .getAttribute("FM_EXT_STRIP_TEMP_AVG")); param2.setValueParamter(49, posRow.getAttribute("DC_TEMP_AVG")); param2.setValueParamter(50, posRow .getAttribute("FM_EXT_STRIP_CROWN_AVG")); param2.setValueParamter(51, posRow .getAttribute("YARD_ENTRY_DTIME")); param2.setValueParamter(52, posRow.getAttribute("SAMPL_NO")); param2.setValueParamter(53, posRow .getAttribute("SAMPL_CUT_LOC")); param2.setValueParamter(54, posRow.getAttribute("ORD_FL"));// OLD_ORD_FL param2.setValueParamter(55, posRow.getAttribute("ORD_NO"));// OLD_ORD_NO param2.setValueParamter(56, posRow.getAttribute("ORD_SEQ"));// OLD_ORD_SEQ param2.setValueParamter(57, transSeq); param2.setWhereClauseParameter(0, coilNo); int count = getDao("mesdao").update("UIH052400_02.update", param2); if (count > 0) { addRs = true; logger.logInfo("updColdCoil success ---SEND_LZ.java "); } } } return addRs; } private void updateColdCoilCommD(String coilNo) { // 更新c_tbk02_comm_d表 PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, coilNo); PosRowSet rowSet = getDao("mesdao").find("UIH052400_05.select", param1); PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, coilNo); PosRowSet rowSet3 = getDao("mesdao") .find("UIH052400_09.select", param3); String cutSeq = ""; PosParameter param2 = new PosParameter(); if (rowSet.hasNext() && rowSet3.hasNext()) { PosRow pRowc = rowSet3.next(); cutSeq = pRowc.getAttribute("CUT_SEQ").toString(); PosRowSet rowSet2 = getDao("mesdao").find("UIH052400_06.select", param1); if (rowSet2.hasNext()) { PosRow pRow = rowSet2.next(); // String cut_seq = pRow.getAttribute("CUT_SEQ") == null // ?"":pRow.getAttribute("CUT_SEQ").toString(); String ord_thk = pRow.getAttribute("ORD_THK") == null ? "" : pRow.getAttribute("ORD_THK").toString(); String ord_wth = pRow.getAttribute("ORD_WTH") == null ? "" : pRow.getAttribute("ORD_WTH").toString(); String ord_len = pRow.getAttribute("ORD_LEN") == null ? "" : pRow.getAttribute("ORD_LEN").toString(); String ord_wgt = pRow.getAttribute("ORD_WGT") == null ? "" : pRow.getAttribute("ORD_WGT").toString(); String ord_wgt_min = pRow.getAttribute("ORD_WGT_MIN") == null ? "" : pRow.getAttribute("ORD_WGT_MIN").toString(); String ord_wgt_max = pRow.getAttribute("ORD_WGT_MAX") == null ? "" : pRow.getAttribute("ORD_WGT_MAX").toString(); String ord_india = pRow.getAttribute("ORD_INDIA") == null ? "" : pRow.getAttribute("ORD_INDIA").toString(); String ord_outdia = pRow.getAttribute("ORD_OUTDIA") == null ? "" : pRow.getAttribute("ORD_OUTDIA").toString(); String ord_no = pRow.getAttribute("ORD_NO") == null ? "" : pRow .getAttribute("ORD_NO").toString(); String ord_seq = pRow.getAttribute("ORD_SEQ") == null ? "" : pRow.getAttribute("ORD_SEQ").toString(); String ord_fl = pRow.getAttribute("ORD_FL") == null ? "" : pRow .getAttribute("ORD_FL").toString(); // param2.setValueParamter(0, cut_seq); param2.setValueParamter(0, ord_thk); param2.setValueParamter(1, ord_wth); param2.setValueParamter(2, ord_len); param2.setValueParamter(3, ord_wgt); param2.setValueParamter(4, ord_wgt_min); param2.setValueParamter(5, ord_wgt_max); param2.setValueParamter(6, ord_india); param2.setValueParamter(7, ord_outdia); param2.setValueParamter(8, ord_no); param2.setValueParamter(9, ord_seq); param2.setValueParamter(10, ord_fl); param2.setWhereClauseParameter(0, coilNo); param2.setWhereClauseParameter(1, cutSeq); getDao("mesdao").update("UIH052400_01.update", param2); } } else { param2.setValueParamter(0, coilNo); getDao("mesdao").insert("UIH052400_02.insert", param2); } } /** * 更新热轧库移送出库信息 * * @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, transferType); 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("UIH052400_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; } /** * 订单进程标记 * * @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; } }