|
|
@@ -618,6 +618,8 @@ 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 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);
|
|
|
+ Rows rowsDispatchAllDetail = dbConnect.runSqlQuery("select sum(t1.outwarehouseqty) sumoutwarehouseqty,t1.sa_orderitemsid from sa_dispatch_items t1 inner join sa_dispatch t2 on t1.sa_dispatchid=t2.sa_dispatchid and t1.siteid=t2.siteid where t2.status in('复核','关闭','手工关闭') group by t1.sa_orderitemsid" );
|
|
|
+ RowsMap rowsDispatchAllDetailMap = rowsDispatchAllDetail.toRowsMap("sa_orderitemsid");
|
|
|
if (!rowsDispatchDetail.isEmpty()) {
|
|
|
for (Row row : rowsDispatchDetail) {
|
|
|
if (rowsMap.get(row.getString("sa_orderitemsid")).isEmpty()) {
|
|
|
@@ -628,6 +630,12 @@ public class dispatch extends Controller {
|
|
|
return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细的数量大于对应订单行的未发货数量,无法复核")
|
|
|
.toString();
|
|
|
}
|
|
|
+ if(!rowsDispatchAllDetailMap.get(row.getString("sa_orderitemsid")).isEmpty()){
|
|
|
+ if ((row.getBigDecimal("qty").add(rowsDispatchAllDetailMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("sumoutwarehouseqty"))).compareTo(rowsMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("qty")) == 1) {
|
|
|
+ return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细的总出库数量大于对应订单行的数量,无法复核")
|
|
|
+ .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 {
|