fix: 进港移库归属更正——删除误建IntImpMove,重新适配到国内进港DomImpMove
设计稿11「进港移库」经确认归属国内进港移库(DomImpMove后端8接口齐全), 此前误判为国际进港并预接了不存在的IntImpMove模块(问题清单#31作废)。 - 删除module_gjj的IntImpMove全套实现(3页面+Bean+Api+菜单+路由+权限串) - GnjMoveStashListActivity双形态适配:待移库/已移库Tab走search/searchMoved 双端点,Tab角标、筛选弹层4项、全选/批量移库复用平板既有链路 - 新增手机专属页:运单详情(Intent传bean零请求)+拍照上传(detail回填 已有照片,modify最小体三字段提交,与平板移交编辑页同链路) - 手机首页入口改挂国内Tab(GnViewModel补通用route跳转,权限串AppDomImpMove) - 内网真实数据双端验证通过;Proxyman A/B:wbNo/awbType生效, fdate/fno/spCode被后端静默忽略(#32)、opId/opDate恒null(#33) - 问题清单更正#31+新增#32~#34,CLAUDE.md/CHANGELOG/api-doc.md同步 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,78 +0,0 @@
|
||||
package com.lukouguoji.module_base.bean
|
||||
|
||||
import androidx.databinding.ObservableBoolean
|
||||
import com.lukouguoji.module_base.interfaces.ICheck
|
||||
import java.io.Serializable
|
||||
|
||||
/**
|
||||
* 国际进港移库 Bean(5.5 寸手持端专属页面)
|
||||
*
|
||||
* ⚠️ 后端目前**没有**「国际进港移库」模块(api-doc 仅有国内进港 DomImpMove 与国际出港 IntExpMove,
|
||||
* 2026-07-31 核对),字段按 IntExpMove 出参约定 + 设计稿展示需求镜像定义,
|
||||
* 已登记《后端接口对接问题清单》。后端按同名约定交付后前端自动生效。
|
||||
*/
|
||||
data class IntImpMoveBean(
|
||||
var no: String = "", // 运单号主体
|
||||
var prefix: String = "", // 运单前缀
|
||||
var wbNo: String = "", // 运单号
|
||||
var pc: Long = 0, // 件数
|
||||
var weight: Double = 0.0, // 重量
|
||||
|
||||
var fdate: String = "", // 航班日期
|
||||
var fno: String = "", // 航班号
|
||||
var flight: String = "", // 航班信息(日期/航班号 组合串)
|
||||
var range: String = "", // 出运路径(如 HFE-NKG-LAX)
|
||||
|
||||
var by1: String = "", // 承运人
|
||||
var awbType: String = "", // 运单类型编码
|
||||
var awbTypeName: String = "", // 运单类型名称
|
||||
var businessType: String = "", // 业务类型编码
|
||||
var businessName: String = "", // 业务类型名称
|
||||
var moveState: Int = 0, // 移库状态(0-待移库,1-已移库)
|
||||
var goods: String = "", // 品名(英文)
|
||||
var goodsCn: String = "", // 品名(中文)
|
||||
var agentName: String = "", // 代理人
|
||||
var agentCode: String = "", // 代理代码
|
||||
var spCode: String = "", // 特码
|
||||
|
||||
var maWbId: Long = 0, // 主单主键ID
|
||||
var opId: String = "", // 移库人
|
||||
var opdate: String = "", // 移库时间
|
||||
var remark: String = "", // 备注
|
||||
|
||||
// 异常照片(拍照上传,三字段规范:pic 缩略图 / originalPic 原图 / picNumber 数量)
|
||||
var pic: String = "",
|
||||
var originalPic: String = "",
|
||||
var picNumber: String = "",
|
||||
|
||||
// UI扩展字段 - 使用ObservableBoolean实现自动UI更新
|
||||
val checked: ObservableBoolean = ObservableBoolean(false),
|
||||
// 卡片长按操作浮层显隐(仅 UI 状态)
|
||||
val actionMenuVisible: ObservableBoolean = ObservableBoolean(false)
|
||||
) : Serializable, ICheck {
|
||||
|
||||
override fun getCheckObservable(): ObservableBoolean = checked
|
||||
|
||||
var isSelected: Boolean
|
||||
get() = checked.get()
|
||||
set(value) = checked.set(value)
|
||||
|
||||
// ========== 5.5 寸手持端展示辅助字段(仅用于手机版布局,不参与序列化) ==========
|
||||
|
||||
/** 是否已移库(moveState:0-待移库,1-已移库) */
|
||||
val isMoved: Boolean
|
||||
get() = moveState == 1
|
||||
|
||||
/** 品名:优先中文,为空回退英文 */
|
||||
val goodsName: String
|
||||
get() = goodsCn.ifEmpty { goods }
|
||||
|
||||
/** 航班信息展示:优先组合串,其次 日期/航班号 拼接 */
|
||||
val flightInfo: String
|
||||
get() = flight.ifEmpty {
|
||||
if (fdate.isEmpty() && fno.isEmpty()) "" else "$fdate/$fno"
|
||||
}
|
||||
|
||||
/** 详情页字段统一空值占位 */
|
||||
fun orDash(value: String?): String = if (value.isNullOrEmpty()) "-" else value
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.lukouguoji.module_base.interfaces.ICheck
|
||||
class MoveStashBean : ICheck {
|
||||
var activeId: String = "" // null
|
||||
var agentCode: String = "" // HFEXB
|
||||
var agentName: String = "" // 代理人名称(search 出参有定义)
|
||||
var awbType: String = "" // 国际进港(国内中转)
|
||||
var businessType: String = "" // null
|
||||
var by1: String = "" // null
|
||||
@@ -49,4 +50,19 @@ class MoveStashBean : ICheck {
|
||||
override fun getCheckObservable(): ObservableBoolean {
|
||||
return checked
|
||||
}
|
||||
|
||||
// ========== 5.5 寸手持端展示辅助字段(仅前端使用,不参与提交) ==========
|
||||
|
||||
/** 是否已移库:由列表加载端点决定(search=待移库 / searchMoved=已移库),载入时打标 */
|
||||
var isMoved: Boolean = false
|
||||
|
||||
/** 卡片长按「拍照」操作浮层显隐(仅 UI 状态) */
|
||||
val actionMenuVisible = ObservableBoolean(false)
|
||||
|
||||
/** 代理显示:网络层会把 null 归一成空串,须 isNullOrEmpty 双兜底(沿用进港/出港查询口径) */
|
||||
val agentDisplay: String
|
||||
get() = if (agentName.isNotEmpty()) agentName else agentCode
|
||||
|
||||
/** 详情页/卡片字段统一空值占位 */
|
||||
fun orDash(value: String?): String = if (value.isNullOrEmpty()) "-" else value
|
||||
}
|
||||
@@ -274,7 +274,6 @@ interface Constant {
|
||||
const val IntImpPickUpDLV = "AppIntImpPickUpDLV" //提取出库
|
||||
// 进港移库:后端暂无该模块与权限串(2026-07-31 api-doc 核对),按 AppIntImp* 命名约定预定义,
|
||||
// 权限串下发前手机首页菜单不会显示该入口(已登记后端接口对接问题清单)
|
||||
const val IntImpMove = "AppIntImpMove" //进港移库
|
||||
const val IntImpAccidentVisa = "AppIntImpAccidentVisa" //事故签证
|
||||
const val GjjManifestListActivity = "AppIntExpManifest" //舱单
|
||||
const val GjjTallyListActivity = "AppIntExpTally" //理货
|
||||
|
||||
@@ -55,7 +55,6 @@ import com.lukouguoji.module_base.bean.GjAccidentVisaEditBean
|
||||
import com.lukouguoji.module_base.bean.IntImpAccidentVisaBean
|
||||
import com.lukouguoji.module_base.bean.IntImpPickUpDLVBean
|
||||
import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean
|
||||
import com.lukouguoji.module_base.bean.IntImpMoveBean
|
||||
import com.lukouguoji.module_base.bean.IntImpQueryBean
|
||||
import com.lukouguoji.module_base.bean.GjjManifest
|
||||
import com.lukouguoji.module_base.bean.GjjManifestBean
|
||||
@@ -883,38 +882,6 @@ interface Api {
|
||||
@POST("IntExpMove/move")
|
||||
suspend fun submitIntExpMove(@Body data: RequestBody): BaseResultBean<SimpleResultBean>
|
||||
|
||||
/**
|
||||
* 国际进港移库-分页查询
|
||||
* 接口路径: /IntImpMove/pageQuery
|
||||
* ⚠️ 后端暂无该模块(2026-07-31 api-doc 核对),按 IntExpMove 命名约定预接,已登记问题清单
|
||||
*/
|
||||
@POST("IntImpMove/pageQuery")
|
||||
suspend fun getIntImpMoveList(@Body data: RequestBody): BaseListBean<IntImpMoveBean>
|
||||
|
||||
/**
|
||||
* 国际进港移库-分页合计
|
||||
* 接口路径: /IntImpMove/pageQueryTotal
|
||||
* ⚠️ 后端暂无该模块,同上
|
||||
*/
|
||||
@POST("IntImpMove/pageQueryTotal")
|
||||
suspend fun getIntImpMoveTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>
|
||||
|
||||
/**
|
||||
* 国际进港移库-批量移库
|
||||
* 接口路径: /IntImpMove/move
|
||||
* ⚠️ 后端暂无该模块,同上
|
||||
*/
|
||||
@POST("IntImpMove/move")
|
||||
suspend fun submitIntImpMove(@Body data: RequestBody): BaseResultBean<SimpleResultBean>
|
||||
|
||||
/**
|
||||
* 国际进港移库-异常照片上传(pic/originalPic/picNumber 三字段规范)
|
||||
* 接口路径: /IntImpMove/uploadPic
|
||||
* ⚠️ 后端暂无该模块,同上
|
||||
*/
|
||||
@POST("IntImpMove/uploadPic")
|
||||
suspend fun submitIntImpMovePic(@Body data: RequestBody): BaseResultBean<SimpleResultBean>
|
||||
|
||||
/**
|
||||
* 国际出港库位操作-清仓
|
||||
* 接口路径: /IntExpStorageUse/updateClear
|
||||
@@ -1799,6 +1766,12 @@ interface Api {
|
||||
@POST("DomImpMove/search")
|
||||
suspend fun getGnjMoveStashList(@Body data: RequestBody): BaseListBean<MoveStashBean>
|
||||
|
||||
/**
|
||||
* 获取-国内进港移库-已移库列表(移库完成分页搜索,5.5 寸手机端「已移库」Tab)
|
||||
*/
|
||||
@POST("DomImpMove/searchMoved")
|
||||
suspend fun getGnjMoveStashMovedList(@Body data: RequestBody): BaseListBean<MoveStashBean>
|
||||
|
||||
/**
|
||||
* 获取-国内进港移库-列表--运单列表
|
||||
*/
|
||||
|
||||
@@ -104,6 +104,7 @@ object ARouterConstants {
|
||||
|
||||
// 国内进港移库(新版本)
|
||||
const val ACTIVITY_URL_GNJ_YIKU_LIST = "/gnj/GnjYiKuListActivity" //国内进港 移库列表
|
||||
const val ACTIVITY_URL_GNJ_MOVE_STASH_LIST = "/app/GnjMoveStashListActivity" //国内进港 移库(首页菜单实际跳转页,双形态)
|
||||
const val ACTIVITY_URL_GNJ_YIKU_DETAILS = "/gnj/GnjYiKuDetailsActivity" //国内进港 移库详情
|
||||
const val ACTIVITY_URL_GNJ_YIKU_EDIT = "/gnj/GnjYiKuEditActivity" //国内进港 移库编辑
|
||||
const val ACTIVITY_URL_GNJ_YIKU_HANDOVER = "/gnj/GnjYiKuHandoverActivity" //国内进港 移交编辑/详情
|
||||
@@ -182,7 +183,6 @@ object ARouterConstants {
|
||||
const val ACTIVITY_URL_INT_IMP_LOADING_LIST = "/gjj/IntImpLoadingListActivity" //国际进港 装机单(分拣理货)
|
||||
const val ACTIVITY_URL_INT_IMP_TALLY = "/gjj/IntImpTallyActivity" //国际进港 理货报告
|
||||
const val ACTIVITY_URL_INT_IMP_PICK_UP_DLV = "/gjj/IntImpPickUpDLVActivity" //国际进港 提取出库
|
||||
const val ACTIVITY_URL_INT_IMP_MOVE = "/gjj/IntImpMoveActivity" //国际进港 进港移库(5.5寸手机端专属页)
|
||||
const val ACTIVITY_URL_INT_IMP_ACCIDENT_VISA = "/gjj/IntImpAccidentVisaActivity" //国际进港 事故签证
|
||||
|
||||
///////////////// 航班查询模块
|
||||
|
||||
Reference in New Issue
Block a user