优化设备配置提交菜品页面数据刷新和显示位置、未配置调料增加提示

This commit is contained in:
2025-09-16 14:35:49 +08:00
parent e269e75bc6
commit 7ac095c56e
20 changed files with 716 additions and 1468 deletions
@@ -7,7 +7,9 @@ import android.text.style.AbsoluteSizeSpan
import android.text.style.ForegroundColorSpan
import android.text.style.LineHeightSpan
import android.text.style.StyleSpan
import android.util.Log
import android.util.SparseIntArray
import android.widget.FrameLayout
import android.widget.TextView
import androidx.core.graphics.toColorInt
import androidx.core.view.forEach
@@ -137,22 +139,24 @@ class DeviceConfigActivity : BaseActivity() {
private fun addWeighListener() {
WeightUtil.addWeightListener { address, state, weight ->
// Log.d(TAG, "addWeighListener: address=$address,stat=$state,weight=$weight")
weightArray.put(address, weight)
val item = seasoningItems.firstOrNull { address == addressArray[it.sort]}
item?.useWeight = weight.toDouble()
setGridData(seasoningItems)
item?.let {
it.useWeight = weight.toDouble()
updateGridData(it)
}
//setGridData(seasoningItems)
}
}
private var seasoningItems = mutableListOf<SeasoningEntity>()
private fun addGridItemListener() {
binding.include.root.forEach { child ->
(child as TextView).run {
clickWithDebounce {
val sort = tag.toString().toInt()
val entity = seasoningItems.firstOrNull { it.sort == sort } ?: SeasoningEntity()
clickGridItem(sort, entity)
}
child.clickWithDebounce {
val sort = child.tag.toString().toInt()
val entity = seasoningItems.firstOrNull { it.sort == sort } ?: SeasoningEntity()
clickGridItem(sort, entity)
}
}
}
@@ -224,11 +228,18 @@ class DeviceConfigActivity : BaseActivity() {
val gridLayout = binding.include.root
list.forEach { entity ->
val tag = entity.sort.toString()
val child = gridLayout.findViewWithTag<TextView>(tag)
TextCellAdapter.loadCell(child, entity)
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout , entity)
}
}
private fun updateGridData(entity:SeasoningEntity) {
val gridLayout = binding.include.root
val tag = entity.sort.toString()
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout , entity)
}
private fun clickGridItem(sort: Int, entity: SeasoningEntity) {
val currentAddress = AddressUtil.getWeighAddressArray().get(sort)
// val seasoningEntity = list.first{it.sort == sort}
@@ -242,8 +253,10 @@ class DeviceConfigActivity : BaseActivity() {
entity.materialType = 3
entity.sort = sort
saveSeasoning(entity) {
val child = binding.include.root.findViewWithTag<TextView>(sort.toString())
TextCellAdapter.loadCell(child, entity)
val tag = sort.toString()
val gridLayout = binding.include.root
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout, entity)
}
}
}
@@ -1,246 +0,0 @@
//package com.shuwei.dish.match.ui
//
//import android.graphics.Typeface
//import android.os.Bundle
//import android.text.SpannableStringBuilder
//import android.text.style.AbsoluteSizeSpan
//import android.text.style.ForegroundColorSpan
//import android.text.style.LineHeightSpan
//import android.text.style.StyleSpan
//import androidx.core.graphics.toColorInt
//import androidx.lifecycle.ViewModelProvider
//import com.shuwei.dish.match.adapter.SeasoningCellTool
//import com.shuwei.dish.match.base.BaseActivity
//import com.shuwei.dish.match.base.BaseApp
//import com.shuwei.dish.match.databinding.ActivityDeviceSettingBinding
//import com.shuwei.dish.match.databinding.LayoutFoodRemindBinding
//import com.shuwei.dish.match.db.AppRepository
//import com.shuwei.dish.match.dialog.CommonDialog
//import com.shuwei.dish.match.entity.SeasoningEntity
//import com.shuwei.dish.match.entity.ResetReasoningRecord
//import com.shuwei.dish.match.utils.DataUtil
//import com.shuwei.dish.match.utils.JsonAssetsLoader
//import com.shuwei.dish.match.utils.MultiClickDetector
//import com.shuwei.dish.match.utils.WeightUtil
//import com.shuwei.dish.match.utils.ext.appendText
//import com.shuwei.dish.match.utils.ext.buildSpannableString
//import com.shuwei.dish.match.utils.ext.dp
//import com.shuwei.dish.match.utils.ext.startActivity
//import com.shuwei.dish.match.utils.ext.toast
//import com.shuwei.dish.match.utils.ext.visible
//import com.shuwei.dish.match.viewmodel.AppViewModel
//import com.shuwei.dish.match.viewmodel.factory.AppFactory
//import com.shuwei.dish.match.R
//
//class DeviceSettingActivity : BaseActivity() {
//
// companion object {
//
// const val TAG = "DeviceSettingActivity"
//
// const val COOK_MODE = "cookMode"
//
// val modeList = listOf<ModeBean>(
// ModeBean("制作模式", "菜品快速制作,记录熟重"),
// ModeBean("采样模式", "菜品快速制作,记录熟重"),
// ModeBean("品控模式", "菜品快速制作,记录熟重")
// )
// }
//
// data class ModeBean(
// var modeName: String,
// var modeDesc: String
// )
//
// private lateinit var binding: ActivityDeviceSettingBinding
//
// private lateinit var appViewModel: AppViewModel
//
// private var cookMode: Int = 0
//
// override fun onCreate(savedInstanceState: Bundle?) {
// super.onCreate(savedInstanceState)
// binding = ActivityDeviceSettingBinding.inflate(layoutInflater)
// setContentView(binding.root)
// cookMode = intent.getIntExtra(COOK_MODE, 0)
// initViewModel()
// setHeaderBackground()
// setTitleBar(titleBarAction = {
// it.visible()
// }, titleAction = {
// it.text = "设备配置"
// }, rightIconActon = {
// it.visible()
// it.alpha = 0.0F
// it.setImageResource(R.drawable.ic_setting)
// it.setOnClickListener {
//// appViewModel.clearAllSeasoning{
//// loadSeasoning()
//// }
// detector.setOnDelayedMultiClickListener(it) {
// defaultDataSettingDialog()
// }
// }
// })
//
// loadQualitySpan(isEnable = false)
// when (cookMode) {
// 1 -> {
// binding.rbModeCook.isChecked = true
// binding.rbModeSampling.isChecked = false
// loadCookSpan(isClicked = true)
// loadSamplingSpan()
// }
//
// 2 -> {
// binding.rbModeCook.isChecked = false
// binding.rbModeSampling.isChecked = true
// loadCookSpan()
// loadSamplingSpan(isClicked = true)
// }
//
// else -> 0
// }
//
// binding.rbModeCook.setOnClickListener {
// binding.rbModeCook.isChecked = true
// binding.rbModeSampling.isChecked = false
// loadCookSpan(isClicked = true)
// loadSamplingSpan()
// startActivity<SelectDishActivity> { }
// finish()
// }
// binding.rbModeSampling.setOnClickListener {
// binding.rbModeCook.isChecked = false
// binding.rbModeSampling.isChecked = true
// loadCookSpan()
// loadSamplingSpan(isClicked = true)
// startActivity<SamplingListActivity> { }
// finish()
// }
// }
//
// val detector = MultiClickDetector(targetCount = 10, intervalMs = 800)
//
// private fun defaultDataSettingDialog() {
// val remindBinding = LayoutFoodRemindBinding.inflate(layoutInflater)
// remindBinding.tvDialogTitle.text = "温馨提示"
// remindBinding.tvDialogContent.text = "您好,使用默认配置作为您的调料数据,则已有配置将被清除,确认吗?"
// CommonDialog(this).apply {
// messageView = remindBinding.root
// leftText = "取消"
// rightText = "确认"
// onLeftClick = { dismiss() }
// onRightClick = {
// dismiss()
// resetList()
// }
// onDismiss = { hideStatusBar() }
// }.show()
// }
//
// private fun resetList() {
// runCatching {
// val record = JsonAssetsLoader.parseJsonFromAssets<ResetReasoningRecord>(this,"default_seasoning_list.json")
// val addressArray = DataUtil.getWeighAddressArray()
// val weightArray = WeightUtil.weightArray
// appViewModel.clearAllSeasoning {
// record?.list?.forEach { entity ->
// entity.useWeight = weightArray[addressArray[entity.sort]].toDouble()
// appViewModel.saveSeasoning(entity){}
// }
// loadSeasoning()
// }
// }.onFailure { it.printStackTrace() }
// }
//
// private fun initViewModel() {
// val db = BaseApp.instance!!.database
// val factory =
// AppFactory(AppRepository(db.appDao()))
// appViewModel =
// ViewModelProvider(this, factory)[AppViewModel::class.java]
// }
//
// override fun onResume() {
// super.onResume()
// loadSeasoning()
// }
//
// private fun loadSeasoning() {
// appViewModel.loadSeasoning { it ->
// SeasoningCellTool.loadData(
// activity = this,
// initList = it,
// recyclerView = binding.rvSeasoning,
// tvCell = binding.tvRightBottomCell,
// pageType = 1
// )
// }
// }
//
//
// private fun loadQualitySpan(isClicked: Boolean = false, isEnable: Boolean = true) {
// binding.rbModeQuality.text =
// getModeTextSpan(
// topText = modeList[2].modeName,
// bottomText = modeList[2].modeDesc,
// topColor = if (isEnable) if (isClicked) "#00BC71" else "#000000" else "#B4B4B4",
// bottomColor = if (isEnable) "#8B8B8B" else "#B4B4B4"
// )
// }
//
// private fun loadSamplingSpan(isClicked: Boolean = false, isEnable: Boolean = true) {
// binding.rbModeSampling.text =
// getModeTextSpan(
// topText = modeList[1].modeName,
// bottomText = modeList[1].modeDesc,
// topColor = if (isEnable) if (isClicked) "#00BC71" else "#000000" else "#B4B4B4",
// bottomColor = if (isEnable) "#8B8B8B" else "#B4B4B4"
// )
// }
//
// private fun loadCookSpan(isClicked: Boolean = false, isEnable: Boolean = true) {
// binding.rbModeCook.text =
// getModeTextSpan(
// topText = modeList[0].modeName,
// bottomText = modeList[0].modeDesc,
// topColor = if (isEnable) if (isClicked) "#00BC71" else "#000000" else "#B4B4B4",
// bottomColor = if (isEnable) "#8B8B8B" else "#B4B4B4"
// )
// }
//
// private fun getModeTextSpan(
// topText: String,
// topColor: String,
// bottomText: String,
// bottomColor: String
// ): SpannableStringBuilder {
//
//
// return buildSpannableString {
// appendText(
// topText,
// ForegroundColorSpan(topColor.toColorInt()),
// StyleSpan(Typeface.BOLD),
// AbsoluteSizeSpan(36, true),
// LineHeightSpan { text, start, end, spanstartv, v, fm ->
// fm.descent += 10.dp // 增加行间距
// }
// )
// append("\n")
// appendText(
// bottomText,
// ForegroundColorSpan(bottomColor.toColorInt()),
// AbsoluteSizeSpan(26, true)
// )
// }
// }
//
// fun saveSeasoning(entity: SeasoningEntity) {
// appViewModel.saveSeasoning(entity) {
// toast("保存成功")
// }
// }
//
//}
@@ -143,16 +143,26 @@ class HomeActivity : BaseActivity() {
}
private fun goSampling() {
appViewModel.countCookFood(cookMode = 1) {
if (it > 0) {
appViewModel.loadSeasoning {
if (it.isEmpty()) {
//无调料信息打开采样历史列表页面,点击设置配置调料信息
startActivity<SamplingListActivity>()
finish()
return@countCookFood
return@loadSeasoning
}
startActivity<DishSamplingActivity> {
putExtra(DishSamplingActivity.PAGE_FROM, DishSamplingActivity.HOME)
appViewModel.countCookFood(cookMode = 1) { count ->
if (count > 0) {
//有烹饪中数据打开采样历史列表页面
startActivity<SamplingListActivity>()
finish()
return@countCookFood
}
//无烹饪数据打开新增采样页面
startActivity<DishSamplingActivity> {
putExtra(DishSamplingActivity.PAGE_FROM, DishSamplingActivity.HOME)
}
finish()
}
finish()
}
}
@@ -108,16 +108,26 @@ class InitActivity : BaseActivity() {
}
private fun goSampling() {
appViewModel.countCookFood(cookMode = 1) {
if (it > 0) {
appViewModel.loadSeasoning {
if (it.isEmpty()) {
//无调料信息打开采样历史列表页面,点击设置配置调料信息
startActivity<SamplingListActivity>()
finish()
return@countCookFood
return@loadSeasoning
}
startActivity<DishSamplingActivity> {
putExtra(DishSamplingActivity.PAGE_FROM, DishSamplingActivity.HOME)
appViewModel.countCookFood(cookMode = 1) { count ->
if (count > 0) {
//有烹饪中数据打开采样历史列表页面
startActivity<SamplingListActivity>()
finish()
return@countCookFood
}
//无烹饪数据打开新增采样页面
startActivity<DishSamplingActivity> {
putExtra(DishSamplingActivity.PAGE_FROM, DishSamplingActivity.HOME)
}
finish()
}
finish()
}
}
@@ -16,6 +16,7 @@ import com.shuwei.dish.match.base.BaseApp
import com.shuwei.dish.match.databinding.ActivitySamplingBinding
import com.shuwei.dish.match.databinding.LayoutEmptyViewBinding
import com.shuwei.dish.match.db.AppRepository
import com.shuwei.dish.match.dialog.DialogTool
import com.shuwei.dish.match.entity.CookFoodEntity
import com.shuwei.dish.match.entity.FoodRecord
import com.shuwei.dish.match.entity.FoodRecordBean
@@ -64,9 +65,6 @@ class SamplingListActivity : BaseActivity() {
it.visible()
it.setImageResource(R.drawable.ic_setting)
it.setOnClickListener {
// startActivity<DeviceSettingActivity> {
// putExtra(DeviceSettingActivity.COOK_MODE, 2)
// }
startActivity<DeviceConfigActivity> {
putExtra(DeviceConfigActivity.COOK_MODE, 2)
}
@@ -116,25 +114,30 @@ class SamplingListActivity : BaseActivity() {
SamplingAdapter(list = list).apply {
isStateViewEnable = true
setOnItemClickListener { adapter, view, position ->
val item = list[position]
if (item.isCooking) {
//烹饪中,跳到称熟重页面
// context.startActivity<SubmitDishActivity> {
context.startActivity<SubmitFoodActivity> {
putExtra(
SubmitFoodActivity.FOOD_ITEM,
item as Serializable
)
}
return@setOnItemClickListener
}
context.startActivity<DishSamplingActivity> {
putExtra(DishSamplingActivity.FOOD_NAME, item.foodName)
judgeDeviceConfig {
onItemClick(position)
}
}
}
}
private fun onItemClick(position:Int) {
val item = list[position]
if (item.isCooking) {
//烹饪中,跳到称熟重页面
startActivity<SubmitFoodActivity> {
putExtra(
SubmitFoodActivity.FOOD_ITEM,
item as Serializable
)
}
return
}
startActivity<DishSamplingActivity> {
putExtra(DishSamplingActivity.FOOD_NAME, item.foodName)
}
}
@SuppressLint("NotifyDataSetChanged")
private fun initRecyclerView() {
binding.rvSamplingList.run {
@@ -163,7 +166,9 @@ class SamplingListActivity : BaseActivity() {
@SuppressLint("ClickableViewAccessibility")
private fun addViewListener() {
binding.btnAddSampling.setOnClickListener {
startActivity<DishSamplingActivity>()
judgeDeviceConfig{
startActivity<DishSamplingActivity>()
}
}
binding.refreshLayout.setOnRefreshListener {
pageNo = 1
@@ -172,16 +177,6 @@ class SamplingListActivity : BaseActivity() {
binding.refreshLayout.setOnLoadMoreListener {
getSamplingList()
}
binding.dishRadioGroup.setOnCheckedChangeListener { group, checkedId ->
//Log.d(TAG, "addViewListener: checkId=${if (checkedId == R.id.rbSamplingCooking) "cooking" else "finish"}")
// if (!group.isPressed) return@setOnCheckedChangeListener
// if (checkedId == R.id.rbSamplingCooking) {
// refreshLocalData()
// } else {
// pageNo = 1
// getSamplingList()
// }
}
binding.rbSamplingCooking.setOnClickListener {
// Log.d(TAG, "addViewListener: cooking:${binding.rbSamplingCooking.isChecked}")
@@ -223,32 +218,7 @@ class SamplingListActivity : BaseActivity() {
HttpUtil.get(
url = sb.toString(),
doSuccess = {
binding.refreshLayout.run {
setEnableRefresh(true)
}
delayDismissLoading()
finishRefresh()
val json = it.toJsonString()
val recordBean: FoodRecordBean? = json.toObject<FoodRecordBean>()
if (recordBean == null || recordBean.records.isNullOrEmpty()) {
//toast("暂未搜索到相关菜品信息")
if (pageNo == 1) {
loadEmptyView()
}
return@get
}
val records = recordBean.records
if (pageNo == 1) {
list.clear()
}
list.addAll(records!!)
dishAdapter.notifyDataSetChanged()
val isLoadMoreEnable = records.size >= pageSize
binding.refreshLayout.setEnableLoadMore(isLoadMoreEnable)
binding.refreshLayout.setEnableRefresh(true)
if (isLoadMoreEnable) {
pageNo++
}
loadDishList(it)
}, doFailure = { code, msg ->
binding.refreshLayout.run {
setEnableRefresh(true)
@@ -361,4 +331,67 @@ class SamplingListActivity : BaseActivity() {
}
}
@SuppressLint("NotifyDataSetChanged")
private fun loadDishList(data: Any) {
binding.refreshLayout.run {
setEnableRefresh(true)
}
delayDismissLoading()
finishRefresh()
val json = data.toJsonString()
val recordBean: FoodRecordBean? = json.toObject<FoodRecordBean>()
if (recordBean == null || recordBean.records.isNullOrEmpty()) {
//toast("暂未搜索到相关菜品信息")
if (pageNo == 1) {
loadEmptyView()
}
return
}
val records = recordBean.records
if (pageNo == 1) {
list.clear()
}
list.addAll(records!!)
dishAdapter.notifyDataSetChanged()
val isLoadMoreEnable = records.size >= pageSize
binding.refreshLayout.setEnableLoadMore(isLoadMoreEnable)
binding.refreshLayout.setEnableRefresh(true)
if (isLoadMoreEnable) {
pageNo++
}
}
private var configFinished = false
fun judgeDeviceConfig(block:()-> Unit) {
if (configFinished) {
block()
return
}
appViewModel.loadSeasoning {
if (it.isEmpty()) {
showDeviceConfigDialog()
return@loadSeasoning
}
configFinished = true
block()
}
}
private fun showDeviceConfigDialog() {
DialogTool.load(
context = this,
title = "温馨提示",
content = "请先在设备配置页面进行调料设置",
leftBtnText = "取消",
rightBtnText = "去设置",
leftBtnClick = {},
rightBtnClick = {
startActivity<DeviceConfigActivity> {
putExtra(DeviceConfigActivity.COOK_MODE, 2)
}
}
)
}
}
@@ -11,6 +11,7 @@ import com.shuwei.dish.match.base.BaseActivity
import com.shuwei.dish.match.base.BaseApp
import com.shuwei.dish.match.databinding.ActivitySelectDishBinding
import com.shuwei.dish.match.db.AppRepository
import com.shuwei.dish.match.dialog.DialogTool
import com.shuwei.dish.match.entity.CookFoodEntity
import com.shuwei.dish.match.ui.fragment.DishListFragment
import com.shuwei.dish.match.utils.KeyboardUtil
@@ -54,9 +55,6 @@ class SelectDishActivity : BaseActivity() {
it.visible()
it.setImageResource(R.drawable.ic_setting)
it.setOnClickListener {
// startActivity<DeviceSettingActivity> {
// putExtra(DeviceSettingActivity.COOK_MODE, 1)
// }
startActivity<DeviceConfigActivity> {
putExtra(DeviceConfigActivity.COOK_MODE, 1)
}
@@ -81,14 +79,47 @@ class SelectDishActivity : BaseActivity() {
appViewModel.getCookFoodList(cookMode = 0, dinnerType = dinnerType) { action(it) }
}
private var configFinished = false
fun judgeDeviceConfig(block: () -> Unit) {
if (configFinished) {
block()
return
}
appViewModel.loadSeasoning {
if (it.isEmpty()) {
showDeviceConfigDialog()
return@loadSeasoning
}
configFinished = true
block()
}
}
private fun showDeviceConfigDialog() {
DialogTool.load(
context = this,
title = "温馨提示",
content = "请先在设备配置页面进行调料设置",
leftBtnText = "取消",
rightBtnText = "去设置",
leftBtnClick = {},
rightBtnClick = {
startActivity<DeviceConfigActivity> {
putExtra(DeviceConfigActivity.COOK_MODE, 1)
}
}
)
}
fun addViewListener() {
binding.dishRadioGroup.setOnCheckedChangeListener { _, checkedId ->
dinnerType = when (checkedId) {
R.id.rbBreakfast -> "1"
R.id.rbLunch -> "2"
R.id.rbDinner -> "3"
else -> "1"
}
dinnerType = when (checkedId) {
R.id.rbBreakfast -> "1"
R.id.rbLunch -> "2"
R.id.rbDinner -> "3"
else -> "1"
}
loadFragment()
}
binding.etInputDish.addOnActionSearchListener {
@@ -142,10 +173,10 @@ class SelectDishActivity : BaseActivity() {
if (lastDinnerType == "1" || lastDinnerType == "2" || lastDinnerType == "3") {
fragmentList[lastDinnerType.toInt() - 1].getDishList(1, lastDinnerType)
}
when(lastDinnerType) {
"1"->binding.dishRadioGroup.check(R.id.rbBreakfast)
"2"->binding.dishRadioGroup.check(R.id.rbLunch)
"3"->binding.dishRadioGroup.check(R.id.rbDinner)
when (lastDinnerType) {
"1" -> binding.dishRadioGroup.check(R.id.rbBreakfast)
"2" -> binding.dishRadioGroup.check(R.id.rbLunch)
"3" -> binding.dishRadioGroup.check(R.id.rbDinner)
}
}.onFailure {
it.printStackTrace()
@@ -1,429 +0,0 @@
//package com.shuwei.dish.match.ui
//
//import android.annotation.SuppressLint
//import android.os.Bundle
//import android.util.Log
//import android.util.SparseArray
//import android.util.SparseIntArray
//import androidx.core.util.forEach
//import androidx.lifecycle.ViewModelProvider
//import com.aithings.Weigher
//import com.google.gson.reflect.TypeToken
//import com.shuwei.dish.match.R
//import com.shuwei.dish.match.adapter.SeasoningCellTool
//import com.shuwei.dish.match.adapter.TextCellAdapter
//import com.shuwei.dish.match.base.BaseActivity
//import com.shuwei.dish.match.base.BaseApp
//import com.shuwei.dish.match.databinding.ActivitySubmitDishBinding
//import com.shuwei.dish.match.db.AppRepository
//
//import com.shuwei.dish.match.entity.CookFoodEntity
//import com.shuwei.dish.match.entity.CookFoodGoodsEntity
//import com.shuwei.dish.match.entity.FoodRecord
//import com.shuwei.dish.match.entity.SeasoningEntity
//import com.shuwei.dish.match.http.HttpUtil
//import com.shuwei.dish.match.http.UrlConfig
//import com.shuwei.dish.match.utils.DataUtil
//import com.shuwei.dish.match.utils.WeightUtil
//import com.shuwei.dish.match.utils.ext.clickWithDebounce
//import com.shuwei.dish.match.utils.ext.gone
//import com.shuwei.dish.match.utils.ext.startActivity
//import com.shuwei.dish.match.utils.ext.toJsonString
//import com.shuwei.dish.match.utils.ext.toType
//import com.shuwei.dish.match.utils.ext.toast
//import com.shuwei.dish.match.utils.ext.visible
//import com.shuwei.dish.match.viewmodel.AppViewModel
//import com.shuwei.dish.match.viewmodel.factory.AppFactory
//
//@SuppressLint("UseSparseArrays")
//class SubmitDishActivity : BaseActivity() {
//
// companion object {
// const val TAG = "SubmitDishActivity"
// const val FOOD_ITEM = "foodItem"
// const val GOODS_LIST = "goodsList"
// }
//
// private lateinit var binding: ActivitySubmitDishBinding
//
// private var food: FoodRecord? = null
// private var goodsList: MutableList<CookFoodGoodsEntity>? = null
//
// private var isCooking = false
//
// private val cookFoodEntity by lazy {
// CookFoodEntity().apply {
// food?.let {
// foodId = it.foodId ?: ""
// foodName = it.foodName
// cookMode = it.cookMode
// dinnerType = it.dinnerType
// }
// canteenId = BaseApp.canteenId
// }
// }
//
// @Suppress("unchecked_cast", "DEPRECATION")
// override fun onCreate(savedInstanceState: Bundle?) {
// super.onCreate(savedInstanceState)
// binding = ActivitySubmitDishBinding.inflate(layoutInflater)
// setContentView(binding.root)
// initViewModel()
// setHeaderBackground()
// intent.extras?.apply {
// food = getSerializable(FOOD_ITEM) as FoodRecord?
// Log.d(TAG, "onCreate: cookMode=${food?.cookMode}")
// isCooking = food?.isCooking ?: false
// if (isCooking) {
// //烹饪中,从本地查询数据
// loadSeasoningFromLocal()
// } else {
// //非烹饪中,从菜品主辅材配置页面带入数据
// goodsList = getSerializable(GOODS_LIST) as MutableList<CookFoodGoodsEntity>?
// }
// }
// setTitleBar(titleBarAction = {
// it.visible()
// }, titleAction = {
// it.text = food?.foodName
// }, rightIconActon = {
// it.gone()
// it.setImageResource(R.drawable.ic_setting)
// it.setOnClickListener {
// //startActivity<DeviceSettingActivity>()
// }
// })
// addViewListener()
// }
//
// private fun loadSeasoningFromLocal() {
// appViewModel.getCookFoodGoodsList(foodId = food!!.foodId!!, cookMode = food!!.cookMode) { it ->
// goodsList = mutableListOf()
// //设置主辅材数据
// goodsList?.addAll(it.filter { goods -> goods.materialType != 3 })
//
// //获取调料数据并展示
// val filterList: List<SeasoningEntity>? = it.filter { goods -> goods.materialType == 3 }
// .map { entity ->
// SeasoningEntity().also { se ->
// se.goodsId = entity.goodsId
// se.goodsName = entity.goodsName
// se.goodsOrRelationCode = entity.goodsOrRelationCode
// se.relateionType = entity.relateionType
// se.materialType = entity.materialType
// se.allEdible = entity.allEdible
// se.useWeight = entity.useWeight
// se.popularName = entity.popularName
// se.canteenId = entity.canteenId
// se.relateionType_dictText = entity.relateionType_dictText
// se.foodId = entity.foodId
// se.sort = entity.sort
// se.pageType = 0
// }
// }
// filterList?.toMutableList()?.let { cellData ->
// loadTextCell(cellData)
// }
// }
// }
//
//
// private lateinit var seasoningList: List<SeasoningEntity>
// private var isFirstSave = true
// fun updateSeasoningList(list: MutableList<SeasoningEntity>) {
// if (isFirstSave) {
// val json = list.toJsonString()
// val typeToken = object : TypeToken<List<SeasoningEntity>>() {}
// seasoningList = json.toType(typeToken = typeToken)
// isFirstSave = false
// }
// }
//
// private val seasoningArray by lazy {
// SparseArray<Double>()
// }
//
//
// private val firstGoodsArray by lazy {
// SparseArray<Int>()
// }
//
// private fun addViewListener() {
// addWeightListener()
// binding.btnWeightClear.setOnClickListener { Weigher.tareTwo(AddressUtil.TWO) }
//
// binding.btnCook.clickWithDebounce {
// cook()
// }
//
// binding.btnSubmit.clickWithDebounce {
// if (cookFoodEntity.foodWeight <= 0.toDouble()) {
// toast("未识别到菜品熟重")
// return@clickWithDebounce
// }
// submit()
// }
// }
//
// private fun addWeightListener() {
// WeightUtil.addWeightListener(getWeight = { address, state, weight ->
// if (address == 1) {
// cookFoodEntity.foodWeight = weight.toDouble()
// binding.tvTotalWeight.text = "${weight / 1000f}"
// }
//// if (state != SensorScale.STATE_STABLE) {
//// return@addWeightListener
//// }
// val firstWeight = firstGoodsArray.get(address, null)
//// if (firstWeight != weight) {
//// Log.d(
//// TAG,
//// "addViewListener: state=$state,address=$address,weight=$weight,firstWeight=$firstWeight"
//// )
//// }
// if (firstWeight == null) {
// //未设置数据
// firstGoodsArray.put(address, weight)
// return@addWeightListener
// }
//// val cookingWeight =
//// if (isCooking && seasoningList.isNullOrEmpty().not())
//// seasoningList?.get(weightRelateArray2.get(address))?.weight ?: 0
//// else 0
//// var realUseWeight = firstWeight - weight + cookingWeight
// var realUseWeight = firstWeight - weight
// realUseWeight = if (realUseWeight > 0) realUseWeight else 0
//// Log.d(
//// TAG,
//// "addViewListener: state=$state,address=$address,总共使用重量:$realUseWeight"
//// )
// seasoningArray.put(address, realUseWeight.toDouble())
//
// refreshSeasoningWeight()
// })
// }
//
// @SuppressLint("NotifyDataSetChanged")
// private fun refreshSeasoningWeight() {
// binding.rvSeasoning.adapter?.let { adapter ->
// if (adapter is TextCellAdapter) {
// adapter.list.let { items ->
// weightRelateArray.forEach { key, value ->
// items[key].useWeight =
// (seasoningArray.get(value) ?: 0.toDouble()) + getCookingSeasoning(value)
// }
// }
// adapter.notifyDataSetChanged()
// TextCellAdapter.loadCell(binding.tvRightBottomCell, adapter.list[14])
// }
// }
// }
//
// private fun getCookingSeasoning(address: Int): Double {
// if (isCooking.not()) return 0.toDouble()
// if (seasoningList.isEmpty()) return 0.toDouble()
// val weight = seasoningList[weightRelateArray2.get(address)].useWeight ?: 0.toDouble()
// //Log.i(TAG, "getCookingSeasoning: weight[${address}]=$weight,seasoningList=${seasoningList.toJsonString()}")
// return weight
// }
//
// private val weightRelateArray2 by lazy {
// SparseIntArray().apply {
// weightRelateArray.forEach { key, value ->
// if (value == 3) {
// put(3, 14)
// } else {
// put(value, key)
// }
// }
// }
// }
//
// private val weightRelateArray by lazy {
// DataUtil.getWeighAddressArray()
// }
//
//// private fun prepareData(acton: () -> Unit) {
////
//// //只有制作和采样列表页面才能进入设置页面,提交页面无法进行设置,不存在调料数据被修改的问题
//// val seasoningJson = realSeasoningData.toJsonString()
//// val typeToken = object : TypeToken<List<CookFoodGoodsEntity>>() {}
//// val tempSeasoningList = seasoningJson.toType(typeToken = typeToken)
//// goodsList?.addAll(tempSeasoningList)
//// acton()
////
//// }
//
// private fun cook() {
// if (food == null || goodsList.isNullOrEmpty()) {
// toast("未获取到菜品或构成信息")
// return
// }
// val realSeasoningData = (binding.rvSeasoning.adapter as TextCellAdapter).list
// if (realSeasoningData.isEmpty() && !isCooking) {
// toast("未获取到调料信息")
// return
// }
// if (realSeasoningData.isNotEmpty()&&realSeasoningData[0].goodsId.isNullOrBlank()) {
// toast("还未设置调料信息,请去设置页面操作")
// return
// }
// showLoading()
// //只有制作和采样列表页面才能进入设置页面,提交页面无法进行设置,不存在调料数据被修改的问题
// val seasoningJson = realSeasoningData.toJsonString()
// val typeToken = object : TypeToken<List<CookFoodGoodsEntity>>() {}
// val tempSeasoningList = seasoningJson.toType(typeToken = typeToken)
// goodsList?.addAll(tempSeasoningList)
// cookFoodEntity.let {
// it.dinnerType = when (it.dinnerType) {
// "早餐" -> "1"
// "午餐" -> "2"
// "晚餐" -> "3"
// else -> it.dinnerType
// }
// }
// val isSamplingData = food!!.cookMode == 1
// if (isSamplingData) {
// //生成临时foodId,解决采样模式没有foodId,无法关联数据的问题
// val tempFoodId = cookFoodEntity.foodId.ifBlank { "${System.currentTimeMillis()}" }
// cookFoodEntity.foodId = tempFoodId
// }
// //全部设置同一foodId
// goodsList?.forEach {
// it.foodId = cookFoodEntity.foodId
// }
// //保存菜品-保存主辅料调料
// appViewModel.saveCookFoodAndGoods(
// cookMode = food!!.cookMode,
// entity = cookFoodEntity,
// list = goodsList,
// onFinish = {
// runOnUiThread {
// dismissLoading()
// jumpPage(isSamplingData, true)
// }
// })
// }
//
// private fun submit() {
// if (food == null || goodsList.isNullOrEmpty()) {
// toast("未获取到菜品或构成信息")
// return
// }
// val realSeasoningData = (binding.rvSeasoning.adapter as TextCellAdapter).list
// if (realSeasoningData.isEmpty() && !isCooking) {
// toast("未获取到调料信息")
// return
// }
// if (realSeasoningData.isNotEmpty()&&realSeasoningData[0].goodsId.isNullOrBlank()) {
// toast("还未设置调料信息,请去设置页面操作")
// return
// }
// showLoading()
// //只有制作和采样列表页面才能进入设置页面,提交页面无法进行设置,不存在调料数据被修改的问题
// val seasoningJson = realSeasoningData.toJsonString()
// val typeToken = object : TypeToken<List<CookFoodGoodsEntity>>() {}
// val tempSeasoningList = seasoningJson.toType(typeToken = typeToken)
// tempSeasoningList.forEach { entity ->
// val realWeight = entity.useWeight ?: 0.toDouble()
// val filterData = goodsList?.firstOrNull { it.goodsId == entity.goodsId }
// //确保重量大于0,且无重复数据
// if (realWeight > 0.toDouble() && filterData == null) {
// goodsList?.add(entity)
// }
// }
//
// cookFoodEntity.let {
// it.stFoodInfoConstituteList = this@SubmitDishActivity.goodsList
// it.dinnerType = when(it.dinnerType) {
// "1" -> "早餐"
// "2" -> "午餐"
// "3" -> "晚餐"
// else -> null
// }
// }
//
// val isSamplingData = food!!.cookMode == 1
// if (isSamplingData) {
// //采样模式没有foodId
// cookFoodEntity.foodId = ""
// goodsList?.forEach { it.foodId = "" }
// }
// val json = cookFoodEntity.toJsonString()
// Log.d(TAG, "submit: json=$json")
// HttpUtil.postJson(
// url = UrlConfig.SUBMIT_DISH,
// json = json,
// doSuccess = {
// Log.d(TAG, "submit: postJson=$it")
// submitSuccess(isSamplingData)
// }, doFailure = { code, msg ->
// Log.d(TAG, "submit: postJson:code=$code,msg=$msg")
// toast(msg)
// dismissLoading()
// })
// }
//
// private fun submitSuccess(isSamplingData: Boolean) {
// if (food?.foodId.isNullOrBlank()) {
// //本地无删除数据直接跳转页面
// dismissLoading()
// jumpPage(isSamplingData, false)
// return
// }
// //删除本地数据
// appViewModel.deleteCookFoodAndGoods(
// cookMode = food!!.cookMode,
// foodId = food!!.foodId!!
// ) {
// dismissLoading()
// jumpPage(isSamplingData, false)
// }
// }
//
// private fun jumpPage(isSampling: Boolean, isCooking: Boolean) {
// if (isSampling) {
// startActivity<SamplingListActivity> {
// putExtra(SelectDishActivity.IS_COOKING, isCooking)
// }
// return
// }
// startActivity<SelectDishActivity> {
// putExtra(SelectDishActivity.IS_COOKING, isCooking)
// putExtra(SelectDishActivity.DINNER_TYPE, food?.dinnerType)
// }
// }
//
// private lateinit var appViewModel: AppViewModel
//
// private fun initViewModel() {
// val db = BaseApp.instance!!.database
// val factory =
// AppFactory(AppRepository(db.appDao()))
// appViewModel =
// ViewModelProvider(this, factory)[AppViewModel::class.java]
// }
//
// override fun onResume() {
// super.onResume()
// binding.tvRightBottomCell.visible()
// if (isCooking.not()) {
// //烹饪中使用本地数据,未烹饪则使用默认的调料配置数据
// appViewModel.loadSeasoning {
// Log.d(TAG, "onResume: loadSeasoning:${it.toJsonString()}")
// loadTextCell(it)
// }
// }
// }
//
// private fun loadTextCell(list: MutableList<SeasoningEntity>) {
// SeasoningCellTool.loadData(
// activity = this,
// initList = list,
// recyclerView = binding.rvSeasoning,
// tvCell = binding.tvRightBottomCell
// )
// }
//}
//
//
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.util.Log
import android.util.SparseArray
import android.util.SparseIntArray
import android.widget.FrameLayout
import android.widget.TextView
import androidx.core.util.forEach
import androidx.lifecycle.ViewModelProvider
@@ -180,58 +181,53 @@ class SubmitFoodActivity : BaseActivity() {
realUseWeight = if (realUseWeight > 0) realUseWeight else 0
seasoningArray.put(address, realUseWeight.toDouble())
refreshSeasoningWeight()
// refreshSeasoningWeight()
val item = seasoningItems.firstOrNull { address == addressArray[it.sort]}
item?.let {
val lastWeight = seasoningArray.get(address) ?: 0.toDouble()
it.useWeight = lastWeight + getCookingSeasoning(address)
updateGridData(it)
}
})
}
@SuppressLint("NotifyDataSetChanged")
private fun refreshSeasoningWeight() {
if (seasoningItems.isEmpty()) {
return
}
seasoningItems.let { items ->
weightRelateArray.forEach { key, value ->
items[key].useWeight =
(seasoningArray.get(value) ?: 0.toDouble()) + getCookingSeasoning(value)
}
}
setGridData(seasoningItems)
// binding.rvSeasoning.adapter?.let { adapter ->
// if (adapter is TextCellAdapter) {
// adapter.list.let { items ->
// weightRelateArray.forEach { key, value ->
// items[key].useWeight =
// (seasoningArray.get(value) ?: 0.toDouble()) + getCookingSeasoning(value)
// }
// }
// adapter.notifyDataSetChanged()
// private fun refreshSeasoningWeight() {
// if (seasoningItems.isEmpty()) {
// return
// }
// seasoningItems.let { items ->
// addressArray.forEach { key, value ->
// items[key].useWeight =
// (seasoningArray.get(value) ?: 0.toDouble()) + getCookingSeasoning(value)
// }
// }
// setGridData(seasoningItems)
// }
private fun updateGridData(entity:SeasoningEntity) {
val gridLayout = binding.include.root
val tag = entity.sort.toString()
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout , entity)
}
private fun getCookingSeasoning(address: Int): Double {
if (isCooking.not()) return 0.toDouble()
if (seasoningItems.isEmpty()) return 0.toDouble()
// val weight = seasoningItems[weightRelateArray2.get(address)].useWeight ?: 0.toDouble()
val weight = seasoningCookingItems?.get(weightRelateArray2.get(address))?.useWeight ?: 0.toDouble()
//Log.i(TAG, "getCookingSeasoning: weight[${address}]=$weight,seasoningList=${seasoningList.toJsonString()}")
return weight
}
private val weightRelateArray2 by lazy {
SparseIntArray().apply {
weightRelateArray.forEach { key, value ->
addressArray.forEach { key, value ->
put(value, key)
// if (value == 3) {
// put(3, 14)
// } else {
// put(value, key)
// }
}
}
}
private val weightRelateArray by lazy {
private val addressArray by lazy {
AddressUtil.getWeighAddressArray()
}
@@ -431,8 +427,8 @@ class SubmitFoodActivity : BaseActivity() {
val gridLayout = binding.include.root
list.forEach { entity ->
val tag = entity.sort.toString()
val child = gridLayout.findViewWithTag<TextView>(tag)
TextCellAdapter.loadCell(child, entity)
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout, entity)
}
}
}
@@ -5,12 +5,12 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import com.chad.library.adapter4.util.setOnDebouncedItemClick
import com.shuwei.dish.match.adapter.DishShowAdapter
import com.shuwei.dish.match.base.BaseApp
import com.shuwei.dish.match.base.BaseFragment
import com.shuwei.dish.match.databinding.FragmentDishListBinding
import com.shuwei.dish.match.databinding.LayoutEmptyViewBinding
@@ -28,7 +28,7 @@ import com.shuwei.dish.match.utils.ext.toObject
import com.shuwei.dish.match.utils.ext.toast
import java.io.Serializable
class DishListFragment : Fragment() {
class DishListFragment : BaseFragment<FragmentDishListBinding>() {
companion object {
private const val TAG = "DishListFragment"
@@ -42,51 +42,52 @@ class DishListFragment : Fragment() {
}
}
}
private var pageNo = 1
private val pageSize = 30
private lateinit var activity: SelectDishActivity
private lateinit var binding: FragmentDishListBinding
private var dinnerType = "0"
private lateinit var activity: SelectDishActivity
private var list: MutableList<FoodRecord> = mutableListOf()
private val dishAdapter by lazy {
DishShowAdapter(list = list).apply {
isStateViewEnable = true
setOnDebouncedItemClick { adapter, view, position ->
val item = list[position]
if (item.isCooking) {
//烹饪中,跳到称熟重页面
// context.startActivity<SubmitDishActivity> {
context.startActivity<SubmitFoodActivity> {
putExtra(
SubmitFoodActivity.FOOD_ITEM,
item as Serializable
)
}
return@setOnDebouncedItemClick
}
item.dinnerType = dinnerType
context.startActivity<PrepareCookActivity> {
putExtra(
SubmitFoodActivity.FOOD_ITEM,
item as Serializable
)
activity.judgeDeviceConfig {
onItemClick(position)
}
}
}
}
override fun onCreateView(
private fun onItemClick(position: Int) {
val item = list[position]
if (item.isCooking) {
//烹饪中,跳到称熟重页面
activity.startActivity<SubmitFoodActivity> {
putExtra(
SubmitFoodActivity.FOOD_ITEM,
item as Serializable
)
}
return
}
item.dinnerType = dinnerType
activity.startActivity<PrepareCookActivity> {
putExtra(
SubmitFoodActivity.FOOD_ITEM,
item as Serializable
)
}
}
override fun inflateBinding(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentDishListBinding.inflate(inflater, container, false)
return binding.root
container: ViewGroup?
): FragmentDishListBinding {
return FragmentDishListBinding.inflate(inflater, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -1,187 +0,0 @@
//package com.shuwei.dish.match.ui.fragment
//
//import android.annotation.SuppressLint
//import android.content.Intent
//import android.os.Bundle
//import android.util.Log
//import android.view.LayoutInflater
//import android.view.View
//import android.view.ViewGroup
//import androidx.fragment.app.Fragment
//import androidx.recyclerview.widget.LinearLayoutManager
//import com.aithings.Weigher
//import com.shuwei.dish.match.R
//import com.shuwei.dish.match.adapter.DishPartAdapter
//import com.shuwei.dish.match.databinding.FragmentDishSamplingBinding
//import com.shuwei.dish.match.dialog.BottomDialog
//import com.shuwei.dish.match.entity.CookFoodGoodsEntity
//import com.shuwei.dish.match.entity.FoodRecord
//import com.shuwei.dish.match.ui.FoodSearchActivity
//import com.shuwei.dish.match.ui.DishSamplingActivity
//import com.shuwei.dish.match.ui.SubmitDishActivity
//import com.shuwei.dish.match.utils.KeyboardUtil
//import com.shuwei.dish.match.utils.WeightUtil
//import com.shuwei.dish.match.utils.ext.addOnActionSearchListener
//import com.shuwei.dish.match.utils.ext.clickWithDebounce
//import com.shuwei.dish.match.utils.ext.startActivity
//import com.shuwei.dish.match.utils.ext.toJsonString
//import com.shuwei.dish.match.utils.ext.toast
//import java.io.Serializable
//
//class DishSamplingFragment : Fragment() {
//
// private val TAG = "DishSamplingFragment"
//
// private lateinit var activity: DishSamplingActivity
// private lateinit var binding: FragmentDishSamplingBinding
//
// val list: MutableList<CookFoodGoodsEntity> = mutableListOf()
//
// private var tempDishEntity: CookFoodGoodsEntity? = null
//
// private var dishMaterialType = 1
//
// private val dishAdapter by lazy {
// DishPartAdapter(list).apply {
// addOnItemChildClickListener(R.id.ivOperateIcon) { _, _, positon ->
// //删除操作
// removeAt(positon)
// }
// }
// }
//
// override fun onCreateView(
// inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
// ): View {
// binding = FragmentDishSamplingBinding.inflate(inflater, container, false)
// return binding.root
// }
//
// override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// super.onViewCreated(view, savedInstanceState)
// activity = requireActivity() as DishSamplingActivity
// addViewClickListener()
// foodName = activity.foodName
// binding.etInputDish.setText(foodName)
// }
//
// @SuppressLint("NotifyDataSetChanged")
// private fun addViewClickListener() {
// binding.rvDishPartList.run {
// layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
// adapter = dishAdapter
// }
// binding.tvInputDishType.run {
// clickWithDebounce {
// BottomDialog(goodsType = 0).show(activity) { item ->
// val filterResult = list.firstOrNull { it.goodsName == item.goodsName }
// if (filterResult != null) {
// toast("不允许重复添加同一食材")
// return@show
// }
// text = item.goodsName
// tempDishEntity = CookFoodGoodsEntity().apply {
// goodsId = item.goodsId
// goodsName = item.goodsName
//
// relateionType = item.relateionType?:0
// goodsOrRelationCode = item.goodsOrRelationCode
//
// // TODO: 待定
// //allEdible = item.allEdible
// }
// }
// }
// }
//
// binding.ivWeightClear.setOnClickListener {
// Weigher.tareTwo(2)
// }
// WeightUtil.addWeightListener(getWeight = { address, state, weight ->
// Log.d(TAG, "addViewClickListener: address=$address,state=$state,weight=$weight")
// if (address == 2) {
// tempDishEntity?.useWeight = weight
// binding.tvDishPartWeight.text = "${weight}"
// }
// })
// binding.ivWeightAdd.setOnClickListener {
// if (tempDishEntity == null) {
// activity.toast("请输入食材名称")
// return@setOnClickListener
// }
// if (binding.rgSampling.checkedRadioButtonId == -1) {
// activity.toast("请选择主辅材类型")
// return@setOnClickListener
// }
// if (tempDishEntity!!.useWeight == null) {
// activity.toast("请将食材放在称上称重")
// return@setOnClickListener
// }
// tempDishEntity!!.apply {
// isSamplingPage = true
// materialType = dishMaterialType
// }
// val result = list.firstOrNull { it.goodsId == tempDishEntity!!.goodsId }
// if (result != null) {
// activity.toast("${result.goodsName}食材已添加,请勿重复操作")
// return@setOnClickListener
// }
// list.add(tempDishEntity!!)
// dishAdapter.notifyDataSetChanged()
// tempDishEntity = null
// binding.tvInputDishType.text = ""
// binding.rgSampling.clearCheck()
// }
// binding.rgSampling.setOnCheckedChangeListener { group, checkedId ->
// dishMaterialType = if (checkedId == R.id.rbDishTypeFirst) 1 else 2
// }
// binding.ivDishSearch.setOnClickListener { v ->
// jumpSearch(v)
// }
// binding.btnCook.clickWithDebounce {
// val showFoodName = binding.etInputDish.text.toString().trim()
// if (showFoodName.isBlank()) {
// toast("菜品名称为空")
// return@clickWithDebounce
// }
// if (list.isEmpty()) {
// toast("菜品构成信息未设置")
// return@clickWithDebounce
// }
// val food = FoodRecord()
// food.foodId = foodId
// food.foodName = showFoodName
// food.cookMode = 1
// Log.d(TAG, "goToSubmit: goodsList:${list.toJsonString()}")
// activity.startActivity<SubmitDishActivity> {
// putExtra(SubmitDishActivity.GOODS_LIST, list as Serializable)
// putExtra(SubmitDishActivity.FOOD_ITEM, food as Serializable)
// }
// }
// binding.etInputDish.let { v ->
// v.addOnActionSearchListener {
// jumpSearch(v)
// }
// }
// }
//
// private fun jumpSearch(v: View) {
// activity.launch(Intent(activity, FoodSearchActivity::class.java).apply {
// putExtra(FoodSearchActivity.FOOD_NAME, binding.etInputDish.text.toString().trim() )
// }) { intent ->
// intent?.let {
// foodId = it.getStringExtra(FoodSearchActivity.FOOD_ID)
// foodName = it.getStringExtra(FoodSearchActivity.FOOD_NAME)
// binding.etInputDish.run {
// setText(foodName)
// setSelection(text.length)
// }
// }
// }
// KeyboardUtil.hideKeyboard(v.context, v)
// }
//
//
// private var foodId: String? = null
// private var foodName: String? = null
//}
@@ -1,254 +0,0 @@
//package com.shuwei.dish.match.ui.fragment
//
//import android.annotation.SuppressLint
//import android.os.Bundle
//import android.view.LayoutInflater
//import android.view.View
//import android.view.ViewGroup
//import androidx.fragment.app.Fragment
//import androidx.recyclerview.widget.ItemTouchHelper
//import androidx.recyclerview.widget.LinearLayoutManager
//import com.shuwei.dish.match.R
//import com.shuwei.dish.match.adapter.SamplingAdapter
//import com.shuwei.dish.match.databinding.FragmentSamplingListBinding
//import com.shuwei.dish.match.databinding.LayoutEmptyViewBinding
//
//import com.shuwei.dish.match.entity.FoodRecord
//import com.shuwei.dish.match.entity.FoodRecordBean
//import com.shuwei.dish.match.http.HttpUtil
//import com.shuwei.dish.match.http.UrlConfig
//import com.shuwei.dish.match.ui.DishSamplingActivity
//import com.shuwei.dish.match.ui.SamplingListActivity
//import com.shuwei.dish.match.ui.SubmitDishActivity
//import com.shuwei.dish.match.utils.DateTimeUtil
//import com.shuwei.dish.match.utils.SwipeCallback
//import com.shuwei.dish.match.utils.ext.startActivity
//import com.shuwei.dish.match.utils.ext.toJsonString
//import com.shuwei.dish.match.utils.ext.toObject
//import com.shuwei.dish.match.utils.ext.toast
//import java.io.Serializable
//
//class SamplingListFragment : Fragment() {
//
// companion object {
// private const val TAG = "SamplingListFragment"
// }
//
// private lateinit var activity: SamplingListActivity
// private lateinit var binding: FragmentSamplingListBinding
//
// private var list: MutableList<FoodRecord> = mutableListOf()
// private val dishAdapter by lazy {
// SamplingAdapter(list = list).apply {
// isStateViewEnable = true
// setOnItemClickListener { adapter, view, position ->
// val item = list[position]
// if (item.isCooking) {
// //烹饪中,跳到称熟重页面
// context.startActivity<SubmitDishActivity> {
// putExtra(
// SubmitDishActivity.FOOD_ITEM,
// item as Serializable
// )
// }
// return@setOnItemClickListener
// }
// context.startActivity<DishSamplingActivity> {
// putExtra(DishSamplingActivity.FOOD_NAME, item.foodName)
// }
// }
// }
// }
//
// @SuppressLint("NotifyDataSetChanged")
// private fun initRecyclerView() {
// binding.rvSamplingList.run {
// layoutManager =
// LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
// adapter = dishAdapter
// val itemTouchHelper = ItemTouchHelper(SwipeCallback(dishAdapter) { position ->
// if (list[position].isCooking.not()) {
// activity.toast("只能删除烹饪中的菜品")
// dishAdapter.notifyItemChanged(position)
// return@SwipeCallback
// }
// activity.deleteCookFoodAndGoods(foodId = list[position].foodId?:"") {
// if (list.size > 1) {
// dishAdapter.removeAt(position)
// } else {
// loadEmptyView()
// }
// activity.toast("已删除")
// }
// })
// itemTouchHelper.attachToRecyclerView(this)
// }
// }
//
// private fun addViewListener() {
// binding.btnAddSampling.setOnClickListener {
// activity.startActivity<DishSamplingActivity>()
// }
// binding.refreshLayout.setOnRefreshListener {
// pageNo = 1
// getSamplingList()
// }
// binding.refreshLayout.setOnLoadMoreListener {
// getSamplingList()
// }
// binding.dishRadioGroup.setOnCheckedChangeListener { group, checkedId ->
// if (checkedId == R.id.rbCooking) {
// refreshLocalData()
// } else {
// pageNo = 1
// getSamplingList()
// }
// }
// }
//
// override fun onCreateView(
// inflater: LayoutInflater,
// container: ViewGroup?,
// savedInstanceState: Bundle?
// ): View {
// binding = FragmentSamplingListBinding.inflate(inflater, container, false)
// return binding.root
// }
//
// @SuppressLint("NotifyDataSetChanged")
// override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// super.onViewCreated(view, savedInstanceState)
// activity = requireActivity() as SamplingListActivity
// initRecyclerView()
// addViewListener()
// refreshLocalData()
// }
//
// var pageNo = 1
// private val pageSize = 30
//
// @SuppressLint("NotifyDataSetChanged")
// fun getSamplingList() {
// activity.showLoading()
// val map = mapOf(
//// "foodName" to input,
// "pageNo" to "$pageNo",
// "pageSize" to "$pageSize",
// "canteenId" to "0"
// )
// val sb = StringBuilder(UrlConfig.SAMPLING_LIST).apply {
// append("?")
// map.forEach { (key, value) -> append("$key=$value&") }
// }
// sb.deleteCharAt(sb.length - 1)
// HttpUtil.get(
// url = sb.toString(),
// doSuccess = {
// binding.refreshLayout.run {
// setEnableRefresh(true)
// }
// activity.delayDismissLoading()
// finishRefresh()
// val json = it.toJsonString()
// val recordBean: FoodRecordBean? = json.toObject<FoodRecordBean>()
// if (recordBean == null || recordBean.records.isNullOrEmpty()) {
// //toast("暂未搜索到相关菜品信息")
// if (pageNo == 1) {
// loadEmptyView()
// }
// return@get
// }
// val records = recordBean.records
// if (pageNo == 1) {
// list.clear()
// }
// list.addAll(records!!)
// dishAdapter.notifyDataSetChanged()
// val isLoadMoreEnable = records.size >= pageSize
// binding.refreshLayout.setEnableLoadMore(isLoadMoreEnable)
// binding.refreshLayout.setEnableRefresh(true)
// if (isLoadMoreEnable) {
// pageNo++
// }
// }, doFailure = { code, msg ->
// binding.refreshLayout.run {
// setEnableRefresh(true)
// }
// toast(msg)
// finishRefresh()
// binding.refreshLayout.setEnableRefresh(true)
// activity.delayDismissLoading()
// if (pageNo == 1) {
// loadEmptyView()
// }
// })
// }
//
// private fun finishRefresh() {
// if (pageNo == 1) {
// binding.refreshLayout.finishRefresh(1200)
// } else {
// binding.refreshLayout.finishLoadMore(1200)
// }
// }
//
// private var emptyViewBinding:LayoutEmptyViewBinding?=null
//
// @SuppressLint("NotifyDataSetChanged")
// private fun loadEmptyView() {
// list.clear()
// dishAdapter.notifyDataSetChanged()
// if (emptyViewBinding == null) {
// emptyViewBinding = LayoutEmptyViewBinding.inflate(LayoutInflater.from(requireContext()), binding.rvSamplingList, false)
// }
// emptyViewBinding!!.tvContent.text = "暂无数据"
// emptyViewBinding!!.tvSubContent.text = "今日暂无采样数据,点击下方按钮新增采样"
// dishAdapter.stateView = emptyViewBinding!!.root
// //dishAdapter.setStateViewLayout(requireContext(), R.layout-sw800dp.layout_empty_view)
//
// binding.refreshLayout.run {
// setEnableRefresh(false)
// setEnableLoadMore(false)
// }
// }
//
// fun refreshPage(isCooking: Boolean) {
// binding.dishRadioGroup.check(
// if (isCooking) R.id.rbCooking else R.id.rbFinished
// )
// }
//
// @SuppressLint("NotifyDataSetChanged")
// fun refreshLocalData() {
// activity.showLoading()
// //查询本地数据
// activity.getCookFoodList { cookFoodEntities ->
// activity.delayDismissLoading()
// if (cookFoodEntities.isNullOrEmpty()) {
// loadEmptyView()
// return@getCookFoodList
// }
// val tempList = mutableListOf<FoodRecord>()
//
// cookFoodEntities
// .sortedByDescending { DateTimeUtil.convert(dateStr = it.createTime) }
// .forEach { entity ->
// tempList.add(FoodRecord().apply {
// foodId = entity.foodId
// foodName = entity.foodName
// cookMode = 1
// isCooking = true
// })
// }
// list.clear()
// list.addAll(tempList)
// dishAdapter.notifyDataSetChanged()
// binding.refreshLayout.run {
// setEnableRefresh(false)
// setEnableLoadMore(false)
// }
// }
// }
//
//
//}