init: init proj
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
import com.alibaba.fastjson.JSONArray
|
||||
|
||||
class GjjCangDanInfoItemModel(
|
||||
val isMust: Boolean,//是否必选
|
||||
val isEnable: Boolean,//是否允许操作
|
||||
val titleName: String,//输入框名字
|
||||
val titleCode: String,
|
||||
val isSel: Boolean,//是否下拉框
|
||||
|
||||
var inputContent: String,//输入框内容
|
||||
|
||||
val selList: JSONArray?,//下拉框数据集合
|
||||
var selContentCode: String,//下拉框code
|
||||
var selContentName: String,//下拉框code
|
||||
|
||||
val titleCodePre: String?,
|
||||
var inputContentPre: String?,//输入框内容前缀
|
||||
) {
|
||||
|
||||
/**
|
||||
* 输入框构造
|
||||
*/
|
||||
constructor(isMust: Boolean, isEnable: Boolean, titleName: String, titleCode: String, inputContent: String) : this(
|
||||
isMust,
|
||||
isEnable,
|
||||
titleName,
|
||||
titleCode,
|
||||
false,
|
||||
inputContent,
|
||||
null,
|
||||
"",
|
||||
"",
|
||||
null,
|
||||
null
|
||||
)
|
||||
|
||||
/**
|
||||
* 2个输入框构造 运单
|
||||
*/
|
||||
constructor(
|
||||
isMust: Boolean,
|
||||
isEnable: Boolean,
|
||||
titleName: String,
|
||||
titleCode: String,
|
||||
inputContent: String,
|
||||
titleCodePre: String,
|
||||
inputContentPre: String
|
||||
) : this(
|
||||
isMust,
|
||||
isEnable,
|
||||
titleName,
|
||||
titleCode,
|
||||
false,
|
||||
inputContent,
|
||||
null,
|
||||
"",
|
||||
"",
|
||||
titleCodePre,
|
||||
inputContentPre
|
||||
)
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框构造
|
||||
*/
|
||||
constructor(
|
||||
isMust: Boolean, isEnable: Boolean, titleName: String, titleCode: String,
|
||||
selList: JSONArray,
|
||||
selContentCode: String,
|
||||
selContentName: String
|
||||
) : this(
|
||||
isMust,
|
||||
isEnable,
|
||||
titleName,
|
||||
titleCode,
|
||||
true,
|
||||
"",
|
||||
selList,
|
||||
selContentCode,
|
||||
selContentName,
|
||||
null,
|
||||
null
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
class GjjCangDanListModel(
|
||||
val id: String,
|
||||
val wbNo: String,
|
||||
val goods: String, //品名
|
||||
val awbType: String, //运单类型
|
||||
val startPort: String, //始发港
|
||||
val destPort: String, //目的港
|
||||
val agentCode: String, //代理
|
||||
val spCode: String, //特码
|
||||
val totalPc: Int, //总件数
|
||||
val pc: Int, //件数
|
||||
val acWeight: Double, //实到重量
|
||||
val chWight: Double, //计费重量
|
||||
|
||||
var isCheck: Boolean, //复选框 选中
|
||||
var ref: String //== '1' 只能查看 不能修改
|
||||
)
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
class GjjChuKuListModel(
|
||||
val id: Int,
|
||||
val wbNo: String,
|
||||
val pickNo: String,
|
||||
val fno: String,
|
||||
val pc: Int, //件数
|
||||
val weight: Double, //重量
|
||||
|
||||
val goods: String, //品名
|
||||
val agentCode: String, //代理
|
||||
val spCode: String, //特码
|
||||
val pickDate: String, //提取日期
|
||||
|
||||
var isCheck: Boolean, //复选框 选中
|
||||
)
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
class GjjQueryInfo(
|
||||
val id: Int,
|
||||
val title: String,
|
||||
val content: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 关联运单
|
||||
*/
|
||||
class GjjQueryInfoWh(
|
||||
val id: Int,
|
||||
val wbNo: String,
|
||||
val location: String,//库位
|
||||
val pc: Int,//件数
|
||||
val weight: Double,//重量
|
||||
val flight: String,//航班
|
||||
val opDate: String,//入库时间
|
||||
val mclose: String,//出库时间
|
||||
val opId: String //收运人
|
||||
)
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
class GjjQueryList(
|
||||
val mawbId: Int,
|
||||
val wbNo: String,
|
||||
val agentCode: String,
|
||||
val spCode: String,
|
||||
val goods: String,
|
||||
val flight: String,
|
||||
val range: String,
|
||||
val pc: String,
|
||||
val weight: String,
|
||||
)
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import com.lukouguoji.gjj.R
|
||||
import com.lukouguoji.gjj.databinding.DialogTallyAddSelectBinding
|
||||
import com.lukouguoji.gjj.holder.GjcTallyDialogViewHolder
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.bean.GjcWaybillBean
|
||||
import com.lukouguoji.module_base.bean.GjjHandoverRecordBean
|
||||
import com.lukouguoji.module_base.interfaces.IOnItemClickListener
|
||||
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
||||
import com.lukouguoji.module_base.ktx.refresh
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.util.CheckUtil
|
||||
import com.lxj.xpopup.XPopup
|
||||
|
||||
class GjjTallyAddSelectDialogModel(
|
||||
val list: List<GjjHandoverRecordBean>,
|
||||
private val callBack: (GjjHandoverRecordBean) -> Unit
|
||||
) : BaseDialogModel<DialogTallyAddSelectBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
val itemId = R.layout.item_gjj_tally_dialog
|
||||
val itemHolder = GjcTallyDialogViewHolder::class.java
|
||||
|
||||
override fun onBuild(builder: XPopup.Builder) {
|
||||
builder.dismissOnBackPressed(false)
|
||||
builder.dismissOnTouchOutside(false)
|
||||
}
|
||||
|
||||
override fun layoutId(): Int {
|
||||
return R.layout.dialog_tally_add_select
|
||||
}
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
|
||||
binding.rv.refresh(list)
|
||||
|
||||
binding.rv.addOnItemClickListener(object : IOnItemClickListener {
|
||||
override fun onItemClick(position: Int, type: Int) {
|
||||
CheckUtil.handleSingleCheck(list, "checked", position, cancelAble = false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun onConfirmClick(view: View) {
|
||||
val find = list.find { it.checked.get() }
|
||||
if (find == null) {
|
||||
showToast("请选择一个运单")
|
||||
return
|
||||
}
|
||||
callBack.invoke(find)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
class GjjWareHouseInfo(
|
||||
val id: Int,
|
||||
val title: String,
|
||||
val content: String
|
||||
)
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
class GjjWareHouseList(
|
||||
val id: Int,
|
||||
val waybillNo: String,
|
||||
val pc: Int,
|
||||
val weight: Double,
|
||||
val fno: String,//航班号
|
||||
val flight: String,//航班
|
||||
val date: String,//入库时间
|
||||
val isCangDan: String,
|
||||
val groupTitle: String,
|
||||
val groupName: String,
|
||||
val days: String?,//入库天数
|
||||
|
||||
val goods: String,//品名
|
||||
val spCode: String,//特码
|
||||
val agentCode: String,//代理人
|
||||
val by1: String,//承运人
|
||||
val origin: String,//始发港
|
||||
val location: String,//库位
|
||||
val awbType: String,//运单类型
|
||||
val businessType: String,//业务类型
|
||||
val status: String,//状态
|
||||
)
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.lukouguoji.gjj.model
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.lukouguoji.gjj.R
|
||||
import com.lukouguoji.gjj.databinding.DialogGjjTallyBatchBinding
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.bean.GjcWaybillBean
|
||||
import com.lukouguoji.module_base.bean.GjjHandoverRecordBean
|
||||
import com.lukouguoji.module_base.http.net.NetApply
|
||||
import com.lukouguoji.module_base.ktx.getLifecycleOwner
|
||||
import com.lukouguoji.module_base.ktx.launchCollect
|
||||
import com.lukouguoji.module_base.ktx.noNull
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.ktx.tryCatch
|
||||
import com.lukouguoji.module_base.util.Arith
|
||||
import com.lxj.xpopup.XPopup
|
||||
import dev.utils.app.ScreenUtils
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
class TallyBatchDialogModel(
|
||||
val bean: GjjHandoverRecordBean,
|
||||
val callBack: () -> Unit
|
||||
) : BaseDialogModel<DialogGjjTallyBatchBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
// 剩余件数
|
||||
val remainingCount = MutableLiveData(bean.pc.noNull())
|
||||
|
||||
// 剩余重量
|
||||
val remainingWeight = MutableLiveData(bean.weight.noNull())
|
||||
|
||||
// 件数
|
||||
val count = MutableLiveData("")
|
||||
|
||||
// 重量
|
||||
val weight = MutableLiveData("")
|
||||
|
||||
override fun onBuild(builder: XPopup.Builder) {
|
||||
builder.maxWidth((ScreenUtils.getScreenWidth() * 0.5).roundToInt())
|
||||
}
|
||||
|
||||
override fun layoutId() = R.layout.dialog_gjj_tally_batch
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
|
||||
// 件数改变监听
|
||||
count.observe(context.getLifecycleOwner()) {
|
||||
tryCatch({ _ ->
|
||||
val old = bean.pc.noNull().toInt()
|
||||
val new = it.toInt()
|
||||
if (old < new) {
|
||||
count.value = bean.pc.noNull()
|
||||
remainingCount.postValue("0")
|
||||
} else {
|
||||
val c = (old - new).toString()
|
||||
remainingCount.postValue(c)
|
||||
}
|
||||
}) {
|
||||
remainingCount.postValue(bean.pc.noNull())
|
||||
}
|
||||
}
|
||||
|
||||
// 重量改变监听
|
||||
weight.observe(context.getLifecycleOwner()) {
|
||||
tryCatch({ _ ->
|
||||
val old = bean.weight.noNull().toDouble()
|
||||
val new = it.toDouble()
|
||||
if (old < new) {
|
||||
weight.value = bean.weight.noNull()
|
||||
remainingWeight.postValue("0")
|
||||
} else {
|
||||
val w =
|
||||
Arith.round((old - new), 2).toString()
|
||||
remainingWeight.postValue(w)
|
||||
}
|
||||
}) {
|
||||
remainingWeight.postValue(bean.weight.noNull())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
fun save(view: View) {
|
||||
bean.pc = remainingCount.value!!
|
||||
bean.weight = remainingWeight.value!!
|
||||
callBack()
|
||||
dismiss()
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user