diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 57497af..3329e9f 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -6,7 +6,6 @@ import com.casic.br.operationsite.utils.RuntimeCache import com.google.gson.Gson import com.google.gson.JsonObject -import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -96,16 +95,18 @@ /** * 获取此时往前推2h的管盯数据 */ - suspend fun getTubeGasHistory(deviceCode: String, projectId: String): String { - val current = System.currentTimeMillis() - val startTime = current - 2 * 60 * 60 * 1000 - val endTime = current + suspend fun getTubeGasHistory( + deviceCode: String, + projectId: String, + startTime: String, + endTime: String + ): String { return api.getTubeGasHistory( AuthenticationHelper.token!!, deviceCode, projectId, - startTime.timestampToCompleteDate(), - endTime.timestampToCompleteDate() + startTime, + endTime ) } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 57497af..3329e9f 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -6,7 +6,6 @@ import com.casic.br.operationsite.utils.RuntimeCache import com.google.gson.Gson import com.google.gson.JsonObject -import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -96,16 +95,18 @@ /** * 获取此时往前推2h的管盯数据 */ - suspend fun getTubeGasHistory(deviceCode: String, projectId: String): String { - val current = System.currentTimeMillis() - val startTime = current - 2 * 60 * 60 * 1000 - val endTime = current + suspend fun getTubeGasHistory( + deviceCode: String, + projectId: String, + startTime: String, + endTime: String + ): String { return api.getTubeGasHistory( AuthenticationHelper.token!!, deviceCode, projectId, - startTime.timestampToCompleteDate(), - endTime.timestampToCompleteDate() + startTime, + endTime ) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt index 7fe97df..f4d4354 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt @@ -28,11 +28,15 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView +import java.time.Duration +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter class GasDetailActivity : KotlinBaseActivity() { private val kTag = "GasDetailActivity" private val gson by lazy { Gson() } + private val formatter by lazy { DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") } private lateinit var aMap: AMap private lateinit var tubeViewModel: TubeViewModel @@ -89,7 +93,26 @@ binding.lineChart.invalidate() } } - tubeViewModel.getTubeGasHistory(this, dataModel.deviceCode, RuntimeCache.projectId) + + if (dataModel.alarmTime.isNotBlank()) { + //报警点前后时间的浓度 2025-03-19 17:05:39 + val alarmTimeStr = dataModel.alarmTime + val alarmTime = LocalDateTime.parse(alarmTimeStr, formatter) + + val halfHourBefore = alarmTime.minus(Duration.ofMinutes(30)) + val halfHourAfter = alarmTime.plus(Duration.ofMinutes(30)) + + val halfHourBeforeStr = halfHourBefore.format(formatter) + val halfHourAfterStr = halfHourAfter.format(formatter) + + tubeViewModel.getTubeGasHistory( + this, + dataModel.deviceCode, + RuntimeCache.projectId, + halfHourBeforeStr, + halfHourAfterStr + ) + } //标记设备 if (dataModel.alarmLat.isNotBlank() && dataModel.alarmLng.isNotBlank()) { diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 57497af..3329e9f 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -6,7 +6,6 @@ import com.casic.br.operationsite.utils.RuntimeCache import com.google.gson.Gson import com.google.gson.JsonObject -import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -96,16 +95,18 @@ /** * 获取此时往前推2h的管盯数据 */ - suspend fun getTubeGasHistory(deviceCode: String, projectId: String): String { - val current = System.currentTimeMillis() - val startTime = current - 2 * 60 * 60 * 1000 - val endTime = current + suspend fun getTubeGasHistory( + deviceCode: String, + projectId: String, + startTime: String, + endTime: String + ): String { return api.getTubeGasHistory( AuthenticationHelper.token!!, deviceCode, projectId, - startTime.timestampToCompleteDate(), - endTime.timestampToCompleteDate() + startTime, + endTime ) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt index 7fe97df..f4d4354 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt @@ -28,11 +28,15 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView +import java.time.Duration +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter class GasDetailActivity : KotlinBaseActivity() { private val kTag = "GasDetailActivity" private val gson by lazy { Gson() } + private val formatter by lazy { DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") } private lateinit var aMap: AMap private lateinit var tubeViewModel: TubeViewModel @@ -89,7 +93,26 @@ binding.lineChart.invalidate() } } - tubeViewModel.getTubeGasHistory(this, dataModel.deviceCode, RuntimeCache.projectId) + + if (dataModel.alarmTime.isNotBlank()) { + //报警点前后时间的浓度 2025-03-19 17:05:39 + val alarmTimeStr = dataModel.alarmTime + val alarmTime = LocalDateTime.parse(alarmTimeStr, formatter) + + val halfHourBefore = alarmTime.minus(Duration.ofMinutes(30)) + val halfHourAfter = alarmTime.plus(Duration.ofMinutes(30)) + + val halfHourBeforeStr = halfHourBefore.format(formatter) + val halfHourAfterStr = halfHourAfter.format(formatter) + + tubeViewModel.getTubeGasHistory( + this, + dataModel.deviceCode, + RuntimeCache.projectId, + halfHourBeforeStr, + halfHourAfterStr + ) + } //标记设备 if (dataModel.alarmLat.isNotBlank() && dataModel.alarmLng.isNotBlank()) { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index 5620067..69cd36c 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -36,6 +36,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.extensions.timestampToTime import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LoadState @@ -292,8 +293,15 @@ val dataSet = LineDataSet(strengthEntries, "") //获取实时浓度曲线 + val current = System.currentTimeMillis() + val startTime = current - 2 * 60 * 60 * 1000 + val endTime = current tubeViewModel.getTubeGasHistory( - context, deviceData.deviceCode, RuntimeCache.projectId + context, + deviceData.deviceCode, + RuntimeCache.projectId, + startTime.timestampToCompleteDate(), + endTime.timestampToCompleteDate() ) tubeViewModel.tubeGasHistoryLiveData.observe(this@WorkSiteTabActivity) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 57497af..3329e9f 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -6,7 +6,6 @@ import com.casic.br.operationsite.utils.RuntimeCache import com.google.gson.Gson import com.google.gson.JsonObject -import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -96,16 +95,18 @@ /** * 获取此时往前推2h的管盯数据 */ - suspend fun getTubeGasHistory(deviceCode: String, projectId: String): String { - val current = System.currentTimeMillis() - val startTime = current - 2 * 60 * 60 * 1000 - val endTime = current + suspend fun getTubeGasHistory( + deviceCode: String, + projectId: String, + startTime: String, + endTime: String + ): String { return api.getTubeGasHistory( AuthenticationHelper.token!!, deviceCode, projectId, - startTime.timestampToCompleteDate(), - endTime.timestampToCompleteDate() + startTime, + endTime ) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt index 7fe97df..f4d4354 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/GasDetailActivity.kt @@ -28,11 +28,15 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView +import java.time.Duration +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter class GasDetailActivity : KotlinBaseActivity() { private val kTag = "GasDetailActivity" private val gson by lazy { Gson() } + private val formatter by lazy { DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") } private lateinit var aMap: AMap private lateinit var tubeViewModel: TubeViewModel @@ -89,7 +93,26 @@ binding.lineChart.invalidate() } } - tubeViewModel.getTubeGasHistory(this, dataModel.deviceCode, RuntimeCache.projectId) + + if (dataModel.alarmTime.isNotBlank()) { + //报警点前后时间的浓度 2025-03-19 17:05:39 + val alarmTimeStr = dataModel.alarmTime + val alarmTime = LocalDateTime.parse(alarmTimeStr, formatter) + + val halfHourBefore = alarmTime.minus(Duration.ofMinutes(30)) + val halfHourAfter = alarmTime.plus(Duration.ofMinutes(30)) + + val halfHourBeforeStr = halfHourBefore.format(formatter) + val halfHourAfterStr = halfHourAfter.format(formatter) + + tubeViewModel.getTubeGasHistory( + this, + dataModel.deviceCode, + RuntimeCache.projectId, + halfHourBeforeStr, + halfHourAfterStr + ) + } //标记设备 if (dataModel.alarmLat.isNotBlank() && dataModel.alarmLng.isNotBlank()) { diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index 5620067..69cd36c 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -36,6 +36,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.extensions.timestampToTime import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LoadState @@ -292,8 +293,15 @@ val dataSet = LineDataSet(strengthEntries, "") //获取实时浓度曲线 + val current = System.currentTimeMillis() + val startTime = current - 2 * 60 * 60 * 1000 + val endTime = current tubeViewModel.getTubeGasHistory( - context, deviceData.deviceCode, RuntimeCache.projectId + context, + deviceData.deviceCode, + RuntimeCache.projectId, + startTime.timestampToCompleteDate(), + endTime.timestampToCompleteDate() ) tubeViewModel.tubeGasHistoryLiveData.observe(this@WorkSiteTabActivity) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt index b1eb147..531197a 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt @@ -46,8 +46,18 @@ it.printStackTrace() }) - fun getTubeGasHistory(context: Context, deviceCode: String, projectId: String) = launch({ - val response = RetrofitServiceManager.getTubeGasHistory(deviceCode, projectId) + + + fun getTubeGasHistory( + context: Context, + deviceCode: String, + projectId: String, + startTime: String, + endTime: String + ) = launch({ + val response = RetrofitServiceManager.getTubeGasHistory( + deviceCode, projectId, startTime, endTime + ) when (response.getResponseCode()) { 200 -> { tubeGasHistoryLiveData.value = gson.fromJson(