feat(进港移库): 移库人取 opUserName,已移库照片经 movedDetail 回填(问题清单 #32~#34)
- #32 fdate/fno/spCode 后端已实装(search/searchMoved),手机端原有传参零改动生效 - #33 searchMoved 已回填 opId/opDate 并新增 opUserName:详情「移库人」改绑姓名(回退 opId) - #34 新增 GET /DomImpMove/movedDetail:已移库运单(列表无 mawbId)拍照页按 moveId 回填照片 - 已移库运单 searchMoved/movedDetail 均无 mawbId,而 modify 以 mawbId 定位(实测返回「未能获取到运单id」), 提交前给出明确提示,不再发出必失败请求;缺口已登记问题清单 - 内网实测:fno=MU2222 待移库 0 / 已移库 2 与直调一致;详情移库人「张三」 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -33,7 +33,7 @@ class GnjMoveStashDetailActivity :
|
|||||||
/** 「异常照片」加号槽位 → 拍照上传页 */
|
/** 「异常照片」加号槽位 → 拍照上传页 */
|
||||||
fun openPhoto() {
|
fun openPhoto() {
|
||||||
viewModel.dataBean.value?.let {
|
viewModel.dataBean.value?.let {
|
||||||
GnjMoveStashPhotoActivity.start(this, it.mawbId, it.wbNo)
|
GnjMoveStashPhotoActivity.start(this, it.mawbId, it.wbNo, it.moveId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ class GnjMoveStashListActivity :
|
|||||||
/** 浮层「拍照」→ 拍照上传页 */
|
/** 浮层「拍照」→ 拍照上传页 */
|
||||||
fun openPhoto(bean: MoveStashBean) {
|
fun openPhoto(bean: MoveStashBean) {
|
||||||
bean.actionMenuVisible.set(false)
|
bean.actionMenuVisible.set(false)
|
||||||
GnjMoveStashPhotoActivity.start(this, bean.mawbId, bean.wbNo)
|
GnjMoveStashPhotoActivity.start(this, bean.mawbId, bean.wbNo, bean.moveId)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -33,12 +33,16 @@ class GnjMoveStashPhotoActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
/** 已移库运单的 moveId(movedDetail 回填照片用) */
|
||||||
|
const val EXTRA_MOVE_ID = "moveId"
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun start(context: Context, mawbId: String, wbNo: String) {
|
fun start(context: Context, mawbId: String, wbNo: String, moveId: String = "") {
|
||||||
context.startActivity(
|
context.startActivity(
|
||||||
Intent(context, GnjMoveStashPhotoActivity::class.java)
|
Intent(context, GnjMoveStashPhotoActivity::class.java)
|
||||||
.putExtra(Constant.Key.ID, mawbId)
|
.putExtra(Constant.Key.ID, mawbId)
|
||||||
.putExtra(Constant.Key.CODE, wbNo)
|
.putExtra(Constant.Key.CODE, wbNo)
|
||||||
|
.putExtra(EXTRA_MOVE_ID, moveId)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,13 +37,17 @@ import kotlinx.coroutines.launch
|
|||||||
* 国内进港移库「拍照上传」ViewModel(5.5 寸手持端专属页面)
|
* 国内进港移库「拍照上传」ViewModel(5.5 寸手持端专属页面)
|
||||||
*
|
*
|
||||||
* 图片选择/预览/删除复用 module_base 的 ImageSelectNewViewHolder(末位加号槽位)。
|
* 图片选择/预览/删除复用 module_base 的 ImageSelectNewViewHolder(末位加号槽位)。
|
||||||
* 已有照片经 DomImpMove/detail 回填;提交走 DomImpMove/modify 最小体
|
* 已有照片回填:待移库经 DomImpMove/detail(mawbId),已移库经 DomImpMove/movedDetail(moveId,
|
||||||
|
* searchMoved 出参不含 mawbId)。提交走 DomImpMove/modify 最小体
|
||||||
* (mawbId/remark/picNumber/pic/originalPic),与平板移交编辑页同一链路。
|
* (mawbId/remark/picNumber/pic/originalPic),与平板移交编辑页同一链路。
|
||||||
*/
|
*/
|
||||||
class GnjMoveStashPhotoViewModel : BaseViewModel(), IOnItemClickListener {
|
class GnjMoveStashPhotoViewModel : BaseViewModel(), IOnItemClickListener {
|
||||||
|
|
||||||
var mawbId = ""
|
var mawbId = ""
|
||||||
|
|
||||||
|
/** 已移库运单的移库记录 ID(searchMoved 出参),用于 movedDetail 回填 */
|
||||||
|
var moveId = ""
|
||||||
|
|
||||||
/** 运单号(副标题展示,由列表带入) */
|
/** 运单号(副标题展示,由列表带入) */
|
||||||
val wbNo = MutableLiveData("")
|
val wbNo = MutableLiveData("")
|
||||||
|
|
||||||
@@ -59,9 +63,14 @@ class GnjMoveStashPhotoViewModel : BaseViewModel(), IOnItemClickListener {
|
|||||||
fun initOnCreated(intent: Intent) {
|
fun initOnCreated(intent: Intent) {
|
||||||
mawbId = intent.getStringExtra(Constant.Key.ID).orEmpty()
|
mawbId = intent.getStringExtra(Constant.Key.ID).orEmpty()
|
||||||
wbNo.value = intent.getStringExtra(Constant.Key.CODE).orEmpty()
|
wbNo.value = intent.getStringExtra(Constant.Key.CODE).orEmpty()
|
||||||
|
moveId = intent.getStringExtra(GnjMoveStashPhotoActivity.EXTRA_MOVE_ID).orEmpty()
|
||||||
|
|
||||||
// 已有照片回填(pic 缩略图 + originalPic 原图),末位补加号槽位
|
// 已有照片回填(pic 缩略图 + originalPic 原图),末位补加号槽位;
|
||||||
launchCollect({ NetApply.api.getGnjMoveStashDetail(mawbId) }) {
|
// 已移库运单无 mawbId,改按 moveId 走 movedDetail
|
||||||
|
launchCollect({
|
||||||
|
if (mawbId.isEmpty() && moveId.isNotEmpty()) NetApply.api.getGnjMoveStashMovedDetail(moveId)
|
||||||
|
else NetApply.api.getGnjMoveStashDetail(mawbId)
|
||||||
|
}) {
|
||||||
onSuccess = {
|
onSuccess = {
|
||||||
detailBean = it.data ?: GnjYiKuBean()
|
detailBean = it.data ?: GnjYiKuBean()
|
||||||
val picList = detailBean.pic.split(",").filter { p -> p.isNotEmpty() }
|
val picList = detailBean.pic.split(",").filter { p -> p.isNotEmpty() }
|
||||||
@@ -88,6 +97,11 @@ class GnjMoveStashPhotoViewModel : BaseViewModel(), IOnItemClickListener {
|
|||||||
* 确认提交:先补传未上传的本地图片,再按三字段规范提交 modify
|
* 确认提交:先补传未上传的本地图片,再按三字段规范提交 modify
|
||||||
*/
|
*/
|
||||||
fun submitClick() {
|
fun submitClick() {
|
||||||
|
// modify 以 mawbId 定位运单;已移库运单 searchMoved/movedDetail 均不返回 mawbId(后端缺口),无法提交
|
||||||
|
if (mawbId.isEmpty()) {
|
||||||
|
showToast("已移库运单缺少运单ID,暂不支持提交照片")
|
||||||
|
return
|
||||||
|
}
|
||||||
(rv?.commonAdapter()?.items ?: emptyList())
|
(rv?.commonAdapter()?.items ?: emptyList())
|
||||||
.asFlow()
|
.asFlow()
|
||||||
.map { it as FileBean }
|
.map { it as FileBean }
|
||||||
|
|||||||
@@ -244,7 +244,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
title='@{"移库人"}'
|
title='@{"移库人"}'
|
||||||
value="@{viewModel.dataBean.opId}" />
|
value="@{viewModel.dataBean.opUserDisplay}" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.phone.PhoneKvItem
|
<com.lukouguoji.module_base.ui.weight.phone.PhoneKvItem
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
|||||||
@@ -27,7 +27,9 @@ class MoveStashBean : ICheck {
|
|||||||
var flight: String = "" // 20240711/MU7766
|
var flight: String = "" // 20240711/MU7766
|
||||||
var fno: String = "" // MU7766
|
var fno: String = "" // MU7766
|
||||||
var goods: String = "" // 国际货
|
var goods: String = "" // 国际货
|
||||||
var mawbId: String = "" // 996422
|
var mawbId: String = "" // 996422(searchMoved 出参不含此字段)
|
||||||
|
var moveId: String = "" // CIII260930141150(已移库,movedDetail 入参)
|
||||||
|
var opUserName: String = "" // 移库人姓名(searchMoved / movedDetail 出参)
|
||||||
var no: String = "" // 44445074
|
var no: String = "" // 44445074
|
||||||
var opDate: String = "" // null
|
var opDate: String = "" // null
|
||||||
var opId: String = "" // null
|
var opId: String = "" // null
|
||||||
@@ -63,6 +65,10 @@ class MoveStashBean : ICheck {
|
|||||||
val agentDisplay: String
|
val agentDisplay: String
|
||||||
get() = if (agentName.isNotEmpty()) agentName else agentCode
|
get() = if (agentName.isNotEmpty()) agentName else agentCode
|
||||||
|
|
||||||
|
/** 移库人:优先姓名,为空回退操作人 ID */
|
||||||
|
val opUserDisplay: String
|
||||||
|
get() = opUserName.ifEmpty { opId }
|
||||||
|
|
||||||
/** 详情页/卡片字段统一空值占位 */
|
/** 详情页/卡片字段统一空值占位 */
|
||||||
fun orDash(value: String?): String = if (value.isNullOrEmpty()) "-" else value
|
fun orDash(value: String?): String = if (value.isNullOrEmpty()) "-" else value
|
||||||
}
|
}
|
||||||
@@ -1796,6 +1796,13 @@ interface Api {
|
|||||||
@GET("DomImpMove/detail")
|
@GET("DomImpMove/detail")
|
||||||
suspend fun getGnjMoveStashDetail(@Query("mawbId") mawbId: String): BaseResultBean<GnjYiKuBean>
|
suspend fun getGnjMoveStashDetail(@Query("mawbId") mawbId: String): BaseResultBean<GnjYiKuBean>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国内进港移库-移库完成详情(已移库运单无 mawbId,按 moveId 查,含 pic 三字段与移库人)
|
||||||
|
* 接口路径: /DomImpMove/movedDetail
|
||||||
|
*/
|
||||||
|
@GET("DomImpMove/movedDetail")
|
||||||
|
suspend fun getGnjMoveStashMovedDetail(@Query("moveId") moveId: String): BaseResultBean<GnjYiKuBean>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑-国内进港移库(新接口)
|
* 编辑-国内进港移库(新接口)
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user