Files
old_baoxin_wms/tomcat/webapps/sm/xkw.jsp
2025-09-12 17:05:46 +08:00

254 lines
6.1 KiB
Plaintext

<?xml version="1.0" encoding="gb2312"?>
<%@ page contentType="text/xml; charset=GBK" %>
<%@ page import="java.util.*"%>
<%@ page import="com.zcsoft.dbvisit.DB"%>
<%@ page import="com.wxzd.wms.util.ServerUtil"%>
<jsp:useBean id="db1" scope="application" class="com.zcsoft.dbvisit.DB" />
<jsp:useBean id="userInfo" scope="session" class="com.zcsoft.purview.data.UserInfoData" />
<%
if (userInfo.getYhm() == null)
{
out.write("<redirect href=\"sm.jsp\"/>");
return;
}
String errorInfo = null;
String kwsx = request.getParameter("kw");//库位筛选
String rkcp = request.getParameter("item");//待入库产品信息
String kwlx = DB.regulateInput(request.getParameter("kwlx"));
List data = null;
try
{
int index = rkcp != null?rkcp.indexOf('='):-1;
if (index > 0)
{
//提取入库产品的限定存放分区、质量状态、入库仓库等信息
String mxbh = rkcp.substring(0, index);
String rksl = rkcp.substring(1 + index);
String rkxxFetchSql;
if (mxbh.charAt(0) == 'R')
{
rkxxFetchSql = "SELECT a.ckbh,a.zl,b.cpbh,b.lpxx,c.cfkwFqsx"
+ "\nFROM cprkd a JOIN cprkdmx b ON a.ysdh=b.ysdh"
+ "\nJOIN cpxx c ON b.cpbh=c.cpbh"
+ "\nWHERE b.mxbh=? AND a.zt=0 AND b.rksl>b.yapsl";
}
else
{
rkxxFetchSql = "SELECT a.ckbh,a.zl,b.cpbh,b.lpxx,c.cfkwFqsx"
+ "\nFROM ckd a JOIN ckdmx b ON a.ckdh=b.ckdh"
+ "\nJOIN cpxx c ON b.cpbh=c.cpbh"
+ "\nWHERE b.mxbh=? AND a.zt=0 AND b.shsl>b.yapsl";
}
Map rkwzxx = db1.getSingleRow(rkxxFetchSql, mxbh.substring(1));
if (rkwzxx == null)
{
throw new IllegalStateException("单据记录不再存在!");
}
Object rkWzlb = rkwzxx.get("cfkwFqsx");
Object rkZlzt = rkwzxx.get("zl");
Object ckbh = rkwzxx.get("ckbh");
Object rkCpbh = rkwzxx.get("cpbh");
Object rkCpph = rkwzxx.get("lpxx");
//提取可入库位
StringBuffer sql = new StringBuffer("SELECT kwbh,tpbh,sfwzzl");
sql.append("\nFROM kwjbxx a");
sql.append("\nWHERE (sfsd=0");
if (kwsx != null)
{
if (kwsx.length() < 6)
{
sql.append(" OR (sfsd > 0 AND suolx=1))");
}
else
{
sql.append(')');
}
if (kwsx.length() > 0)
{
sql.append(" AND kwbh LIKE '");
sql.append(kwsx);
if (kwsx.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(ckbh).append('\'');
//库位类型筛选
if (!ServerUtil.isNull(kwlx))
{
if ("kkw".equals(kwlx))
{
sql.append(" AND zsl=0");
}
else if ("ktp".equals(kwlx))
{
sql.append(" AND zsl>0 AND sfwzzl='T'");
}
else if ("tcp".equals(kwlx))
{
sql.append(" AND EXISTS(SELECT 2 FROM cpkcxx b");
sql.append("\nWHERE b.ckmc=a.ckmc AND b.kwbh=a.kwbh");
sql.append("\nAND cpbh='").append(rkCpbh);
sql.append("' AND zlzt='").append(rkZlzt);
sql.append("' AND lpxx");
if (ServerUtil.isNull(kwlx))
{
sql.append(" IS NULL");
}
else
{
sql.append("='").append(rkCpph).append('\'');
}
sql.append(')');
}
else if ("xn".equals(kwlx))
{
sql.append(" AND xnkw=1");
}
else if ("kz".equals(kwlx))
{
sql.append(" AND flagKzkw=1");
}
}
sql.append("\nORDER BY qysx DESC,zsl,ceng,lie,pai");
data = db1.getVDataWithException(sql.toString());
}
else
{
errorInfo = "无效参数";
}
}
catch (Exception ex)
{
ex.printStackTrace();
errorInfo = ex.getMessage();
if (errorInfo == null) errorInfo = ex.toString();
}
//返回结果
out.write("<result status=\"");
if (errorInfo != null)
{
out.write("false\" exception=\"");
out.write(errorInfo);
out.write("\">");
}
else
{
out.println("true\">");
out.println("<table border=\"1\" class=\"data\" style=\"text-align:center;\">");
if (kwsx == null || !kwsx.matches("[0-9][0-9][0-9][0-9][0-9][0-9]"))
{
out.println("<tr><td colspan=\"3\">");
String[] queryItems = new String[]{"空库位", "kkw",
"空托盘", "ktp",
"同货库位", "tcp",
"虚拟库位", "xn",
"扩展库位", "kz"};
for (int i = 0; i < queryItems.length; i++)
{
String text = queryItems[i++];
String id = queryItems[i];
out.print("<input type=\"radio\" name=\"kwlx\"");
if (kwlx != null && id.equals(kwlx))
{
out.print(" checked=\"true\"");
}
out.print(" onclick=\"xkw('");
out.print(id);
out.print("');\">");
out.print(text);
out.print("</input>");
if (i > 0 && i % 5 == 0)
{
out.print("</td></tr><tr><td colspan=\"3\">");
}
}
out.println("</td></tr>");
}
out.println("<tr><th>库位</th><th>托盘</th><th>备注</th></tr>");
int i = 0, n = data.size();
if (n == 0)
{
out.print("<tr><td colspan=\"3\">");
out.print("未找到满足条件的库位,可<a href=\"javascript:xdkw();\">");
out.print("关闭");
out.print("</a>");
out.println("</td></tr>");
}
else for (; i < n; i++)
{
out.print("<tr>");
List rowData = (List)data.get(i);
String kwbh = (String)rowData.get(0);
String tpbh = (String)rowData.get(1);
String sfwzzl= (String)rowData.get(2);
String bz = ServerUtil.isNull(sfwzzl)
?"空库位"
:("M".equals(sfwzzl)?"有货":"空托盘");
out.print("<td>");
out.print("<a href=\"javascript:xdkw('");
out.print(kwbh);
out.print("','");
out.print(tpbh);
out.print("');\"/>");
out.print(kwbh);
out.print("</td>");
out.print("<td>");
out.print(tpbh);
out.print("</td>");
out.print("<td>");
out.print(bz);
out.print("</td>");
out.println("</tr>");
if (i == 14)
{
if (n >= 15)
{
out.print("<tr><td colspan=\"3\">");
out.print("...... ");
out.print(n);
out.print(" 个可选 <a href=\"javascript:xdkw();\">");
out.print("关闭");
out.print("</a>");
out.println("</td></tr>");
}
break;
}
}
out.print("</table>");
}
%>
</result>