package UIM; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import CoreFS.SA01.CoreIComponent; import CoreFS.SA06.CoreReturnObject; /** * 冷轧中间库库存数据查询 * * @author siy * @date 2010-08-19 */ public class UIM010170 extends CoreIComponent { /** * 查询连退计划 * * @param ordNo * 合同号 * @param ordSeq * 订单号 * @param coilNo * 热轧卷号 * @return CoreReturnObject * @throws SQLException */ public CoreReturnObject queryMillPlan(String coilNo) throws SQLException { CoreReturnObject cro = new CoreReturnObject(); StringBuffer sqlBuffer = new StringBuffer(); sqlBuffer.append("SELECT \n"); sqlBuffer.append("a.ROLL_MANA_NO --轧制单元号\n"); sqlBuffer.append(",a.ROLL_COIL_SEQ --单元内序号\n"); sqlBuffer.append(",a.COIL_EDT_SEQ --轧制序号\n"); sqlBuffer.append(",a.C_COIL_NO --冷卷号 \n"); sqlBuffer.append(",a.COIL_NO --热卷号 \n"); sqlBuffer.append(",a.SPEC_STL_GRD --酸轧牌号 \n"); sqlBuffer.append(",a.STL_GRD --热轧牌号 \n"); sqlBuffer.append(",a.STL_GRP_CD --钢号组 \n"); sqlBuffer.append(",a.COIL_THK --热卷厚度 \n"); sqlBuffer.append(",a.COIL_WTH --热卷宽度 \n"); sqlBuffer.append(",a.COIL_WGT --热卷重量 \n"); sqlBuffer.append(",b.CUR_LOAD_LOC --堆放位置 \n"); sqlBuffer.append(",a.ORD_NO --合同号 \n"); sqlBuffer.append(",a.ORD_SEQ --订单号 \n"); sqlBuffer.append(",a.ORD_THK --订单厚度 \n"); sqlBuffer.append(",a.ORD_WTH --订单宽度 \n"); sqlBuffer.append(",a.ORD_WGT --订单重量 \n"); sqlBuffer.append(",a.ORD_WGT_MIN --订单下限 \n"); sqlBuffer.append(",a.ORD_WGT_MAX --订单上限 \n"); sqlBuffer.append(",a.ORD_INDIA --订单内径 \n"); sqlBuffer.append(",a.ORD_OUTDIA --订单外径 \n"); sqlBuffer.append("FROM c_tbf03_spec_mill a, \n"); sqlBuffer.append("c_tbk02_coil_comm b \n"); sqlBuffer.append("WHERE a.COIL_NO = b.COIL_NO \n"); sqlBuffer.append("and a.STATUS_CD = 'A' \n"); sqlBuffer.append("and b.COIL_NO like ?||'%' \n"); sqlBuffer.append("ORDER BY a.ROLL_MANA_NO,a.ROLL_COIL_SEQ \n"); cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(), new Object[] { coilNo }); return cro; } /** * 查询退废出库卷信息 * * @param coilNo * 冷轧卷号 * @return CoreReturnObject */ public CoreReturnObject queryOutCoil(String coilNo) throws SQLException { CoreReturnObject cro = new CoreReturnObject(); StringBuffer sqlBuffer = new StringBuffer(); sqlBuffer.append("select COIL_NO,SPEC_STL_GRD STL_GRD,COIL_THK,\n"); sqlBuffer .append("COIL_WTH,ACT_WGT COIL_WGT,CUR_LOAD_LOC,ORD_NO,ORD_SEQ \n"); sqlBuffer.append("from c_tbm02_coil_comm where COIL_NO like ?||'%'\n"); cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(), new Object[] { coilNo }); return cro; } /** * 中间库出库 * * @param outType * 出库类型 * @param coilNo * 钢卷号 * @param regId * 操作人 * @param trnfShift * 出库班次 * @param trnfGroup * 出库班组 * @param trnfTime * 出库时间 * @return CoreReturnObject */ public CoreReturnObject saveCoilOut(Integer outType, String coilNo, String regId, String trnfShift, String trnfGroup, String trnfTime, String trnfRemark) throws SQLException { CoreReturnObject cro = new CoreReturnObject(); // 清除原料库垛位表钢卷信息并将原料公共表钢卷垛位信息置为出库 boolean crs = cleanCoil(outType.intValue(), coilNo, regId, trnfShift, trnfGroup, trnfTime, trnfRemark); if (crs) { // 如果是退回出库,将热轧公共表钢卷数据改为可入库 if (3 == outType.intValue()) { } // 修改进程、计划 } return cro; } /** * 清空钢卷库存信息 * * @param outType * 出库类型 * @param coilNo * 钢卷号 * @param regId * 出库人 * @param trnfShift * 出库班次 * @param trnfGroup * 出库班组 * @param tranTime * 出库时间 * @return boolean */ private boolean cleanCoil(int outType, String coilNo, String regId, String trnfShift, String trnfGroup, String trnfTime, String trnfRemark) throws SQLException { // 根据钢卷号查询垛位编号 String sql1 = "select clf_no from c_tbk08_coil_yard where coil_no = '" + coilNo + "'"; ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql1); long yardNo = 0; // 如果钢卷在原料库中,查询出相应的垛位编号 if (rs.next()) { yardNo = Long.parseLong(rs.getObject("clf_no").toString()); } else { return false; } //20131014系统连接异常优化 this.getDao("KgDao").closeRs(rs); // 根据垛位编号清除钢卷信息 String sql2 = "update c_tbk08_coil_yard set coil_no = '' where clf_no = ?"; this.getDao("KgDao").ExcuteNonQuery(sql2, new Object[] { yardNo }); // 修改原料公共表钢卷操作信息 StringBuffer sql3 = new StringBuffer(); sql3.append("update c_tbk02_coil_comm set \n"); sql3.append("coil_stat = '3', --进程状态\n"); // 如果是上料出库,更新物料进程代码为酸轧卷取待机,如果是退废或退回出库,不处理 switch (outType) { case 1: sql3.append("cur_prog_cd = 'PCC', --物料进程代码\n"); break; case 2: trnfRemark = "退废"; break; case 3: trnfRemark = "退回"; break; } sql3.append("trnf_reg = :1, --出库人\n"); sql3.append("trnf_shift=:2, --出库班次\n"); sql3.append("trnf_group=:3, --出库班组\n"); sql3 .append("trnf_use_time=TO_CHAR(SYSDATE,'YYYYMMDDHH24MIDD'), --出库操作时间\n"); sql3.append("trnf_dtime=:4, --出库时间\n"); sql3.append("trnf_remark=:5 --出库备注\n"); sql3.append("where coil_no = :6 --钢卷号\n"); this.getDao("KgDao").ExcuteNonQuery( sql3.toString(), new Object[] { regId, trnfShift, trnfGroup, trnfTime, coilNo, trnfRemark }); return true; } }