feat(business): 增加餐具重量配置及扣减功能

- 在 BusinessFragment 中添加实时秤重读取及餐具重量持久化存储
- 在界面显示餐具重量标签,配置时显示当前保存值
- 定义全局常量 KEY_DISH_WEIGHT 用于存储餐具重量
- 在 MainActivity 内部方法添加获取配置餐具重量接口
- 修改订餐逻辑,取餐提交时自动从就餐重量中扣减餐具重量
- 在主界面相关订单及计价逻辑中扣减餐具重量影响份数和价格
- 调整重量监听及订单添加部分逻辑以应用净重计算
- 更新定时任务延迟时间,提高效率和响应速度
This commit is contained in:
mazengfei
2026-07-24 15:56:08 +08:00
parent 76f60f8ee7
commit 43f5434cbd
5 changed files with 52 additions and 9 deletions
@@ -963,6 +963,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
return eatNum;
}
/**
* 读取已配置的餐具重量(克)。
* 用于取餐提交时从就餐重量中扣减,默认 0 表示未配置、不扣减。
*/
internal fun getDishWeight(): Int {
return SPUtil.getInstance().get(GlobalKey.KEY_DISH_WEIGHT, 0) ?: 0
}
private var foodOrderId: String = ""
private var isExist = false
fun addBackEventListener() {
@@ -1039,6 +1047,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
val mealPickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0) ?: 0
//0-计费,1-不计费
val chargeMode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0) ?: 0
// 餐具重量(克),提交就餐数据时从就餐重量中扣减
val dishWeight = getDishWeight()
var foodWeight = 0
var eatWeight = 0
if (chargeMode == 0) {
@@ -1064,6 +1074,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
recognizeWeight - currentWeight
}
}
// 扣减餐具重量(仅影响就餐重量与份数,菜品原始重量 foodWeight 保持不变),不足则归零
val rawEatWeight = eatWeight
eatWeight = (rawEatWeight - dishWeight).coerceAtLeast(0)
log("clickPayButton dishWeight=$dishWeight, rawEatWeight=$rawEatWeight, deductedEatWeight=$eatWeight")
val eatNum = getEatNum(eatWeight.toDouble(), checkedItem!!.specWeight)
createOrder(
foodInfo = checkedItem!!,
@@ -1196,10 +1210,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private val intervalExecutor by lazy { IntervalExecutor() }
private var faceTaskJob: Job? = null
// private val initialDelay = 5 * 60 * 1000L
// private val dealyMillis = 10 * 60 * 1000L
private val initialDelay = 10 * 1000L
private val dealyMillis = 5 * 1000L
private val initialDelay = 60 * 1000L
private val dealyMillis = 30 * 1000L
// private var taskPageNo = 1
fun startFaceTask() {