|
|
@@ -740,7 +740,10 @@ public class dispatch extends Controller {
|
|
|
Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from sa_dispatch_items where sa_dispatchid=" + sa_dispatchid + ")");
|
|
|
RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
|
|
|
Rows rowsDispatchDetail = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t1.rowno,t2.itemname,t2.itemno from sa_dispatch_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_dispatchid=" + sa_dispatchid);
|
|
|
- RowsMap rowsMapDispatchDetail = rowsDispatchDetail.toRowsMap("itemno");
|
|
|
+
|
|
|
+
|
|
|
+ Rows rowsDispatchDetailGroupByItem = dbConnect.runSqlQuery("select sum(t1.qty) qty,t2.itemno from sa_dispatch_items t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_dispatchid=" + sa_dispatchid+" group by t2.itemno");
|
|
|
+ RowsMap rowsMapDispatchDetailGroupByItem = rowsDispatchDetailGroupByItem.toRowsMap("itemno");
|
|
|
|
|
|
JSONObject object = new JSONObject();
|
|
|
object.put("classname", "getIcinvbal");
|
|
|
@@ -765,25 +768,33 @@ public class dispatch extends Controller {
|
|
|
|
|
|
for (Object obj : jsonArray) {
|
|
|
JSONObject jsonObject = (JSONObject) obj;
|
|
|
- if (rowsMapDispatchDetail.containsKey(jsonObject.getString("fitemno"))) {
|
|
|
- if (rowsMapDispatchDetail.get(jsonObject.getString("fitemno")).isNotEmpty()) {
|
|
|
- rowsMapDispatchDetail.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("FQty"));
|
|
|
+ if (rowsMapDispatchDetailGroupByItem.containsKey(jsonObject.getString("fitemno"))) {
|
|
|
+ if (rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).isNotEmpty()) {
|
|
|
+ rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("FQty"));
|
|
|
} else {
|
|
|
- rowsMapDispatchDetail.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", 0);
|
|
|
+ rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- if (!rowsDispatchDetail.isEmpty()) {
|
|
|
- for (Row row : rowsDispatchDetail) {
|
|
|
- System.out.println(Parameter.get(siteid, "dispatchinstock"));
|
|
|
- System.out.println(Parameter.get(siteid, "dispatchinstock").equals("1"));
|
|
|
- if (sumQtyRowsMap.containsKey(row.getString("fitemno"))) {
|
|
|
- row.put("delinvbalqty", (row.containsKey("invbalqty")?row.getBigDecimal("invbalqty"):BigDecimal.ZERO).subtract(sumQtyRowsMap.get(row.getString("fitemno")).get(0).getBigDecimal("qty")));
|
|
|
+ if (Parameter.get(siteid, "dispatchinstock").equals("1")) {
|
|
|
+ for (Row row : rowsDispatchDetailGroupByItem) {
|
|
|
+ if (sumQtyRowsMap.containsKey(row.getString("itemno"))) {
|
|
|
+ row.put("delinvbalqty", (row.containsKey("invbalqty")?row.getBigDecimal("invbalqty"):BigDecimal.ZERO).subtract(sumQtyRowsMap.get(row.getString("fitemno")).get(0).getBigDecimal("qty")));
|
|
|
} else {
|
|
|
row.put("delinvbalqty", row.containsKey("invbalqty")?row.getBigDecimal("invbalqty"):BigDecimal.ZERO);
|
|
|
}
|
|
|
+
|
|
|
+ if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("delinvbalqty")) > 0) {
|
|
|
+ return getErrReturnObject().setErrMsg("发货商品"+row.getString("itemno")+",库存不足,无法操作复核!")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (!rowsDispatchDetail.isEmpty()) {
|
|
|
+ for (Row row : rowsDispatchDetail) {
|
|
|
if (rowsMap.get(row.getString("sa_orderitemsid")).isEmpty()) {
|
|
|
return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细不存在对应得订单行,无法复核")
|
|
|
.toString();
|
|
|
@@ -792,17 +803,6 @@ public class dispatch extends Controller {
|
|
|
return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细的数量大于对应订单行的未发货数量,无法复核")
|
|
|
.toString();
|
|
|
}
|
|
|
-
|
|
|
- if (Parameter.get(siteid, "dispatchinstock").equals("1")) {
|
|
|
-
|
|
|
-
|
|
|
- if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("delinvbalqty")) > 0) {
|
|
|
- return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细的数量大于erp的库存数量,无法复核")
|
|
|
- .toString();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
sqlList.add("update sa_orderitems set undeliqty=" + rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").subtract(row.getBigDecimal("qty")) + ",deliedqty=" + (row.getBigDecimal("qty").add(rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
|
|
|
}
|
|
|
} else {
|