Просмотр исходного кода

订单明细所有查询优化查询速度

hu 2 лет назад
Родитель
Сommit
95a1bb8e03

+ 36 - 6
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -821,13 +821,19 @@ public class OrderItems extends Controller {
         }
 
         boolean isExport = content.getBooleanValue("isExport");
-        SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_所有列表", pageSize, pageNumber, pageSorting);
-        if (isExport) {
-            sqlFactory = new SQLFactory(this, "订单商品明细_所有列表");
+//        SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_所有列表", pageSize, pageNumber, pageSorting);
+//        if (isExport) {
+//            sqlFactory = new SQLFactory(this, "订单商品明细_所有列表");
+//        }
+//        sqlFactory.addParameter("siteid", siteid);
+//        sqlFactory.addParameter_SQL("where", where);
+//        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        QuerySQL querySQL = queryAllListManage(where.toString());
+        querySQL.setOrderBy(pageSorting);
+        if (!isExport) {
+            querySQL.setPage(pageSize, pageNumber);
         }
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter_SQL("where", where);
-        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        Rows rows = querySQL.query();
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
         RowsMap rowsMap = rows.toRowsMap("itemno");
 
@@ -931,6 +937,30 @@ public class OrderItems extends Controller {
         return getSucReturnObject().setData(rows).toString();
     }
 
+    //查询订单列表(管理端)
+    public QuerySQL queryAllListManage(String where) throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems",
+                "sa_orderitemsid","itemid","rowno","itemno","itemname","unit","qty","undeliqty","price","amount","remarks","customproperties","batchcontrol","model",
+                "conversionrate","marketprice","defaultprice","defaultamount","auxqty","needdate","deliedqty","rebateamount","invoiceamount","writeoffamount","auxunit","sa_orderid",
+                "deliverydate","returnqty","stockno","position","batchno","isfreeze");
+        querySQL.setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid",
+                "orderminqty_auxunit","orderminqty","orderaddqty_auxunit","orderaddqty","spec","standards","packageqty","delivery","k3outcode");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t5", "t5.sa_orderid = t1.sa_orderid and t5.siteid = t1.siteid",
+                "sonum","type","typemx","status","billdate","submitdate","checkdate","tradefield");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid = t5.sys_enterpriseid and t6.siteid = t5.siteid",
+                "agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t7", "t7.sys_enterpriseid = t5.sys_enterpriseid and t7.siteid = t5.siteid",
+                "enterprisename");
+        querySQL.setWhere("t1.siteid", siteid);
+        querySQL.setWhere(where);
+        querySQL.setWhere("t5.status in ('审核', '关闭','手工关闭')");
+        return querySQL;
+    }
+
+
+
+
     //返回导出的标题
     public HashMap<String, String> getTitleMap() {
         HashMap<String, String> titleMap = new HashMap<>();

+ 1 - 9
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_所有列表.sql

@@ -38,9 +38,6 @@ SELECT t1.sa_orderitemsid,
        t1.position,
        t1.batchno,
        t1.isfreeze,
-       ifnull(t2.candispatchqty, 0)   candispatchqty,
-       ifnull(t2.cansaleqty, 0)       cansaleqty,
-       ifnull(t2.qty, 0)              totalaty,
        t3.orderminqty_auxunit,
        t3.orderminqty,
        t3.orderaddqty_auxunit,
@@ -56,13 +53,8 @@ SELECT t1.sa_orderitemsid,
        t4.specalnote,
        t3.standards,
        t6.agentnum,
-       t7.enterprisename,
-       (SELECT (case
-                    when t2.cansaleqty >= t3.stockstatus1 then '充足'
-                    when t2.cansaleqty <= t3.stockstatus2 then '缺货'
-                    else '紧缺' end)) stockstatus
+       t7.enterprisename
 from sa_orderitems t1
-         LEFT JOIN st_invbal_sale t2 ON t2.siteid = t1.siteid AND t2.itemid = t1.itemid
          LEFT JOIN plm_item t3 ON t3.itemid = t1.itemid and t3.siteid = t1.siteid
          LEFT JOIN plm_itemextend t4 on t4.itemid = t1.itemid and t4.siteid = t1.siteid
          LEFT JOIN sa_order t5 on t5.sa_orderid = t1.sa_orderid and t5.siteid = t1.siteid