package xin.glue.ui.G.G07; import java.util.ArrayList; import java.util.HashMap; 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.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; public class SyncSlabYard extends PosActivity { public String runActivity(PosContext context) { String[] sSlabNo = (String[])context.get("slabNo"); String[] sYardAddr = (String[])context.get("yardAddr"); String[] arrSlabNo ; String[] arrYardAddr ; Map map = new HashMap(); if(!(sSlabNo.length >0))return PosBizControlConstants.SUCCESS; arrSlabNo = sSlabNo[0].split("\\|"); arrYardAddr = sYardAddr[0].split("\\|"); //板坯块数 跟 板坯地址个数 不符,输入条件错误 if(arrYardAddr.length > 1 && arrYardAddr.length != arrSlabNo.length)return PosBizControlConstants.SUCCESS; //查询板坯数否在库,没有板坯地址 if(arrYardAddr.length == 1 && arrSlabNo.length > 1){ String slabNotExist = "select slab_no from tbg04_slab_yard where slab_no = ? and yard_addr like 'Z%'"; String slabNotSearch = "select slab_no,YARD_ADDR from tbg04_slab_yard where slab_no is not null and yard_addr like 'Z%'"; ArrayList listNonExist = new ArrayList(); ArrayList listNonSearch = new ArrayList(); ArrayList listError = new ArrayList(); PosParameter param = null; PosRowSet rowSet = null; int iSlabCnt = 0; String slab = null; String addr = null; //要查询的板坯不在库情况 && 要查询的板坯在库存中有 多块 for(int i = 0 ; i < arrSlabNo.length ; i++){ param = new PosParameter(); iSlabCnt = 0; param.setWhereClauseParameter(0, arrSlabNo[i].trim()); rowSet = getDao("mesdao").findByQueryStatement(slabNotExist, param); //板坯不在库 if(!rowSet.hasNext())listNonExist.add(arrSlabNo[i].trim() + "\n"); //板坯在库 但是有多块板坯 板坯号相同 while(rowSet.hasNext()){ iSlabCnt++; rowSet.next(); } //如果库存存在多块板坯 板坯号相同 增加错误提示信息 if(iSlabCnt > 1){ listError.add(arrSlabNo[i].trim() + "\n"); } } //板坯在库 查询的板坯数据中没有 rowSet = getDao("mesdao").findByQueryStatement(slabNotSearch); while(rowSet.hasNext()){ PosRow row = rowSet.next(); iSlabCnt = 0; slab = (String)row.getAttribute("SLAB_NO"); addr = (String)row.getAttribute("YARD_ADDR"); for(int i = 0 ; i < arrSlabNo.length ; i++){ if(slab.equals(arrSlabNo[i].trim()))iSlabCnt++; } if(iSlabCnt == 0)listNonSearch.add(slab + " --- " + addr + "\n"); } map.put("NON_EXIT", listNonExist); map.put("NON_SEARCH", listNonSearch); map.put("ERRO_DUP_SLAB", listError); } //查询板坯 地址 跟 库存信息匹配 else{ } context.put("syncSlabYard_vo", map); return PosBizControlConstants.SUCCESS; } }