ソースを参照

优化经销商目标完成情况查询

shenjingwei 1 週間 前
コミット
4100857315

+ 12 - 1
src/custom/restcontroller/sale/salestarget/enterprise.java

@@ -103,12 +103,18 @@ public class enterprise extends Controller {
             }
         }
 
+        long totalPage = 0;
+        long totalRows = 0;
+
         if (sys_enterpriseids.isEmpty()) {
             QuerySQL enterpriseQuery = SQLFactory.createQuerySQL(this, "sys_enterprise", "sys_enterpriseid");
             enterpriseQuery.setWhere("exists (select * from sa_salestarget where sa_salestarget.sa_salestargetbillid=" + sa_salestargetbillid + " and sa_salestarget.sys_enterpriseid=sys_enterprise.sys_enterpriseid) ");
             enterpriseQuery.setPage(pageSize, pageNumber);
             enterpriseQuery.setOrderBy("sys_enterpriseid");
-            sys_enterpriseids = enterpriseQuery.query().toArrayList("sys_enterpriseid", new ArrayList<>());
+            Rows enterpriseRows = enterpriseQuery.query();
+            sys_enterpriseids = enterpriseRows.toArrayList("sys_enterpriseid", new ArrayList<>());
+            totalPage = enterpriseRows.getTotalPage();
+            totalRows = enterpriseRows.getTotalRows();
         }
 
         SQLFactory sqlFactory = new SQLFactory(this, "企业-业绩目标完成列表");
@@ -117,6 +123,11 @@ public class enterprise extends Controller {
         sqlFactory.addParameter("siteid", siteid);
         String sql = sqlFactory.getSQL();
         Rows rows = dbConnect.runSqlQuery(sql);
+        if (totalRows > 0) {
+            rows.totalRows = totalRows;
+            rows.totalPage = totalPage;
+        }
+
 
         Rows actualRows = new Rows();
         //开票

+ 1 - 1
src/custom/restcontroller/webmanage/sale/salestarget/SQL/企业-业绩目标完成列表.sql

@@ -1,6 +1,6 @@
 with sa_salestarget as (
     SELECT point, sum(target_l) target_l, sum(target_h) target_h, year,sys_enterpriseid from sa_salestarget
-    WHERE  type = '季' and targettype='企业目标' and siteid=$siteid$ and $where$
+    WHERE  type = '季' and targettype='企业目标' and siteid=$siteid$ and sys_enterpriseid in $sys_enterpriseids$ and $where$
     GROUP  BY point ,year,sys_enterpriseid
     )
 SELECT DISTINCT m.year,

+ 27 - 16
src/custom/restcontroller/webmanage/sale/salestarget/enterprisetarget.java

@@ -164,30 +164,41 @@ public class enterprisetarget extends Controller {
 
     @API(title = "企业业绩目标(经销商)", apiversion = R.ID20231018142103.v1.class)
     public String selectList() throws YosException {
-         /*
-          过滤条件设置
-         */
+        ArrayList<Long> sys_enterpriseids = new ArrayList<>();
         StringBuffer where = new StringBuffer(" 1=1 ");
-        if (content.containsKey("where")) {
-            JSONObject whereObject = content.getJSONObject("where");
-            if (whereObject.containsKey("year") && !"".equals(whereObject.getString("year"))) {
-                where.append(" and(");
-                where.append("year like'%").append(whereObject.getString("year")).append("%' ");
-                where.append(")");
-            }
-
-            if (whereObject.containsKey("sys_enterpriseid") && !"".equals(whereObject.getString("sys_enterpriseid"))) {
-                where.append(" and(");
-                where.append("sys_enterpriseid ='").append(whereObject.getString("sys_enterpriseid")).append("' ");
-                where.append(")");
-            }
+        if (!content_where.getStringValue("year").isEmpty()) {
+            where.append(" and(");
+            where.append("year ='").append(content_where.getString("year")).append("' ");
+            where.append(")");
+        }
+        if (!content_where.getStringValue("sys_enterpriseid").isEmpty()) {
+            sys_enterpriseids.add(content_where.getLong("sys_enterpriseid"));
+        }
 
+        long totalPage = 0;
+        long totalRows = 0;
+
+        if (sys_enterpriseids.isEmpty()) {
+            QuerySQL enterpriseQuery = SQLFactory.createQuerySQL(this, "sys_enterprise", "sys_enterpriseid");
+            enterpriseQuery.setWhere("exists (select * from sa_salestarget where sa_salestarget.sys_enterpriseid=sys_enterprise.sys_enterpriseid and " + where + ") ");
+            enterpriseQuery.setPage(pageSize, pageNumber);
+            enterpriseQuery.setOrderBy("sys_enterpriseid");
+            Rows enterpriseRows = enterpriseQuery.query();
+            sys_enterpriseids = enterpriseRows.toArrayList("sys_enterpriseid", new ArrayList<>());
+            totalPage = enterpriseRows.getTotalPage();
+            totalRows = enterpriseRows.getTotalRows();
         }
+
         SQLFactory sqlFactory = new SQLFactory(this, "企业-业绩目标完成列表");
         sqlFactory.addParameter_SQL("where", where);
+        sqlFactory.addParameter_in("sys_enterpriseids", sys_enterpriseids);
         sqlFactory.addParameter("siteid", siteid);
         String sql = sqlFactory.getSQL();
         Rows rows = dbConnect.runSqlQuery(sql);
+        if (totalRows > 0) {
+            rows.totalRows = totalRows;
+            rows.totalPage = totalPage;
+        }
 
         return getSucReturnObject().setData(rows).toString();
     }