diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java
index 2f32dd61..f2137da0 100644
--- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java
+++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java
@@ -449,19 +449,35 @@ public class DcTrafficSurveyDataController extends BaseController
     public AjaxResult selectComprehensiveData(@RequestBody DcTrafficSurveyDataQueryParams dcTrafficSurveyDataQueryParams){
         return dcTrafficSurveyDataService.selectComprehensiveData(dcTrafficSurveyDataQueryParams);
     }
+
+    /**
+     * 导出综合查询
+     */
     @PostMapping("/exportComprehensiveData")
     public void exportComprehensiveData(HttpServletResponse response,@RequestBody DcTrafficSurveyDataQueryParams dcTrafficSurveyDataQueryParams)
     {
         AjaxResult ajaxResult = dcTrafficSurveyDataService.selectComprehensiveData(dcTrafficSurveyDataQueryParams);
         if (ajaxResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) {
             if (dcTrafficSurveyDataQueryParams.getDataType().equals("1")){
-                List<DcTrafficVolumeData> dcTrafficVolumeData = (List<DcTrafficVolumeData>) ajaxResult.get("data");
-                ExcelUtil<DcTrafficVolumeData> util = new ExcelUtil<>(DcTrafficVolumeData.class);
-                util.exportExcel(response, dcTrafficVolumeData, "综合查询");
+                if (dcTrafficSurveyDataQueryParams.getDirection().equals("2")) {
+                    List<DcTrafficVolumeData> dcTrafficVolumeData = (List<DcTrafficVolumeData>) ajaxResult.get("data");
+                    ExcelUtil<DcTrafficVolumeData> util = new ExcelUtil<>(DcTrafficVolumeData.class);
+                    util.exportExcel(response, dcTrafficVolumeData, "综合查询");
+                } else if (dcTrafficSurveyDataQueryParams.getDirection().equals("1")) {
+                    List<DcTrafficVolumeDirectionData> dcTrafficVolumeData = (List<DcTrafficVolumeDirectionData>) ajaxResult.get("data");
+                    ExcelUtil<DcTrafficVolumeDirectionData> util = new ExcelUtil<>(DcTrafficVolumeDirectionData.class);
+                    util.exportExcel(response, dcTrafficVolumeData, "综合查询");
+                }
             } else {
-                List<DcTrafficSpeedData> dcTrafficSpeedData = (List<DcTrafficSpeedData>) ajaxResult.get("data");
-                ExcelUtil<DcTrafficSpeedData> util = new ExcelUtil<>(DcTrafficSpeedData.class);
-                util.exportExcel(response, dcTrafficSpeedData, "综合查询");
+                if (dcTrafficSurveyDataQueryParams.getDirection().equals("2")) {
+                    List<DcTrafficSpeedData> dcTrafficSpeedData = (List<DcTrafficSpeedData>) ajaxResult.get("data");
+                    ExcelUtil<DcTrafficSpeedData> util = new ExcelUtil<>(DcTrafficSpeedData.class);
+                    util.exportExcel(response, dcTrafficSpeedData, "综合查询");
+                } else if (dcTrafficSurveyDataQueryParams.getDirection().equals("1")) {
+                    List<DcTrafficSpeedDirectionData> dcTrafficSpeedData = (List<DcTrafficSpeedDirectionData>) ajaxResult.get("data");
+                    ExcelUtil<DcTrafficSpeedDirectionData> util = new ExcelUtil<>(DcTrafficSpeedDirectionData.class);
+                    util.exportExcel(response, dcTrafficSpeedData, "综合查询");
+                }
             }
         }
     }
diff --git a/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml b/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml
index 1cf7a673..58cfa08b 100644
--- a/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml
+++ b/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml
@@ -107,9 +107,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectSpeed" resultType="com.zc.business.domain.DcTrafficSpeedData">
         select *,
-            round((t1.inAndSmallAverageVehicleSpeed + t1.averageSpeedOfBus + t1.smallTrucksAverageVehicleSpeed +
-            t1.averageSpeedOfMediumSizeTrucks + t1.averageSpeedOfLargeTrucks + t1.averageSpeedOfExtraLargeTrucks +
-            t1.averageSpeedOfContainerTruck + t1.averageSpeedOfMotorcycle + t1.averageSpeedOfTractor) / 9, 0) avgSpeed
+            ROUND(
+                (
+                    t1.inAndSmallAverageVehicleSpeed +
+                    t1.averageSpeedOfBus +
+                    t1.smallTrucksAverageVehicleSpeed +
+                    t1.averageSpeedOfMediumSizeTrucks +
+                    t1.averageSpeedOfLargeTrucks +
+                    t1.averageSpeedOfExtraLargeTrucks +
+                    t1.averageSpeedOfContainerTruck +
+                    t1.averageSpeedOfMotorcycle +
+                    t1.averageSpeedOfTractor
+                ) /
+                NULLIF(
+                    CASE WHEN t1.inAndSmallAverageVehicleSpeed = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfBus = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.smallTrucksAverageVehicleSpeed = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfMediumSizeTrucks = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfLargeTrucks = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfExtraLargeTrucks = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfContainerTruck = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfMotorcycle = 0 THEN 0 ELSE 1 END +
+                    CASE WHEN t1.averageSpeedOfTractor = 0 THEN 0 ELSE 1 END,
+                    0
+                )
+            ,0) AS avgSpeed
         from
             (select direction,
                 <choose>
@@ -123,15 +145,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                         date_format(`timestamp`, '%Y-%m')
                     </when>
                 </choose> time,
-                round(avg(in_and_small_average_vehicle_speed),0) inAndSmallAverageVehicleSpeed,
-                round(avg(average_speed_of_bus),0) averageSpeedOfBus,
-                round(avg(small_trucks_average_vehicle_speed),0) smallTrucksAverageVehicleSpeed,
-                round(avg(average_speed_of_medium_size_trucks),0) averageSpeedOfMediumSizeTrucks,
-                round(avg(average_speed_of_large_trucks),0) averageSpeedOfLargeTrucks,
-                round(avg(average_speed_of_extra_large_trucks),0) averageSpeedOfExtraLargeTrucks,
-                round(avg(average_speed_of_container_truck),0) averageSpeedOfContainerTruck,
-                round(avg(average_speed_of_motorcycle),0) averageSpeedOfMotorcycle,
-                round(avg(average_speed_of_tractor),0) averageSpeedOfTractor
+                ROUND(IFNULL(AVG(NULLIF(in_and_small_average_vehicle_speed, 0)),0), 0) AS inAndSmallAverageVehicleSpeed,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_bus, 0)),0), 0) AS averageSpeedOfBus,
+                ROUND(IFNULL(AVG(NULLIF(small_trucks_average_vehicle_speed, 0)),0), 0) AS smallTrucksAverageVehicleSpeed,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_medium_size_trucks, 0)),0), 0) AS averageSpeedOfMediumSizeTrucks,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_large_trucks, 0)),0), 0) AS averageSpeedOfLargeTrucks,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_extra_large_trucks, 0)),0), 0) AS averageSpeedOfExtraLargeTrucks,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_container_truck, 0)),0), 0) AS averageSpeedOfContainerTruck,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_motorcycle, 0)),0), 0) AS averageSpeedOfMotorcycle,
+                ROUND(IFNULL(AVG(NULLIF(average_speed_of_tractor, 0)),0), 0) AS averageSpeedOfTractor
             FROM `dc_traffic_survey_data`
             <where>
                 <if test="iotDeviceId != null and iotDeviceId != ''">