%@ page contentType="text/xml; charset=GBK" %>
<%@ page import="java.util.*"%>
<%@ page import="com.zcsoft.dbvisit.DB"%>
<%@ page import="com.wxzd.wms.util.ServerUtil"%>
<%@ page import="com.zcsoft.purview.data.Purview"%>
<%@ page import="com.wxzd.wms.sys.data.ModuleConstant"%>
<%@ page import="com.wxzd.wms.cpgl.data.WlRkzlItem"%>
<%@ page import="com.wxzd.wms.cpgl.server.CprkglManager"%>
<%
String errorInfo = null, kw = null, tp = null,ck=null;
String[] items = null;
if (userInfo.getYhm() == null)
{
out.write("");
return;
}
kw = request.getParameter("kw");
tp = request.getParameter("tp");
ck = request.getParameter("ck");
items = request.getParameterValues("item");
Vector data = null;
StringBuffer remainderItems = null;
try
{
//再次检查权限
String module = ModuleConstant.入库作业管理;
Purview p = userInfo.getUserPurview(module);
if (p == null || (p.getQx() & 1) == 0)
{
throw new IllegalArgumentException("您没有授予库存查询权限");
}
if("802".equals(ck)&& kw!=null &&kw.length()>0&&db1.hasAnyData("SELECT * FROM cprkzl WHERE kwbh=? AND ckmc='802' AND zt!=2 ",kw))//RDC入库,有库位号
{
throw new IllegalArgumentException("RDC入库时,入库库位有未完成的入库任务");
}
if(tp!=null&&tp.length()>0&&("801".equals(ck)?db1.hasAnyData("SELECT * FROM cprkzl WHERE tpbh=? AND ckmc='801' AND zt !=2",tp):db1.hasAnyData("SELECT * FROM cprkzl WHERE tpbh=? AND ckmc='802' AND zt=0",tp)))
{
throw new IllegalArgumentException("此托盘有未完成的任务!");
}
if(tp!=null&&tp.length()>0&&db1.hasAnyData("select * from kwjbxx where tpbh=?",tp))
{
throw new IllegalArgumentException("有相同托盘号!"+tp);
}
if (items != null && items.length > 0 && tp != null)
{
WlRkzlItem[] zl = new WlRkzlItem[items.length];
String table = "cprkzl";
Object rkZlzt = null;
Object rkCkbh = ck;
Object rkWzlb = null;
Map rkkwxx = null;
remainderItems = new StringBuffer();
//
//提取可入库位
StringBuffer sql = new StringBuffer("SELECT zsl,xnkw,flagKzkw,kwbh");
sql.append("\nFROM kwjbxx a");
sql.append("\nWHERE zsl=0 AND (sfsd=0");
if (kw != null&&kw.length()>0)
{
if (kw.length() < 6)
{
sql.append(" OR (sfsd > 0 AND suolx=1))");
}
else
{
sql.append(')');
}
if (kw.length() > 0)
{
sql.append(" AND kwbh LIKE '");
sql.append(kw);
if (kw.length() < 6) sql.append('%');
sql.append('\'');
}
}
else
{
sql.append(')');
}
//限定分区
if (!ServerUtil.isNull(rkWzlb))
{
sql.append("\nAND (qysx IS NULL OR qysx='");
sql.append(rkWzlb).append("')");
}
//限定入库质量状态筛选条件
sql.append("\nAND (zlzt IS NULL OR zlzt='");
//对于待验品,只能放入限定存放合格品的库位上
sql.append("1".equals(rkZlzt)?"2":rkZlzt);
sql.append("')");
//入库仓库筛选条件
sql.append(" AND ckmc='").append(rkCkbh).append('\'');
sql.append("\nORDER BY qysx DESC,zsl,ceng,lie,pai");
//System.out.println(sql.toString());
rkkwxx = db1.getSingleRow(sql.toString(), null);
if (rkkwxx == null)
{
errorInfo = "未找到满足要求的库位";
}
else
{
if (!"0".equals(rkkwxx.get("xnkw"))
&& !"0".equals(rkkwxx.get("flagKzkw"))
&& ServerUtil.isNull(tp))
{
throw new RuntimeException("入货架库位时,需要输托盘号");
}
String rkkw = (String)rkkwxx.get("kwbh");
//System.out.println(rkkw);
if("802".equals(ck)&&(kw==null||(kw!=null&&kw.length()<6)))
{
rkkw="";
}
//设定指令的库位信息
for (int i = 0; i < zl.length; i++)
{
WlRkzlItem a = zl[i]=new WlRkzlItem();
a.ckdm = rkCkbh;
a.kwbh = rkkw;
a.tpbh = tp.toUpperCase();
a.ykcs = (String)rkkwxx.get("zsl");
a.yhm=userInfo.getYhm();
a.gongchang="3";//带通知号未合格
String row=items[i];
a.BoxNo=row.substring(row.indexOf("cpp")+4,row.indexOf(";cpbh"));
a.cpbh=row.substring(row.indexOf(";cpbh")+6,row.indexOf(";lpxx"));
a.lpxx=row.substring(row.indexOf(";lpxx")+6,row.indexOf(";sl"));
a.sl= row.substring(row.indexOf(";sl")+4,row.length());
}
new CprkglManager(db1, null).generateRkzl(zl, table, null);
}
}
else
{
errorInfo = "无效参数";
}
}
catch (Exception ex)
{
//ex.printStackTrace();
errorInfo = ex.getMessage();
if (errorInfo == null) errorInfo = ex.toString();
}
//返回结果
if (errorInfo != null)
{
out.write("");
}
else
{
out.write("");
out.write(remainderItems.toString());
out.write("\">");
}
%>