Procházet zdrojové kódy

订单列表查询慢修复

hu před 2 roky
rodič
revize
1e94f318ea

+ 1 - 0
src/custom/beans/order/SQL/查询订单金额汇总.sql

@@ -3,6 +3,7 @@
                            ifnull(sum(qty), 0)            qty,
                            ifnull(sum(writeoffamount), 0) writeoffamount,
                            ifnull(sum(invoiceamount), 0)  invoiceamount,
+                           sum(returnqty) returnqty,
                            sa_orderid
                     from sa_orderitems
                     WHERE siteid = $siteid$ and sa_orderid in $sa_orderid$

+ 6 - 11
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -581,7 +581,6 @@ public class Order extends Controller {
         ArrayList<Long> ids = rows.toArrayList("sa_orderid", new ArrayList<>());
         //查询数量金额
         RowsMap OrderAmountRowsMap = beans.order.Order.getSumOrderAmount(this,ids);
-        RowsMap OrderReturnQtyRowsMap = beans.order.Order.getSumReturnQty(this,ids);
 
         SQLFactory ischangeSQl = new SQLFactory("sql:SELECT distinct sa_orderid from sa_orderitems_change WHERE siteid='" + siteid + "' and sa_orderid in $sa_orderids$ ");
         ischangeSQl.addParameter_in("sa_orderids", rows.toArrayList("sa_orderid"));
@@ -589,22 +588,17 @@ public class Order extends Controller {
 
         for (Row row : rows) {
             Long id = row.getLong("sa_orderid");
-            if (OrderReturnQtyRowsMap.get(id.toString()).isNotEmpty()) {
-                if(OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("returnqty").compareTo(BigDecimal.ZERO)>0){
-                    row.put("isreturn", "1");
-                }else{
-                    row.put("isreturn", "0");
-                }
-            }else{
-                row.put("isreturn", "0");
-            }
-
             if (OrderAmountRowsMap.get(id.toString()).isNotEmpty()) {
                 row.put("amount", OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("amount"));
                 row.put("defaultamount", OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("defaultamount"));
                 row.put("qty", OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("qty"));
                 row.put("writeoffamount", OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("writeoffamount"));
                 row.put("invoiceamount", OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("invoiceamount"));
+                if(OrderAmountRowsMap.get(id.toString()).get(0).getBigDecimal("returnqty").compareTo(BigDecimal.ZERO)>0){
+                    row.put("isreturn", "1");
+                }else{
+                    row.put("isreturn", "0");
+                }
             } else {
                 row.put("amount", 0);
                 row.put("defaultamount", 0);
@@ -612,6 +606,7 @@ public class Order extends Controller {
                 row.put("qty", 0);
                 row.put("writeoffamount", 0);
                 row.put("invoiceamount", 0);
+                row.put("isreturn", "0");
             }
             BigDecimal writeoffamount = row.getBigDecimal("writeoffamount");
             BigDecimal invoiceamount = row.getBigDecimal("invoiceamount");