package UIB.JHY; import java.util.ArrayList; import org.springframework.jdbc.support.rowset.SqlRowSet; import UIB.COM.XmlSqlParsersFactory; import CoreFS.SA01.CoreIComponent; import CoreFS.SA06.CoreReturnObject; /** * * @desc 按检验项目对原始数据查询 * @author meiguiping * @date 2011 3:38:57 PM */ public class UIB100203 extends CoreIComponent { /** * qltyCD2 二级编码 即:拉力,冲击等区分 * qltyCD3 三级编码 即:伸长率,屈服强度,抗拉强度等 * wtbh 委托编号 */ public CoreReturnObject doQltyCdQuery(String qltyCD2 ,String qltyCD3 ,String wtbh ,String strArr , String strSendTP )throws Exception { //获取所有的检化验编码,如a,b,Lo,S等 CoreReturnObject cro = new CoreReturnObject(); String sqlOne = XmlSqlParsersFactory.getSql("UIB100203_COMM_03.SELECT"); cro = this.getDao("JhyDao").ExecutequeryForRowSet(sqlOne , new Object[]{qltyCD2 }); SqlRowSet srs = (SqlRowSet)cro.getResult(); //取得检验项目与试样号+位置+类型+二级编码的对应关系 // String sqlTwo = XmlSqlParsersFactory.getSql("UIB100203_COMM_08.SELECT"); // cro = this.getDao("JhyDao").ExecutequeryForRowSet(sqlTwo , new Object[]{wtbh , qltyCD3 }); // SqlRowSet srs1 = (SqlRowSet)cro.getResult(); // // String repS = " , CASE {1} ELSE NULL END QLTY_CD_CFNM , CASE {2} ELSE NULL END QLTY_CD"; // // //项目名替换,用于替换repS中的{1} // String whenNM = " WHEN T1.SMP_NO || T1.SMP_CUT_LOC || T1.SMP_NO_TYPE || T1.QLTY_CD_2||T1.QLTY_OPE_CD ='{1}' THEN '{2}' "; // StringBuffer tm2 = new StringBuffer(); // //项目代码替换,用于替换repS中的{2} // String whenCD = " WHEN T1.SMP_NO || T1.SMP_CUT_LOC || T1.SMP_NO_TYPE || T1.QLTY_CD_2||T1.QLTY_OPE_CD ='{1}' THEN '{2}' "; // StringBuffer tm3 = new StringBuffer(); // while(srs1.next()) // { // whenNM = whenNM.replaceFirst("[{]+[1]+[}]+", srs1.getString("QQ")).replaceFirst("[{]+[2]+[}]+", srs1.getString("QLTY_CD_CFNM")); // tm2.append(whenNM); // whenCD = whenCD.replaceFirst("[{]+[1]+[}]+", srs1.getString("QQ")).replaceFirst("[{]+[2]+[}]+", srs1.getString("QLTY_CD")); // tm3.append(whenCD); // } // repS = repS.replaceFirst("[{]+[1]+[}]+", tm2.toString()).replaceFirst("[{]+[2]+[}]+", tm3.toString()); // //获取目的SQL String repSql = ",MAX(DECODE('{2}', T1.QLTY_OPE_CD , T1.QLTY_VAL , NULL)) \"{3}\""; //",MAX(DECODE('{2}' , WQ.QLTY_CD ,WQ.QLTY_VAL_WK , NULL)) {3}"; //{2}用检验项目替代,{3}用名称替代 String temp = ""; StringBuffer sBuffer = new StringBuffer(350); String qltyNm = ""; while(srs.next()) { temp = repSql.replaceFirst("[{]+[2]+[}]+", srs.getString(1)).replaceFirst("[{]+[3]+[}]+", srs.getString("QLTY_OPE_CFNM"));//检验项目 sBuffer.append(temp); } String sqlAim = XmlSqlParsersFactory .getSql("UIB100203_COMM_04.SELECT") .replaceFirst("[{]+[1]+[}]+", sBuffer.toString()); // System.out.println(sqlAim); // cro = this.getDao("JhyDao").ExcuteQuery(sqlOne); // al.add(cro.getResult()); cro = this.getDao("JhyDao").ExcuteQuery(sqlAim , new Object[]{wtbh , qltyCD2 , wtbh , qltyCD2 , qltyCD3 /*,strArr , strSendTP*/ } ); // al.add(cro.getResult()); // CoreReturnObject cro1 = new CoreReturnObject(); // cro1.setResult(al); return cro; } }