diff --git a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt index 51e4939..66db5fe 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt @@ -3,6 +3,7 @@ package com.sw.platecabinet.activity import android.content.Intent import android.util.Log import androidx.activity.viewModels +import com.sw.inbound.utils.DateTimeUtils import com.sw.plate.utils.AppUtil import com.sw.plate.utils.ToastUtils import com.sw.platecabinet.GlobalData @@ -102,12 +103,26 @@ class DeviceInitActivity : BaseActivity() { EquipmentUserInfo( equipmentBoxCode = "${index + 1}", // faceId = null, -// plateNumber = if (index == 4) "011075" else null, +// plateNumber = null, // updateTime = null ) ) } } + // TODO: 测试数据----------------------------⬇️ +// else { +// list[0].let { +// it.plateNumber = "013748" +// it.faceId = "111111111" +// it.updateTime = DateTimeUtils.getDateTimeString() +// } +// list[1].let { +// it.plateNumber = "013749" +// it.faceId = "222222222" +// it.updateTime = DateTimeUtils.getDateTimeString() +// } +// } + // TODO: 测试数据----------------------------⬆️ MyApp.plateList = list } diff --git a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt index cf66db1..9725944 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -248,21 +248,23 @@ class LoginByFaceActivity : BaseActivity(), */ private fun openPlate(userId: String?) { getPlateData { items -> - Log.d(TAG, "openPlate: ${Gson().toJson(items)}") + Log.d(TAG, "openPlate: items:${Gson().toJson(items)}") var item = items.firstOrNull { it.faceId == userId } + Log.d(TAG, "openPlate: item1:${item}") if (item != null) { //餐盘已取 ToastUtils.showToast("您已拿过餐盘!") return@getPlateData } - // 未查询到当前用户 - item = items.firstOrNull { it.plateNumber.isNullOrEmpty().not() } + // 未查询到当前用户,查询第一个未绑定的餐盘 + item = items.firstOrNull { it.plateNumber.isNullOrEmpty().not() && it.faceId.isNullOrBlank() } + Log.d(TAG, "openPlate: item2:${item}") if (item == null) { //暂无餐盘 ToastUtils.showToast("暂无餐盘,请联系管理人员!") return@getPlateData } - // TODO: 待定如何在设置页面显示plateNumber,可以增加字段处理 + Log.d(TAG, "openPlate: item3:${item}") item.faceId = userId item.updateTime = DateTimeUtils.getDateTimeString() //打开柜子 @@ -426,8 +428,7 @@ class LoginByFaceActivity : BaseActivity(), return } binding.dualCameraFaceRectView.clearFaceInfo() - val facePreviewInfoList: MutableList? = - recognizeViewModel.onPreviewFrame(nv21, true) + facePreviewInfoList = recognizeViewModel.onPreviewFrame(nv21, true) if (facePreviewInfoList != null && rgbFaceRectTransformer != null) { drawPreviewInfo(facePreviewInfoList) } @@ -481,12 +482,10 @@ class LoginByFaceActivity : BaseActivity(), * * @param facePreviewInfoList RGB画面的实时人脸信息 */ - private fun drawPreviewInfo(facePreviewInfoList: MutableList) { + private fun drawPreviewInfo(facePreviewInfoList: MutableList?) { if (rgbFaceRectTransformer != null) { - val rgbDrawInfoList: MutableList? = recognizeViewModel.getDrawInfo( - facePreviewInfoList, - LivenessType.RGB, - openRectInfoDraw + val rgbDrawInfoList: MutableList? = recognizeViewModel.getDrawInfo( + facePreviewInfoList, LivenessType.RGB, openRectInfoDraw ) // 识别成功 binding.dualCameraFaceRectView.drawRealtimeFaceInfo(rgbDrawInfoList) @@ -561,6 +560,10 @@ class LoginByFaceActivity : BaseActivity(), private fun collectFace() { //toast("currentUserId=$currentUserId") + if (facePreviewInfoList.isNullOrEmpty()) { + ToastUtils.showToast("未检测到人脸信息") + return + } if (currentUserId != null) { ToastUtils.showToast("您已采集过人脸信息") return @@ -607,7 +610,7 @@ class LoginByFaceActivity : BaseActivity(), } } - + private var facePreviewInfoList: MutableList?=null private var userFaceInfo: UserFaceInfo? = null private var countDownJob: Job? = null private var job: Job? = null