Newspaper 1 년 전
부모
커밋
01e2b43111
1개의 변경된 파일38개의 추가작업 그리고 12개의 파일을 삭제
  1. 38 12
      huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.xml

+ 38 - 12
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.xml

@@ -44,22 +44,48 @@
     </select>
 
     <select id="listSixMonthFeed" resultType="com.huimv.guowei.admin.entity.EnvRegularCallFeeding">
-        SELECT IFNUll(ROUND(SUM(f.duck_weight)/1000,1),0) 'duckWeight', f.call_date FROM `env_regular_call_feeding` f
-        LEFT JOIN `base_duck_info` d ON f.duck_id = d.id
-        WHERE f.farm_id = #{farmId} and d.unit_id in ${units}
+        SELECT IFNULL(duckWeight, 0) AS duckWeight, dates.month_date AS call_date
+FROM (
+    SELECT DATE_FORMAT(NOW(), '%Y-%m-01') AS month_date
+    UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m-01')
+    UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 MONTH), '%Y-%m-01')
+    UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01')
+    UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 4 MONTH), '%Y-%m-01')
+    UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 MONTH), '%Y-%m-01')
+) AS dates
+LEFT JOIN (
+    SELECT IFNULL(ROUND(SUM(f.duck_weight) / 1000, 1), 0) AS duckWeight, DATE_FORMAT(f.call_date, "%Y-%m-01") AS month_date
+    FROM env_regular_call_feeding f
+    LEFT JOIN base_duck_info d ON f.duck_id = d.id
+    WHERE f.farm_id = #{farmId} AND d.unit_id IN ${units}
         AND f.call_date &gt;= DATE_SUB(NOW(), INTERVAL 6 MONTH)
-        And f.event_type = 0
-        GROUP BY DATE_FORMAT(f.call_date,"%Y-%m")
+        AND f.event_type = 0
+    GROUP BY DATE_FORMAT(f.call_date, "%Y-%m-01")
+) AS results ON dates.month_date = results.month_date
+ORDER BY dates.month_date;
     </select>
 
     <select id="listSevenDayFeed" resultType="com.huimv.guowei.admin.entity.EnvRegularCallFeeding">
-        SELECT IFNULL(ROUND(SUM(f.duck_weight)/1000,1), 0) AS duckWeight, f.call_date
-        FROM env_regular_call_feeding f
-        LEFT JOIN base_duck_info d ON f.duck_id = d.id
-        WHERE f.farm_id = #{farmId} and d.unit_id in ${units}
-        AND f.call_date &gt;= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
-        And f.event_type = 0
-        GROUP BY DATE_FORMAT(f.call_date,"%Y-%m-%d")
+        SELECT IFNULL(duckWeight, 0) AS duckWeight, dates.date AS call_date
+FROM (
+    SELECT CURDATE() AS date
+    UNION ALL SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY)
+    UNION ALL SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY)
+    UNION ALL SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY)
+    UNION ALL SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY)
+    UNION ALL SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY)
+    UNION ALL SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY)
+) AS dates
+LEFT JOIN (
+    SELECT IFNULL(ROUND(SUM(f.duck_weight) / 1000, 1), 0) AS duckWeight, DATE(f.call_date) AS date
+    FROM env_regular_call_feeding f
+    LEFT JOIN base_duck_info d ON f.duck_id = d.id
+    WHERE f.farm_id = #{farmId} AND d.unit_id IN ${units}
+        AND f.call_date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
+        AND f.event_type = 0
+    GROUP BY DATE(f.call_date)
+) AS results ON dates.date = results.date
+ORDER BY dates.date;
     </select>
 
     <select id="listScreen" resultType="com.huimv.guowei.admin.entity.vo.EnvRegularCallFeedingVo">