取盘优化

This commit is contained in:
mazengfei
2026-01-15 11:39:13 +08:00
parent aadba7efd5
commit ab58651733
2 changed files with 31 additions and 13 deletions
@@ -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<ActivityDeviceInitBinding>() {
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
}
@@ -248,21 +248,23 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
*/
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<ActivityLoginFaceBinding>(),
return
}
binding.dualCameraFaceRectView.clearFaceInfo()
val facePreviewInfoList: MutableList<FacePreviewInfo?>? =
recognizeViewModel.onPreviewFrame(nv21, true)
facePreviewInfoList = recognizeViewModel.onPreviewFrame(nv21, true)
if (facePreviewInfoList != null && rgbFaceRectTransformer != null) {
drawPreviewInfo(facePreviewInfoList)
}
@@ -481,12 +482,10 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
*
* @param facePreviewInfoList RGB画面的实时人脸信息
*/
private fun drawPreviewInfo(facePreviewInfoList: MutableList<FacePreviewInfo?>) {
private fun drawPreviewInfo(facePreviewInfoList: MutableList<FacePreviewInfo>?) {
if (rgbFaceRectTransformer != null) {
val rgbDrawInfoList: MutableList<DrawInfo?>? = recognizeViewModel.getDrawInfo(
facePreviewInfoList,
LivenessType.RGB,
openRectInfoDraw
val rgbDrawInfoList: MutableList<DrawInfo>? = recognizeViewModel.getDrawInfo(
facePreviewInfoList, LivenessType.RGB, openRectInfoDraw
)
// 识别成功
binding.dualCameraFaceRectView.drawRealtimeFaceInfo(rgbDrawInfoList)
@@ -561,6 +560,10 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
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<ActivityLoginFaceBinding>(),
}
}
private var facePreviewInfoList: MutableList<FacePreviewInfo>?=null
private var userFaceInfo: UserFaceInfo? = null
private var countDownJob: Job? = null
private var job: Job? = null