提交入库参数、采集数据优化

This commit is contained in:
2026-01-30 15:07:56 +08:00
parent a7bac4321e
commit efcf3d436b
9 changed files with 80 additions and 65 deletions
@@ -249,6 +249,7 @@ class FoodCollectionActivity : ComponentActivity() {
toast("每次只允许保存${MAX_COUNT}条数据")
return
}
showWaitingDialog2("加载中")
cameraUtils.takePhoto(cameraCallback)
}
@@ -287,6 +288,7 @@ class FoodCollectionActivity : ComponentActivity() {
val index = collectList.indexOfFirst { it.imageFile == null }
if (index == -1) {
toast("每次只允许保存${MAX_COUNT}条数据")
showWaitingDialog2("加载中")
rerurn@ cameraCallback
}
// toast("index=$index")
@@ -302,6 +304,7 @@ class FoodCollectionActivity : ComponentActivity() {
FoodModule.bitmap2FloatArray(cropBitmap, false)
} catch (e: Exception) {
e.printStackTrace()
hideWaitingDialog()
toast("操作失败")
return@let
}
@@ -309,6 +312,7 @@ class FoodCollectionActivity : ComponentActivity() {
val filterList =
foodList.filter { it.score < FoodModule.BAG_RATE && it.name.contains("黑袋子") }
if (filterList.isNotEmpty()) {
hideWaitingDialog()
toast("当前物品可能被袋子遮挡,请检查后重试")
return@let
}
@@ -333,9 +337,11 @@ class FoodCollectionActivity : ComponentActivity() {
if (bitmap.isRecycled.not()) {
bitmap.recycle()
}
hideWaitingDialog()
}
} catch (e: Exception) {
e.printStackTrace()
hideWaitingDialog()
toast("程序异常${e.message}")
}
}
@@ -549,35 +555,40 @@ class FoodCollectionActivity : ComponentActivity() {
/**
* 显示等待提示框
*/
fun showWaitingDialog(tip: String?): Dialog? {
hideWaitingDialog()
val view = View.inflate(this, R.layout.dialog_waiting, null)
if (!TextUtils.isEmpty(tip)) (view.findViewById<View?>(R.id.tvTip) as TextView).text = tip
mDialogWaiting = CustomDialog(this, view, R.style.MyDialog)
mDialogWaiting!!.show()
mDialogWaiting!!.setCancelable(true)
return mDialogWaiting
fun showWaitingDialog(tip: String?) {
runOnUiThread {
hideWaitingDialog()
val view = View.inflate(this, R.layout.dialog_waiting, null)
if (!TextUtils.isEmpty(tip)) (view.findViewById<View?>(R.id.tvTip) as TextView).text = tip
mDialogWaiting = CustomDialog(this, view, R.style.MyDialog)
mDialogWaiting!!.show()
mDialogWaiting!!.setCancelable(true)
}
}
/**
* 隐藏等待提示框
*/
fun hideWaitingDialog() {
mDialogWaiting?.dismiss()
mDialogWaiting = null
runOnUiThread {
mDialogWaiting?.dismiss()
mDialogWaiting = null
}
}
fun showWaitingDialog2(tip: String?) {
if (mDialogWaiting == null) {
hideWaitingDialog()
val view = View.inflate(this, R.layout.dialog_waiting, null)
mDialogWaiting = CustomDialog(this, view, R.style.MyDialog)
mDialogWaiting!!.show()
mDialogWaiting!!.setCancelable(true)
runOnUiThread {
if (mDialogWaiting == null) {
hideWaitingDialog()
val view = View.inflate(this, R.layout.dialog_waiting, null)
mDialogWaiting = CustomDialog(this, view, R.style.MyDialog)
mDialogWaiting!!.show()
mDialogWaiting!!.setCancelable(true)
}
val contentView = mDialogWaiting?.findViewById<ViewGroup>(android.R.id.content)
val tvTip = contentView?.findViewById<TextView>(R.id.tvTip)
tvTip?.text = tip
}
val contentView = mDialogWaiting?.findViewById<ViewGroup>(android.R.id.content)
val tvTip = contentView?.findViewById<TextView>(R.id.tvTip)
tvTip?.text = tip
}
/**
@@ -45,6 +45,7 @@ import com.sw.inbound.utils.ext.roundedDecimalPlace
import com.sw.inbound.utils.ext.toJsonString
import com.sw.inbound.utils.ext.toast
import com.sw.inbound.viewmodel.ReceiptViewModel
import com.sw.inbound.viewmodel.UserViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
@@ -77,7 +78,8 @@ abstract class GoodsListActivity : ComponentActivity() {
var id: String = ""
var supplierId: String = ""
lateinit var binding: ActivityGoodsListBinding
val viewModel: ReceiptViewModel by viewModels()
val receiptViewModel: ReceiptViewModel by viewModels()
val userViewModel: UserViewModel by viewModels()
val goodsList: MutableList<GoodsInfo> = mutableListOf()
abstract fun initRecyclerView()
@@ -167,6 +169,8 @@ abstract class GoodsListActivity : ComponentActivity() {
//val array = arrayOf("1","2","qwe")
//Timber.tag(TAG).d("测试:${array[2].toInt()}")
userViewModel.getInitInfo()
}
private var weightCallback: ((weight: Int) -> Unit)? = null
@@ -346,7 +350,7 @@ abstract class GoodsListActivity : ComponentActivity() {
}
return@let
}
viewModel.recognizeGoodsList(
receiptViewModel.recognizeGoodsList(
//nameList = foodList,
scoreList = foodList,
) { goodsList ->
@@ -488,7 +492,7 @@ abstract class GoodsListActivity : ComponentActivity() {
pageNo: Int,
pageSize: Int = PAGE_SIZE
): List<SearchGoodsInfo.Record> {
return viewModel.searchGoodsInfoList2(
return receiptViewModel.searchGoodsInfoList2(
goodsName = searchName,
pageNo = pageNo,
pageSize = pageSize
@@ -562,7 +566,7 @@ abstract class GoodsListActivity : ComponentActivity() {
)
Timber.tag("SelfProcurementActivity")
.d("receiptSubmit确认收货提交数据:${uploadInfo.toJsonString()}")
viewModel.confirmReceipt(uploadInfo) { success ->
receiptViewModel.confirmReceipt(uploadInfo) { success ->
if (success) {
toast("确认收货成功")
finish()
@@ -597,7 +601,7 @@ abstract class GoodsListActivity : ComponentActivity() {
}
Timber.tag("SelfProcurementActivity")
.d("selfProcurementSubmit自采入库提交数据:${submitData.toJsonString()}")
viewModel.addToWarehouse(submitData) { success ->
receiptViewModel.addToWarehouse(submitData) { success ->
if (success) {
toast("提交入库成功")
finish()
@@ -618,13 +622,13 @@ abstract class GoodsListActivity : ComponentActivity() {
// }
fun createNewGoods(file: File, param: GoodsAddParam, callback: (Boolean) -> Unit) {
viewModel.uploadImage(file) { imgUrl ->
receiptViewModel.uploadImage(file) { imgUrl ->
if (imgUrl.isNullOrBlank()) {
toast("图片上传失败")
return@uploadImage
}
param.relativeUrl = imgUrl
viewModel.createNewGoods(param = param, callback = callback)
receiptViewModel.createNewGoods(param = param, callback = callback)
}
}
@@ -651,7 +655,7 @@ abstract class GoodsListActivity : ComponentActivity() {
val map = hashMapOf<String, RequestBody>()
map["goodsId"] = goodsId.toRequestBody()
map["goodsName"] = goodsName.toRequestBody()
viewModel.uploadMultipleImages(files = list, params = map)
receiptViewModel.uploadMultipleImages(files = list, params = map)
}
}
@@ -1,16 +1,12 @@
package com.sw.inbound.activity
import android.annotation.SuppressLint
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.LinearLayoutManager
import com.sw.inbound.adapter.ReceiptGoodsAdapter
import com.sw.inbound.model.response.DictType
import com.sw.inbound.utils.ext.gone
import com.sw.inbound.utils.ext.toast
import com.sw.inbound.utils.ext.visible
import kotlinx.coroutines.launch
class ReceiptActivity : GoodsListActivity() {
@@ -42,7 +38,7 @@ class ReceiptActivity : GoodsListActivity() {
}
}
if (isNewReceipt.not()) {
viewModel.getReceiveDetail(id) { detail ->
receiptViewModel.getReceiveDetail(id) { detail ->
runOnUiThread {
if (detail == null) {
toast("未查询到数据")