소스 검색

sql查询分页更新

fyz 9 달 전
부모
커밋
dfc9d75fdf
1개의 변경된 파일15개의 추가작업 그리고 7개의 파일을 삭제
  1. 15 7
      mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

+ 15 - 7
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -326,13 +326,15 @@ public class TimerServiceImpl implements TimerService {
     @Override
     public  Map<String, Object> projectAnalysisGroup(Map<String, Object> data){
         final String[] sql = {"","",""};
+        /*分页*/
         int pageStart = (Integer.parseInt(data.get("page").toString()) - 1) * (Integer.parseInt(data.get("num").toString())-1);
-        int pageEnd = Integer.parseInt(data.get("num").toString()) - 1;
+        int pageSize = Integer.parseInt(data.get("num").toString()) - 1;
         log.info("pageStart:{}",pageStart);
-        log.info("pageEnd:{}",pageEnd);
+        log.info("pageEnd:{}",pageSize);
         data.remove("page");
         data.remove("num");
         if (!data.containsKey("month")){
+            /*sql获取第一层按月求和数据*/
             sql[0] = "SELECT " +
                     " `month`, " +
                     " sum( predict_income ) predict_income," +
@@ -354,6 +356,7 @@ public class TimerServiceImpl implements TimerService {
                     "FROM " +
                     " lanyun_project_analysis  " +
                     " WHERE 1=1 " ;
+            /*sql获取第一层合计数据*/
             sql[1]= "SELECT " +
                     " '合计' as `month` , " +
                     " sum( predict_income ) predict_income," +
@@ -375,11 +378,11 @@ public class TimerServiceImpl implements TimerService {
                     "FROM " +
                     " lanyun_project_analysis  " +
                     "WHERE 1=1 " ;
+            /*sql获取第一层数据总数*/
             sql[2] = "SELECT " +
-                    " COUNT(*) total_count " +
+                    " COUNT(*) total_count  " +
                     "FROM " +
-                    " lanyun_project_analysis  " +
-                    " WHERE 1=1 " ;
+                    " ( SELECT `month` FROM lanyun_project_analysis WHERE 1 = 1 " ;
             if (ObjectUtil.isNotNull(data.get("startDate"))) {
                 sql[0] = sql[0] + " AND `month` >= \"" + data.get("startDate") +"\" " ;
                 sql[1] = sql[1] + " AND `month` >= \"" + data.get("startDate") +"\" " ;
@@ -392,10 +395,13 @@ public class TimerServiceImpl implements TimerService {
             sql[0] = sql[0] +
                     " GROUP BY " +
                     " `month`" +
-                    " order by `month` DESC LIMIT " + pageStart + "," + pageEnd;
+                    " order by `month` DESC LIMIT " + pageStart + "," + pageSize;
+            sql[2] = sql[2] +
+                    "  GROUP BY `month` ) t1 ";
 
             log.info("sql[1]:{}",sql[1]);
         }else {
+            /*sql获取第二层月明细数据*/
             sql[0] = "SELECT " +
                     " `month`," +
                     "  project_name, " +
@@ -417,6 +423,7 @@ public class TimerServiceImpl implements TimerService {
                     "FROM " +
                     " lanyun_project_analysis " +
                     " WHERE 1=1";
+            /*sql获取第二层合计数据*/
             sql[1] = "SELECT " +
                     " '合计' as `month`, " +
                     " sum( predict_income ) predict_income," +
@@ -438,6 +445,7 @@ public class TimerServiceImpl implements TimerService {
                     " FROM " +
                     " lanyun_project_analysis  " +
                     " WHERE 1=1 ";
+            /*sql获取第二层数据总数*/
             sql[2] = "SELECT " +
                     " COUNT(*) total_count " +
                     " FROM " +
@@ -466,7 +474,7 @@ public class TimerServiceImpl implements TimerService {
                 }
             });
             sql[1] = sql[1] +  " GROUP BY `month` ";
-            sql[0] = sql[0] +  "  order by `month` DESC LIMIT " + pageStart + "," + pageEnd;
+            sql[0] = sql[0] +  "  order by `month` DESC LIMIT " + pageStart + "," + pageSize;
             sql[2] = sql[2] +  " GROUP BY `month` ";
             log.info("sql[0]:{}",sql[0]);