| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package xin.glue.ui.D.D01;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- 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.vo.PosRow;
- import com.posdata.glue.dao.vo.PosRowSet;
- /**
- * 根据不同条件查询板坏设计结果,用于组合板坏
- *
- * @author 王黎
- * @date 2008-8-22
- */
- public class FindSlabDnResultBySum extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- // 获取查询条件钢号、通过工序、排列标准、最大板坏宽度、最小板坏宽度、排列顺序
- String[] COIL_WGT = (String[])context.get("COIL_WGT");
- String[] PROC_PATH = (String[])context.get("PROC_PATH");
- String[] ARRAY_NORM = (String[])context.get("ARRAY_NORM");
- String[] SLAB_WTH_MIN = (String[])context.get("SLAB_WTH_MIN");
- String[] SLAB_WTH_MAX = (String[])context.get("SLAB_WTH_MAX");
- String[] slabAssRes = (String[])context.get("slabAssRes");
-
- String[] ASC = (String[])context.get("ASC");
-
- StringBuffer querySql = new StringBuffer(200);
- //增加特殊要求 10.15 wxy
- querySql.append("SELECT 'false' AS CHK,DECODE(K.DSN_KIND, '1', 'Y', 'N') AS INGR_YN, T.* FROM TBD01_SLABDN_RST T ");
- querySql.append(",(SELECT DISTINCT ORD_NO, ORD_SEQ, DSN_KIND FROM TBB01_ORD_INGR WHERE DSN_KIND = '1') K ");
- //根据参数的有无返回对应的数据
- String COIL_WGT_PAR = ((COIL_WGT != null && !"all".equals(COIL_WGT[0])) ? COIL_WGT[0] : "%").toString();
- String PROC_PATH_PAR = ((PROC_PATH != null && !"all".equals(PROC_PATH[0])) ? PROC_PATH[0] : "%").toString();
- boolean SLAB_WTH_MIN_NOTNULL = (SLAB_WTH_MIN != null && !"".equals(SLAB_WTH_MIN[0]) && SLAB_WTH_MIN[0] != null);
- boolean SLAB_WTH_MAX_NOTNULL = (SLAB_WTH_MAX != null && !"".equals(SLAB_WTH_MAX[0]) && SLAB_WTH_MAX[0] != null);
-
- querySql.append(" WHERE T.ORD_NO = K.ORD_NO(+) AND T.ORD_SEQ = K.ORD_SEQ(+) AND FAC_STL_GRD LIKE '"+ COIL_WGT_PAR + "' AND PROC_PATH LIKE '%" + PROC_PATH_PAR + "%'");
-
- //组合查询条件
- //根据板坏宽度的最大最小值是否为空组合查询条件
- if(SLAB_WTH_MIN_NOTNULL && SLAB_WTH_MAX_NOTNULL)
- {
- querySql.append( " AND SLAB_WTH > '" + SLAB_WTH_MIN[0] + "' AND SLAB_WTH <= '" +SLAB_WTH_MAX[0] + "'");
- }
- else if(SLAB_WTH_MIN_NOTNULL && !SLAB_WTH_MAX_NOTNULL)
- {
- querySql.append(" AND SLAB_WTH > '" + SLAB_WTH_MIN[0] + "'");
- }
- else if(!SLAB_WTH_MIN_NOTNULL && SLAB_WTH_MAX_NOTNULL)
- {
- querySql.append(" AND SLAB_WTH <= '" +SLAB_WTH_MAX[0] + "'");
- }
-
- //如果slabAssRes为ture,则查询安批组合的结果信息
- if(slabAssRes != null && "true".equals(slabAssRes[0]))
- {
- querySql.append(" AND COMB_YN = 'Y'");
- }
- else
- {
- querySql.append(" AND SLAB_LEN >= 4500 AND SLAB_LEN <= 5300 AND COMB_YN = 'N'");
- }
-
-
- if(ARRAY_NORM != null)
- {
- querySql.append(" order by T." + ARRAY_NORM[0]);
- }
- if(ASC != null && !"true".equals(ASC[0]))
- {
- querySql.append(" desc");
- }
-
- // 获取DAO
- PosRowSet rowSet = getDao("mesdao").findByQueryStatement(querySql.toString());
-
- //如果查询的是组合板坏,则需要把组成该组合板坏的单板坏一起查询出来
- if(slabAssRes != null && "true".equals(slabAssRes[0]))
- {
- List list = new ArrayList();
- PosRow row = null;
- PosRow row2 = null;
- Map map = null;
- Map map2 = null;
- String DSN_SLAB_NO = "";
- String slabAssResSql = "";
- PosRowSet rowSet2 = null;
- while(rowSet.hasNext())
- {
- row = rowSet.next();
- map = row.getAttributes();
- DSN_SLAB_NO = (String)map.get("DSN_SLAB_NO");
- slabAssResSql = "SELECT 'false' AS CHK, S.* FROM TBD01_SLABDN_RST S WHERE P_DSN_SLAB_NO = '"+ DSN_SLAB_NO + "'";
- rowSet2 = getDao("mesdao").findByQueryStatement(slabAssResSql);
- list.add(map);
- while(rowSet2.hasNext())
- {
- row2 = rowSet2.next();
- map2 = row2.getAttributes();
- list.add(map2);
- }
- }
- context.put("EmpListResult", list);
- }
- else
- {
- context.put("EmpListResult", rowSet);
- }
- return PosBizControlConstants.SUCCESS;
- }
- }
|