package UIB.COM; import java.util.ArrayList; import java.util.Map; import CoreFS.SA01.CoreIComponent; import CoreFS.SA06.CoreReturnObject; /** * @Description 生产规范判定 * @author KangMiao * @Date 2015-5-18 下午08:17:50 * */ public class TechDcsResult extends CoreIComponent { /** * @return * @throws Exception */ public CoreReturnObject doTechDcs(String sqlID,Object[] params) { CoreReturnObject cro = new CoreReturnObject(); String Sql2 = XmlSqlParsersFactory.getSql("UIB010330_14.SELECT"); try { //获取待入库钢卷数据 ArrayList coilList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sqlID,params); System.out.println("coil_sql------- " + sqlID); for (int j = 0; j < coilList.size(); j++) { Map map = (Map) coilList.get(j); Object SPEC_ABBSYM = map.get("SPEC_ABBSYM"); Object STL_GRD = map.get("STL_GRD"); Object DC_TEMP_AVG = map.get("DC_TEMP_AVG"); //卷取温度值 //若卷取温度值为空则默认为0 if(null == DC_TEMP_AVG) { DC_TEMP_AVG = "0"; // map.put("DC_TEMP_AVG", "0"); } Object HC_TU_DU = map.get("HC_TU_DU"); //凸度值 Object HC_XIE_XIN = map.get("HC_XIE_XIN"); //楔形值 Object FM_EXT_STRIP_TEMP_AVG = map.get("FM_EXT_STRIP_TEMP_AVG"); //精轧温度值CC.VALUE_C //若精轧温度值为空则默认为0 if(null == FM_EXT_STRIP_TEMP_AVG) { FM_EXT_STRIP_TEMP_AVG = "0"; // map.put("FM_EXT_STRIP_TEMP_AVG", "0"); } Object VALUE_C = map.get("VALUE_C"); //C元素值 Object VALUE_Mn = map.get("VALUE_Mn"); //Mn元素值 Object VALUE_S = map.get("VALUE_S"); //Mn元素值 Object VALUE_P = map.get("VALUE_P"); //P元素值 Object VALUE_Si = map.get("VALUE_Si"); //Si元素值 Object VALUE_Ti = map.get("VALUE_Ti"); //Ti元素值 Object VALUE_N = map.get("VALUE_N"); //Mn元素值 String TECH_DCS_CD = "合格"; String TECH_DCS_DESC = ""; //获取钢卷对应的生产规范标准数据 String abbsym = ""; String stl = ""; if(null != SPEC_ABBSYM) abbsym = SPEC_ABBSYM.toString(); if(null != STL_GRD) stl = STL_GRD.toString(); ArrayList techList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql2,new String[] {abbsym,stl}); if(0 == techList.size()) TECH_DCS_CD = "无标准"; for (int t = 0; t < techList.size(); t++) { Map tMap = (Map) techList.get(t); String PROD_CD = tMap.get("PROD_CD").toString(); Object PROD_CD_CFNM = tMap.get("PROD_CD_CFNM"); //名称 String DCS_SYM = tMap.get("DCS_SYM").toString(); //判定符号≥或≤ Object PROD_VAL = tMap.get("PROD_VAL"); //标准要求值 String isStr = PROD_CD.substring(0,2); //判定是哪个项目 if(null != PROD_VAL) { // System.out.println("abbsym:" + abbsym + " ---" + stl); // System.out.println("PROD_VAL:" + PROD_VAL + " ---" + PROD_CD); Double val = null; try { val = Double.valueOf(PROD_VAL.toString()); } catch (Exception e) { e.printStackTrace(); continue; } if("XX".equals(isStr)) { //为楔形 if(null != HC_XIE_XIN) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(HC_XIE_XIN.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(HC_XIE_XIN.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("TD".equals(isStr)) { //为凸度 if(null != HC_TU_DU) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(HC_TU_DU.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(HC_TU_DU.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("JQ".equals(isStr)) { //为卷取温度 if(null != DC_TEMP_AVG) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(DC_TEMP_AVG.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(DC_TEMP_AVG.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("JZ".equals(isStr)) { //为精轧温度 if(null != FM_EXT_STRIP_TEMP_AVG) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(FM_EXT_STRIP_TEMP_AVG.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(FM_EXT_STRIP_TEMP_AVG.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("CF".equals(isStr)) { //为C元素 if(null != VALUE_C) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_C.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_C.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("Mn".equals(isStr)) { //为Mn元素 if(null != VALUE_Mn) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_Mn.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_Mn.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("SF".equals(isStr)) { //为S元素 if(null != VALUE_S) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_S.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_S.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("PF".equals(isStr)) { //为P元素 if(null != VALUE_P) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_P.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_P.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("Si".equals(isStr)) { //为Si元素 if(null != VALUE_Si) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_Si.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_Si.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("Ti".equals(isStr)) { //为Ti元素 if(null != VALUE_Ti) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_Ti.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_Ti.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("NF".equals(isStr)) { //为N元素 if(null != VALUE_N) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(VALUE_N.toString()) < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(Double.valueOf(VALUE_N.toString()) > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } else if("XT".equals(isStr)) { //为楔形绝对值-凸度 if(null != HC_XIE_XIN && null != HC_TU_DU) { //判定最小值,只对平均值做比较 Double xtc = Math.abs(Double.valueOf(HC_XIE_XIN.toString())) - Double.valueOf(HC_TU_DU.toString()); if("≥".equals(DCS_SYM)) { if(xtc < val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } else { if(xtc > val) { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } else { TECH_DCS_CD = "不合格"; //不合格 TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";"; } } } } map.put("TECH_DCS_CD", TECH_DCS_CD); map.put("TECH_DCS_DESC", TECH_DCS_DESC); } cro.setResult(coilList); } catch (Exception e) { e.printStackTrace(); return null; } return cro; } }