package xin.glue.ui.B.B02; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; /** * @Description 生产规范判定结果保存 * @author KangMiao * @Date 2015-5-4 上午10:22:40 * */ public class SaveTechDcsResult extends PosActivity { public String runActivity(PosContext context) { MutilConditionFind mcf = new MutilConditionFind(); PosGenericDao dao = this.getDao("mesdao"); PosParameter param = null; PosRowSet rowset = null; // String[] PROD_CD = (String[])context.get("PROD_CD");//规范代码 //String[] REG_NM = (String[]) context.get("REG_NM"); String[] REG_ID = (String[]) context.get("REG_ID"); String[] OLD_SAMPL_NO = (String[]) context.get("OLD_SAMPL_NO");// 钢卷号 // if(rowStatus==null) // return PosBizControlConstants.SUCCESS; // int len = rowStatus.length; // for(int i = 0; i < len; i++) // { StringBuffer bufferSql = mcf.getQuerySql("UIB020180_02.SELECT"); param = new PosParameter(); param.setWhereClauseParameter(0, OLD_SAMPL_NO[0]); // 查询钢卷号对应的标准信息和实际值 rowset = dao.findByQueryStatement(bufferSql.toString(), param); // 若查询无标准数据,则直接返回,不进行下面操作 if (rowset.count() <= 0) { context.put("returnInfoMsg", "无对应的生产规范标准信息!"); return PosBizControlConstants.SUCCESS; } PosRow row = null; int flagInt = 0; while (rowset.hasNext()) { row = rowset.next(); String dcsFlag = "1"; Object PROD_CD = row.getAttribute("PROD_CD"); Object PROD_TYPE = row.getAttribute("DSN_KIND"); Object DCS_SYM = row.getAttribute("DCS_SYM"); //判定符号≥或≤ Object PROD_VAL = row.getAttribute("PROD_VAL"); //标准要求值 Object ACTUAL_AVG = row.getAttribute("ACTUAL_AVG"); //实绩平均值 //Object ACTUAL_VALUE = row.getAttribute("ACTUAL_VALUE"); //实绩最小或最大值 if(null != ACTUAL_AVG && null != PROD_VAL) { //判定最小值,只对平均值做比较 if("≥".equals(DCS_SYM)) { if(Double.valueOf(ACTUAL_AVG.toString()) < Double.valueOf(PROD_VAL.toString())) { dcsFlag = "2"; //不合格 flagInt = 2; } //判定最大值,只对平均值做比较 } else if("≤".equals(DCS_SYM)) { if(Double.valueOf(ACTUAL_AVG.toString()) > Double.valueOf(PROD_VAL.toString())) { dcsFlag = "2"; //不合格 flagInt = 2; } } } StringBuffer exSql = mcf.getQuerySql("UIB020180_03.SELECT"); param = new PosParameter(); param.setWhereClauseParameter(0, OLD_SAMPL_NO[0]); param.setWhereClauseParameter(1, PROD_CD); // 查询钢卷号对应的判定结果信息和实际值是存在数据 PosRowSet rowset1 = dao.findByQueryStatement(exSql.toString(), param); // 若无数据则插入否则修改 if (rowset1.count() <= 0) { param = new PosParameter(); param.setValueParamter(0, OLD_SAMPL_NO[0]); param.setValueParamter(1, PROD_CD.toString()); param.setValueParamter(2, dcsFlag); param.setValueParamter(3, PROD_TYPE.toString()); param.setValueParamter(4, REG_ID[0]); dao.insert("UIB020180_01.INSERT", param); } else { param = new PosParameter(); param.setWhereClauseParameter(0, dcsFlag); param.setWhereClauseParameter(1, PROD_TYPE.toString()); param.setWhereClauseParameter(2, REG_ID[0]); param.setWhereClauseParameter(3, OLD_SAMPL_NO[0]); param.setWhereClauseParameter(4, PROD_CD.toString()); dao.update("UIB020180_01.UPDATE", param); } } String msg = ""; if(2 == flagInt ) { msg = "钢卷【" + OLD_SAMPL_NO[0] + "】的生产规范标准不合格!详情请去生产规范判定结果页面查看!"; } else msg = "钢卷【" + OLD_SAMPL_NO[0] + "】的生产规范标准合格!详情请去生产规范判定结果页面查看!"; context.put("returnInfoMsg", msg); return PosBizControlConstants.SUCCESS; } }