diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1c590a..e94a4fd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -286,6 +286,14 @@
android:name=".page.car.list.CarListActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="userLandscape" />
+
+
() {
+
+ override fun layoutId() = R.layout.activity_uld_edit
+
+ override fun viewModelClass() = UldEditViewModel::class.java
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ viewModel.initOnCreate(intent)
+ setBackArrow("ULD${viewModel.pageType.value!!.title}")
+ binding.viewModel = viewModel
+ }
+
+ companion object {
+ @JvmStatic
+ fun start(context: Context, id: String = "", modify: Boolean = id.isEmpty()) {
+ val starter = Intent(context, UldEditActivity::class.java)
+ .putExtra(Constant.Key.ID, id)
+ .putExtra(Constant.Key.DATA, modify)
+ context.startActivity(starter)
+ }
+ }
+}
diff --git a/app/src/main/java/com/lukouguoji/aerologic/page/uld/edit/UldEditViewModel.kt b/app/src/main/java/com/lukouguoji/aerologic/page/uld/edit/UldEditViewModel.kt
new file mode 100644
index 0000000..63e5664
--- /dev/null
+++ b/app/src/main/java/com/lukouguoji/aerologic/page/uld/edit/UldEditViewModel.kt
@@ -0,0 +1,84 @@
+package com.lukouguoji.aerologic.page.uld.edit
+
+import android.content.Intent
+import androidx.lifecycle.MutableLiveData
+import com.lukouguoji.module_base.base.BaseViewModel
+import com.lukouguoji.module_base.bean.ULDBean
+import com.lukouguoji.module_base.common.Constant
+import com.lukouguoji.module_base.common.DetailsPageType
+import com.lukouguoji.module_base.http.net.NetApply
+import com.lukouguoji.module_base.ktx.launchLoadingCollect
+import com.lukouguoji.module_base.ktx.noNull
+import com.lukouguoji.module_base.ktx.showToast
+import com.lukouguoji.module_base.ktx.toRequestBody
+import dev.DevUtils
+import dev.utils.app.info.KeyValue
+
+class UldEditViewModel : BaseViewModel() {
+
+ var id = ""
+
+ val pageType = MutableLiveData(DetailsPageType.Add)
+
+ val uldBean = MutableLiveData(ULDBean())
+
+ val statusList = MutableLiveData>(
+ listOf(
+ KeyValue("正常", "0"),
+ KeyValue("故障", "1"),
+ )
+ )
+
+ // 所属航司下拉列表(mock,后续替换为接口)
+ val carrierList = MutableLiveData>(
+ listOf(
+ KeyValue("MU - 东方航空", "MU"),
+ KeyValue("CA - 国航", "CA"),
+ KeyValue("CZ - 南方航空", "CZ"),
+ KeyValue("HO - 吉祥航空", "HO"),
+ KeyValue("FM - 上海航空", "FM"),
+ )
+ )
+
+ fun initOnCreate(intent: Intent) {
+ id = intent.getStringExtra(Constant.Key.ID) ?: ""
+ val modify = intent.getBooleanExtra(Constant.Key.DATA, false)
+ pageType.value = if (id.isEmpty()) DetailsPageType.Add
+ else if (modify) DetailsPageType.Modify else DetailsPageType.Details
+
+ getData()
+ }
+
+ private fun getData() {
+ if (id.isEmpty()) return
+ launchLoadingCollect({
+ NetApply.api.queryUldByCode(id)
+ }) {
+ onSuccess = {
+ uldBean.value = it.data ?: ULDBean()
+ }
+ }
+ }
+
+ fun onSaveClick() {
+ val bean = uldBean.value ?: return
+ if (bean.uld.isBlank()) {
+ showToast("ULD编号不能为空")
+ return
+ }
+ val isAdd = pageType.value == DetailsPageType.Add
+ launchLoadingCollect({
+ if (isAdd) NetApply.api.saveUld(bean.toRequestBody())
+ else NetApply.api.updateUld(bean.toRequestBody())
+ }) {
+ onSuccess = {
+ showToast(it.msg.noNull(if (isAdd) "新增成功" else "修改成功"))
+ if (isAdd) uldBean.value = ULDBean() else getData()
+ }
+ }
+ }
+
+ fun onCancelClick() {
+ DevUtils.getTopActivity().finish()
+ }
+}
diff --git a/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListActivity.kt b/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListActivity.kt
new file mode 100644
index 0000000..6bd4c30
--- /dev/null
+++ b/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListActivity.kt
@@ -0,0 +1,45 @@
+package com.lukouguoji.aerologic.page.uld.list
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import com.lukouguoji.aerologic.R
+import com.lukouguoji.aerologic.databinding.ActivityUldListBinding
+import com.lukouguoji.module_base.base.BaseBindingActivity
+import com.lukouguoji.module_base.ktx.addOnItemClickListener
+import com.lukouguoji.module_base.ktx.getLifecycleOwner
+
+class UldListActivity : BaseBindingActivity() {
+
+ override fun layoutId(): Int {
+ return R.layout.activity_uld_list
+ }
+
+ override fun viewModelClass(): Class {
+ return UldListViewModel::class.java
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ setBackArrow("ULD管理")
+ binding.viewModel = viewModel
+ viewModel.pageModel.bindSmartRefreshLayout(
+ binding.srl,
+ binding.rv,
+ viewModel,
+ getLifecycleOwner()
+ )
+ binding.rv.addOnItemClickListener(viewModel)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ viewModel.refresh()
+ }
+
+ companion object {
+ @JvmStatic
+ fun start(context: Context) {
+ context.startActivity(Intent(context, UldListActivity::class.java))
+ }
+ }
+}
diff --git a/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListViewHolder.kt b/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListViewHolder.kt
new file mode 100644
index 0000000..30f8347
--- /dev/null
+++ b/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListViewHolder.kt
@@ -0,0 +1,16 @@
+package com.lukouguoji.aerologic.page.uld.list
+
+import android.view.View
+import com.lukouguoji.aerologic.databinding.ItemUldListBinding
+import com.lukouguoji.module_base.base.BaseViewHolder
+import com.lukouguoji.module_base.bean.ULDBean
+
+class UldListViewHolder(view: View) : BaseViewHolder(view) {
+ override fun onBind(item: Any?, position: Int) {
+ val itemBean = getItemBean(item)!!
+ binding.bean = itemBean
+ notifyItemClick(position, binding.llContent)
+ notifyItemClick(position, binding.tvModify)
+ notifyItemClick(position, binding.tvDelete)
+ }
+}
diff --git a/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListViewModel.kt b/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListViewModel.kt
new file mode 100644
index 0000000..4ac225b
--- /dev/null
+++ b/app/src/main/java/com/lukouguoji/aerologic/page/uld/list/UldListViewModel.kt
@@ -0,0 +1,116 @@
+package com.lukouguoji.aerologic.page.uld.list
+
+import android.app.Activity
+import android.content.Intent
+import androidx.lifecycle.MutableLiveData
+import com.lukouguoji.aerologic.R
+import com.lukouguoji.aerologic.page.uld.edit.UldEditActivity
+import com.lukouguoji.module_base.base.BasePageViewModel
+import com.lukouguoji.module_base.bean.ULDBean
+import com.lukouguoji.module_base.common.Constant
+import com.lukouguoji.module_base.http.net.NetApply
+import com.lukouguoji.module_base.ktx.commonAdapter
+import com.lukouguoji.module_base.ktx.launchLoadingCollect
+import com.lukouguoji.module_base.ktx.noNull
+import com.lukouguoji.module_base.ktx.showToast
+import com.lukouguoji.module_base.model.ConfirmDialogModel
+import com.lukouguoji.module_base.ktx.toRequestBody
+import com.lukouguoji.module_base.model.ScanModel
+import dev.DevUtils
+import dev.utils.app.info.KeyValue
+
+class UldListViewModel : BasePageViewModel() {
+
+ // 搜索条件
+ val status = MutableLiveData("")
+ val uldSuffix = MutableLiveData("")
+ val uldNo = MutableLiveData("")
+
+ // 状态下拉列表
+ val statusList = MutableLiveData>(
+ listOf(
+ KeyValue("全部", ""),
+ KeyValue("正常", "0"),
+ KeyValue("故障", "1"),
+ )
+ )
+
+ // 所属航司下拉列表(mock,后续替换为接口)
+ val carrierList = MutableLiveData>(
+ listOf(
+ KeyValue("全部", ""),
+ KeyValue("MU - 东方航空", "MU"),
+ KeyValue("CA - 国航", "CA"),
+ KeyValue("CZ - 南方航空", "CZ"),
+ KeyValue("HO - 吉祥航空", "HO"),
+ KeyValue("FM - 上海航空", "FM"),
+ )
+ )
+
+ // 合计数量
+ val count = MutableLiveData(0L)
+
+ val itemLayoutId = R.layout.item_uld_list
+ val itemViewHolder = UldListViewHolder::class.java
+
+ override fun getData() {
+ launchLoadingCollect({
+ NetApply.api.getUldList(
+ mapOf(
+ "pageNum" to pageModel.page,
+ "pageSize" to pageModel.limit,
+ "status" to status.value?.ifEmpty { null },
+ "uldSuffix" to uldSuffix.value?.ifEmpty { null },
+ "uld" to uldNo.value?.ifEmpty { null },
+ ).toRequestBody()
+ )
+ }) {
+ onSuccess = {
+ pageModel.handleListBean(it.toBaseListBean())
+ count.value = it.total
+ }
+ }
+ }
+
+ fun onUldScanClick() {
+ ScanModel.startScan(DevUtils.getTopActivity(), Constant.RequestCode.ULD)
+ }
+
+ fun onAddClick() {
+ UldEditActivity.start(DevUtils.getTopActivity())
+ }
+
+ override fun onItemClick(position: Int, type: Int) {
+ val bean = pageModel.rv?.commonAdapter()?.getItem(position) as? ULDBean ?: return
+ when (type) {
+ R.id.ll_content -> UldEditActivity.start(DevUtils.getTopActivity(), bean.uld)
+ R.id.tv_modify -> UldEditActivity.start(DevUtils.getTopActivity(), bean.uld, true)
+ R.id.tv_delete -> deleteUld(bean.uld)
+ else -> {}
+ }
+ }
+
+ private fun deleteUld(uld: String) {
+ ConfirmDialogModel("是否确定删除该ULD记录?") {
+ launchLoadingCollect({
+ NetApply.api.deleteUld(uld)
+ }) {
+ onSuccess = {
+ showToast("删除成功")
+ refresh()
+ }
+ }
+ }.show()
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ if (resultCode == Activity.RESULT_OK && data != null) {
+ when (requestCode) {
+ Constant.RequestCode.ULD -> {
+ uldNo.value = data.getStringExtra(Constant.Result.CODED_CONTENT).noNull()
+ }
+ else -> {}
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/lukouguoji/aerologic/ui/fragment/HomeFragment.kt b/app/src/main/java/com/lukouguoji/aerologic/ui/fragment/HomeFragment.kt
index 58462f8..a041f27 100644
--- a/app/src/main/java/com/lukouguoji/aerologic/ui/fragment/HomeFragment.kt
+++ b/app/src/main/java/com/lukouguoji/aerologic/ui/fragment/HomeFragment.kt
@@ -30,6 +30,7 @@ import com.lukouguoji.aerologic.page.telegram.list.TelegramListActivity
import com.lukouguoji.aerologic.page.test.PrintActivity
import com.lukouguoji.aerologic.page.transport.GoodsTransportActivity
import com.lukouguoji.aerologic.page.transportLog.list.TransportLogActivity
+import com.lukouguoji.aerologic.page.uld.list.UldListActivity
import com.lukouguoji.gnc.page.deposit.list.GncDepositListActivity
import com.lukouguoji.gnc.page.distribution.home.GncDistributionHomeActivity
import com.lukouguoji.gnc.page.fubang.list.GncFuBangListActivity
@@ -548,6 +549,10 @@ class HomeFragment : Fragment() {
Constant.AuthName.ComprehensiveLog -> {
LogListActivity.start(requireContext())
}
+ // ULD管理
+ Constant.AuthName.ComprehensiveUld -> {
+ UldListActivity.start(requireContext())
+ }
else -> {
Toast.makeText(
@@ -950,6 +955,13 @@ class HomeFragment : Fragment() {
"转运记录"
)
)
+ list.add(
+ RightMenu(
+ Constant.AuthName.ComprehensiveUld,
+ R.mipmap.cargo,
+ "ULD管理"
+ )
+ )
}
else -> {
diff --git a/app/src/main/res/layout/activity_uld_edit.xml b/app/src/main/res/layout/activity_uld_edit.xml
new file mode 100644
index 0000000..8ed7684
--- /dev/null
+++ b/app/src/main/res/layout/activity_uld_edit.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_uld_list.xml b/app/src/main/res/layout/activity_uld_list.xml
new file mode 100644
index 0000000..cb6ffe3
--- /dev/null
+++ b/app/src/main/res/layout/activity_uld_list.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_uld_list.xml b/app/src/main/res/layout/item_uld_list.xml
new file mode 100644
index 0000000..5cf5eeb
--- /dev/null
+++ b/app/src/main/res/layout/item_uld_list.xml
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/ULDBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/ULDBean.kt
index 0a9a3b2..b690fbe 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/bean/ULDBean.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/ULDBean.kt
@@ -15,6 +15,16 @@ data class ULDBean(
var uld: String = "",
var uldFlag: String = "",
var uldType: String = "",
+ // 状态 0:正常 1:故障
+ var status: String = "",
+ // 备注
+ var remark: String = "",
){
val checked = ObservableBoolean(false)
+
+ fun statusName(): String = when (status) {
+ "0" -> "正常"
+ "1" -> "故障"
+ else -> status
+ }
}
\ No newline at end of file
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt b/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt
index 35e191e..918d26e 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt
@@ -328,6 +328,9 @@ interface Constant {
// 日志查询
const val ComprehensiveLog = "AppComprehensiveLog"
+
+ // ULD管理
+ const val ComprehensiveUld = "AppComprehensiveUld"
}
}
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt
index bbfc9df..eed9206 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt
@@ -1859,4 +1859,32 @@ interface Api {
*/
@POST("GjAccidentVisa/delete")
suspend fun deleteIntImpAccidentVisa(@Body data: RequestBody): BaseResultBean
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ULD管理
+ ///////////////////////////////////////////////////////////////////////////
+
+ /**
+ * 获取-ULD-列表(分页)
+ */
+ @POST("eqm/uld/pageQuery")
+ suspend fun getUldList(@Body data: RequestBody): PageInfo
+
+ /**
+ * 新增-ULD-信息
+ */
+ @POST("eqm/uld/saveUld")
+ suspend fun saveUld(@Body data: RequestBody): BaseResultBean
+
+ /**
+ * 更新-ULD-信息
+ */
+ @POST("eqm/uld/updateUld")
+ suspend fun updateUld(@Body data: RequestBody): BaseResultBean
+
+ /**
+ * 删除-ULD-信息
+ */
+ @POST("eqm/uld/deleteUld")
+ suspend fun deleteUld(@Query("uld") uld: String): BaseResultBean
}
\ No newline at end of file
diff --git a/module_base/src/main/res/layout/layout_pad_data_new.xml b/module_base/src/main/res/layout/layout_pad_data_new.xml
index 70579bc..980d863 100644
--- a/module_base/src/main/res/layout/layout_pad_data_new.xml
+++ b/module_base/src/main/res/layout/layout_pad_data_new.xml
@@ -36,7 +36,7 @@
android:background="@null"
android:paddingStart="10dp"
android:textColor="@color/text_normal"
- android:textColorHint="@color/text_gray"
+ android:textColorHint="@color/text_gray_l"
android:textSize="14sp" />