diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjImportManifest.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjImportManifest.kt index 67e38da..e6d2361 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjImportManifest.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjImportManifest.kt @@ -44,7 +44,7 @@ data class GjjImportManifest( // 目的地 var dest: String = "", // 危险品收货人通讯方式 - var dgrContactMame: String = "", + var dgrContactName: String = "", // 危险品收货人通讯方式 var dgrContactNumber: String = "", // 航班日期 diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpAccidentVisaEditActivity.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpAccidentVisaEditActivity.kt index 78d777f..4e8c8a4 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpAccidentVisaEditActivity.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpAccidentVisaEditActivity.kt @@ -3,6 +3,7 @@ package com.lukouguoji.gjj.activity import android.content.Context import android.content.Intent import android.os.Bundle +import android.text.InputType import com.lukouguoji.gjj.R import com.lukouguoji.gjj.databinding.ActivityIntImpAccidentVisaEditBinding import com.lukouguoji.gjj.viewModel.IntImpAccidentVisaEditViewModel @@ -26,8 +27,8 @@ class IntImpAccidentVisaEditActivity : // 航班号:大写字母+数字 binding.fnoInput.et.setUpperCaseAlphanumericFilter() - // 运单号:大写字母+数字 - binding.wbNoInput.et.setUpperCaseAlphanumericFilter() + // 运单号:纯数字11位 + binding.wbNoInput.et.inputType = InputType.TYPE_CLASS_NUMBER viewModel.rv = binding.rv binding.rv.addOnItemClickListener(viewModel) diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrSupplementInfoViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrSupplementInfoViewModel.kt index 7e6c86d..679a9b3 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrSupplementInfoViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrSupplementInfoViewModel.kt @@ -129,7 +129,7 @@ class IntArrSupplementInfoViewModel : BaseViewModel() { consignorPNum = formBean.consignorPNum, consignorAddress = formBean.consignorAddress, // 危险品信息 - dgrContactMame = formBean.dgrContactMame, + dgrContactName = formBean.dgrContactName, dgrContactNumber = formBean.dgrContactNumber, unNumber = formBean.unNumber ) diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt index 035fc9a..16acade 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt @@ -173,13 +173,23 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener { fun onFlightDateInputComplete() { lastQueriedFlight = "" + clearFlightInfo() queryFlightIfReady() } fun onFlightNoInputComplete() { + lastQueriedFlight = "" + clearFlightInfo() queryFlightIfReady() } + private fun clearFlightInfo() { + val b = dataBean.value ?: GjAccidentVisaEditBean() + b.dep = "" + b.dest = "" + dataBean.value = b + } + private fun queryFlightIfReady() { val bean = dataBean.value ?: return val fdate = bean.fdate @@ -228,11 +238,39 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener { // 保存 /////////////////////////////////////////////////////////////////////////// + /** + * 校验运单号格式 + * 规则:纯数字,固定11位,后8位中前7位 mod 7 == 最后一位 + * 返回 true 表示校验失败(有错误) + */ + private fun verifyWaybillNo(wbNo: String?): Boolean { + if (wbNo.isNullOrEmpty()) return false + if (wbNo.length != 11) { + showToast("运单号必须为11位数字") + return true + } + if (!wbNo.all { it.isDigit() }) { + showToast("运单号必须为纯数字") + return true + } + val last8 = wbNo.substring(3) + val first7ofLast8 = last8.substring(0, 7).toLong() + val lastDigit = last8.last().toString().toInt() + if (first7ofLast8 % 7 != lastDigit.toLong()) { + showToast("运单号校验位不正确") + return true + } + return false + } + fun onSaveClick() { val bean = dataBean.value ?: return if (bean.fdate.verifyNullOrEmpty("请输入航班日期")) return if (bean.fno.verifyNullOrEmpty("请输入航班号")) return if (bean.wbNo.verifyNullOrEmpty("请输入运单号")) return + if (verifyWaybillNo(bean.wbNo)) return + if (bean.dep.verifyNullOrEmpty("请先填写航班信息(始发站不能为空)")) return + if (bean.dest.verifyNullOrEmpty("请先填写航班信息(目的站不能为空)")) return (rv?.commonAdapter()?.items ?: emptyList()) .asFlow() diff --git a/module_gjj/src/main/res/layout/activity_int_arr_supplement_info.xml b/module_gjj/src/main/res/layout/activity_int_arr_supplement_info.xml index 594d3da..5f11656 100644 --- a/module_gjj/src/main/res/layout/activity_int_arr_supplement_info.xml +++ b/module_gjj/src/main/res/layout/activity_int_arr_supplement_info.xml @@ -260,7 +260,7 @@ title='@{"名称"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@={viewModel.dataBean.dgrContactMame}' /> + value='@={viewModel.dataBean.dgrContactName}' /> + completeSpace="@{6}" />