Ver Fonte

收支凭证性能优化

shenjingwei há 7 meses atrás
pai
commit
618ce3e6d5
1 ficheiros alterados com 19 adições e 14 exclusões
  1. 19 14
      src/custom/restcontroller/sale/cashbill/cashbill.java

+ 19 - 14
src/custom/restcontroller/sale/cashbill/cashbill.java

@@ -481,14 +481,15 @@ public class cashbill extends Controller {
                 where = where + " and(t2.enterprisename like'%" + whereObject.getString("agentinfo") + "%'" + "  or t4.agentnum like '%" + whereObject.getString("agentinfo") + "%'" + ")";
             }
         }
-        if (pageSorting.equals("''")) {
-            pageSorting = "status desc, sa_cashbillid desc";
-        }
 
-        QuerySQL querySQL = queryList(where, 1);
-        querySQL.setOrderBy(pageSorting);
-        querySQL.setPage(pageSize, pageNumber);
-        Rows rows = querySQL.query();
+        pageSorting = " sa_cashbillid desc";
+        Rows rows = queryList(where, 1, "新建", pageSize).query();
+        if (rows.size() < pageSize) {
+            rows.addAll(queryList(where, 1, "审核", pageSize - rows.size()).query());
+        }
+        if (rows.size() < pageSize) {
+            rows.addAll(queryList(where, 1, "作废", pageSize - rows.size()).query());
+        }
 
         SQLFactory areasqlFactory = new SQLFactory(this, "收支凭证关联区域列表查询");
         areasqlFactory.addParameter("siteid", siteid);
@@ -557,13 +558,14 @@ public class cashbill extends Controller {
             }
         }
 
-        if (pageSorting.equals("''")) {
-            pageSorting = "status desc, sa_cashbillid desc";
+        pageSorting = " sa_cashbillid desc";
+        Rows rows = queryList(where, 0, "新建", pageSize).query();
+        if (rows.size() < pageSize) {
+            rows.addAll(queryList(where, 0, "审核", pageSize - rows.size()).query());
+        }
+        if (rows.size() < pageSize) {
+            rows.addAll(queryList(where, 0, "作废", pageSize - rows.size()).query());
         }
-        QuerySQL querySQL = queryList(where, 0);
-        querySQL.setOrderBy(pageSorting);
-        querySQL.setPage(pageSize, pageNumber);
-        Rows rows = querySQL.query();
 
         SQLFactory areasqlFactory = new SQLFactory(this, "收支凭证关联区域列表查询");
         areasqlFactory.addParameter("siteid", siteid);
@@ -582,7 +584,7 @@ public class cashbill extends Controller {
         return getSucReturnObject().setData(rows).toString();
     }
 
-    public QuerySQL queryList(String where, int type) throws YosException {
+    public QuerySQL queryList(String where, int type, String status, int pageSize) throws YosException {
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_cashbill", "*").setTableAlias("t1");
         if (type == 1) {
             querySQL.addQueryFields("unwriteoffamount", "t1.amount - t1.writeoffamount");
@@ -591,8 +593,11 @@ public class cashbill extends Controller {
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sys_enterpriseid = t2.sys_enterpriseid and t4.siteid = t2.siteid", "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sa_accountclass", "t3", "t1.sa_accountclassid = t3.sa_accountclassid and t1.siteid = t3.siteid and t3.isused = 1", "accountno", "accountname");
         querySQL.setWhere(where);
+        querySQL.setWhere("t1.status", status);
         querySQL.setWhere("type", type);
         querySQL.setSiteid(siteid);
+        querySQL.setOrderBy(pageSorting);
+        querySQL.setPage(pageSize, pageNumber);
         return querySQL;
 
     }