diff --git a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt index 8e2997f..d10a537 100644 --- a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt +++ b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt @@ -3,9 +3,6 @@ import android.util.Log import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler -import io.netty.handler.timeout.IdleState -import io.netty.handler.timeout.IdleStateEvent -import java.nio.charset.StandardCharsets class SocketChannelHandle(private val listener: ISocketListener?) : SimpleChannelInboundHandler() { @@ -23,20 +20,6 @@ Log.e(kTag, "channelInactive: 连接断开") } - override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { - super.userEventTriggered(ctx, evt) - if (evt is IdleStateEvent) { - if (evt.state() == IdleState.WRITER_IDLE) { - //写超时,此时可以发送心跳数据给服务器 - val temp = "FF" - ctx.writeAndFlush(temp.toByteArray(StandardCharsets.UTF_8)) - } else if (evt.state() == IdleState.READER_IDLE) { - //读超时,此时代表没有收到心跳返回可以关闭当前连接进行重连 - ctx.close() - } - } - } - override fun channelRead0(ctx: ChannelHandlerContext, data: ByteArray?) { listener?.onMessageResponse(data) } diff --git a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt index 8e2997f..d10a537 100644 --- a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt +++ b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt @@ -3,9 +3,6 @@ import android.util.Log import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler -import io.netty.handler.timeout.IdleState -import io.netty.handler.timeout.IdleStateEvent -import java.nio.charset.StandardCharsets class SocketChannelHandle(private val listener: ISocketListener?) : SimpleChannelInboundHandler() { @@ -23,20 +20,6 @@ Log.e(kTag, "channelInactive: 连接断开") } - override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { - super.userEventTriggered(ctx, evt) - if (evt is IdleStateEvent) { - if (evt.state() == IdleState.WRITER_IDLE) { - //写超时,此时可以发送心跳数据给服务器 - val temp = "FF" - ctx.writeAndFlush(temp.toByteArray(StandardCharsets.UTF_8)) - } else if (evt.state() == IdleState.READER_IDLE) { - //读超时,此时代表没有收到心跳返回可以关闭当前连接进行重连 - ctx.close() - } - } - } - override fun channelRead0(ctx: ChannelHandlerContext, data: ByteArray?) { listener?.onMessageResponse(data) } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 2eefdda..1312360 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -53,7 +53,7 @@ ): String /** - * 更新任务 + * 新建巡检任务 */ @POST("/system/busPatrolTask/add") suspend fun addTask( @@ -62,6 +62,24 @@ ): String /** + * 更新任务经纬度 + */ + @POST("/system/busPatrolTask/edit") + suspend fun updateTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 结束任务 + */ + @POST("/system/busPatrolTask/getDistance") + suspend fun endTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 任务详情 */ @POST("/system/busPatrolTask/detail") @@ -71,16 +89,6 @@ ): String /** - * TODO 接口地址待完善 - * 新增任务 - */ - @POST("") - suspend fun updateTask( - @Header("token") token: String, - @Body requestBody: RequestBody - ): String - - /** * 获取巡检任务列表 */ @POST("/system/busPatrolCar/listPage") diff --git a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt index 8e2997f..d10a537 100644 --- a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt +++ b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt @@ -3,9 +3,6 @@ import android.util.Log import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler -import io.netty.handler.timeout.IdleState -import io.netty.handler.timeout.IdleStateEvent -import java.nio.charset.StandardCharsets class SocketChannelHandle(private val listener: ISocketListener?) : SimpleChannelInboundHandler() { @@ -23,20 +20,6 @@ Log.e(kTag, "channelInactive: 连接断开") } - override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { - super.userEventTriggered(ctx, evt) - if (evt is IdleStateEvent) { - if (evt.state() == IdleState.WRITER_IDLE) { - //写超时,此时可以发送心跳数据给服务器 - val temp = "FF" - ctx.writeAndFlush(temp.toByteArray(StandardCharsets.UTF_8)) - } else if (evt.state() == IdleState.READER_IDLE) { - //读超时,此时代表没有收到心跳返回可以关闭当前连接进行重连 - ctx.close() - } - } - } - override fun channelRead0(ctx: ChannelHandlerContext, data: ByteArray?) { listener?.onMessageResponse(data) } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 2eefdda..1312360 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -53,7 +53,7 @@ ): String /** - * 更新任务 + * 新建巡检任务 */ @POST("/system/busPatrolTask/add") suspend fun addTask( @@ -62,6 +62,24 @@ ): String /** + * 更新任务经纬度 + */ + @POST("/system/busPatrolTask/edit") + suspend fun updateTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 结束任务 + */ + @POST("/system/busPatrolTask/getDistance") + suspend fun endTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 任务详情 */ @POST("/system/busPatrolTask/detail") @@ -71,16 +89,6 @@ ): String /** - * TODO 接口地址待完善 - * 新增任务 - */ - @POST("") - suspend fun updateTask( - @Header("token") token: String, - @Body requestBody: RequestBody - ): String - - /** * 获取巡检任务列表 */ @POST("/system/busPatrolCar/listPage") diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index ef9cab2..74190fb 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -119,10 +119,14 @@ /** * 更新任务 */ - suspend fun updateTask(taskId: String, endDate: String): String { + suspend fun updateTask( + id: String, latitude: Double, longitude: Double, updateTime: String + ): String { val param = JsonObject() - param.addProperty("taskId", taskId) - param.addProperty("endDate", endDate) + param.addProperty("id", id) + param.addProperty("latitude", latitude) + param.addProperty("longitude", longitude) + param.addProperty("updateTime", updateTime) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -142,6 +146,18 @@ } /** + * 结束任务 + */ + suspend fun endTask(taskId: String): String { + val param = JsonObject() + param.addProperty("id", taskId) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.endTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt index 8e2997f..d10a537 100644 --- a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt +++ b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt @@ -3,9 +3,6 @@ import android.util.Log import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler -import io.netty.handler.timeout.IdleState -import io.netty.handler.timeout.IdleStateEvent -import java.nio.charset.StandardCharsets class SocketChannelHandle(private val listener: ISocketListener?) : SimpleChannelInboundHandler() { @@ -23,20 +20,6 @@ Log.e(kTag, "channelInactive: 连接断开") } - override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { - super.userEventTriggered(ctx, evt) - if (evt is IdleStateEvent) { - if (evt.state() == IdleState.WRITER_IDLE) { - //写超时,此时可以发送心跳数据给服务器 - val temp = "FF" - ctx.writeAndFlush(temp.toByteArray(StandardCharsets.UTF_8)) - } else if (evt.state() == IdleState.READER_IDLE) { - //读超时,此时代表没有收到心跳返回可以关闭当前连接进行重连 - ctx.close() - } - } - } - override fun channelRead0(ctx: ChannelHandlerContext, data: ByteArray?) { listener?.onMessageResponse(data) } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 2eefdda..1312360 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -53,7 +53,7 @@ ): String /** - * 更新任务 + * 新建巡检任务 */ @POST("/system/busPatrolTask/add") suspend fun addTask( @@ -62,6 +62,24 @@ ): String /** + * 更新任务经纬度 + */ + @POST("/system/busPatrolTask/edit") + suspend fun updateTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 结束任务 + */ + @POST("/system/busPatrolTask/getDistance") + suspend fun endTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 任务详情 */ @POST("/system/busPatrolTask/detail") @@ -71,16 +89,6 @@ ): String /** - * TODO 接口地址待完善 - * 新增任务 - */ - @POST("") - suspend fun updateTask( - @Header("token") token: String, - @Body requestBody: RequestBody - ): String - - /** * 获取巡检任务列表 */ @POST("/system/busPatrolCar/listPage") diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index ef9cab2..74190fb 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -119,10 +119,14 @@ /** * 更新任务 */ - suspend fun updateTask(taskId: String, endDate: String): String { + suspend fun updateTask( + id: String, latitude: Double, longitude: Double, updateTime: String + ): String { val param = JsonObject() - param.addProperty("taskId", taskId) - param.addProperty("endDate", endDate) + param.addProperty("id", id) + param.addProperty("latitude", latitude) + param.addProperty("longitude", longitude) + param.addProperty("updateTime", updateTime) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -142,6 +146,18 @@ } /** + * 结束任务 + */ + suspend fun endTask(taskId: String): String { + val param = JsonObject() + param.addProperty("id", taskId) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.endTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt index 25a5d64..8412bf8 100644 --- a/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt @@ -48,7 +48,6 @@ const val CAR_ID = "carId" const val ALARM_RULE = "alarmRule" const val YT_DEVICE_ID = "deviceId" - const val TASK_END_TIME = "taskEndTime" //海康摄像头参数 const val HK_NET_IP = "192.168.1.64" diff --git a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt index 8e2997f..d10a537 100644 --- a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt +++ b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt @@ -3,9 +3,6 @@ import android.util.Log import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler -import io.netty.handler.timeout.IdleState -import io.netty.handler.timeout.IdleStateEvent -import java.nio.charset.StandardCharsets class SocketChannelHandle(private val listener: ISocketListener?) : SimpleChannelInboundHandler() { @@ -23,20 +20,6 @@ Log.e(kTag, "channelInactive: 连接断开") } - override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { - super.userEventTriggered(ctx, evt) - if (evt is IdleStateEvent) { - if (evt.state() == IdleState.WRITER_IDLE) { - //写超时,此时可以发送心跳数据给服务器 - val temp = "FF" - ctx.writeAndFlush(temp.toByteArray(StandardCharsets.UTF_8)) - } else if (evt.state() == IdleState.READER_IDLE) { - //读超时,此时代表没有收到心跳返回可以关闭当前连接进行重连 - ctx.close() - } - } - } - override fun channelRead0(ctx: ChannelHandlerContext, data: ByteArray?) { listener?.onMessageResponse(data) } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 2eefdda..1312360 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -53,7 +53,7 @@ ): String /** - * 更新任务 + * 新建巡检任务 */ @POST("/system/busPatrolTask/add") suspend fun addTask( @@ -62,6 +62,24 @@ ): String /** + * 更新任务经纬度 + */ + @POST("/system/busPatrolTask/edit") + suspend fun updateTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 结束任务 + */ + @POST("/system/busPatrolTask/getDistance") + suspend fun endTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 任务详情 */ @POST("/system/busPatrolTask/detail") @@ -71,16 +89,6 @@ ): String /** - * TODO 接口地址待完善 - * 新增任务 - */ - @POST("") - suspend fun updateTask( - @Header("token") token: String, - @Body requestBody: RequestBody - ): String - - /** * 获取巡检任务列表 */ @POST("/system/busPatrolCar/listPage") diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index ef9cab2..74190fb 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -119,10 +119,14 @@ /** * 更新任务 */ - suspend fun updateTask(taskId: String, endDate: String): String { + suspend fun updateTask( + id: String, latitude: Double, longitude: Double, updateTime: String + ): String { val param = JsonObject() - param.addProperty("taskId", taskId) - param.addProperty("endDate", endDate) + param.addProperty("id", id) + param.addProperty("latitude", latitude) + param.addProperty("longitude", longitude) + param.addProperty("updateTime", updateTime) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -142,6 +146,18 @@ } /** + * 结束任务 + */ + suspend fun endTask(taskId: String): String { + val param = JsonObject() + param.addProperty("id", taskId) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.endTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt index 25a5d64..8412bf8 100644 --- a/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt @@ -48,7 +48,6 @@ const val CAR_ID = "carId" const val ALARM_RULE = "alarmRule" const val YT_DEVICE_ID = "deviceId" - const val TASK_END_TIME = "taskEndTime" //海康摄像头参数 const val HK_NET_IP = "192.168.1.64" diff --git a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt index 7d6e558..6ed3235 100644 --- a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt @@ -29,7 +29,6 @@ import com.casic.br.ktd.extensions.* import com.casic.br.ktd.model.AlarmParam import com.casic.br.ktd.model.ChartPointModel -import com.casic.br.ktd.model.PointModel import com.casic.br.ktd.model.SensorDataModel import com.casic.br.ktd.netty.tcp.SocketManager import com.casic.br.ktd.netty.udp.UdpClient @@ -125,9 +124,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var alarmParam: AlarmParam private var taskId = "" - private var carId = "" private var deviceId = "" - private var taskTitle = "" private var dataModel: SensorDataModel? = null //1:报警,0:正常 @@ -177,11 +174,15 @@ fileViewModel = ViewModelProvider(this)[FileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - taskTitle = intent.getStringExtra(Constant.INTENT_PARAM).toString() - carId = SaveKeyValues.getValue(LocaleConstant.CAR_ID, "") as String + val taskTitle = intent.getStringExtra(Constant.INTENT_PARAM).toString() + val carId = SaveKeyValues.getValue(LocaleConstant.CAR_ID, "") as String gasAlarmRule = SaveKeyValues.getValue(LocaleConstant.ALARM_RULE, 1000) as Int deviceId = SaveKeyValues.getValue(LocaleConstant.YT_DEVICE_ID, "") as String + //初始化任务 + taskViewModel.addTask( + taskTitle, carId, System.currentTimeMillis().timestampToCompleteDate(), "1", "0" + ) taskViewModel.addTaskResult.observe(this) { if (it.code == 200) { taskId = it.data.toString() @@ -273,10 +274,12 @@ ) if (isStartInspect) { - val route = LinkedList() - latlngs.forEach { - route.add(PointModel(it.latitude, it.longitude)) - } + taskViewModel.updateTask( + taskId, + latLng.latitude, + latLng.longitude, + System.currentTimeMillis().timestampToCompleteDate() + ) } } }) @@ -547,10 +550,7 @@ } override fun onConfirmClick() { - val value = SaveKeyValues.getValue( - LocaleConstant.TASK_END_TIME, "" - ) as String - taskViewModel.updateTask(taskId, value) + taskViewModel.endTask(taskId) } }).build().show() } @@ -624,11 +624,6 @@ LocaleConstant.OPEN_SENSOR_COMMAND, LocaleConstant.OPEN_SENSOR_COMMAND.size ) - - //初始化任务 - taskViewModel.addTask( - taskTitle, carId, System.currentTimeMillis().timestampToCompleteDate(), "1", "0" - ) } catch (e: IndexOutOfBoundsException) { e.printStackTrace() "设备未正常连接,无法开启预览".show(this) @@ -755,9 +750,7 @@ isLoginSuccess = false initSuccess = false //结束巡检,保存数据 - val endTime = System.currentTimeMillis().timestampToCompleteDate() - SaveKeyValues.putValue(LocaleConstant.TASK_END_TIME, endTime) - taskViewModel.updateTask(taskId, endTime) + taskViewModel.endTask(taskId) } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt index 8e2997f..d10a537 100644 --- a/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt +++ b/app/src/main/java/com/casic/br/ktd/netty/tcp/SocketChannelHandle.kt @@ -3,9 +3,6 @@ import android.util.Log import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler -import io.netty.handler.timeout.IdleState -import io.netty.handler.timeout.IdleStateEvent -import java.nio.charset.StandardCharsets class SocketChannelHandle(private val listener: ISocketListener?) : SimpleChannelInboundHandler() { @@ -23,20 +20,6 @@ Log.e(kTag, "channelInactive: 连接断开") } - override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { - super.userEventTriggered(ctx, evt) - if (evt is IdleStateEvent) { - if (evt.state() == IdleState.WRITER_IDLE) { - //写超时,此时可以发送心跳数据给服务器 - val temp = "FF" - ctx.writeAndFlush(temp.toByteArray(StandardCharsets.UTF_8)) - } else if (evt.state() == IdleState.READER_IDLE) { - //读超时,此时代表没有收到心跳返回可以关闭当前连接进行重连 - ctx.close() - } - } - } - override fun channelRead0(ctx: ChannelHandlerContext, data: ByteArray?) { listener?.onMessageResponse(data) } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 2eefdda..1312360 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -53,7 +53,7 @@ ): String /** - * 更新任务 + * 新建巡检任务 */ @POST("/system/busPatrolTask/add") suspend fun addTask( @@ -62,6 +62,24 @@ ): String /** + * 更新任务经纬度 + */ + @POST("/system/busPatrolTask/edit") + suspend fun updateTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 结束任务 + */ + @POST("/system/busPatrolTask/getDistance") + suspend fun endTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 任务详情 */ @POST("/system/busPatrolTask/detail") @@ -71,16 +89,6 @@ ): String /** - * TODO 接口地址待完善 - * 新增任务 - */ - @POST("") - suspend fun updateTask( - @Header("token") token: String, - @Body requestBody: RequestBody - ): String - - /** * 获取巡检任务列表 */ @POST("/system/busPatrolCar/listPage") diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index ef9cab2..74190fb 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -119,10 +119,14 @@ /** * 更新任务 */ - suspend fun updateTask(taskId: String, endDate: String): String { + suspend fun updateTask( + id: String, latitude: Double, longitude: Double, updateTime: String + ): String { val param = JsonObject() - param.addProperty("taskId", taskId) - param.addProperty("endDate", endDate) + param.addProperty("id", id) + param.addProperty("latitude", latitude) + param.addProperty("longitude", longitude) + param.addProperty("updateTime", updateTime) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -142,6 +146,18 @@ } /** + * 结束任务 + */ + suspend fun endTask(taskId: String): String { + val param = JsonObject() + param.addProperty("id", taskId) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.endTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt index 25a5d64..8412bf8 100644 --- a/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/ktd/utils/LocaleConstant.kt @@ -48,7 +48,6 @@ const val CAR_ID = "carId" const val ALARM_RULE = "alarmRule" const val YT_DEVICE_ID = "deviceId" - const val TASK_END_TIME = "taskEndTime" //海康摄像头参数 const val HK_NET_IP = "192.168.1.64" diff --git a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt index 7d6e558..6ed3235 100644 --- a/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/InspectionActivity.kt @@ -29,7 +29,6 @@ import com.casic.br.ktd.extensions.* import com.casic.br.ktd.model.AlarmParam import com.casic.br.ktd.model.ChartPointModel -import com.casic.br.ktd.model.PointModel import com.casic.br.ktd.model.SensorDataModel import com.casic.br.ktd.netty.tcp.SocketManager import com.casic.br.ktd.netty.udp.UdpClient @@ -125,9 +124,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var alarmParam: AlarmParam private var taskId = "" - private var carId = "" private var deviceId = "" - private var taskTitle = "" private var dataModel: SensorDataModel? = null //1:报警,0:正常 @@ -177,11 +174,15 @@ fileViewModel = ViewModelProvider(this)[FileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - taskTitle = intent.getStringExtra(Constant.INTENT_PARAM).toString() - carId = SaveKeyValues.getValue(LocaleConstant.CAR_ID, "") as String + val taskTitle = intent.getStringExtra(Constant.INTENT_PARAM).toString() + val carId = SaveKeyValues.getValue(LocaleConstant.CAR_ID, "") as String gasAlarmRule = SaveKeyValues.getValue(LocaleConstant.ALARM_RULE, 1000) as Int deviceId = SaveKeyValues.getValue(LocaleConstant.YT_DEVICE_ID, "") as String + //初始化任务 + taskViewModel.addTask( + taskTitle, carId, System.currentTimeMillis().timestampToCompleteDate(), "1", "0" + ) taskViewModel.addTaskResult.observe(this) { if (it.code == 200) { taskId = it.data.toString() @@ -273,10 +274,12 @@ ) if (isStartInspect) { - val route = LinkedList() - latlngs.forEach { - route.add(PointModel(it.latitude, it.longitude)) - } + taskViewModel.updateTask( + taskId, + latLng.latitude, + latLng.longitude, + System.currentTimeMillis().timestampToCompleteDate() + ) } } }) @@ -547,10 +550,7 @@ } override fun onConfirmClick() { - val value = SaveKeyValues.getValue( - LocaleConstant.TASK_END_TIME, "" - ) as String - taskViewModel.updateTask(taskId, value) + taskViewModel.endTask(taskId) } }).build().show() } @@ -624,11 +624,6 @@ LocaleConstant.OPEN_SENSOR_COMMAND, LocaleConstant.OPEN_SENSOR_COMMAND.size ) - - //初始化任务 - taskViewModel.addTask( - taskTitle, carId, System.currentTimeMillis().timestampToCompleteDate(), "1", "0" - ) } catch (e: IndexOutOfBoundsException) { e.printStackTrace() "设备未正常连接,无法开启预览".show(this) @@ -755,9 +750,7 @@ isLoginSuccess = false initSuccess = false //结束巡检,保存数据 - val endTime = System.currentTimeMillis().timestampToCompleteDate() - SaveKeyValues.putValue(LocaleConstant.TASK_END_TIME, endTime) - taskViewModel.updateTask(taskId, endTime) + taskViewModel.endTask(taskId) } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt b/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt index 6c6f8d2..38d68c2 100644 --- a/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt +++ b/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt @@ -60,18 +60,8 @@ it.printStackTrace() }) - fun updateTask(taskId: String, endDate: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.updateTask(taskId, endDate) - val responseCode = response.separateResponseCode() - if (responseCode == 200) { - loadState.value = LoadState.Success - } else { - loadState.value = LoadState.Fail - response.toErrorMessage().show(BaseApplication.get()) - } - }, { - loadState.value = LoadState.Fail + fun updateTask(id: String, latitude: Double, longitude: Double, updateTime: String) = launch({ + RetrofitServiceManager.updateTask(id, latitude, longitude, updateTime) }) fun getTaskDetail(taskId: String) = launch({ @@ -85,4 +75,22 @@ }, { it.printStackTrace() }) + + fun endTask(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.endTask(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + addTaskResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.get()) + } + }, { + it.printStackTrace() + loadState.value = LoadState.Fail + }) } \ No newline at end of file