205 lines
7.4 KiB
Plaintext
205 lines
7.4 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" />
|
|||
|
|
<%
|
|||
|
|
String errorInfo = null, ckdh = null, jhs = null, zlbhAndTpbh = null;
|
|||
|
|
int wsmsl = 0;//<2F>˴α<CBB4><CEB1><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD>δɨ<CEB4><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
String ysmsl = "0";
|
|||
|
|
session = request.getSession(false);
|
|||
|
|
if (session != null && session.getAttribute("userInfo") != null)
|
|||
|
|
{
|
|||
|
|
ckdh = request.getParameter("ckdh");
|
|||
|
|
jhs = request.getParameter("jhs");//<2F><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
zlbhAndTpbh = request.getParameter("zlbh");
|
|||
|
|
//<2F><><EFBFBD>ⵥ<EFBFBD>š<EFBFBD><C5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ⵥ<EFBFBD><E2B5A5>
|
|||
|
|
if (ckdh != null && ckdh.length() > 1//1<><31><EFBFBD>м<EFBFBD><D0BC>ķָ<C4B7><D6B8><EFBFBD>
|
|||
|
|
&& jhs != null && jhs.length() > 2)//2<><32>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥ<EFBFBD><E2B5A5><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч<EFBFBD><D0A7>PEDING <20><>Ϊ<EFBFBD><CEAA>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>鲻<EFBFBD><E9B2BB>Ҫ
|
|||
|
|
//db1.getSingleField("SELECT )
|
|||
|
|
int indexSeparator = zlbhAndTpbh != null?zlbhAndTpbh.indexOf('|'):-1;
|
|||
|
|
//int indexSeparator2 = indexSeparator > 0?zlbhAndTpbh.indexOf('|', indexSeparator + 1):-1;
|
|||
|
|
//int indexSeparator3 = indexSeparator2 > 0?zlbhAndTpbh.indexOf('|', indexSeparator2 + 1):-1;
|
|||
|
|
String zlbh = indexSeparator > 0?zlbhAndTpbh.substring(0, indexSeparator):null;
|
|||
|
|
/*, ckkw = indexSeparator2 > 0?zlbhAndTpbh.substring(indexSeparator + 1, indexSeparator2):null
|
|||
|
|
, cks = indexSeparator3 > 0?zlbhAndTpbh.substring(indexSeparator2 + 1, indexSeparator3):null
|
|||
|
|
, tpbh = indexSeparator3 > 0?zlbhAndTpbh.substring(1 + indexSeparator3):null;*/
|
|||
|
|
ckdh = java.net.URLEncoder.encode(ckdh);
|
|||
|
|
//<2F><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8>¼
|
|||
|
|
List sqls = new ArrayList(2), values = new ArrayList(2);
|
|||
|
|
String updateStmt = DB.prepareUpdateStmt("ckzlLxMx", new String[]{"smzt", "smcx"}
|
|||
|
|
, new String[]{"ckdh", "jh"});
|
|||
|
|
//System.out.println(request.getParameter("qxsm"));
|
|||
|
|
Integer smzt = new Integer("1".equals(request.getParameter("qxsm"))?0:1);
|
|||
|
|
Integer smcx = null;
|
|||
|
|
String chkSql = "SELECT smzt,jh FROM ckzlLxMx A WHERE ckdh=? AND (jh=? OR MADE_NO=?)";
|
|||
|
|
String chkSql2 = "SELECT smzt,jh FROM ckzlLxMx A WHERE ckdh=? AND xh=?";
|
|||
|
|
String chkSql3 = "SELECT smzt,jh FROM ckzlLxMx A JOIN ckzl B ON A.zlbh=B.zlbh WHERE A.ckdh=? AND B.tpbh=?";
|
|||
|
|
if (zlbh != null)
|
|||
|
|
{
|
|||
|
|
chkSql += " AND A.zlbh=" + zlbh + " ORDER BY A.jh";
|
|||
|
|
updateStmt += " AND zlbh=" + zlbh;
|
|||
|
|
}
|
|||
|
|
if (smzt.intValue() == 1)
|
|||
|
|
{
|
|||
|
|
Object maxSmcx = db1.getSingleField("SELECT MAX(smcx) FROM ckzlLxmx WHERE ckdh=?", ckdh);
|
|||
|
|
if (maxSmcx == DB.NULL) smcx = new Integer(0);
|
|||
|
|
else smcx = Integer.valueOf(maxSmcx.toString());
|
|||
|
|
}
|
|||
|
|
StringTokenizer jhList = new StringTokenizer(jhs, "|");
|
|||
|
|
Object[] params;
|
|||
|
|
while (jhList.hasMoreTokens())
|
|||
|
|
{
|
|||
|
|
String barcode = jhList.nextToken();
|
|||
|
|
boolean isBoxCode = false, isSalverCode = false;
|
|||
|
|
String sql;
|
|||
|
|
if (isBoxCode = true)
|
|||
|
|
{
|
|||
|
|
sql = chkSql2;
|
|||
|
|
params = new Object[]{ckdh, barcode};
|
|||
|
|
}
|
|||
|
|
else if (isSalverCode = true)
|
|||
|
|
{
|
|||
|
|
sql = chkSql3;
|
|||
|
|
params = new Object[]{ckdh, barcode};
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
sql = chkSql;
|
|||
|
|
params = new Object[]{ckdh, barcode, barcode};
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֺ<EFBFBD><D6BA>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
List data = db1.getVDataWithPrepareStatement(sql, params);
|
|||
|
|
int n = data.size();
|
|||
|
|
if (n > 1 && isBoxCode == false && isSalverCode == false)
|
|||
|
|
{
|
|||
|
|
throw new IllegalArgumentException("<22>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD>豸<EFBFBD>б<EFBFBD><D0B1>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ " + barcode + " <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>豸");
|
|||
|
|
}
|
|||
|
|
if (n == 0)
|
|||
|
|
{
|
|||
|
|
if (isBoxCode)
|
|||
|
|
{
|
|||
|
|
throw new IllegalArgumentException("<22>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD>豸<EFBFBD>б<EFBFBD><D0B1>У<EFBFBD>δ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ " + barcode + " <20><><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD>¼");
|
|||
|
|
}
|
|||
|
|
else if (isSalverCode)
|
|||
|
|
{
|
|||
|
|
throw new IllegalArgumentException("δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " + barcode + " <20>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>ҵָ<D2B5><D6B8>");
|
|||
|
|
}
|
|||
|
|
throw new IllegalArgumentException("<22>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD>豸<EFBFBD>б<EFBFBD><D0B1>У<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ " + barcode + " <20><><EFBFBD>豸");
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < n; i++)
|
|||
|
|
{
|
|||
|
|
List rowData = (List)data.get(i);
|
|||
|
|
String jh = (String)rowData.get(1);
|
|||
|
|
if (smzt.intValue() == 1 && "1".equals(rowData.get(0)))
|
|||
|
|
{
|
|||
|
|
if (isBoxCode || isSalverCode) continue;//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD>輸<EFBFBD><E8BCB8>ȷ<EFBFBD><C8B7>һ<EFBFBD>£<EFBFBD><C2A3><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
else throw new IllegalStateException("<22><><EFBFBD><EFBFBD>" + jh + "<22>Ѿ<EFBFBD>ɨ<EFBFBD><C9A8>");
|
|||
|
|
}
|
|||
|
|
else if (smzt.intValue() == 0 && "0".equals(rowData.get(0)))
|
|||
|
|
{
|
|||
|
|
if (isBoxCode || isSalverCode) continue;
|
|||
|
|
else throw new IllegalStateException("<22><><EFBFBD><EFBFBD>" + jh + "<22><>δɨ<CEB4><C9A8>");
|
|||
|
|
}
|
|||
|
|
if (smcx != null) smcx = new Integer(smcx.intValue() + 1);
|
|||
|
|
sqls.add(updateStmt);
|
|||
|
|
values.add(new Object[]{smzt, smcx, ckdh, jh});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//<2F><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
db1.DEBUG = true;
|
|||
|
|
StringBuffer updateInstStmt = new StringBuffer("UPDATE ckzl SET smqrs=");
|
|||
|
|
updateInstStmt.append(" (SELECT COUNT(*) FROM ckzlLxMx M");
|
|||
|
|
updateInstStmt.append(" WHERE M.zlbh IS NOT NULL AND M.ckdh=? AND M.smzt=1 AND M.zlbh=ckzl.zlbh) WHERE pzbh=?");
|
|||
|
|
if (zlbh != null)
|
|||
|
|
{
|
|||
|
|
updateInstStmt.append(" AND zlbh=").append(zlbh);
|
|||
|
|
}
|
|||
|
|
sqls.add(updateInstStmt.toString());
|
|||
|
|
values.add(new Object[]{ckdh, ckdh});
|
|||
|
|
//<2F>Ŀ<DEB8><C4BF><EFBFBD><EFBFBD><EFBFBD>¼״̬
|
|||
|
|
if (smzt.intValue() == 1)
|
|||
|
|
{
|
|||
|
|
sqls.add("UPDATE kcmx SET InUse=2 WHERE jlh IN(SELECT kcjlh FROM ckzlLxmx WHERE ckdh=? AND smzt=1) AND InUse=1");
|
|||
|
|
values.add(ckdh);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
sqls.add("UPDATE kcmx SET InUse=1 WHERE jlh IN(SELECT kcjlh FROM ckzlLxmx WHERE ckdh=? AND smzt=0) AND InUse=2");
|
|||
|
|
values.add(ckdh);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>ĵ<DEB8>֤<EFBFBD><D6A4>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
StringBuffer updateVoucherStmt = new StringBuffer("UPDATE ckd SET smsl=");
|
|||
|
|
updateVoucherStmt.append(" (SELECT COUNT(*) jls FROM ckzlLxMx");
|
|||
|
|
updateVoucherStmt.append(" WHERE zlbh IS NOT NULL AND ckdh=? AND smzt=1) WHERE ckdh=? AND zt IN(0,1)");
|
|||
|
|
sqls.add(updateVoucherStmt.toString());
|
|||
|
|
values.add(new Object[]{ckdh, ckdh});
|
|||
|
|
|
|||
|
|
//<2F>ύ<EFBFBD><E1BDBB><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//System.out.println("sqls = " + sqls);
|
|||
|
|
db1.preparedUpdate(sqls, values, true);
|
|||
|
|
Map rowData;
|
|||
|
|
if (zlbh != null)
|
|||
|
|
{
|
|||
|
|
rowData = db1.getSingleRow("SELECT cksl-smqrs wsmsl,smqrs smsl FROM ckzl WHERE zlbh=?", zlbh);
|
|||
|
|
wsmsl = ServerUtil.getInt(rowData.get("wsmsl"));
|
|||
|
|
if (wsmsl <= 0 && !db1.hasAnyData("SELECT 2 FROM ckzl WHERE pzbh=? AND smqrs<cksl", ckdh))
|
|||
|
|
{//û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
wsmsl = -1;
|
|||
|
|
}
|
|||
|
|
else if (wsmsl < 0) wsmsl = 0;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
rowData = db1.getSingleRow("SELECT yapsl-smsl wsmsl,smsl FROM ckd WHERE ckdh=?", ckdh);
|
|||
|
|
wsmsl = ServerUtil.getInt(rowData.get("wsmsl"));
|
|||
|
|
if (wsmsl <= 0 && !db1.hasAnyData("SELECT 2 FROM ckd WHERE ckdh=? AND zt IN(0,1) AND smsl<yapsl", ckdh))
|
|||
|
|
{//û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥ
|
|||
|
|
wsmsl = -2;
|
|||
|
|
}
|
|||
|
|
else if (wsmsl < 0) wsmsl = 0;
|
|||
|
|
}
|
|||
|
|
ysmsl = (String)rowData.get("smsl");
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
//ex.printStackTrace();
|
|||
|
|
errorInfo = ex.getMessage();
|
|||
|
|
if (errorInfo == null) errorInfo = ex.toString();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ⵥ<EFBFBD>ŵĽ<C5B5><C4BD><EFBFBD>
|
|||
|
|
if (ckdh == null || ckdh.length() == 0) errorInfo = "δ<><CEB4><EFBFBD>ݳ<EFBFBD><DDB3>ⵥ<EFBFBD><E2B5A5>";
|
|||
|
|
else errorInfo = "δ<><CEB4><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
errorInfo = "δ<><CEB4>¼";
|
|||
|
|
}
|
|||
|
|
%>
|
|||
|
|
<%
|
|||
|
|
out.write("<result status=\"");
|
|||
|
|
if (errorInfo != null)
|
|||
|
|
{
|
|||
|
|
out.write("false\" exception=\"");
|
|||
|
|
out.write(errorInfo);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
out.write("true\" wsmsl=\"");
|
|||
|
|
out.write(Integer.toString(wsmsl));
|
|||
|
|
out.write("\" ysmsl=\"");
|
|||
|
|
out.write((ysmsl));
|
|||
|
|
}
|
|||
|
|
out.write("\"></result>");
|
|||
|
|
%>
|
|||
|
|
|