package xin.glue.nui.H.H02; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.SQLException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import xin.glue.ui.common.PosDateFormat; import xin.glue.ui.common.ProduceFactory; 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:王小炎 * date:2008-10-17 * desc:接收LEVEL2中所发生的热轧实绩录入到热轧实绩表TBH02_MILL_RESULT中 */ public class XinSaveMillResult extends PosActivity { public String runActivity(PosContext context) { logger.logDebug("XinSaveMillResult start !!! "); PosMessage message = context.getMessage(); //实际钢卷号 String coil_no_l2 = (String)message.get("COIL_NO"); //1 钢卷号 String slab_no = (String)message.get("SLAB_NO"); //2 板坯号 String stl_grd = (String)message.get("STL_GRD"); //3 订货钢种 String rhf_descal_yn = (String)message.get("RHF_DESCAL_YN"); //4 加热炉后的除磷机是否使用标记 String rm_ent_descal_yn = (String)message.get("RM_ENT_DESCAL_YN"); //5 RM入口处的除磷机是否使用标记 String rm_ext_descal_yn = (String)message.get("RM_EXT_DESCAL_YN"); String rm1_pass_cnt = (String)message.get("RM1_PASS_CNT"); //7 RM1 轧制道次 String rm2_pass_cnt = (String)message.get("RM2_PASS_CNT"); //8 RM2 轧制道次 String r1_ext_temp = (String)message.get("R1_EXT_TEMP"); //9 粗轧温度(R1后) String r2_ext_temp = (String)message.get("R2_EXT_TEMP"); //10 粗轧温度(R2后) String rm_ext_avg_thk = (String)message.get("RM_EXT_AVG_THK"); //11 RM 出口平均厚度 String rm_ext_avg_wth = (String)message.get("RM_EXT_AVG_WTH"); //12 RM 出口平均宽度 String rm_ext_avg_len = (String)message.get("RM_EXT_AVG_LEN"); //13 RM 出口平均长度 String f1_ent_pass_dtime = (String)message.get("F1_ENT_PASS_DTIME"); //14 入 F1 时刻 String f7_ent_pass_dtime = (String)message.get("F7_ENT_PASS_DTIME"); //15 入 F7 时刻 String fst_inact_stand_no = (String)message.get("FST_INACT_STAND_NO"); //16 第一个空过机架 String snd_inact_stand_no = (String)message.get("SND_INACT_STAND_NO"); //17 第二个空过机架 String trd_inact_stand_no = (String)message.get("TRD_INACT_STAND_NO"); //18 第三个空过机架 String f1_ent_temp_avg = (String)message.get("F1_ENT_TEMP_AVG"); //19 进入 F1 前平均温度 String f1_ent_temp_max = (String)message.get("F1_ENT_TEMP_MAX"); //20 进入 F1 前最大温度 String f1_ent_temp_min = (String)message.get("F1_ENT_TEMP_MIN"); //21 进入 F1 前最小温度 //新增以便和接口表对起 BigDecimal f1_ent_temp_out_of_len = (BigDecimal)message.get("F1_ENT_TEMP_OUT_OF_LEN"); //进入 F1 前温度不在公差范围的长度 String fm_ext_strip_thk = (String)message.get("FM_EXT_STRIP_THK"); //22 额定轧制厚度 String fm_ext_strip_thk_avg = (String)message.get("FM_EXT_STRIP_THK_AVG"); //23 轧制厚度平均值【钢卷厚度】 String fm_ext_strip_thk_max = (String)message.get("FM_EXT_STRIP_THK_MAX"); //24 轧制厚度最大值 String fm_ext_strip_thk_min = (String)message.get("FM_EXT_STRIP_THK_MIN"); //25 轧制厚度最小值 //与接口表对应一致 String fm_ext_strip_thk_out_of_l = (String)message.get("FM_EXT_STRIP_THK_OUT_OF_LEN");//26 轧制厚度不在公差范围内的长度 String fm_ext_strip_wth = (String)message.get("FM_EXT_STRIP_WTH"); //27 额定轧制宽度 String fm_ext_strip_wth_avg = (String)message.get("FM_EXT_STRIP_WTH_AVG"); //28 轧制宽度平均值【钢卷宽度】 String fm_ext_strip_wth_max = (String)message.get("FM_EXT_STRIP_WTH_MAX"); //29 轧制宽度最大值 String fm_ext_strip_wth_min = (String)message.get("FM_EXT_STRIP_WTH_MIN"); //30 轧制宽度最小值 //与接口表对应一致 String fm_ext_strip_wth_out_of_l = (String)message.get("FM_EXT_STRIP_WTH_OUT_OF_LEN");//31 轧制宽度不在公差范围内的长度 String fm_ext_strip_crown = (String)message.get("FM_EXT_STRIP_CROWN"); //32 额定凸度 String fm_ext_strip_crown_avg = (String)message.get("FM_EXT_STRIP_CROWN_AVG"); //33 凸度平均值 String fm_ext_strip_crown_max = (String)message.get("FM_EXT_STRIP_CROWN_MAX"); //34 凸度最大值 String fm_ext_strip_crown_min = (String)message.get("FM_EXT_STRIP_CROWN_MIN"); //35 凸度最小值 //与接口表对应一致 String fm_ext_strip_crown_out_of = (String)message.get("FM_EXT_STRIP_CROWN_OUT_OF_LEN"); //36 凸度不在公差范围内的长度 String fm_sym_strip_flatness_avg = (String)message.get("FM_SYM_STRIP_FLATNESS_AVG"); //37 对称平直度平均值 String fm_sym_strip_flatness_max = (String)message.get("FM_SYM_STRIP_FLATNESS_MAX"); //38 对称平直度最大值 String fm_sym_strip_flatness_min = (String)message.get("FM_SYM_STRIP_FLATNESS_MIN"); //39 对称平直度最小值 //与接口表对应一致 String fm_sym_strip_out_or_range = (String)message.get("FM_SYM_STRIP_OUT_OF_RANGE");//40 对称平直度不在公差范围内的长度 String fm_asy_strip_flatness_avg = (String)message.get("FM_ASY_STRIP_FLATNESS_AVG"); //41 非对称平直度平均值 String fm_asy_strip_flatness_max = (String)message.get("FM_ASY_STRIP_FLATNESS_MAX"); //42 非对称平直度最大值 String fm_asy_strip_flatness_min = (String)message.get("FM_ASY_STRIP_FLATNESS_MIN"); //43 非对称平直度最小值 String fm_asy_strip_out_of_range = (String)message.get("FM_ASY_STRIP_OUT_OF_RANGE"); //44 非对称平直度不在公差范围内的长度 String fm_strip_wdg_avg = (String)message.get("FM_STRIP_WDG_AVG"); //45 稧型 出口平均值 String fm_strip_wdg_max = (String)message.get("FM_STRIP_WDG_MAX"); //46 稧型 出口最大值 String fm_strip_wdg_min = (String)message.get("FM_STRIP_WDG_MIN"); //47 稧型 出口最小值 String fm_strip_wdg_out_of_range = (String)message.get("FM_STRIP_WDG_OUT_OF_RANGE"); //48 稧型 不在公差范围内的长度 String fm_ext_strip_temp = (String)message.get("FM_EXT_STRIP_TEMP"); //49 额定终轧温度 String fm_ext_strip_temp_avg = (String)message.get("FM_EXT_STRIP_TEMP_AVG"); //50 终轧温度平均值 //这里改变MSG中值,与接口文档对应起来 String fm_ext_strip_temp_max = (String)message.get("FM_EXT_STRIP_TEMP_MAX"); //51 终轧温度最大值 String fm_ext_strip_temp_min = (String)message.get("FM_EXT_STRIP_TEMP_MIN"); //52 终轧温度最小值 String strip_out_of_range = (String)message.get("STRIP_OUT_OF_RANGE"); //53 终轧温度 不在公差范围内的长度 String dc_temp = (String)message.get("DC_TEMP"); //54 额定卷取温度 String dc_temp_avg = (String)message.get("DC_TEMP_AVG"); //55 卷取温度平均值 String dc_temp_max = (String)message.get("DC_TEMP_MAX"); //56 卷取温度最大值 String dc_temp_min = (String)message.get("DC_TEMP_MIN"); //57 卷取温度最小均值 String dc_temp_out_of_range = (String)message.get("DC_TEMP_OUT_OF_RANGE"); //58 卷取温度 不在公差范围内的长度 String dc_no = (String)message.get("DC_NO"); //59 卷取机号 String dc_on_dtime = (String)message.get("DC_ON_DTIME"); //60 开始卷取时刻 String dc_off_dtime = (String)message.get("DC_OFF_DTIME"); //61 结束卷取时刻 BigDecimal coil_wgt = (BigDecimal)message.get("COIL_WGT"); //62 钢卷重量 String coil_wgt_dec_clf = (String)message.get("COIL_WGT_DEC_CLF"); //63 钢卷重量区分 String coil_india = (String)message.get("COIL_INDIA"); //64 钢卷内径 String coil_outdia = (String)message.get("COIL_OUTDIA"); //65 钢卷外径 String coil_len = (String)message.get("COIL_LEN"); //66 钢卷长度 String coil_lock_yn = (String)message.get("COIL_LOCK_YN"); //67 钢卷封锁标记 String thk_wth_chang_clf = (String)message.get("THK_WTH_CHANG_CLF"); //68 厚度宽度变更 SIGN String chang_cause_cd = (String)message.get("CHANG_CAUSE_CD"); //69 厚度宽度变更理由代码 String chang_empno = (String)message.get("CHANG_EMPNO"); //70 变更责任人 String chang_thk = (String)message.get("CHANG_THK"); //71 厚度变更目标(实绩) String chang_wth = (String)message.get("CHANG_WTH"); //72 宽度变更目标(实绩) String head_tail_cut_yn = (String)message.get("HEAD_TAIL_CUT_YN"); //74 精轧入口温度(F1) String f1_ent_temp = (String)message.get("F1_ENT_TEMP"); //75 穿带速度 String f7_mill_speed_head = (String)message.get("F7_MILL_SPEED_HEAD"); //76 轧制速度 ACC1 String f7_mill_speed_acc1 = (String)message.get("F7_MILL_SPEED_ACC1"); //77 轧制速度 ACC2 String f7_mill_speed_acc2 = (String)message.get("F7_MILL_SPEED_ACC2"); //78 轧制速度 Vmax String f7_mill_speed_vmax = (String)message.get("F7_MILL_SPEED_VMAX"); //79 轧制速度 VT String f7_mill_speed_vt = (String)message.get("F7_MILL_SPEED_VT"); //79 轧制速度 VT //没有用到 //String f7_mill_speed_vt = (String)message.get("F7_MILL_SPEED_VT"); //这里取的时候就是BigDecimal 所以不用转换 //BigDecimal Wgt = new BigDecimal(coil_wgt); //80 F7_MILL_SPEED_VT //拒收原因代码 在不同的电文中,MSG中没有 //String missno_clf_cd = (String)message.get("MISSNO_CLF_CD");//81 Reject 区分代码 //在轧制接口表中没有 //String missno_cause_cd = (String)message.get("MISSNO_CAUSE_CD");//82 Reject理由代码 //拒收时间 在不同的电文中,MSG中没有 //String missno_dtime = (String)message.get("MISSNO_DTIME");//83 Reject 发生时间 //在轧制接口表中没有 //String missno_bar_thk = (String)message.get("MISSNO_BAR_THK");//84 Reject时Bar厚 //在轧制接口表中没有 //String missno_bar_wth = (String)message.get("MISSNO_BAR_WTH");//85 Reject时Bar宽 String coil_rem = (String)message.get("COIL_REM"); //86 钢卷注释 String strip_thk_band1 = (String)message.get("STRIP_THK_BAND1"); //87 Strip Thickness 钢卷厚度分类1 String strip_thk_band2 = (String)message.get("STRIP_THK_BAND2"); //88 Strip Thickness 钢卷厚度分类2 String strip_thk_band3 = (String)message.get("STRIP_THK_BAND3"); //89 Strip Thickness 钢卷厚度分类3 String strip_thk_band4 = (String)message.get("STRIP_THK_BAND4"); //90 Strip Thickness 钢卷厚度 String strip_thk_band5 = (String)message.get("STRIP_THK_BAND5"); //91 Strip Thickness 钢卷厚度分类5 String strip_thk_band6 = (String)message.get("STRIP_THK_BAND6"); //92 Strip Thickness 钢卷厚度分类6 String strip_wth_band1 = (String)message.get("STRIP_WTH_BAND1"); //93 Strip Width 钢卷宽度分类1 String strip_wth_band2 = (String)message.get("STRIP_WTH_BAND2"); //94 Strip Width 钢卷宽度分类2 String strip_wth_band3 = (String)message.get("STRIP_WTH_BAND3"); //95 Strip Width 钢卷宽度分类3 String strip_wth_band4 = (String)message.get("STRIP_WTH_BAND4"); //96 Strip Width 钢卷宽度分类4 String strip_wth_band5 = (String)message.get("STRIP_WTH_BAND5"); //97 Strip Width 钢卷宽度分类5 String strip_wth_band6 = (String)message.get("STRIP_WTH_BAND6"); //98 Strip Width 钢卷宽度分类6 String strip_crown_band1 = (String)message.get("STRIP_CROWN_BAND1"); //99 Strip Crown 钢卷凸度分类1 String strip_crown_band2 = (String)message.get("STRIP_CROWN_BAND2"); //100Strip Crown 钢卷凸度分类2 String strip_crown_band3 = (String)message.get("STRIP_CROWN_BAND3"); //101Strip Crown 钢卷凸度分类3 String strip_crown_band4 = (String)message.get("STRIP_CROWN_BAND4"); //102Strip Crown 钢卷凸度分类4 String strip_crown_band5 = (String)message.get("STRIP_CROWN_BAND5"); //103Strip Crown 钢卷凸度分类5 String strip_crown_band6 = (String)message.get("STRIP_CROWN_BAND6"); //104Strip Crown 钢卷凸度分类6 String strip_sym_flatness_band1 = (String)message.get("STRIP_SYM_FLATNESS_BAND1"); //105Strip symm flatness 钢卷平直度分类1 String strip_sym_flatness_band2 = (String)message.get("STRIP_SYM_FLATNESS_BAND2"); //106Strip symm flatness 钢卷平直度分类2 String strip_sym_flatness_band3 = (String)message.get("STRIP_SYM_FLATNESS_BAND3"); //107Strip symm flatness 钢卷平直度分类3 String strip_sym_flatness_band4 = (String)message.get("STRIP_SYM_FLATNESS_BAND4"); //108Strip symm flatness 钢卷平直度分类4 String strip_sym_flatness_band5 = (String)message.get("STRIP_SYM_FLATNESS_BAND5"); //109Strip symm flatness 钢卷平直度分类5 String strip_sym_flatness_band6 = (String)message.get("STRIP_SYM_FLATNESS_BAND6"); //110Strip symm flatness 钢卷平直度分类6 String strip_asy_flatness_band1 = (String)message.get("STRIP_ASY_FLATNESS_BAND1"); //111非对称平直度 钢卷平直度分类1 String strip_asy_flatness_band2 = (String)message.get("STRIP_ASY_FLATNESS_BAND2"); //112非对称平直度 钢卷平直度分类2 String strip_asy_flatness_band3 = (String)message.get("STRIP_ASY_FLATNESS_BAND3"); //113非对称平直度 钢卷平直度分类3 String strip_asy_flatness_band4 = (String)message.get("STRIP_ASY_FLATNESS_BAND4"); //114非对称平直度 钢卷平直度分类4 String strip_asy_flatness_band5 = (String)message.get("STRIP_ASY_FLATNESS_BAND5"); //115非对称平直度 钢卷平直度分类5 String strip_asy_flatness_band6 = (String)message.get("STRIP_ASY_FLATNESS_BAND6"); //116非对称平直度 钢卷平直度分类6 String strip_wdg_band1 = (String)message.get("STRIP_WDG_BAND1"); //117Strip Wedge 钢卷平直度分类1 String strip_wdg_band2 = (String)message.get("STRIP_WDG_BAND2"); //118Strip Wedge 钢卷平直度分类2 String strip_wdg_band3 = (String)message.get("STRIP_WDG_BAND3"); //119Strip Wedge 钢卷平直度分类3 String strip_wdg_band4 = (String)message.get("STRIP_WDG_BAND4"); //120Strip Wedge 钢卷平直度分类4 String strip_wdg_band5 = (String)message.get("STRIP_WDG_BAND5"); //121Strip Wedge 钢卷平直度分类5 String strip_wdg_band6 = (String)message.get("STRIP_WDG_BAND6"); //122Strip Wedge 钢卷平直度分类6 String temp_rm_band1 = (String)message.get("TEMP_RM_BAND1"); //123粗轧出口温度 温度分类1 String temp_rm_band2 = (String)message.get("TEMP_RM_BAND2"); //124粗轧出口温度 温度分类2 String temp_rm_band3 = (String)message.get("TEMP_RM_BAND3"); //125粗轧出口温度 温度分类3 String temp_rm_band4 = (String)message.get("TEMP_RM_BAND4"); //126粗轧出口温度 温度分类4 String temp_rm_band5 = (String)message.get("TEMP_RM_BAND5"); //127粗轧出口温度 温度分类5 String temp_rm_band6 = (String)message.get("TEMP_RM_BAND6"); //128粗轧出口温度 温度分类6 //改变MSG中值与接口表对应起来 String temp_fm_band1 = (String)message.get("TEMP_FM_BAND1"); //129终轧温度 温度分类1 String temp_fm_band2 = (String)message.get("TEMP_FM_BAND2"); //130终轧温度 温度分类2 String temp_fm_band3 = (String)message.get("TEMP_FM_BAND3"); //131终轧温度 温度分类3 String temp_fm_band4 = (String)message.get("TEMP_FM_BAND4"); //132终轧温度 温度分类4 String temp_fm_band5 = (String)message.get("TEMP_FM_BAND5"); //133终轧温度 温度分类5 String temp_fm_band6 = (String)message.get("TEMP_FM_BAND6"); //134终轧温度 温度分类6 String dc_temp_band1 = (String)message.get("DC_TEMP_BAND1"); //135卷取温度 温度分类1 String dc_temp_band2 = (String)message.get("DC_TEMP_BAND2"); //136卷取温度 温度分类2 String dc_temp_band3 = (String)message.get("DC_TEMP_BAND3"); //137卷取温度 温度分类3 String dc_temp_band4 = (String)message.get("DC_TEMP_BAND4"); //138卷取温度 温度分类4 String dc_temp_band5 = (String)message.get("DC_TEMP_BAND5"); //139卷取温度 温度分类5 String dc_temp_band6 = (String)message.get("DC_TEMP_BAND6"); //140卷取温度 温度分类6 //没有 //String mill_dtime = (String)message.get("MILL_DTIME"); //141轧钢时间 //没有 //String size_change_dtime = (String)message.get("SIZE_CHANGE_DTIME"); //142厚度宽度变化时间 String currDate = null; String sShift = null; //计划钢卷号 String coil_no = null; //这里从二级接收过来的卷号为实际卷号,为了能够解析数据到实际表。把实际钢卷号转换为计划钢卷号。 //在执行相应的程序,把数据写入表中 PosParameter paramAA = new PosParameter(); paramAA.setWhereClauseParameter(0, coil_no_l2); //这里是实际钢卷号 logger.logDebug("XinSaveMillResult OLD_SAMPL_NO !!! "+coil_no_l2); PosRowSet CoilNoVo = getDao("mesdao").find("NIH020050_06.select", paramAA); //查询出计划卷号的情况下,处理相应的业务类数据 if(CoilNoVo.hasNext()){ PosRow CoilNoRow = CoilNoVo.next(); coil_no = (String) CoilNoRow.getAttribute("COIL_NO"); //这里是计划钢卷号 logger.logDebug("PosSaveMillToCoilComm COIL_NO !!! "+coil_no); //如果卷取结束时间为空,则放入系统时间 if(dc_off_dtime.length() == 0 ){ DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); currDate = formatter.format(new Date()); dc_off_dtime = currDate; } // 这里的班次的时间段就由基础表维护。可能存在2班或者3班的情况,那么就是有值的就进行判断没有的就是没有设定的。 PosParameter paramSA = new PosParameter(); PosParameter paramSB = new PosParameter(); PosParameter paramSC = new PosParameter(); //这里获取三个班次相应的时间 String sqlA = "SELECT to_number(A.SM_EFNM) SM_EFNM,to_number(A.SM_ESNM) SM_ESNM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'H07001' AND A.SM_CD = '1'"; String sqlB = "SELECT to_number(A.SM_EFNM) SM_EFNM,to_number(A.SM_ESNM) SM_ESNM,A.SHRXM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'H07001' AND A.SM_CD = '2'"; String sqlC = "SELECT to_number(A.SM_EFNM) SM_EFNM,to_number(A.SM_ESNM) SM_ESNM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'H07001' AND A.SM_CD = '3'"; PosRowSet ShiftA = getDao("mesdao").findByQueryStatement(sqlA, paramSA); PosRowSet ShiftB = getDao("mesdao").findByQueryStatement(sqlB, paramSB); PosRowSet ShiftC = getDao("mesdao").findByQueryStatement(sqlC, paramSC); BigDecimal SM_EFNMA = null; BigDecimal SM_ESNMA = null; BigDecimal SM_EFNMB = null; BigDecimal SM_ESNMB = null; //这里是中班是否超过0点指标。如果超过0点就判断早班和晚班的情况,其它为中班。如果不超过0点就判断早班和中班的情况,其它为晚班 String SHRXM = null; BigDecimal SM_EFNMC = null; BigDecimal SM_ESNMC = null; if(ShiftA.hasNext()){ PosRow ShiftAA = ShiftA.next(); SM_EFNMA = (BigDecimal) ShiftAA.getAttribute("SM_EFNM"); SM_ESNMA = (BigDecimal) ShiftAA.getAttribute("SM_ESNM"); } if(ShiftB.hasNext()){ PosRow ShiftBB = ShiftB.next(); SM_EFNMB = (BigDecimal) ShiftBB.getAttribute("SM_EFNM"); SM_ESNMB = (BigDecimal) ShiftBB.getAttribute("SM_ESNM"); SHRXM = (String) ShiftBB.getAttribute("SHRXM"); } if(ShiftC.hasNext()){ PosRow ShiftCC = ShiftC.next(); SM_EFNMC = (BigDecimal) ShiftCC.getAttribute("SM_EFNM"); SM_ESNMC = (BigDecimal) ShiftCC.getAttribute("SM_ESNM"); } int SM_EFNMAA; int SM_ESNMAA; int SM_EFNMBB; int SM_ESNMBB; int SM_EFNMCC; int SM_ESNMCC; int hhmi = Integer.parseInt(dc_off_dtime.substring(8, 12)); if(SM_EFNMA == null){ SM_EFNMAA = 0; }else{ SM_EFNMAA = SM_EFNMA.intValue(); } if(SM_ESNMA == null){ SM_ESNMAA = 0; }else{ SM_ESNMAA = SM_ESNMA.intValue(); } if(SM_EFNMB == null){ SM_EFNMBB = 0; }else{ SM_EFNMBB = SM_EFNMB.intValue(); } if(SM_ESNMB == null){ SM_ESNMBB = 0; }else{ SM_ESNMBB = SM_ESNMB.intValue(); } if(SM_EFNMC == null){ SM_EFNMCC = 0; }else{ SM_EFNMCC = SM_EFNMC.intValue(); } if(SM_ESNMC == null){ SM_ESNMCC = 0; }else{ SM_ESNMCC = SM_ESNMC.intValue(); } //如果出现中班输入为空的情况,说明是三班两倒。就一定会存在早班和晚班,那么只要判断早班即可 if(SM_EFNMB == null || SM_ESNMB == null){ if(hhmi > SM_EFNMAA && hhmi < SM_ESNMAA){ //早班,这里只要判断符合不符合早班的情况即可 sShift = "1"; }else{ sShift = "3"; } }else{ if(null != SHRXM && SHRXM.equals("Y")){ //如果标志为Y,说明中班的结束时间超过0点,这时判断早班和晚班的情况。 if(hhmi > SM_EFNMAA && hhmi < SM_ESNMAA){ sShift = "1"; }else if(hhmi > SM_EFNMCC && hhmi < SM_ESNMCC){ sShift = "3"; }else{ sShift = "2"; } }else{ //如果标志不为Y,说明中班的结束时间没有超过0点,这时判断早班和中班的情况。 if(hhmi > SM_EFNMAA && hhmi < SM_ESNMAA){ sShift = "1"; }else if(hhmi > SM_EFNMBB && hhmi < SM_ESNMBB){ sShift = "2"; }else{ sShift = "3"; } } } //这里需要用到天数前移一天和后退一天的共用方法,因为对三班和两班而言中班和晚班都可能存在跨天的情况。跨天后取班组时就要把时间前移 PosDateFormat dateFormat = new PosDateFormat(); // sShift = dateFormat.getShiftT(dc_off_dtime); // 这里需要获取昨天和明天的时间 String ZDate = null; String MDate = null; // 当前时间加一天 MDate = dateFormat.AddDateFunc(dc_off_dtime,1); //当前时间减一天 ZDate = dateFormat.AddDateFunc(dc_off_dtime,-1); String sGroup = null; //判断,跨天的班组需要前移时间,这样才能对得上班组 if(SM_EFNMB == null || SM_ESNMB == null){ //两班的情况,这里需要对时间进行前移。把产量计算的昨天晚班的产量 if(null != sShift && sShift.equals("3")){ //这里还需要判断,当前时间是大于晚班开始时间小于2400还是大于0000小于结束时间 if(hhmi >= SM_EFNMCC && hhmi <= 2400){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 两班早班当前的班次班组!! "+sShift+":"+sGroup+"卷取时间:"+dc_off_dtime); }else if(hhmi >= 0000 && hhmi <= SM_ESNMCC){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, ZDate.substring(0,6)); paramA.setWhereClauseParameter(1, ZDate.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 两班晚班当前的班次班组!! "+sShift+":"+sGroup+"前移时间:"+ZDate); } }else if(null != sShift && sShift.equals("1")){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 两班早班当前的班次班组!! "+sShift+":"+sGroup+"卷取时间:"+dc_off_dtime); }else{ //不存在 logger.logDebug(" 两班班次班组不存在的情况!! "); } }else{ //三班的情况 if(null != SHRXM && SHRXM.equals("Y")){ if(null != sShift && sShift.equals("1")){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班早班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+dc_off_dtime); }else if(null != sShift && sShift.equals("2")){ if(hhmi >= SM_EFNMBB && hhmi <= 2400){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班中班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+dc_off_dtime); }else if(hhmi >= 0000 && hhmi <= SM_ESNMBB){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, ZDate.substring(0,6)); paramA.setWhereClauseParameter(1, ZDate.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班中班当前的班次班组!! "+sShift+":"+sGroup+"前移时间:"+ZDate); } }else if(null != sShift && sShift.equals("3")){ //中班超过0点,晚班是从当天的凌晨开始的 PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班晚班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+dc_off_dtime); } }else{ if(null != sShift && sShift.equals("1")){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班早班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+dc_off_dtime); }else if(null != sShift && sShift.equals("2")){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班中班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+dc_off_dtime); }else if(null != sShift && sShift.equals("3")){ //这里如果中班不超过0点而正好是2400点的情况,对于晚班来说应该先判断是否是0000-0800的情况 if(hhmi >= 0000 && hhmi <= SM_ESNMCC){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, dc_off_dtime.substring(0,6)); paramA.setWhereClauseParameter(1, dc_off_dtime.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班晚班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+dc_off_dtime); }else if(hhmi >= SM_EFNMCC && hhmi <= 2400){ PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, MDate.substring(0,6)); paramA.setWhereClauseParameter(1, MDate.substring(6,8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "H"); PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA); if (groupVO.hasNext()){ PosRow groupROW = groupVO.next(); sGroup = (String)groupROW.getAttribute("GR_GROUP_CD"); } logger.logDebug(" 三班晚班当前的班次班组!! "+sShift+":"+sGroup+"时间:"+MDate); } } } } PosParameter param0 = new PosParameter(); PosParameter param1 = new PosParameter(); param0.setWhereClauseParameter(0, coil_no); PosRowSet rowset0 = this.getDao("mesdao").find("NIH020050_01.select", param0); if(rowset0.hasNext()) { param1.setWhereClauseParameter(0 , slab_no); //1 板坯号 param1.setWhereClauseParameter(1 , stl_grd); //2 订货钢种 param1.setWhereClauseParameter(2 , rhf_descal_yn); //3 加热炉后的除磷机是否使用标记 param1.setWhereClauseParameter(3 , rm_ent_descal_yn); //4 RM入口处的除磷机是否使用标记 param1.setWhereClauseParameter(4 , rm_ext_descal_yn); //5 RM出口处的除磷机是否使用标记 param1.setWhereClauseParameter(5 , rm1_pass_cnt); //6 RM1 轧制道次 param1.setWhereClauseParameter(6 , rm2_pass_cnt); //7 RM2 轧制道次 param1.setWhereClauseParameter(7 , r1_ext_temp); //8 粗轧温度(R1后) param1.setWhereClauseParameter(8 , r2_ext_temp); //9 粗轧温度(R2后) param1.setWhereClauseParameter(9 , rm_ext_avg_thk); //10 RM 出口平均厚度 param1.setWhereClauseParameter(10 , rm_ext_avg_wth); //11 RM 出口平均宽度 param1.setWhereClauseParameter(11 , rm_ext_avg_len); //12 RM 出口平均长度 param1.setWhereClauseParameter(12 , f1_ent_pass_dtime); //13 入 F1 时刻 param1.setWhereClauseParameter(13 , f7_ent_pass_dtime); //14 入 F7 时刻 param1.setWhereClauseParameter(14 , fst_inact_stand_no); //15 第一个空过机架 param1.setWhereClauseParameter(15 , snd_inact_stand_no); //16 第二个空过机架 param1.setWhereClauseParameter(16 , trd_inact_stand_no); //17 第三个空过机架 param1.setWhereClauseParameter(17 , f1_ent_temp_avg); //18 进入 F1 前平均温度 param1.setWhereClauseParameter(18 , f1_ent_temp_max); //19 进入 F1 前最大温度 param1.setWhereClauseParameter(19 , f1_ent_temp_min); //20 进入 F1 前最小温度 param1.setWhereClauseParameter(20 , fm_ext_strip_thk); //21 额定轧制厚度 param1.setWhereClauseParameter(21 , fm_ext_strip_thk_avg); //22 轧制厚度平均值【钢卷厚度】 param1.setWhereClauseParameter(22 , fm_ext_strip_thk_max); //23 轧制厚度最大值 param1.setWhereClauseParameter(23 , fm_ext_strip_thk_min); //24 轧制厚度最小值 param1.setWhereClauseParameter(24 , fm_ext_strip_thk_out_of_l); //25 轧制厚度不在公差范围内的长度 param1.setWhereClauseParameter(25 , fm_ext_strip_wth); //26 额定轧制宽度 param1.setWhereClauseParameter(26 , fm_ext_strip_wth_avg); //27 轧制宽度平均值【钢卷宽度】 param1.setWhereClauseParameter(27 , fm_ext_strip_wth_max); //28 轧制宽度最大值 param1.setWhereClauseParameter(28 , fm_ext_strip_wth_min); //29 轧制宽度最小值 param1.setWhereClauseParameter(29 , fm_ext_strip_wth_out_of_l); //30 轧制宽度不在公差范围内的长度 param1.setWhereClauseParameter(30 , fm_ext_strip_crown); //31 额定凸度 param1.setWhereClauseParameter(31 , fm_ext_strip_crown_avg); //32 凸度平均值 param1.setWhereClauseParameter(32 , fm_ext_strip_crown_max); //33 凸度最大值 param1.setWhereClauseParameter(33 , fm_ext_strip_crown_min); //34 凸度最小值 param1.setWhereClauseParameter(34 , fm_ext_strip_crown_out_of); //35 凸度不在公差范围内的长度 param1.setWhereClauseParameter(35 , fm_sym_strip_flatness_avg); //36 对称平直度平均值 param1.setWhereClauseParameter(36 , fm_sym_strip_flatness_max); //37 对称平直度最大值 param1.setWhereClauseParameter(37 , fm_sym_strip_flatness_min); //38 对称平直度最小值 param1.setWhereClauseParameter(38 , fm_sym_strip_out_or_range); //39 对称平直度不在公差范围内的长度 param1.setWhereClauseParameter(39 , fm_asy_strip_flatness_avg); //40 非对称平直度平均值 param1.setWhereClauseParameter(40 , fm_asy_strip_flatness_max); //41 非对称平直度最大值 param1.setWhereClauseParameter(41 , fm_asy_strip_flatness_min); //42 非对称平直度最小值 param1.setWhereClauseParameter(42 , fm_asy_strip_out_of_range); //43 非对称平直度不在公差范围内的长度 param1.setWhereClauseParameter(43 , fm_strip_wdg_avg); //44 稧型 出口平均值 param1.setWhereClauseParameter(44 , fm_strip_wdg_max); //45 稧型 出口最大值 param1.setWhereClauseParameter(45 , fm_strip_wdg_min); //46 稧型 出口最小值 param1.setWhereClauseParameter(46 , fm_strip_wdg_out_of_range); //47 稧型 不在公差范围内的长度 param1.setWhereClauseParameter(47 , fm_ext_strip_temp); //48 额定终轧温度 param1.setWhereClauseParameter(48 , fm_ext_strip_temp_avg); //49 终轧温度平均值 param1.setWhereClauseParameter(49 , fm_ext_strip_temp_max); //50 终轧温度最大值 param1.setWhereClauseParameter(50 , fm_ext_strip_temp_min); //51 终轧温度最小值 param1.setWhereClauseParameter(51 , strip_out_of_range); //52 终轧温度 不在公差范围内的长度 param1.setWhereClauseParameter(52 , dc_temp); //53 额定卷取温度 param1.setWhereClauseParameter(53 , dc_temp_avg); //54 卷取温度平均值 param1.setWhereClauseParameter(54 , dc_temp_max); //55 卷取温度最大值 param1.setWhereClauseParameter(55 , dc_temp_min); //56 卷取温度最小均值 param1.setWhereClauseParameter(56 , dc_temp_out_of_range); //57 卷取温度 不在公差范围内的长度 param1.setWhereClauseParameter(57 , dc_no); //58 卷取机号 param1.setWhereClauseParameter(58 , dc_on_dtime); //59 开始卷取时刻 param1.setWhereClauseParameter(59 , dc_off_dtime); //60 结束卷取时刻 param1.setWhereClauseParameter(60 , coil_wgt); //61 钢卷重量 param1.setWhereClauseParameter(61 , coil_wgt_dec_clf); //62 钢卷重量区分 param1.setWhereClauseParameter(62 , coil_india); //63 钢卷内径 param1.setWhereClauseParameter(63 , coil_outdia); //64 钢卷外径 param1.setWhereClauseParameter(64 , coil_len); //65 钢卷长度 param1.setWhereClauseParameter(65 , coil_lock_yn); //66 钢卷封锁标记 param1.setWhereClauseParameter(66 , thk_wth_chang_clf); //67 厚度宽度变更 SIGN param1.setWhereClauseParameter(67 , chang_cause_cd); //68 厚度宽度变更理由代码 param1.setWhereClauseParameter(68 , chang_empno); //69 变更责任人 param1.setWhereClauseParameter(69 , chang_thk); //70 厚度变更目标(实绩) param1.setWhereClauseParameter(70 , chang_wth); //71 宽度变更目标(实绩) param1.setWhereClauseParameter(71 , head_tail_cut_yn); //72 param1.setWhereClauseParameter(72 , f1_ent_temp); //73 精轧入口温度(F1) param1.setWhereClauseParameter(73 , f7_mill_speed_head); //74 穿带速度 param1.setWhereClauseParameter(74 , f7_mill_speed_acc1); //75 轧制速度 ACC1 param1.setWhereClauseParameter(75 , f7_mill_speed_acc2); //76 轧制速度 ACC2 param1.setWhereClauseParameter(76 , f7_mill_speed_vmax); //77 轧制速度 Vmax param1.setWhereClauseParameter(77 , coil_rem); //78 钢卷注释 param1.setWhereClauseParameter(78 , strip_thk_band1); //79 Strip Thickness 钢卷厚度分类1 param1.setWhereClauseParameter(79 , strip_thk_band2); //80 Strip Thickness 钢卷厚度分类2 param1.setWhereClauseParameter(80 , strip_thk_band3); //81 Strip Thickness 钢卷厚度分类3 param1.setWhereClauseParameter(81 , strip_thk_band4); //82 Strip Thickness 钢卷厚度 param1.setWhereClauseParameter(82 , strip_thk_band5); //83 Strip Thickness 钢卷厚度分类5 param1.setWhereClauseParameter(83 , strip_thk_band6); //84 Strip Thickness 钢卷厚度分类6 param1.setWhereClauseParameter(84 , strip_wth_band1); //85 Strip Width 钢卷宽度分类1 param1.setWhereClauseParameter(85 , strip_wth_band2); //86 Strip Width 钢卷宽度分类2 param1.setWhereClauseParameter(86 , strip_wth_band3); //87 Strip Width 钢卷宽度分类3 param1.setWhereClauseParameter(87 , strip_wth_band4); //88 Strip Width 钢卷宽度分类4 param1.setWhereClauseParameter(88 , strip_wth_band5); //89 Strip Width 钢卷宽度分类5 param1.setWhereClauseParameter(89 , strip_wth_band6); //90 Strip Width 钢卷宽度分类6 param1.setWhereClauseParameter(90 , strip_crown_band1); //91 Strip Crown 钢卷凸度分类1 param1.setWhereClauseParameter(91 , strip_crown_band2); //92 Strip Crown 钢卷凸度分类2 param1.setWhereClauseParameter(92 , strip_crown_band3); //93Strip Crown 钢卷凸度分类3 param1.setWhereClauseParameter(93, strip_crown_band4); //94Strip Crown 钢卷凸度分类4 param1.setWhereClauseParameter(94, strip_crown_band5); //95Strip Crown 钢卷凸度分类5 param1.setWhereClauseParameter(95, strip_crown_band6); //96Strip Crown 钢卷凸度分类6 param1.setWhereClauseParameter(96, strip_sym_flatness_band1); //97Strip symm flatness 钢卷平直度分类1 param1.setWhereClauseParameter(97, strip_sym_flatness_band2); //98Strip symm flatness 钢卷平直度分类2 param1.setWhereClauseParameter(98, strip_sym_flatness_band3); //99Strip symm flatness 钢卷平直度分类3 param1.setWhereClauseParameter(99, strip_sym_flatness_band4); //100Strip symm flatness 钢卷平直度分类4 param1.setWhereClauseParameter(100, strip_sym_flatness_band5); //101Strip symm flatness 钢卷平直度分类5 param1.setWhereClauseParameter(101, strip_sym_flatness_band6); //102Strip symm flatness 钢卷平直度分类6 param1.setWhereClauseParameter(102, strip_asy_flatness_band1); //103非对称平直度 钢卷平直度分类1 param1.setWhereClauseParameter(103, strip_asy_flatness_band2); //104非对称平直度 钢卷平直度分类2 param1.setWhereClauseParameter(104, strip_asy_flatness_band3); //105非对称平直度 钢卷平直度分类3 param1.setWhereClauseParameter(105, strip_asy_flatness_band4); //106非对称平直度 钢卷平直度分类4 param1.setWhereClauseParameter(106, strip_asy_flatness_band5); //107非对称平直度 钢卷平直度分类5 param1.setWhereClauseParameter(107, strip_asy_flatness_band6); //108非对称平直度 钢卷平直度分类6 param1.setWhereClauseParameter(108, strip_wdg_band1); //109Strip Wedge 钢卷平直度分类1 param1.setWhereClauseParameter(109, strip_wdg_band2); //110Strip Wedge 钢卷平直度分类2 param1.setWhereClauseParameter(110, strip_wdg_band3); //111Strip Wedge 钢卷平直度分类3 param1.setWhereClauseParameter(111, strip_wdg_band4); //112Strip Wedge 钢卷平直度分类4 param1.setWhereClauseParameter(112, strip_wdg_band5); //113Strip Wedge 钢卷平直度分类5 param1.setWhereClauseParameter(113, strip_wdg_band6); //114Strip Wedge 钢卷平直度分类6 param1.setWhereClauseParameter(114, temp_rm_band1); //115粗轧出口温度 温度分类1 param1.setWhereClauseParameter(115, temp_rm_band2); //116粗轧出口温度 温度分类2 param1.setWhereClauseParameter(116, temp_rm_band3); //117粗轧出口温度 温度分类3 param1.setWhereClauseParameter(117, temp_rm_band4); //118粗轧出口温度 温度分类4 param1.setWhereClauseParameter(118, temp_rm_band5); //119粗轧出口温度 温度分类5 param1.setWhereClauseParameter(119, temp_rm_band6); //120粗轧出口温度 温度分类6 param1.setWhereClauseParameter(120, temp_fm_band1); //121终轧温度 温度分类1 param1.setWhereClauseParameter(121, temp_fm_band2); //122终轧温度 温度分类2 param1.setWhereClauseParameter(122, temp_fm_band3); //123终轧温度 温度分类3 param1.setWhereClauseParameter(123, temp_fm_band4); //124终轧温度 温度分类4 param1.setWhereClauseParameter(124, temp_fm_band5); //125终轧温度 温度分类5 param1.setWhereClauseParameter(125, temp_fm_band6); //126终轧温度 温度分类6 param1.setWhereClauseParameter(126, dc_temp_band1); //127卷取温度 温度分类1 param1.setWhereClauseParameter(127, dc_temp_band2); //128卷取温度 温度分类2 param1.setWhereClauseParameter(128, dc_temp_band3); //129卷取温度 温度分类3 param1.setWhereClauseParameter(129, dc_temp_band4); //130卷取温度 温度分类4 param1.setWhereClauseParameter(130, dc_temp_band5); //131卷取温度 温度分类5 param1.setWhereClauseParameter(131, dc_temp_band6); //132卷取温度 温度分类6 param1.setWhereClauseParameter(132, f1_ent_temp_out_of_len); //133进入 F1 前温度不在公差范围的长度 param1.setWhereClauseParameter(133, dc_off_dtime.substring(0, 8)); //134统计日 这里使用卷取结束时间 param1.setWhereClauseParameter(134, f7_mill_speed_vt); //135统计日 这里使用卷取结束时间 param1.setWhereClauseParameter(135, sShift); param1.setWhereClauseParameter(136, sGroup); param1.setWhereClauseParameter(137, coil_no); //136钢卷号 this.getDao("mesdao").update("NIH020050_01.update",param1); } else { param1.setValueParamter(0 , coil_no); //1 钢卷号 param1.setValueParamter(1 , slab_no); //2 板坯号 param1.setValueParamter(2 , stl_grd); //3 订货钢种 param1.setValueParamter(3 , rhf_descal_yn); //4 加热炉后的除磷机是否使用标记 param1.setValueParamter(4 , rm_ent_descal_yn); //5 RM入口处的除磷机是否使用标记 param1.setValueParamter(5 , rm_ext_descal_yn); //6 RM出口处的除磷机是否使用标记 param1.setValueParamter(6 , rm1_pass_cnt); //7 RM1 轧制道次 param1.setValueParamter(7 , rm2_pass_cnt); //8 RM2 轧制道次 param1.setValueParamter(8 , r1_ext_temp); //9 粗轧温度(R1后) param1.setValueParamter(9 , r2_ext_temp); //10 粗轧温度(R2后) param1.setValueParamter(10 , rm_ext_avg_thk); //11 RM 出口平均厚度 param1.setValueParamter(11 , rm_ext_avg_wth); //12 RM 出口平均宽度 param1.setValueParamter(12 , rm_ext_avg_len); //13 RM 出口平均长度 param1.setValueParamter(13 , f1_ent_pass_dtime); //14 入 F1 时刻 param1.setValueParamter(14 , f7_ent_pass_dtime); //15 入 F7 时刻 param1.setValueParamter(15 , fst_inact_stand_no); //16 第一个空过机架 param1.setValueParamter(16 , snd_inact_stand_no); //17 第二个空过机架 param1.setValueParamter(17 , trd_inact_stand_no); //18 第三个空过机架 param1.setValueParamter(18 , f1_ent_temp_avg); //19 进入 F1 前平均温度 param1.setValueParamter(19 , f1_ent_temp_max); //20 进入 F1 前最大温度 param1.setValueParamter(20 , f1_ent_temp_min); //21 进入 F1 前最小温度 param1.setValueParamter(21 , fm_ext_strip_thk); //22 额定轧制厚度 param1.setValueParamter(22 , fm_ext_strip_thk_avg); //23 轧制厚度平均值【钢卷厚度】 param1.setValueParamter(23 , fm_ext_strip_thk_max); //24 轧制厚度最大值 param1.setValueParamter(24 , fm_ext_strip_thk_min); //25 轧制厚度最小值 param1.setValueParamter(25 , fm_ext_strip_thk_out_of_l); //26 轧制厚度不在公差范围内的长度 param1.setValueParamter(26 , fm_ext_strip_wth); //27 额定轧制宽度 param1.setValueParamter(27 , fm_ext_strip_wth_avg); //28 轧制宽度平均值【钢卷宽度】 param1.setValueParamter(28 , fm_ext_strip_wth_max); //29 轧制宽度最大值 param1.setValueParamter(29 , fm_ext_strip_wth_min); //30 轧制宽度最小值 param1.setValueParamter(30 , fm_ext_strip_wth_out_of_l); //31 轧制宽度不在公差范围内的长度 param1.setValueParamter(31 , fm_ext_strip_crown); //32 额定凸度 param1.setValueParamter(32 , fm_ext_strip_crown_avg); //33 凸度平均值 param1.setValueParamter(33 , fm_ext_strip_crown_max); //34 凸度最大值 param1.setValueParamter(34 , fm_ext_strip_crown_min); //35 凸度最小值 param1.setValueParamter(35 , fm_ext_strip_crown_out_of); //36 凸度不在公差范围内的长度 param1.setValueParamter(36 , fm_sym_strip_flatness_avg); //37 对称平直度平均值 param1.setValueParamter(37 , fm_sym_strip_flatness_max); //38 对称平直度最大值 param1.setValueParamter(38 , fm_sym_strip_flatness_min); //39 对称平直度最小值 param1.setValueParamter(39 , fm_sym_strip_out_or_range); //40 对称平直度不在公差范围内的长度 param1.setValueParamter(40 , fm_asy_strip_flatness_avg); //41 非对称平直度平均值 param1.setValueParamter(41 , fm_asy_strip_flatness_max); //42 非对称平直度最大值 param1.setValueParamter(42 , fm_asy_strip_flatness_min); //43 非对称平直度最小值 param1.setValueParamter(43 , fm_asy_strip_out_of_range); //44 非对称平直度不在公差范围内的长度 param1.setValueParamter(44 , fm_strip_wdg_avg); //45 稧型 出口平均值 param1.setValueParamter(45 , fm_strip_wdg_max); //46 稧型 出口最大值 param1.setValueParamter(46 , fm_strip_wdg_min); //47 稧型 出口最小值 param1.setValueParamter(47 , fm_strip_wdg_out_of_range); //48 稧型 不在公差范围内的长度 param1.setValueParamter(48 , fm_ext_strip_temp); //49 额定终轧温度 param1.setValueParamter(49 , fm_ext_strip_temp_avg); //50 终轧温度平均值 param1.setValueParamter(50 , fm_ext_strip_temp_max); //51 终轧温度最大值 param1.setValueParamter(51 , fm_ext_strip_temp_min); //52 终轧温度最小值 param1.setValueParamter(52 , strip_out_of_range); //53 终轧温度 不在公差范围内的长度 param1.setValueParamter(53 , dc_temp); //54 额定卷取温度 param1.setValueParamter(54 , dc_temp_avg); //55 卷取温度平均值 param1.setValueParamter(55 , dc_temp_max); //56 卷取温度最大值 param1.setValueParamter(56 , dc_temp_min); //57 卷取温度最小均值 param1.setValueParamter(57 , dc_temp_out_of_range); //58 卷取温度 不在公差范围内的长度 param1.setValueParamter(58 , dc_no); //59 卷取机号 param1.setValueParamter(59 , dc_on_dtime); //60 开始卷取时刻 param1.setValueParamter(60 , dc_off_dtime); //61 结束卷取时刻 param1.setValueParamter(61 , coil_wgt); //62 钢卷重量 param1.setValueParamter(62 , coil_wgt_dec_clf); //63 钢卷重量区分 param1.setValueParamter(63 , coil_india); //64 钢卷内径 param1.setValueParamter(64 , coil_outdia); //65 钢卷外径 param1.setValueParamter(65 , coil_len); //66 钢卷长度 param1.setValueParamter(66 , coil_lock_yn); //67 钢卷封锁标记 param1.setValueParamter(67 , thk_wth_chang_clf); //68 厚度宽度变更 SIGN param1.setValueParamter(68 , chang_cause_cd); //69 厚度宽度变更理由代码 param1.setValueParamter(69 , chang_empno); //70 变更责任人 param1.setValueParamter(70 , chang_thk); //71 厚度变更目标(实绩) param1.setValueParamter(71 , chang_wth); //72 宽度变更目标(实绩) param1.setValueParamter(72 , head_tail_cut_yn); //73 精轧入口温度(F1) param1.setValueParamter(73 , f1_ent_temp); //74 穿带速度 param1.setValueParamter(74 , f7_mill_speed_head); //75 轧制速度 ACC1 param1.setValueParamter(75 , f7_mill_speed_acc1); //76 轧制速度 ACC2 param1.setValueParamter(76 , f7_mill_speed_acc2); //77 轧制速度 Vmax param1.setValueParamter(77 , f7_mill_speed_vmax); //78 轧制速度 VT param1.setValueParamter(78 , coil_rem); //79 钢卷注释 param1.setValueParamter(79 , strip_thk_band1); //80 Strip Thickness 钢卷厚度分类1 param1.setValueParamter(80 , strip_thk_band2); //81 Strip Thickness 钢卷厚度分类2 param1.setValueParamter(81 , strip_thk_band3); //82 Strip Thickness 钢卷厚度分类3 param1.setValueParamter(82 , strip_thk_band4); //83 Strip Thickness 钢卷厚度 param1.setValueParamter(83 , strip_thk_band5); //84 Strip Thickness 钢卷厚度分类5 param1.setValueParamter(84 , strip_thk_band6); //85 Strip Thickness 钢卷厚度分类6 param1.setValueParamter(85 , strip_wth_band1); //86 Strip Width 钢卷宽度分类1 param1.setValueParamter(86 , strip_wth_band2); //87 Strip Width 钢卷宽度分类2 param1.setValueParamter(87 , strip_wth_band3); //88 Strip Width 钢卷宽度分类3 param1.setValueParamter(88 , strip_wth_band4); //89 Strip Width 钢卷宽度分类4 param1.setValueParamter(89 , strip_wth_band5); //90 Strip Width 钢卷宽度分类5 param1.setValueParamter(90 , strip_wth_band6); //91 Strip Width 钢卷宽度分类6 param1.setValueParamter(91 , strip_crown_band1); //92 Strip Crown 钢卷凸度分类1 param1.setValueParamter(92 , strip_crown_band2); //93Strip Crown 钢卷凸度分类2 param1.setValueParamter(93, strip_crown_band3); //94Strip Crown 钢卷凸度分类3 param1.setValueParamter(94, strip_crown_band4); //95Strip Crown 钢卷凸度分类4 param1.setValueParamter(95, strip_crown_band5); //96Strip Crown 钢卷凸度分类5 param1.setValueParamter(96, strip_crown_band6); //97Strip Crown 钢卷凸度分类6 param1.setValueParamter(97, strip_sym_flatness_band1); //98Strip symm flatness 钢卷平直度分类1 param1.setValueParamter(98, strip_sym_flatness_band2); //99Strip symm flatness 钢卷平直度分类2 param1.setValueParamter(99, strip_sym_flatness_band3); //100Strip symm flatness 钢卷平直度分类3 param1.setValueParamter(100, strip_sym_flatness_band4); //101Strip symm flatness 钢卷平直度分类4 param1.setValueParamter(101, strip_sym_flatness_band5); //102Strip symm flatness 钢卷平直度分类5 param1.setValueParamter(102, strip_sym_flatness_band6); //103Strip symm flatness 钢卷平直度分类6 param1.setValueParamter(103, strip_asy_flatness_band1); //104非对称平直度 钢卷平直度分类1 param1.setValueParamter(104, strip_asy_flatness_band2); //105非对称平直度 钢卷平直度分类2 param1.setValueParamter(105, strip_asy_flatness_band3); //106非对称平直度 钢卷平直度分类3 param1.setValueParamter(106, strip_asy_flatness_band4); //107非对称平直度 钢卷平直度分类4 param1.setValueParamter(107, strip_asy_flatness_band5); //108非对称平直度 钢卷平直度分类5 param1.setValueParamter(108, strip_asy_flatness_band6); //109非对称平直度 钢卷平直度分类6 param1.setValueParamter(109, strip_wdg_band1); //110Strip Wedge 钢卷平直度分类1 param1.setValueParamter(110, strip_wdg_band2); //111Strip Wedge 钢卷平直度分类2 param1.setValueParamter(111, strip_wdg_band3); //112Strip Wedge 钢卷平直度分类3 param1.setValueParamter(112, strip_wdg_band4); //113Strip Wedge 钢卷平直度分类4 param1.setValueParamter(113, strip_wdg_band5); //114Strip Wedge 钢卷平直度分类5 param1.setValueParamter(114, strip_wdg_band6); //115Strip Wedge 钢卷平直度分类6 param1.setValueParamter(115, temp_rm_band1); //116粗轧出口温度 温度分类1 param1.setValueParamter(116, temp_rm_band2); //117粗轧出口温度 温度分类2 param1.setValueParamter(117, temp_rm_band3); //118粗轧出口温度 温度分类3 param1.setValueParamter(118, temp_rm_band4); //119粗轧出口温度 温度分类4 param1.setValueParamter(119, temp_rm_band5); //120粗轧出口温度 温度分类5 param1.setValueParamter(120, temp_rm_band6); //121粗轧出口温度 温度分类6 param1.setValueParamter(121, temp_fm_band1); //122终轧温度 温度分类1 param1.setValueParamter(122, temp_fm_band2); //123终轧温度 温度分类2 param1.setValueParamter(123, temp_fm_band3); //124终轧温度 温度分类3 param1.setValueParamter(124, temp_fm_band4); //125终轧温度 温度分类4 param1.setValueParamter(125, temp_fm_band5); //126终轧温度 温度分类5 param1.setValueParamter(126, temp_fm_band6); //127终轧温度 温度分类6 param1.setValueParamter(127, dc_temp_band1); //128卷取温度 温度分类1 param1.setValueParamter(128, dc_temp_band2); //129卷取温度 温度分类2 param1.setValueParamter(129, dc_temp_band3); //130卷取温度 温度分类3 param1.setValueParamter(130, dc_temp_band4); //131卷取温度 温度分类4 param1.setValueParamter(131, dc_temp_band5); //132卷取温度 温度分类5 param1.setValueParamter(132, dc_temp_band6); //133卷取温度 温度分类6 param1.setValueParamter(133, f1_ent_temp_out_of_len); //134进入 F1 前温度不在公差范围的长度 param1.setValueParamter(134, dc_off_dtime.substring(0, 8)); //135统计日 这里使用卷取结束时间 param1.setValueParamter(135, f7_mill_speed_vt); //136统计日 这里使用卷取结束时间 param1.setValueParamter(136, sShift); param1.setValueParamter(137, sGroup); this.getDao("mesdao").insert("NIH020050_01.insert",param1); } String SPEC_ORD_NO = null; String SPEC_ORD_SEQ = null; PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0,coil_no ); PosRowSet SpecMillVo = getDao("mesdao").find("UIH020030_SPEC_MILL.select", param3); while (SpecMillVo.hasNext()) { // 从TBF02_SPEC_MILL中获取的将要插入到TBH02_COIL_COMM中的字段赋值 PosRow SpecMillROW = SpecMillVo.next(); SPEC_ORD_NO = (String)SpecMillROW.getAttribute("ORD_NO"); SPEC_ORD_SEQ = (String)SpecMillROW.getAttribute("ORD_SEQ"); } PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, slab_no ); param7.setWhereClauseParameter(1, coil_no ); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param7); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "C" ); param4.setWhereClauseParameter(1, slab_no ); param4.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param4); PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "C" ); param5.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param5); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "C" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param6); } //如果出现多次吊销的情况,只在第一次的时候给予处理 /*PosParameter paramx = new PosParameter(); String sqlx = "select RHF_STAT from TBH02_REHEATFUR where slab_no = ? and coil_no = ? "; paramx.setWhereClauseParameter(0, slab_no); paramx.setWhereClauseParameter(1, coil_no); //判断是否有上料,如果没有上料,自动补录 String RHF_STAT = null; PosRowSet rowset2 = getDao("mesdao").findByQueryStatement(sqlx, paramx); if(rowset2.hasNext()){ PosRow row2 = rowset2.next(); RHF_STAT = (String) row2.getAttribute("RHF_STAT"); //加入日志 PosParameter paramhis = new PosParameter(); paramhis.setValueParamter(0, slab_no); paramhis.setValueParamter(1, coil_no); paramhis.setValueParamter(2, RHF_STAT); getDao("mesdao").insert("UIH020036_09.insert", paramhis); if("1".equals(RHF_STAT)) { //此方法用来传送异动点数据 ProduceFactory PD= new ProduceFactory(); PD.ErpDataCover("HSLAB",slab_no,"41A","0","O","加热炉二级丢料","热轧轧制"); } } else{ //此方法用来传送异动点数据 ProduceFactory PD= new ProduceFactory(); PD.ErpDataCover("HSLAB",slab_no,"41A","0","O","加热炉二级丢料","热轧轧制"); }*/ PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "4"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); //轧制完成后,也需要改变入出表的状态 getDao("mesdao").update("UIH020020_07.update", param4); PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, slab_no); getDao("mesdao").update("UIH020020_08.update", param5); PosParameter param9 = new PosParameter(); param9.setWhereClauseParameter(0, slab_no ); String SlabCurrProgCd = null; String SlabBefProgCd = null; String SlabOrdNo = null; String SlabOrdSeq = null; BigDecimal SlabWgt = null; PosRowSet slabVo = getDao("mesdao").find("NIH020030_SLAB.select", param9); if(slabVo.hasNext()) { PosRow slabROW = slabVo.next(); SlabCurrProgCd = (String)slabROW.getAttribute("CUR_PROG_CD"); SlabBefProgCd = (String)slabROW.getAttribute("BEF_PROG_CD"); SlabOrdNo = (String)slabROW.getAttribute("ORD_NO"); SlabOrdSeq = (String)slabROW.getAttribute("ORD_SEQ"); SlabWgt = (BigDecimal)slabROW.getAttribute("SLAB_WGT"); } //TL 加入调用品质的存储过程 COPY XinSaveRhfExtract NIB028070 //20180703 在此存储过程中加入更改进程的业务,判断订单是否需要平整,需要的话更改SED—-->SCA By wl 20220223迁移到PosSaveMillToCoilComm /* CallableStatement PlRtn = getDao("mesdao").getCallableStatement("NIH020050_NIB028040"); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); PlRtn.registerOutParameter(2, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(2); String sRetMsg = PlRtn.getString(3); logger.logDebug("PosSAveOutHeatFurnace---> NIB028040 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); } } }*/ }else{ // 通过实际钢卷号没有获得计划钢卷号的信息 logger.logDebug("XinSaveMillResult OLD_SAMPL_NO - > COIL_NO ERROR "); } return PosBizControlConstants.SUCCESS; } public void SendProg_NIE012070(String MatNo,String sOrdNo,String sOrdSeq,String sProgCd,String sBefProgCd,String sKind,BigDecimal wgt ) { logger.logDebug("XinSaveCcmResult SendProg_NIE012070 " ); PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); String TcId = "NIE012070"; message.setTCID(TcId); message.setObject("MSG_ID",TcId); message.setObject("BEF_ORD_NO",null); message.setObject("BEF_ORD_SEQ",null); message.setObject("ORD_NO",sOrdNo); message.setObject("ORD_SEQ",sOrdSeq); message.setObject("BEF_PROG_CD",sBefProgCd); message.setObject("PROG_CD",sProgCd); message.setObject("MAT_TYPE",sKind); message.setObject("MAT_NO",MatNo); message.setObject("WGT", wgt ); message.setObject("PGMID","XinSaveMillResult"); message.setObject("REG_ID", "MILL L2"); context.setMessage(message); this.processComponent(PosConstants.CREATE_MESSAGE, context); String transactionCode = context.getMessage().getTC(); message.setTCID(TcId); String serviceName = "NIE012070"; String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX); context.setMessage(message); PosBizControlIF controller = PosBizProvider.getController(); controller.doSubController(context,false); } 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); } public void SendProg_NIH050010(String CoilNo,String CurPos) { PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); String TcId = "NIH050010"; message.setTCID(TcId); message.setObject("MSG_ID",TcId); message.setObject("COIL_NO",CoilNo); message.setObject("CURR_POS",null); context.setMessage(message); this.processComponent(PosConstants.CREATE_MESSAGE, context); String transactionCode = context.getMessage().getTC(); message.setTCID(TcId); String serviceName = TcId; String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX); context.setMessage(message); PosBizControlIF controller = PosBizProvider.getController(); controller.doSubController(context,false); } }