From a8b6add14f4a93e14c70ac23bab00a4b918d4dfd Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期四, 09 十月 2025 11:11:23 +0800
Subject: [PATCH] 新增每日车辆数据前后端
---
ui/admin-ui3/src/views/cwgl/data/index.vue | 234 ++++++++++
service/src/main/java/com/ruoyi/cwgl/domain/VehicleDailyData.java | 283 ++++++++++++
service/src/main/java/com/ruoyi/cwgl/controller/VehicleDailyDataController.java | 108 ++++
service/src/main/java/com/ruoyi/cwgl/service/IVehicleDailyDataService.java | 102 ++++
service/src/main/java/com/ruoyi/cwgl/mapper/VehicleDailyDataMapper.java | 87 +++
service/src/main/java/com/ruoyi/cwgl/service/impl/VehicleDailyDataServiceImpl.java | 182 +++++++
service/src/main/resources/mapper/cwgl/VehicleDailyDataMapper.xml | 312 +++++++++++++
ui/admin-ui3/src/api/cwgl/data.ts | 67 ++
8 files changed, 1,375 insertions(+), 0 deletions(-)
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/VehicleDailyDataController.java b/service/src/main/java/com/ruoyi/cwgl/controller/VehicleDailyDataController.java
new file mode 100644
index 0000000..2384366
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/VehicleDailyDataController.java
@@ -0,0 +1,108 @@
+package com.ruoyi.cwgl.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.cwgl.domain.VehicleDailyData;
+import com.ruoyi.cwgl.service.IVehicleDailyDataService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 杞﹁締姣忔棩鏁版嵁Controller
+ *
+ * @author ruoyi
+ * @date 2025-10-09
+ */
+@RestController
+@RequestMapping("/cwgl/data")
+public class VehicleDailyDataController extends BaseController
+{
+ @Autowired
+ private IVehicleDailyDataService vehicleDailyDataService;
+
+
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:data:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(VehicleDailyData vehicleDailyData)
+ {
+ startPage();
+ List<VehicleDailyData> list = vehicleDailyDataService.selectVehicleDailyDataList(vehicleDailyData);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭杞﹁締姣忔棩鏁版嵁鍒楄〃
+ * @param vehicleDailyData 鏌ヨ鏉′欢瀵硅薄
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:data:export')")
+ @Log(title = "杞﹁締姣忔棩鏁版嵁", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ public AjaxResult export(VehicleDailyData vehicleDailyData,String exportKey)
+ {
+ vehicleDailyDataService.export(vehicleDailyData,exportKey);
+ return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
+ }
+
+
+
+ /**
+ * 鑾峰彇杞﹁締姣忔棩鏁版嵁璇︾粏淇℃伅
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:data:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Integer id)
+ {
+ return AjaxResult.success(vehicleDailyDataService.selectVehicleDailyDataById(id));
+ }
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:data:add')")
+ @Log(title = "杞﹁締姣忔棩鏁版嵁", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody VehicleDailyData vehicleDailyData)
+ {
+ return toAjax(vehicleDailyDataService.insertVehicleDailyData(vehicleDailyData));
+ }
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:data:edit')")
+ @Log(title = "杞﹁締姣忔棩鏁版嵁", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody VehicleDailyData vehicleDailyData)
+ {
+ return toAjax(vehicleDailyDataService.updateVehicleDailyData(vehicleDailyData));
+ }
+
+ /**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:data:remove')")
+ @Log(title = "杞﹁締姣忔棩鏁版嵁", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Integer[] ids)
+ {
+ return toAjax(vehicleDailyDataService.deleteVehicleDailyDataByIds(ids));
+ }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/VehicleDailyData.java b/service/src/main/java/com/ruoyi/cwgl/domain/VehicleDailyData.java
new file mode 100644
index 0000000..4766713
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/VehicleDailyData.java
@@ -0,0 +1,283 @@
+package com.ruoyi.cwgl.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import lombok.Data;
+/**
+ * 杞﹁締姣忔棩鏁版嵁瀵硅薄 vehicle_daily_data
+ *
+ * @author ruoyi
+ * @date 2025-10-09
+ */
+@Data
+public class VehicleDailyData{
+
+
+ /** 涓婚敭ID */
+ @TableField("id")
+ private Integer id;
+
+
+ /** 杞︽灦鍙� */
+ @Excel(name = "杞︽灦鍙�")
+
+ @TableField("vin")
+ private String vin;
+
+
+ /** 搴曠洏绫诲瀷 */
+ @Excel(name = "搴曠洏绫诲瀷")
+
+ @TableField("chassis_type")
+ private String chassisType;
+
+
+ /** 鏁版嵁鏃ユ湡 */
+ @Excel(name = "鏁版嵁鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss HH:mm:ss")
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss HH:mm:ss")
+ @TableField("event_date")
+ private Date eventDate;
+
+
+ /** 琛岄┒閲岀▼ */
+ @Excel(name = "琛岄┒閲岀▼")
+
+ @TableField("distance")
+ private BigDecimal distance;
+
+
+ /** 鐢ㄨ溅鏃堕暱 */
+ @Excel(name = "鐢ㄨ溅鏃堕暱")
+
+ @TableField("duration")
+ private BigDecimal duration;
+
+
+ /** 鐔勭伀鍋滆溅鏃堕暱 */
+ @Excel(name = "鐔勭伀鍋滆溅鏃堕暱")
+
+ @TableField("shutdown_duration")
+ private BigDecimal shutdownDuration;
+
+
+ /** 琛岄┒鏃堕暱 */
+ @Excel(name = "琛岄┒鏃堕暱")
+
+ @TableField("driving_duration")
+ private BigDecimal drivingDuration;
+
+
+ /** 琛岄┒鏃堕暱鍗犳瘮 */
+ @Excel(name = "琛岄┒鏃堕暱鍗犳瘮")
+
+ @TableField("driving_duration_ratio")
+ private BigDecimal drivingDurationRatio;
+
+
+ /** 鎬犻�熸椂闀垮崰姣� */
+ @Excel(name = "鎬犻�熸椂闀垮崰姣�")
+
+ @TableField("idle_duration_ratio")
+ private BigDecimal idleDurationRatio;
+
+
+ /** 鎬犻�熸椂闀� */
+ @Excel(name = "鎬犻�熸椂闀�")
+
+ @TableField("idle_duration")
+ private BigDecimal idleDuration;
+
+
+ /** 婊戣璺濈鍗犳瘮 */
+ @Excel(name = "婊戣璺濈鍗犳瘮")
+
+ @TableField("coasting_distance_ratio")
+ private BigDecimal coastingDistanceRatio;
+
+
+ /** 婊戣璺濈 */
+ @Excel(name = "婊戣璺濈")
+
+ @TableField("coasting_distance")
+ private BigDecimal coastingDistance;
+
+
+ /** 宸¤埅璺濈鍗犳瘮 */
+ @Excel(name = "宸¤埅璺濈鍗犳瘮")
+
+ @TableField("cruising_distance_ratio")
+ private BigDecimal cruisingDistanceRatio;
+
+
+ /** 宸¤埅璺濈 */
+ @Excel(name = "宸¤埅璺濈")
+
+ @TableField("cruising_distance")
+ private BigDecimal cruisingDistance;
+
+
+ /** 骞冲潎閫熷害 */
+ @Excel(name = "骞冲潎閫熷害")
+
+ @TableField("avg_speed")
+ private BigDecimal avgSpeed;
+
+
+ /** 骞冲潎琛岃溅閫熷害 */
+ @Excel(name = "骞冲潎琛岃溅閫熷害")
+
+ @TableField("avg_driving_speed")
+ private BigDecimal avgDrivingSpeed;
+
+
+ /** 鍙戝姩鏈哄钩鍧囪浆閫� */
+ @Excel(name = "鍙戝姩鏈哄钩鍧囪浆閫�")
+
+ @TableField("avg_engine_speed")
+ private BigDecimal avgEngineSpeed;
+
+
+ /** 缁忔祹杞�熸椂闀垮崰姣� */
+ @Excel(name = "缁忔祹杞�熸椂闀垮崰姣�")
+
+ @TableField("economic_engine_speed_duration_ratio")
+ private BigDecimal economicEngineSpeedDurationRatio;
+
+
+ /** 缁忔祹杞�熸椂闀� */
+ @Excel(name = "缁忔祹杞�熸椂闀�")
+
+ @TableField("economic_engine_speed_duration")
+ private BigDecimal economicEngineSpeedDuration;
+
+
+ /** 鐧惧叕閲岃兘鑰� */
+ @Excel(name = "鐧惧叕閲岃兘鑰�")
+
+ @TableField("avg_energy_consumption")
+ private BigDecimal avgEnergyConsumption;
+
+
+ /** 鑰楁补閲� */
+ @Excel(name = "鑰楁补閲�")
+
+ @TableField("energy_consumption")
+ private BigDecimal energyConsumption;
+
+
+ /** 琛岄┒鑰楁补閲� */
+ @Excel(name = "琛岄┒鑰楁补閲�")
+
+ @TableField("driving_energy_consumption")
+ private BigDecimal drivingEnergyConsumption;
+
+
+ /** 琛岄┒鑰楁补閲忓崰姣� */
+ @Excel(name = "琛岄┒鑰楁补閲忓崰姣�")
+
+ @TableField("driving_energy_consumption_ratio")
+ private BigDecimal drivingEnergyConsumptionRatio;
+
+
+ /** 鎬犻�熻�楁补閲忓崰姣� */
+ @Excel(name = "鎬犻�熻�楁补閲忓崰姣�")
+
+ @TableField("idle_energy_consumption_ratio")
+ private BigDecimal idleEnergyConsumptionRatio;
+
+
+ /** 鎬犻�熻�楁补閲� */
+ @Excel(name = "鎬犻�熻�楁补閲�")
+
+ @TableField("idle_energy_consumption")
+ private BigDecimal idleEnergyConsumption;
+
+
+ /** 鐧惧叕閲屽翱绱犳秷鑰� */
+ @Excel(name = "鐧惧叕閲屽翱绱犳秷鑰�")
+
+ @TableField("avg_adblue_consumption")
+ private BigDecimal avgAdblueConsumption;
+
+
+ /** 灏跨礌娑堣�� */
+ @Excel(name = "灏跨礌娑堣��")
+
+ @TableField("adblue_consumption")
+ private BigDecimal adblueConsumption;
+
+
+ /** 骞冲潎鏁磋溅璐ㄩ噺 */
+ @Excel(name = "骞冲潎鏁磋溅璐ㄩ噺")
+
+ @TableField("avg_gross_weight")
+ private BigDecimal avgGrossWeight;
+
+
+ /** 鍒硅溅娆℃暟 */
+ @Excel(name = "鍒硅溅娆℃暟")
+
+ @TableField("brake_times")
+ private Integer brakeTimes;
+
+
+ /** 鎬ュ埞杞︽鏁� */
+ @Excel(name = "鎬ュ埞杞︽鏁�")
+
+ @TableField("harsh_brake_times")
+ private Integer harshBrakeTimes;
+
+
+ /** 鎬ュ姞閫熸鏁� */
+ @Excel(name = "鎬ュ姞閫熸鏁�")
+
+ @TableField("acceleration_times")
+ private Integer accelerationTimes;
+
+
+ /** 鐧惧叕閲屽埞杞︽鏁� */
+ @Excel(name = "鐧惧叕閲屽埞杞︽鏁�")
+
+ @TableField("avg_brake_times")
+ private Integer avgBrakeTimes;
+
+
+ /** 鐧惧叕閲屾�ュ埞杞︽鏁� */
+ @Excel(name = "鐧惧叕閲屾�ュ埞杞︽鏁�")
+
+ @TableField("avg_harsh_brake_times")
+ private Integer avgHarshBrakeTimes;
+
+
+ /** 鐧惧叕閲屾�ュ姞閫熸鏁� */
+ @Excel(name = "鐧惧叕閲屾�ュ姞閫熸鏁�")
+
+ @TableField("avg_acceleration_times")
+ private Integer avgAccelerationTimes;
+
+
+ /** 閲岀▼琛ㄩ噷绋� */
+ @Excel(name = "閲岀▼琛ㄩ噷绋�")
+
+ @TableField("odometer")
+ private BigDecimal odometer;
+
+
+ /** 鍒涘缓鏃堕棿 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss HH:mm:ss")
+ @TableField("create_time")
+ private Date createTime;
+
+
+ /** 鏇存柊鏃堕棿 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss HH:mm:ss")
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/VehicleDailyDataMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/VehicleDailyDataMapper.java
new file mode 100644
index 0000000..5f570bd
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/VehicleDailyDataMapper.java
@@ -0,0 +1,87 @@
+package com.ruoyi.cwgl.mapper;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.VehicleDailyData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * 杞﹁締姣忔棩鏁版嵁Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2025-10-09
+ */
+public interface VehicleDailyDataMapper extends BaseMapper<VehicleDailyData>
+{
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁
+ *
+ * @param id 杞﹁締姣忔棩鏁版嵁ID
+ * @return 杞﹁締姣忔棩鏁版嵁
+ */
+ public VehicleDailyData selectVehicleDailyDataById(Integer id);
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁 璁板綍鏁�
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ public int selectVehicleDailyDataCount(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ public List<VehicleDailyData> selectVehicleDailyDataList(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int insertVehicleDailyData(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁[鎵归噺]
+ *
+ * @param vehicleDailyDatas 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int insertVehicleDailyDataBatch(List<VehicleDailyData> vehicleDailyDatas);
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int updateVehicleDailyData(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁[鎵归噺]
+ *
+ * @param vehicleDailyDatas 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int updateVehicleDailyDataBatch(List<VehicleDailyData> vehicleDailyDatas);
+
+ /**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁
+ *
+ * @param id 杞﹁締姣忔棩鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteVehicleDailyDataById(Integer id);
+
+ /**
+ * 鎵归噺鍒犻櫎杞﹁締姣忔棩鏁版嵁
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteVehicleDailyDataByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IVehicleDailyDataService.java b/service/src/main/java/com/ruoyi/cwgl/service/IVehicleDailyDataService.java
new file mode 100644
index 0000000..c2efe21
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IVehicleDailyDataService.java
@@ -0,0 +1,102 @@
+package com.ruoyi.cwgl.service;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.VehicleDailyData;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 杞﹁締姣忔棩鏁版嵁Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2025-10-09
+ */
+public interface IVehicleDailyDataService extends IService<VehicleDailyData>
+{
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁
+ *
+ * @param id 杞﹁締姣忔棩鏁版嵁ID
+ * @return 杞﹁締姣忔棩鏁版嵁
+ */
+ public VehicleDailyData selectVehicleDailyDataById(Integer id);
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁 璁板綍鏁�
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ public int selectVehicleDailyDataCount(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ public List<VehicleDailyData> selectVehicleDailyDataList(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃 寮傛 瀵煎嚭
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ public void export(VehicleDailyData vehicleDailyData, String exportKey) ;
+
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int insertVehicleDailyData(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁[鎵归噺]
+ *
+ * @param vehicleDailyDatas 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int insertVehicleDailyDataBatch(List<VehicleDailyData> vehicleDailyDatas);
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int updateVehicleDailyData(VehicleDailyData vehicleDailyData);
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁[鎵归噺]
+ *
+ * @param vehicleDailyDatas 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ public int updateVehicleDailyDataBatch(List<VehicleDailyData> vehicleDailyDatas);
+ /**
+ * 鎵归噺鍒犻櫎杞﹁締姣忔棩鏁版嵁
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteVehicleDailyDataByIds(String ids);
+
+ /**
+ * 鎵归噺鍒犻櫎杞﹁締姣忔棩鏁版嵁
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteVehicleDailyDataByIds(Integer[] ids);
+
+ /**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁淇℃伅
+ *
+ * @param id 杞﹁締姣忔棩鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteVehicleDailyDataById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/VehicleDailyDataServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/VehicleDailyDataServiceImpl.java
new file mode 100644
index 0000000..9b14ff1
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/VehicleDailyDataServiceImpl.java
@@ -0,0 +1,182 @@
+package com.ruoyi.cwgl.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+import org.springframework.scheduling.annotation.Async;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.core.service.BaseService;
+
+import com.ruoyi.cwgl.mapper.VehicleDailyDataMapper;
+import com.ruoyi.cwgl.domain.VehicleDailyData;
+import com.ruoyi.cwgl.service.IVehicleDailyDataService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 杞﹁締姣忔棩鏁版嵁Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-10-09
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class VehicleDailyDataServiceImpl extends BaseService<VehicleDailyDataMapper, VehicleDailyData> implements IVehicleDailyDataService
+{
+ protected final Logger logger = LoggerFactory.getLogger(getClass());
+ @Resource
+ private VehicleDailyDataMapper vehicleDailyDataMapper;
+
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁
+ *
+ * @param id 杞﹁締姣忔棩鏁版嵁ID
+ * @return 杞﹁締姣忔棩鏁版嵁
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public VehicleDailyData selectVehicleDailyDataById(Integer id)
+ {
+ return vehicleDailyDataMapper.selectVehicleDailyDataById(id);
+ }
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁 璁板綍鏁�
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public int selectVehicleDailyDataCount(VehicleDailyData vehicleDailyData)
+ {
+ return vehicleDailyDataMapper.selectVehicleDailyDataCount(vehicleDailyData);
+ }
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 杞﹁締姣忔棩鏁版嵁
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public List<VehicleDailyData> selectVehicleDailyDataList(VehicleDailyData vehicleDailyData)
+ {
+ return vehicleDailyDataMapper.selectVehicleDailyDataList(vehicleDailyData);
+ }
+
+ /**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃 寮傛 瀵煎嚭
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+ * @return 杞﹁締姣忔棩鏁版嵁闆嗗悎
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Async
+ @Override
+ public void export(VehicleDailyData vehicleDailyData,String exportKey) {
+
+ super.export(VehicleDailyData.class,exportKey,"vehicleDailyDataData",(pageNum)->{
+ PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+ return selectVehicleDailyDataList(vehicleDailyData);
+ });
+ }
+
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertVehicleDailyData(VehicleDailyData vehicleDailyData)
+ {
+ vehicleDailyData.setCreateTime(DateUtils.getNowDate());
+ return vehicleDailyDataMapper.insertVehicleDailyData(vehicleDailyData);
+ }
+
+ /**
+ * 鏂板杞﹁締姣忔棩鏁版嵁[鎵归噺]
+ *
+ * @param vehicleDailyDatas 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertVehicleDailyDataBatch(List<VehicleDailyData> vehicleDailyDatas)
+ {
+ int rows = vehicleDailyDataMapper.insertVehicleDailyDataBatch(vehicleDailyDatas);
+ return rows;
+ }
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁
+ *
+ * @param vehicleDailyData 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateVehicleDailyData(VehicleDailyData vehicleDailyData)
+ {
+ vehicleDailyData.setUpdateTime(DateUtils.getNowDate());
+ return vehicleDailyDataMapper.updateVehicleDailyData(vehicleDailyData);
+ }
+
+ /**
+ * 淇敼杞﹁締姣忔棩鏁版嵁[鎵归噺]
+ *
+ * @param vehicleDailyDatas 杞﹁締姣忔棩鏁版嵁
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateVehicleDailyDataBatch(List<VehicleDailyData> vehicleDailyDatas){
+ return vehicleDailyDataMapper.updateVehicleDailyDataBatch(vehicleDailyDatas);
+ }
+
+ /**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁瀵硅薄
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteVehicleDailyDataByIds(String ids)
+ {
+ return deleteVehicleDailyDataByIds(Convert.toIntArray(ids));
+ }
+
+ /**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁瀵硅薄
+ *
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteVehicleDailyDataByIds(Integer[] ids)
+ {
+ return vehicleDailyDataMapper.deleteVehicleDailyDataByIds(ids);
+ }
+
+ /**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁淇℃伅
+ *
+ * @param id 杞﹁締姣忔棩鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteVehicleDailyDataById(Integer id)
+ {
+ return vehicleDailyDataMapper.deleteVehicleDailyDataById(id);
+ }
+}
diff --git a/service/src/main/resources/mapper/cwgl/VehicleDailyDataMapper.xml b/service/src/main/resources/mapper/cwgl/VehicleDailyDataMapper.xml
new file mode 100644
index 0000000..627ee4d
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/VehicleDailyDataMapper.xml
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.cwgl.mapper.VehicleDailyDataMapper">
+
+ <resultMap type="com.ruoyi.cwgl.domain.VehicleDailyData" id="VehicleDailyDataResult">
+ <result property="id" column="id" />
+ <result property="vin" column="vin" />
+ <result property="chassisType" column="chassis_type" />
+ <result property="eventDate" column="event_date" />
+ <result property="distance" column="distance" />
+ <result property="duration" column="duration" />
+ <result property="shutdownDuration" column="shutdown_duration" />
+ <result property="drivingDuration" column="driving_duration" />
+ <result property="drivingDurationRatio" column="driving_duration_ratio" />
+ <result property="idleDurationRatio" column="idle_duration_ratio" />
+ <result property="idleDuration" column="idle_duration" />
+ <result property="coastingDistanceRatio" column="coasting_distance_ratio" />
+ <result property="coastingDistance" column="coasting_distance" />
+ <result property="cruisingDistanceRatio" column="cruising_distance_ratio" />
+ <result property="cruisingDistance" column="cruising_distance" />
+ <result property="avgSpeed" column="avg_speed" />
+ <result property="avgDrivingSpeed" column="avg_driving_speed" />
+ <result property="avgEngineSpeed" column="avg_engine_speed" />
+ <result property="economicEngineSpeedDurationRatio" column="economic_engine_speed_duration_ratio" />
+ <result property="economicEngineSpeedDuration" column="economic_engine_speed_duration" />
+ <result property="avgEnergyConsumption" column="avg_energy_consumption" />
+ <result property="energyConsumption" column="energy_consumption" />
+ <result property="drivingEnergyConsumption" column="driving_energy_consumption" />
+ <result property="drivingEnergyConsumptionRatio" column="driving_energy_consumption_ratio" />
+ <result property="idleEnergyConsumptionRatio" column="idle_energy_consumption_ratio" />
+ <result property="idleEnergyConsumption" column="idle_energy_consumption" />
+ <result property="avgAdblueConsumption" column="avg_adblue_consumption" />
+ <result property="adblueConsumption" column="adblue_consumption" />
+ <result property="avgGrossWeight" column="avg_gross_weight" />
+ <result property="brakeTimes" column="brake_times" />
+ <result property="harshBrakeTimes" column="harsh_brake_times" />
+ <result property="accelerationTimes" column="acceleration_times" />
+ <result property="avgBrakeTimes" column="avg_brake_times" />
+ <result property="avgHarshBrakeTimes" column="avg_harsh_brake_times" />
+ <result property="avgAccelerationTimes" column="avg_acceleration_times" />
+ <result property="odometer" column="odometer" />
+ <result property="createTime" column="create_time" />
+ <result property="updateTime" column="update_time" />
+ </resultMap>
+
+ <sql id="selectVehicleDailyDataVo">
+ select thisTab.id, thisTab.vin, thisTab.chassis_type, thisTab.event_date, thisTab.distance, thisTab.duration, thisTab.shutdown_duration, thisTab.driving_duration, thisTab.driving_duration_ratio, thisTab.idle_duration_ratio, thisTab.idle_duration, thisTab.coasting_distance_ratio, thisTab.coasting_distance, thisTab.cruising_distance_ratio, thisTab.cruising_distance, thisTab.avg_speed, thisTab.avg_driving_speed, thisTab.avg_engine_speed, thisTab.economic_engine_speed_duration_ratio, thisTab.economic_engine_speed_duration, thisTab.avg_energy_consumption, thisTab.energy_consumption, thisTab.driving_energy_consumption, thisTab.driving_energy_consumption_ratio, thisTab.idle_energy_consumption_ratio, thisTab.idle_energy_consumption, thisTab.avg_adblue_consumption, thisTab.adblue_consumption, thisTab.avg_gross_weight, thisTab.brake_times, thisTab.harsh_brake_times, thisTab.acceleration_times, thisTab.avg_brake_times, thisTab.avg_harsh_brake_times, thisTab.avg_acceleration_times, thisTab.odometer, thisTab.create_time, thisTab.update_time from vehicle_daily_data AS thisTab
+ </sql>
+ <sql id="selectVehicleDailyDataVoCount">
+ select count(0) from vehicle_daily_data as thisTab
+ </sql>
+
+ <sql id="whereCondition">
+ <if test="vin != null and vin != ''"> and thisTab.vin = #{vin}</if>
+ <if test="chassisType != null and chassisType != ''"> and thisTab.chassis_type = #{chassisType}</if>
+ <if test="eventDate != null "> and thisTab.event_date = #{eventDate}</if>
+ <if test="distance != null "> and thisTab.distance = #{distance}</if>
+ <if test="duration != null "> and thisTab.duration = #{duration}</if>
+ <if test="shutdownDuration != null "> and thisTab.shutdown_duration = #{shutdownDuration}</if>
+ <if test="drivingDuration != null "> and thisTab.driving_duration = #{drivingDuration}</if>
+ <if test="drivingDurationRatio != null "> and thisTab.driving_duration_ratio = #{drivingDurationRatio}</if>
+ <if test="idleDurationRatio != null "> and thisTab.idle_duration_ratio = #{idleDurationRatio}</if>
+ <if test="idleDuration != null "> and thisTab.idle_duration = #{idleDuration}</if>
+ <if test="coastingDistanceRatio != null "> and thisTab.coasting_distance_ratio = #{coastingDistanceRatio}</if>
+ <if test="coastingDistance != null "> and thisTab.coasting_distance = #{coastingDistance}</if>
+ <if test="cruisingDistanceRatio != null "> and thisTab.cruising_distance_ratio = #{cruisingDistanceRatio}</if>
+ <if test="cruisingDistance != null "> and thisTab.cruising_distance = #{cruisingDistance}</if>
+ <if test="avgSpeed != null "> and thisTab.avg_speed = #{avgSpeed}</if>
+ <if test="avgDrivingSpeed != null "> and thisTab.avg_driving_speed = #{avgDrivingSpeed}</if>
+ <if test="avgEngineSpeed != null "> and thisTab.avg_engine_speed = #{avgEngineSpeed}</if>
+ <if test="economicEngineSpeedDurationRatio != null "> and thisTab.economic_engine_speed_duration_ratio = #{economicEngineSpeedDurationRatio}</if>
+ <if test="economicEngineSpeedDuration != null "> and thisTab.economic_engine_speed_duration = #{economicEngineSpeedDuration}</if>
+ <if test="avgEnergyConsumption != null "> and thisTab.avg_energy_consumption = #{avgEnergyConsumption}</if>
+ <if test="energyConsumption != null "> and thisTab.energy_consumption = #{energyConsumption}</if>
+ <if test="drivingEnergyConsumption != null "> and thisTab.driving_energy_consumption = #{drivingEnergyConsumption}</if>
+ <if test="drivingEnergyConsumptionRatio != null "> and thisTab.driving_energy_consumption_ratio = #{drivingEnergyConsumptionRatio}</if>
+ <if test="idleEnergyConsumptionRatio != null "> and thisTab.idle_energy_consumption_ratio = #{idleEnergyConsumptionRatio}</if>
+ <if test="idleEnergyConsumption != null "> and thisTab.idle_energy_consumption = #{idleEnergyConsumption}</if>
+ <if test="avgAdblueConsumption != null "> and thisTab.avg_adblue_consumption = #{avgAdblueConsumption}</if>
+ <if test="adblueConsumption != null "> and thisTab.adblue_consumption = #{adblueConsumption}</if>
+ <if test="avgGrossWeight != null "> and thisTab.avg_gross_weight = #{avgGrossWeight}</if>
+ <if test="brakeTimes != null "> and thisTab.brake_times = #{brakeTimes}</if>
+ <if test="harshBrakeTimes != null "> and thisTab.harsh_brake_times = #{harshBrakeTimes}</if>
+ <if test="accelerationTimes != null "> and thisTab.acceleration_times = #{accelerationTimes}</if>
+ <if test="avgBrakeTimes != null "> and thisTab.avg_brake_times = #{avgBrakeTimes}</if>
+ <if test="avgHarshBrakeTimes != null "> and thisTab.avg_harsh_brake_times = #{avgHarshBrakeTimes}</if>
+ <if test="avgAccelerationTimes != null "> and thisTab.avg_acceleration_times = #{avgAccelerationTimes}</if>
+ <if test="odometer != null "> and thisTab.odometer = #{odometer}</if>
+ <if test="createTimeBegin != null and createTimeBegin != '' and createTimeEnd != null and createTimeEnd != ''"> and thisTab.create_time between #{createTimeBegin} and #{createTimeEnd}</if>
+ </sql>
+
+ <!--鏌ヨ-->
+ <select id="selectVehicleDailyDataById" parameterType="Integer" resultMap="VehicleDailyDataResult">
+ <include refid="selectVehicleDailyDataVo"/>
+ where id = #{id}
+ </select>
+
+ <select id="selectVehicleDailyDataCount" parameterType="com.ruoyi.cwgl.domain.VehicleDailyData" resultType="int">
+ <include refid="selectVehicleDailyDataVoCount"/>
+ <where>
+ <include refid="whereCondition"/>
+ </where>
+ </select>
+
+ <select id="selectVehicleDailyDataList" parameterType="com.ruoyi.cwgl.domain.VehicleDailyData" resultMap="VehicleDailyDataResult">
+ <include refid="selectVehicleDailyDataVo"/>
+ <where>
+ <include refid="whereCondition"/>
+ </where>
+ order by thisTab.id desc
+ </select>
+
+ <!-- 鏂板 -->
+ <insert id="insertVehicleDailyData" parameterType="com.ruoyi.cwgl.domain.VehicleDailyData" useGeneratedKeys="true" keyProperty="id">
+ insert into vehicle_daily_data
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="vin != null and vin != ''">vin,</if>
+ <if test="chassisType != null">chassis_type,</if>
+ <if test="eventDate != null">event_date,</if>
+ <if test="distance != null">distance,</if>
+ <if test="duration != null">duration,</if>
+ <if test="shutdownDuration != null">shutdown_duration,</if>
+ <if test="drivingDuration != null">driving_duration,</if>
+ <if test="drivingDurationRatio != null">driving_duration_ratio,</if>
+ <if test="idleDurationRatio != null">idle_duration_ratio,</if>
+ <if test="idleDuration != null">idle_duration,</if>
+ <if test="coastingDistanceRatio != null">coasting_distance_ratio,</if>
+ <if test="coastingDistance != null">coasting_distance,</if>
+ <if test="cruisingDistanceRatio != null">cruising_distance_ratio,</if>
+ <if test="cruisingDistance != null">cruising_distance,</if>
+ <if test="avgSpeed != null">avg_speed,</if>
+ <if test="avgDrivingSpeed != null">avg_driving_speed,</if>
+ <if test="avgEngineSpeed != null">avg_engine_speed,</if>
+ <if test="economicEngineSpeedDurationRatio != null">economic_engine_speed_duration_ratio,</if>
+ <if test="economicEngineSpeedDuration != null">economic_engine_speed_duration,</if>
+ <if test="avgEnergyConsumption != null">avg_energy_consumption,</if>
+ <if test="energyConsumption != null">energy_consumption,</if>
+ <if test="drivingEnergyConsumption != null">driving_energy_consumption,</if>
+ <if test="drivingEnergyConsumptionRatio != null">driving_energy_consumption_ratio,</if>
+ <if test="idleEnergyConsumptionRatio != null">idle_energy_consumption_ratio,</if>
+ <if test="idleEnergyConsumption != null">idle_energy_consumption,</if>
+ <if test="avgAdblueConsumption != null">avg_adblue_consumption,</if>
+ <if test="adblueConsumption != null">adblue_consumption,</if>
+ <if test="avgGrossWeight != null">avg_gross_weight,</if>
+ <if test="brakeTimes != null">brake_times,</if>
+ <if test="harshBrakeTimes != null">harsh_brake_times,</if>
+ <if test="accelerationTimes != null">acceleration_times,</if>
+ <if test="avgBrakeTimes != null">avg_brake_times,</if>
+ <if test="avgHarshBrakeTimes != null">avg_harsh_brake_times,</if>
+ <if test="avgAccelerationTimes != null">avg_acceleration_times,</if>
+ <if test="odometer != null">odometer,</if>
+ <if test="createTime != null">create_time,</if>
+ <if test="updateTime != null">update_time,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="vin != null and vin != ''">#{vin},</if>
+ <if test="chassisType != null">#{chassisType},</if>
+ <if test="eventDate != null">#{eventDate},</if>
+ <if test="distance != null">#{distance},</if>
+ <if test="duration != null">#{duration},</if>
+ <if test="shutdownDuration != null">#{shutdownDuration},</if>
+ <if test="drivingDuration != null">#{drivingDuration},</if>
+ <if test="drivingDurationRatio != null">#{drivingDurationRatio},</if>
+ <if test="idleDurationRatio != null">#{idleDurationRatio},</if>
+ <if test="idleDuration != null">#{idleDuration},</if>
+ <if test="coastingDistanceRatio != null">#{coastingDistanceRatio},</if>
+ <if test="coastingDistance != null">#{coastingDistance},</if>
+ <if test="cruisingDistanceRatio != null">#{cruisingDistanceRatio},</if>
+ <if test="cruisingDistance != null">#{cruisingDistance},</if>
+ <if test="avgSpeed != null">#{avgSpeed},</if>
+ <if test="avgDrivingSpeed != null">#{avgDrivingSpeed},</if>
+ <if test="avgEngineSpeed != null">#{avgEngineSpeed},</if>
+ <if test="economicEngineSpeedDurationRatio != null">#{economicEngineSpeedDurationRatio},</if>
+ <if test="economicEngineSpeedDuration != null">#{economicEngineSpeedDuration},</if>
+ <if test="avgEnergyConsumption != null">#{avgEnergyConsumption},</if>
+ <if test="energyConsumption != null">#{energyConsumption},</if>
+ <if test="drivingEnergyConsumption != null">#{drivingEnergyConsumption},</if>
+ <if test="drivingEnergyConsumptionRatio != null">#{drivingEnergyConsumptionRatio},</if>
+ <if test="idleEnergyConsumptionRatio != null">#{idleEnergyConsumptionRatio},</if>
+ <if test="idleEnergyConsumption != null">#{idleEnergyConsumption},</if>
+ <if test="avgAdblueConsumption != null">#{avgAdblueConsumption},</if>
+ <if test="adblueConsumption != null">#{adblueConsumption},</if>
+ <if test="avgGrossWeight != null">#{avgGrossWeight},</if>
+ <if test="brakeTimes != null">#{brakeTimes},</if>
+ <if test="harshBrakeTimes != null">#{harshBrakeTimes},</if>
+ <if test="accelerationTimes != null">#{accelerationTimes},</if>
+ <if test="avgBrakeTimes != null">#{avgBrakeTimes},</if>
+ <if test="avgHarshBrakeTimes != null">#{avgHarshBrakeTimes},</if>
+ <if test="avgAccelerationTimes != null">#{avgAccelerationTimes},</if>
+ <if test="odometer != null">#{odometer},</if>
+ <if test="createTime != null">#{createTime},</if>
+ <if test="updateTime != null">#{updateTime},</if>
+ </trim>
+ </insert>
+
+ <insert id="insertVehicleDailyDataBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
+ insert into vehicle_daily_data
+ <trim prefix="(" suffix=") values" suffixOverrides=",">
+ id,vin,chassis_type,event_date,distance,duration,shutdown_duration,driving_duration,driving_duration_ratio,idle_duration_ratio,idle_duration,coasting_distance_ratio,coasting_distance,cruising_distance_ratio,cruising_distance,avg_speed,avg_driving_speed,avg_engine_speed,economic_engine_speed_duration_ratio,economic_engine_speed_duration,avg_energy_consumption,energy_consumption,driving_energy_consumption,driving_energy_consumption_ratio,idle_energy_consumption_ratio,idle_energy_consumption,avg_adblue_consumption,adblue_consumption,avg_gross_weight,brake_times,harsh_brake_times,acceleration_times,avg_brake_times,avg_harsh_brake_times,avg_acceleration_times,odometer,create_time,update_time,
+ </trim>
+ <foreach item="item" index="index" collection="list" separator=",">
+ <trim prefix="(" suffix=") " suffixOverrides=",">
+ #{item.id},#{item.vin},#{item.chassisType},#{item.eventDate},#{item.distance},#{item.duration},#{item.shutdownDuration},#{item.drivingDuration},#{item.drivingDurationRatio},#{item.idleDurationRatio},#{item.idleDuration},#{item.coastingDistanceRatio},#{item.coastingDistance},#{item.cruisingDistanceRatio},#{item.cruisingDistance},#{item.avgSpeed},#{item.avgDrivingSpeed},#{item.avgEngineSpeed},#{item.economicEngineSpeedDurationRatio},#{item.economicEngineSpeedDuration},#{item.avgEnergyConsumption},#{item.energyConsumption},#{item.drivingEnergyConsumption},#{item.drivingEnergyConsumptionRatio},#{item.idleEnergyConsumptionRatio},#{item.idleEnergyConsumption},#{item.avgAdblueConsumption},#{item.adblueConsumption},#{item.avgGrossWeight},#{item.brakeTimes},#{item.harshBrakeTimes},#{item.accelerationTimes},#{item.avgBrakeTimes},#{item.avgHarshBrakeTimes},#{item.avgAccelerationTimes},#{item.odometer},#{item.createTime},#{item.updateTime},
+ </trim>
+ </foreach>
+ </insert>
+
+ <!-- 淇敼 -->
+ <update id="updateVehicleDailyData" parameterType="com.ruoyi.cwgl.domain.VehicleDailyData">
+ update vehicle_daily_data
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="vin != null and vin != ''">vin = #{vin},</if>
+ <if test="chassisType != null">chassis_type = #{chassisType},</if>
+ <if test="eventDate != null">event_date = #{eventDate},</if>
+ <if test="distance != null">distance = #{distance},</if>
+ <if test="duration != null">duration = #{duration},</if>
+ <if test="shutdownDuration != null">shutdown_duration = #{shutdownDuration},</if>
+ <if test="drivingDuration != null">driving_duration = #{drivingDuration},</if>
+ <if test="drivingDurationRatio != null">driving_duration_ratio = #{drivingDurationRatio},</if>
+ <if test="idleDurationRatio != null">idle_duration_ratio = #{idleDurationRatio},</if>
+ <if test="idleDuration != null">idle_duration = #{idleDuration},</if>
+ <if test="coastingDistanceRatio != null">coasting_distance_ratio = #{coastingDistanceRatio},</if>
+ <if test="coastingDistance != null">coasting_distance = #{coastingDistance},</if>
+ <if test="cruisingDistanceRatio != null">cruising_distance_ratio = #{cruisingDistanceRatio},</if>
+ <if test="cruisingDistance != null">cruising_distance = #{cruisingDistance},</if>
+ <if test="avgSpeed != null">avg_speed = #{avgSpeed},</if>
+ <if test="avgDrivingSpeed != null">avg_driving_speed = #{avgDrivingSpeed},</if>
+ <if test="avgEngineSpeed != null">avg_engine_speed = #{avgEngineSpeed},</if>
+ <if test="economicEngineSpeedDurationRatio != null">economic_engine_speed_duration_ratio = #{economicEngineSpeedDurationRatio},</if>
+ <if test="economicEngineSpeedDuration != null">economic_engine_speed_duration = #{economicEngineSpeedDuration},</if>
+ <if test="avgEnergyConsumption != null">avg_energy_consumption = #{avgEnergyConsumption},</if>
+ <if test="energyConsumption != null">energy_consumption = #{energyConsumption},</if>
+ <if test="drivingEnergyConsumption != null">driving_energy_consumption = #{drivingEnergyConsumption},</if>
+ <if test="drivingEnergyConsumptionRatio != null">driving_energy_consumption_ratio = #{drivingEnergyConsumptionRatio},</if>
+ <if test="idleEnergyConsumptionRatio != null">idle_energy_consumption_ratio = #{idleEnergyConsumptionRatio},</if>
+ <if test="idleEnergyConsumption != null">idle_energy_consumption = #{idleEnergyConsumption},</if>
+ <if test="avgAdblueConsumption != null">avg_adblue_consumption = #{avgAdblueConsumption},</if>
+ <if test="adblueConsumption != null">adblue_consumption = #{adblueConsumption},</if>
+ <if test="avgGrossWeight != null">avg_gross_weight = #{avgGrossWeight},</if>
+ <if test="brakeTimes != null">brake_times = #{brakeTimes},</if>
+ <if test="harshBrakeTimes != null">harsh_brake_times = #{harshBrakeTimes},</if>
+ <if test="accelerationTimes != null">acceleration_times = #{accelerationTimes},</if>
+ <if test="avgBrakeTimes != null">avg_brake_times = #{avgBrakeTimes},</if>
+ <if test="avgHarshBrakeTimes != null">avg_harsh_brake_times = #{avgHarshBrakeTimes},</if>
+ <if test="avgAccelerationTimes != null">avg_acceleration_times = #{avgAccelerationTimes},</if>
+ <if test="odometer != null">odometer = #{odometer},</if>
+ <if test="createTime != null">create_time = #{createTime},</if>
+ <if test="updateTime != null">update_time = #{updateTime},</if>
+ </trim>
+ where id = #{id}
+ </update>
+ <!-- 淇敼 -->
+ <update id="updateVehicleDailyDataBatch" parameterType="java.util.List">
+ <foreach collection="list" item="item" index="index" separator=";">
+ update vehicle_daily_data
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="item.vin != null and item.vin != ''">vin = #{item.vin},</if>
+ <if test="item.chassisType != null">chassis_type = #{item.chassisType},</if>
+ <if test="item.eventDate != null">event_date = #{item.eventDate},</if>
+ <if test="item.distance != null">distance = #{item.distance},</if>
+ <if test="item.duration != null">duration = #{item.duration},</if>
+ <if test="item.shutdownDuration != null">shutdown_duration = #{item.shutdownDuration},</if>
+ <if test="item.drivingDuration != null">driving_duration = #{item.drivingDuration},</if>
+ <if test="item.drivingDurationRatio != null">driving_duration_ratio = #{item.drivingDurationRatio},</if>
+ <if test="item.idleDurationRatio != null">idle_duration_ratio = #{item.idleDurationRatio},</if>
+ <if test="item.idleDuration != null">idle_duration = #{item.idleDuration},</if>
+ <if test="item.coastingDistanceRatio != null">coasting_distance_ratio = #{item.coastingDistanceRatio},</if>
+ <if test="item.coastingDistance != null">coasting_distance = #{item.coastingDistance},</if>
+ <if test="item.cruisingDistanceRatio != null">cruising_distance_ratio = #{item.cruisingDistanceRatio},</if>
+ <if test="item.cruisingDistance != null">cruising_distance = #{item.cruisingDistance},</if>
+ <if test="item.avgSpeed != null">avg_speed = #{item.avgSpeed},</if>
+ <if test="item.avgDrivingSpeed != null">avg_driving_speed = #{item.avgDrivingSpeed},</if>
+ <if test="item.avgEngineSpeed != null">avg_engine_speed = #{item.avgEngineSpeed},</if>
+ <if test="item.economicEngineSpeedDurationRatio != null">economic_engine_speed_duration_ratio = #{item.economicEngineSpeedDurationRatio},</if>
+ <if test="item.economicEngineSpeedDuration != null">economic_engine_speed_duration = #{item.economicEngineSpeedDuration},</if>
+ <if test="item.avgEnergyConsumption != null">avg_energy_consumption = #{item.avgEnergyConsumption},</if>
+ <if test="item.energyConsumption != null">energy_consumption = #{item.energyConsumption},</if>
+ <if test="item.drivingEnergyConsumption != null">driving_energy_consumption = #{item.drivingEnergyConsumption},</if>
+ <if test="item.drivingEnergyConsumptionRatio != null">driving_energy_consumption_ratio = #{item.drivingEnergyConsumptionRatio},</if>
+ <if test="item.idleEnergyConsumptionRatio != null">idle_energy_consumption_ratio = #{item.idleEnergyConsumptionRatio},</if>
+ <if test="item.idleEnergyConsumption != null">idle_energy_consumption = #{item.idleEnergyConsumption},</if>
+ <if test="item.avgAdblueConsumption != null">avg_adblue_consumption = #{item.avgAdblueConsumption},</if>
+ <if test="item.adblueConsumption != null">adblue_consumption = #{item.adblueConsumption},</if>
+ <if test="item.avgGrossWeight != null">avg_gross_weight = #{item.avgGrossWeight},</if>
+ <if test="item.brakeTimes != null">brake_times = #{item.brakeTimes},</if>
+ <if test="item.harshBrakeTimes != null">harsh_brake_times = #{item.harshBrakeTimes},</if>
+ <if test="item.accelerationTimes != null">acceleration_times = #{item.accelerationTimes},</if>
+ <if test="item.avgBrakeTimes != null">avg_brake_times = #{item.avgBrakeTimes},</if>
+ <if test="item.avgHarshBrakeTimes != null">avg_harsh_brake_times = #{item.avgHarshBrakeTimes},</if>
+ <if test="item.avgAccelerationTimes != null">avg_acceleration_times = #{item.avgAccelerationTimes},</if>
+ <if test="item.odometer != null">odometer = #{item.odometer},</if>
+ <if test="item.createTime != null">create_time = #{item.createTime},</if>
+ <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
+ </trim>
+ where id = #{item.id}
+ </foreach>
+ </update>
+
+ <!--鍒犻櫎-->
+ <delete id="deleteVehicleDailyDataById" parameterType="Integer">
+ delete from vehicle_daily_data where id = #{id}
+ </delete>
+ <delete id="deleteVehicleDailyDataByIds" parameterType="Integer">
+ delete from vehicle_daily_data where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/ui/admin-ui3/src/api/cwgl/data.ts b/ui/admin-ui3/src/api/cwgl/data.ts
new file mode 100644
index 0000000..262e4f9
--- /dev/null
+++ b/ui/admin-ui3/src/api/cwgl/data.ts
@@ -0,0 +1,67 @@
+import request,{download,requestType} from "@/utils/request";
+import {BaseEntityInterface} from "@/utils/globalInterface";
+export interface DataI extends BaseEntityInterface{
+ id ?: number , vin ?: string , chassisType ?: string , eventDate ?: string , distance ?: string , duration ?: string , shutdownDuration ?: string , drivingDuration ?: string , drivingDurationRatio ?: string , idleDurationRatio ?: string , idleDuration ?: string , coastingDistanceRatio ?: string , coastingDistance ?: string , cruisingDistanceRatio ?: string , cruisingDistance ?: string , avgSpeed ?: string , avgDrivingSpeed ?: string , avgEngineSpeed ?: string , economicEngineSpeedDurationRatio ?: string , economicEngineSpeedDuration ?: string , avgEnergyConsumption ?: string , energyConsumption ?: string , drivingEnergyConsumption ?: string , drivingEnergyConsumptionRatio ?: string , idleEnergyConsumptionRatio ?: string , idleEnergyConsumption ?: string , avgAdblueConsumption ?: string , adblueConsumption ?: string , avgGrossWeight ?: string , brakeTimes ?: number , harshBrakeTimes ?: number , accelerationTimes ?: number , avgBrakeTimes ?: number , avgHarshBrakeTimes ?: number , avgAccelerationTimes ?: number , odometer ?: string , createTime ?: string , updateTime ?: string }
+
+
+/**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁鍒楄〃
+ */
+export const listData:requestType = (query) => {
+ return request({
+ url: '/cwgl/data/list',
+ method:'get',
+ params:query
+ })
+}
+/**
+ * 鏌ヨ杞﹁締姣忔棩鏁版嵁璇︾粏
+ */
+export const getData:requestType = (id) => {
+ return request({
+ url: '/cwgl/data/' + id,
+ method:'get'
+ })
+}
+
+/**
+ * 鏂板杞﹁締姣忔棩鏁版嵁
+ */
+export const addData:requestType = (data) => {
+ return request({
+ url: '/cwgl/data',
+ method: 'post',
+ data
+ })
+}
+
+/**
+ * 淇敼杞﹁締姣忔棩鏁版嵁
+ */
+export const updateData:requestType = (data) => {
+ return request({
+ url: '/cwgl/data',
+ method: 'put',
+ data
+ })
+}
+
+/**
+ * 鍒犻櫎杞﹁締姣忔棩鏁版嵁
+ */
+export const delData:requestType = (id) => {
+ return request({
+ url: '/cwgl/data/' + id,
+ method: 'delete'
+ })
+}
+
+
+/**
+ * 瀵煎嚭杞﹁締姣忔棩鏁版嵁
+ */
+export const exportData:requestType = (query) => {
+ return new Promise<any>(()=>{
+ download('/cwgl/data/export',query);
+ })
+}
diff --git a/ui/admin-ui3/src/views/cwgl/data/index.vue b/ui/admin-ui3/src/views/cwgl/data/index.vue
new file mode 100644
index 0000000..50de207
--- /dev/null
+++ b/ui/admin-ui3/src/views/cwgl/data/index.vue
@@ -0,0 +1,234 @@
+<template>
+ <basicContainer >
+ <avue-crud
+ :option="option"
+ :table-loading="pageF.loading"
+ :data="tableData"
+ :page="page"
+ :permission="permissionList"
+ :before-open="beforeOpen"
+ v-model="form"
+ ref="crudRef"
+ @row-update="rowUpdate"
+ @row-save="rowSave"
+ @refresh-change="refreshChange"
+ @row-del="rowDel"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @selection-change="selectionChange"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+ @on-load="onLoad"
+ >
+ <template #menu-left>
+ <el-button
+ type="success"
+ icon="Edit"
+ :disabled="pageF.single"
+ v-hasPermi="['cwgl:data:edit']"
+ @click="handleUpdate">淇敼
+ </el-button>
+ <el-button
+ type="danger"
+ icon="Delete"
+ :disabled="pageF.multiple"
+ @click="handleDelete"
+ v-hasPermi="['cwgl:data:remove']"
+ >鍒犻櫎
+ </el-button>
+ <el-button
+ type="warning"
+ plain
+ icon="Download"
+ @click="handleExport"
+ v-hasPermi="['cwgl:data:export']"
+ >瀵煎嚭
+ </el-button>
+ </template>
+ </avue-crud>
+ </basicContainer>
+</template>
+
+<script setup name="data" lang="ts">
+ import {DataI,addData, delData, exportData, getData, listData, updateData} from "@/api/cwgl/data";
+ import useCurrentInstance from "@/utils/useCurrentInstance";
+ import {computed,reactive, ref, toRefs} from "vue";
+ import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+ import {usePagePlus} from "@/hooks/usePagePlus";
+ import {hasPermission} from "@/utils/permissionUtils";
+
+ const { proxy } = useCurrentInstance();
+ const crudRef = ref();
+
+ const permissionList = computed(()=>{
+ return {
+ addBtn: hasPermission(["cwgl:data:add"]),
+ delBtn: hasPermission(["cwgl:data:remove"]),
+ editBtn: hasPermission(["cwgl:data:edit"]),
+ viewBtn: hasPermission(["cwgl:data:query"]),
+ }
+ })
+
+ const data = reactive({
+ form:<DataI>{},
+ queryParams:<DataI&PageQueryInterface>{},
+ page: <PagesInterface>{
+ pageSize: 10,
+ total: 0,
+ currentPage: 1,
+ },
+ selectionList:[],
+ })
+ const {queryParams,form,page,selectionList} = toRefs(data);
+ const option = ref({
+ pageKey: 'Data',
+ rowKey: 'id',
+ column: {
+ id: {
+ label: '涓婚敭ID',
+ },
+ vin: {
+ label: '杞︽灦鍙�',
+ rules: [
+ {
+ required: true,
+ message: "杞︽灦鍙蜂笉鑳戒负绌�", trigger: "blur" }
+ ], },
+ chassisType: {
+ label: '搴曠洏绫诲瀷',
+ },
+ eventDate: {
+ label: '鏁版嵁鏃ユ湡',
+ rules: [
+ {
+ required: true,
+ message: "鏁版嵁鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+ ], },
+ distance: {
+ label: '琛岄┒閲岀▼',
+ },
+ duration: {
+ label: '鐢ㄨ溅鏃堕暱',
+ },
+ shutdownDuration: {
+ label: '鐔勭伀鍋滆溅鏃堕暱',
+ },
+ drivingDuration: {
+ label: '琛岄┒鏃堕暱',
+ },
+ drivingDurationRatio: {
+ label: '琛岄┒鏃堕暱鍗犳瘮',
+ },
+ idleDurationRatio: {
+ label: '鎬犻�熸椂闀垮崰姣�',
+ },
+ idleDuration: {
+ label: '鎬犻�熸椂闀�',
+ },
+ coastingDistanceRatio: {
+ label: '婊戣璺濈鍗犳瘮',
+ },
+ coastingDistance: {
+ label: '婊戣璺濈',
+ },
+ cruisingDistanceRatio: {
+ label: '宸¤埅璺濈鍗犳瘮',
+ },
+ cruisingDistance: {
+ label: '宸¤埅璺濈',
+ },
+ avgSpeed: {
+ label: '骞冲潎閫熷害',
+ },
+ avgDrivingSpeed: {
+ label: '骞冲潎琛岃溅閫熷害',
+ },
+ avgEngineSpeed: {
+ label: '鍙戝姩鏈哄钩鍧囪浆閫�',
+ },
+ economicEngineSpeedDurationRatio: {
+ label: '缁忔祹杞�熸椂闀垮崰姣�',
+ },
+ economicEngineSpeedDuration: {
+ label: '缁忔祹杞�熸椂闀�',
+ },
+ avgEnergyConsumption: {
+ label: '鐧惧叕閲岃兘鑰�',
+ },
+ energyConsumption: {
+ label: '鑰楁补閲�',
+ },
+ drivingEnergyConsumption: {
+ label: '琛岄┒鑰楁补閲�',
+ },
+ drivingEnergyConsumptionRatio: {
+ label: '琛岄┒鑰楁补閲忓崰姣�',
+ },
+ idleEnergyConsumptionRatio: {
+ label: '鎬犻�熻�楁补閲忓崰姣�',
+ },
+ idleEnergyConsumption: {
+ label: '鎬犻�熻�楁补閲�',
+ },
+ avgAdblueConsumption: {
+ label: '鐧惧叕閲屽翱绱犳秷鑰�',
+ },
+ adblueConsumption: {
+ label: '灏跨礌娑堣��',
+ },
+ avgGrossWeight: {
+ label: '骞冲潎鏁磋溅璐ㄩ噺',
+ },
+ brakeTimes: {
+ label: '鍒硅溅娆℃暟',
+ },
+ harshBrakeTimes: {
+ label: '鎬ュ埞杞︽鏁�',
+ },
+ accelerationTimes: {
+ label: '鎬ュ姞閫熸鏁�',
+ },
+ avgBrakeTimes: {
+ label: '鐧惧叕閲屽埞杞︽鏁�',
+ },
+ avgHarshBrakeTimes: {
+ label: '鐧惧叕閲屾�ュ埞杞︽鏁�',
+ },
+ avgAccelerationTimes: {
+ label: '鐧惧叕閲屾�ュ姞閫熸鏁�',
+ },
+ odometer: {
+ label: '閲岀▼琛ㄩ噷绋�',
+ },
+ createTime: {
+ label: '鍒涘缓鏃堕棿',
+ },
+ updateTime: {
+ label: '鏇存柊鏃堕棿',
+ },
+ }
+ })
+
+ const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
+ searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
+ form:form,
+ option:option,
+ queryParams:queryParams,
+ idKey:'id',
+ page:page.value,
+ getListApi:listData,
+ getDetailApi:getData,
+ exportApi:exportData,
+ deleteApi:delData,
+ addApi:addData,
+ updateApi:updateData,
+ handleUpdateFunc:()=>{
+ crudRef.value.rowEdit(selectionList.value[0]);
+ },
+ handleSelectionChangeFunc:(selection:any)=>{
+ selectionList.value = selection;
+ }
+ })
+
+
+</script>
--
Gitblit v1.8.0