init: init proj

This commit is contained in:
2025-11-10 18:21:19 +08:00
commit b65b28ec9e
1796 changed files with 187617 additions and 0 deletions

View File

@@ -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
)
}

View File

@@ -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' 只能查看 不能修改
)

View File

@@ -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, //复选框 选中
)

View File

@@ -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 //收运人
)

View File

@@ -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,
)

View File

@@ -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()
}
}

View File

@@ -0,0 +1,7 @@
package com.lukouguoji.gjj.model
class GjjWareHouseInfo(
val id: Int,
val title: String,
val content: String
)

View File

@@ -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,//状态
)

View File

@@ -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()
}
}