Browse Source

一键生成发货单优化

郭齐峰 1 year ago
parent
commit
3892ee5f91
1 changed files with 45 additions and 40 deletions
  1. 45 40
      src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

+ 45 - 40
src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

@@ -783,48 +783,53 @@ public class dispatch extends Controller {
         sqlFactory.addParameter("freightstatus", orderRows.get(0).getString("freightstatus"));
         sqlFactory.addParameter("billdate", now());
         sqlList.add(sqlFactory.getSQL());
-        RowsMap orderitemsRowsMap = dbConnect.runSqlQuery("select itemid,itemno,qty,sa_orderitemsid,sa_orderid,remarks from sa_orderitems where isfreeze=0 and siteid='" + siteid + "' and sa_orderid=" + sa_orderid).toRowsMap("sa_orderitemsid");
-        RowsMap dispatchitemsRowsMap;
-        if (dbConnect.runSqlQuery("select 1 from sys_site_parameter where siteid='" + siteid + "' and dispatch_recheck=1").isEmpty()) {
-            dispatchitemsRowsMap = dbConnect.runSqlQuery("select sa_orderid,sa_orderitemsid,ifnull(sum(qty),0) qty from sa_dispatch t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_dispatchid=t2.sa_dispatchid where t1.siteid='" + siteid + "' and t1.status in ('审核','关闭') group by t1.sa_orderid,t2.sa_orderitemsid").toRowsMap("sa_orderitemsid");
-        } else {
-            dispatchitemsRowsMap = dbConnect.runSqlQuery("select sa_orderid,sa_orderitemsid,ifnull(sum(qty),0) qty from sa_dispatch t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_dispatchid=t2.sa_dispatchid where t1.siteid='" + siteid + "' and t1.status in ('复核','关闭') group by t1.sa_orderid,t2.sa_orderitemsid").toRowsMap("sa_orderitemsid");
-        }
+//        RowsMap orderitemsRowsMap = dbConnect.runSqlQuery("select itemid,itemno,qty,sa_orderitemsid,sa_orderid,remarks from sa_orderitems where siteid='" + siteid + "' and sa_orderid=" + sa_orderid).toRowsMap("sa_orderitemsid");
+//        RowsMap dispatchitemsRowsMap;
+//        if (dbConnect.runSqlQuery("select 1 from sys_site_parameter where siteid='" + siteid + "' and dispatch_recheck=1").isEmpty()) {
+//            dispatchitemsRowsMap = dbConnect.runSqlQuery("select sa_orderid,sa_orderitemsid,ifnull(sum(qty),0) qty from sa_dispatch t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_dispatchid=t2.sa_dispatchid where t1.siteid='" + siteid + "' and t1.status in ('审核','关闭') group by t1.sa_orderid,t2.sa_orderitemsid").toRowsMap("sa_orderitemsid");
+//        } else {
+//            dispatchitemsRowsMap = dbConnect.runSqlQuery("select sa_orderid,sa_orderitemsid,ifnull(sum(qty),0) qty from sa_dispatch t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_dispatchid=t2.sa_dispatchid where t1.siteid='" + siteid + "' and t1.status in ('复核','关闭') group by t1.sa_orderid,t2.sa_orderitemsid").toRowsMap("sa_orderitemsid");
+//        }
+
+        Rows orderitemsRows = dbConnect.runSqlQuery("select itemid,itemno,sa_orderitemsid,undeliqty,remarks from sa_orderitems where siteid='" + siteid + "' and sa_orderitemsid in " + sa_orderitemsids.toString().replace("[", "(").replace("]", ")"));
         Long rowno = 1L;
-        for (Object o : sa_orderitemsids) {
-            String sa_orderitemsid = o.toString();
-            BigDecimal qty = new BigDecimal("0");
-            if (orderitemsRowsMap.containsKey(sa_orderitemsid)) {
-                Rows orderitemsRows = orderitemsRowsMap.get(sa_orderitemsid);
-                qty = orderitemsRows.get(0).getBigDecimal("qty");
-                if (dispatchitemsRowsMap.containsKey(sa_orderitemsid)) {
-                    RowsMap dispatchRowsMap = dispatchitemsRowsMap.get(sa_orderitemsid).toRowsMap("sa_orderid");
-                    if (dispatchRowsMap.containsKey(sa_orderid.toString())) {
-                        Rows orderitemRows = dispatchRowsMap.get(sa_orderid.toString());
-                        if (orderitemsRows.get(0).getBigDecimal("qty").compareTo(orderitemRows.get(0).getBigDecimal("qty")) < 1) {
-                            continue;
-                        } else {
-                            qty = qty.subtract(orderitemRows.get(0).getBigDecimal("qty"));
-                        }
-                    }
-                }
-                sqlFactory = new SQLFactory(this, "发货单明细新增");
-                sqlFactory.addParameter("siteid", siteid);
-                sqlFactory.addParameter("sa_dispatch_itemsid", createTableID("sa_dispatch_items"));
-                sqlFactory.addParameter("sa_dispatchid", sa_dispatchid);
-                sqlFactory.addParameter("rowno", rowno);
-                sqlFactory.addParameter("billno", billCode);
-                rowno++;
-                sqlFactory.addParameter("sa_orderitemsid", sa_orderitemsid);
-                sqlFactory.addParameter("itemid", orderitemsRows.get(0).getLong("itemid"));
-                sqlFactory.addParameter("qty", qty);
-                sqlFactory.addParameter("batchcontrol", 0);
-                sqlFactory.addParameter("batchno", "");
-                sqlFactory.addParameter("remarks", orderRows.get(0).getString("remarks"));
-                sqlFactory.addParameter("userid", userid);
-                sqlFactory.addParameter("username", username);
-                sqlList.add(sqlFactory.getSQL());
+        for (Row row : orderitemsRows) {
+            String sa_orderitemsid = row.getString("sa_orderitemsid");
+            BigDecimal qty = row.getBigDecimal("undeliqty");
+            if (qty.compareTo(new BigDecimal("0"))<1){
+                continue;
             }
+//            if (orderitemsRowsMap.containsKey(sa_orderitemsid)) {
+//                Rows orderitemsRows = orderitemsRowsMap.get(sa_orderitemsid);
+//                qty = orderitemsRows.get(0).getBigDecimal("qty");
+//                if (dispatchitemsRowsMap.containsKey(sa_orderitemsid)) {
+//                    RowsMap dispatchRowsMap = dispatchitemsRowsMap.get(sa_orderitemsid).toRowsMap("sa_orderid");
+//                    if (dispatchRowsMap.containsKey(sa_orderid.toString())) {
+//                        Rows orderitemRows = dispatchRowsMap.get(sa_orderid.toString());
+//                        if (orderitemsRows.get(0).getBigDecimal("qty").compareTo(orderitemRows.get(0).getBigDecimal("qty")) < 1) {
+//                            continue;
+//                        } else {
+//                            qty = qty.subtract(orderitemRows.get(0).getBigDecimal("qty"));
+//                        }
+//                    }
+//                }
+            sqlFactory = new SQLFactory(this, "发货单明细新增");
+            sqlFactory.addParameter("siteid", siteid);
+            sqlFactory.addParameter("sa_dispatch_itemsid", createTableID("sa_dispatch_items"));
+            sqlFactory.addParameter("sa_dispatchid", sa_dispatchid);
+            sqlFactory.addParameter("rowno", rowno);
+            sqlFactory.addParameter("billno", billCode);
+            rowno++;
+            sqlFactory.addParameter("sa_orderitemsid", sa_orderitemsid);
+            sqlFactory.addParameter("itemid", row.getLong("itemid"));
+            sqlFactory.addParameter("qty", qty);
+            sqlFactory.addParameter("batchcontrol", 0);
+            sqlFactory.addParameter("batchno", "");
+            sqlFactory.addParameter("remarks", row.getString("remarks"));
+            sqlFactory.addParameter("userid", userid);
+            sqlFactory.addParameter("username", username);
+            sqlList.add(sqlFactory.getSQL());
+//            }
         }
         dbConnect.runSqlUpdate(sqlList);
         content.put("sa_dispatchid", sa_dispatchid);