From c9a3c06b37b5b2eb9b02d4e6348e5c53145284d9 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 16 九月 2019 17:40:20 +0800
Subject: [PATCH] 1.  添加注释 2. 添加粘包分包解码器 3. 修改数据单元信息体获取逻辑 4. 修改接收数据转换后的string列表,展示为16进制数时,小于16的应该在前面补0,否则之后计算会出错

---
 src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt |   81 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 79 insertions(+), 2 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt b/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt
index 7f58318..0781b69 100644
--- a/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt
+++ b/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt
@@ -4,6 +4,10 @@
 import com.flightfeather.obd.domain.mapper.ObdDataMapper
 import com.flightfeather.obd.lightshare.bean.ObdDataVo
 import com.flightfeather.obd.repository.ObdDataRepository
+import com.flightfeather.obd.socket.bean.EngineDataFlow
+import com.flightfeather.obd.socket.bean.ObdPackageData
+import com.flightfeather.obd.socket.bean.SupplementDataFlow
+import com.flightfeather.obd.socket.eunm.ObdCommandUnit
 import com.github.pagehelper.PageHelper
 import org.springframework.beans.BeanUtils
 import org.springframework.stereotype.Repository
@@ -17,10 +21,10 @@
 @Repository
 class ObdDataDaoImpl(val obdDataMapper: ObdDataMapper) : ObdDataRepository {
 
-    override fun saveObdData(data: ObdDataVo) {
+    override fun saveObdData(data: ObdDataVo): Boolean {
         val obdData = ObdData()
         BeanUtils.copyProperties(data, obdData)
-        obdDataMapper.insert(obdData)
+        return obdDataMapper.insert(obdData) == 1
     }
 
     override fun getDataByVinCode(vinCode: String, pageNum: Int?, pageSize: Int?): MutableList<ObdDataVo> {
@@ -43,4 +47,77 @@
 
         return resultList
     }
+
+    override fun saveObdData(packageData: ObdPackageData): Boolean {
+        val obdData = ObdData().apply {
+            obdVin = packageData.deviceCode
+        }
+        when (packageData.commandUnit) {
+            ObdCommandUnit.CarRegister.value -> {
+
+            }
+            ObdCommandUnit.RealTimeData.value,
+            ObdCommandUnit.ReplacementData.value -> {
+                packageData.dataUnit.forEach {
+                    when (it) {
+                        is com.flightfeather.obd.socket.bean.ObdData -> {
+                            obdData.apply {
+                                obdTime = it.time
+                                obdProtocol = it.obdProtocol
+                                obdMil = it.obdMil
+                                obdIdCode = it.obdSoftwareCode
+                                obdVerificationCode = it.obdCvn
+                                obdFaultCodeNum = it.obdFaultCodeNum
+                                obdFaultCode = it.obdFaultCode
+                            }
+                        }
+                        is EngineDataFlow -> {
+                            obdData.apply {
+                                obdLng = it.obdLong
+                                obdLat = it.obdLat
+                                obdSpeed = it.obdSpeed?.toInt()
+                                obdAirPressure = it.obdAirPressure
+                                obdEngineTorque = it.obdEngineTorque
+                                obdFrictionTorque = it.obdFrictionTorque
+                                obdEngineRpm = it.obdEngineRpm?.toInt()
+                                obdStartFuelFlow = it.obdEngineFuelFlow
+                                obdScrUpstreamNo = it.obdScrUpstreamNo
+                                obdScrDownstreamNo = it.obdScrDownstreamNo
+                                obdRemainReactant = it.obdRemainReactant
+                                obdAirInput = it.obdAirInput
+                                obdScrInputTemp = it.obdScrInputTemp
+                                obdScrOutputTemp = it.obdScrOutputTemp
+                                obdDpf = it.obdDpf
+                                obdEngineCoolantTemp = it.obdEngineCoolantTemp
+                                obdFuelLevel = it.obdFuelLevel
+                                obdLocationStatus = it.obdLocationStatus
+                                obdTotalMileage = it.obdTotalMileage
+                            }
+                        }
+                        is SupplementDataFlow -> {
+                            obdData.apply {
+                                obdEngineTorqueMode = it.obdEngineTorqueMode?.toString()
+                                obdAcceleratorPedal = it.obdAcceleratorPedal
+                                obdTotalOilConsumption = it.obdTotalOilConsumption
+                                obdUreaBoxTemp = it.obdUreaBoxTemp
+                                obdUreaVolume = it.obdUreaVolume?.toInt()
+                                obdTotalUreaConsume = it.obdTotalUreaConsume
+                                obdDpfTemp = it.obdDpfTemp
+//                                obdFirmwareVersion =
+                            }
+                        }
+                    }
+                }
+
+            }
+            ObdCommandUnit.CarLogOut.value -> {
+
+            }
+            ObdCommandUnit.TimeCalibration.value -> {
+
+            }
+        }
+
+        return obdDataMapper.insert(obdData) == 1
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3