Pārlūkot izejas kodu

sql查询过滤更新

fyz 9 mēneši atpakaļ
vecāks
revīzija
b827de30d6

+ 22 - 4
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -326,7 +326,7 @@ public class TimerServiceImpl implements TimerService {
     @Override
     public List<ProjectAnalysis> projectAnalysisGroup(Map<String, Object> data){
         final String[] sql = {"",""};
-        if (data.isEmpty()){
+        if (!data.containsKey("month")){
             sql[0] = "SELECT " +
                     " `month`, " +
                     " sum( predict_income ) predict_income," +
@@ -347,7 +347,16 @@ public class TimerServiceImpl implements TimerService {
                     " SUM( net_profit )/ SUM( income ) net_margin  " +
                     "FROM " +
                     " lanyun_project_analysis  " +
-                    "GROUP BY " +
+                    " 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") +"\" " ;
+            } else if (ObjectUtil.isNotNull(data.get("endDate"))) {
+                sql[0] = sql[0] + " AND `month` <= \"" + data.get("endDate") +"\" " ;
+                sql[1] = sql[1] + " AND `month` <= \"" + data.get("endDate") +"\" " ;
+            }
+            sql[0] = sql[0] +
+                    " GROUP BY " +
                     " `month`" +
                     " order by `month` DESC";
             sql[1]= "SELECT " +
@@ -414,11 +423,20 @@ public class TimerServiceImpl implements TimerService {
                     " lanyun_project_analysis  " +
                     " WHERE 1=1 ";
 
+            if (data.containsKey("startDate") || data.containsKey("endDate")){
+                data.remove("month");
+            }
             data.forEach((k,v)->{
-                if (k.equals("low")){
+                if (k.equals("low") && ObjectUtil.isNotNull(v)){
                     sql[0] = sql[0] + " AND `net_margin` < 0.05" ;
                     sql[1] = sql[1] + " AND `net_margin` < 0.05" ;
-                }else {
+                } else if (ObjectUtil.isNotNull(v) && k.equals("startDate")) {
+                    sql[0] = sql[0] + " AND `month` >= \"" + v +"\"" ;
+                    sql[1] = sql[1] + " AND `month` >= \"" + v +"\"" ;
+                } else if (ObjectUtil.isNotNull(v) && k.equals("endDate")) {
+                    sql[0] = sql[0] + " AND `month` <= \"" + v +"\"" ;
+                    sql[1] = sql[1] + " AND `month` <= \"" + v +"\"" ;
+                } else if (ObjectUtil.isNotNull(v) && !k.equals("low")){
                     sql[0] = sql[0] + " AND `" + k +"` = \"" + v +"\"" ;
                     sql[1] = sql[1] + " AND `" + k +"` = \"" + v +"\"" ;
                 }