feat: 国际进港-原始舱

This commit is contained in:
2025-12-26 23:20:38 +08:00
parent f291a73b5b
commit a672e3927c
23 changed files with 2203 additions and 1 deletions

View File

@@ -0,0 +1,29 @@
package com.lukouguoji.module_base.bean
import androidx.databinding.ObservableBoolean
/**
* 国际进港航空舱单(包含主单和分单)
*/
data class GjjAirManifest(
// 主单原始舱单
var maWbList: GjjImportManifest? = null,
// 分单原始舱单列表
var haWbList: List<GjjImportManifest>? = null
) {
// ========== UI扩展字段 ==========
// 选中状态(用于列表多选)
val checked: ObservableBoolean = ObservableBoolean(false)
// 兼容现有API的isSelected属性
var isSelected: Boolean
get() = checked.get()
set(value) = checked.set(value)
/**
* 获取主单用于显示
*/
fun getMainManifest(): GjjImportManifest {
return maWbList ?: GjjImportManifest()
}
}

View File

@@ -0,0 +1,22 @@
package com.lukouguoji.module_base.bean
/**
* 国际进港舱单/理货申报参数
*/
data class GjjDeclareParam(
var dcode: String = "",
var dcontactsName: String = "",
var dcontactsTel: String = "",
// 原始舱单主单列表
var maWbList: List<GjjImportManifest>? = null,
// 原始舱单分单列表
var haWbList: List<GjjImportManifest>? = null,
// 主单理货列表
var mtallyList: List<GjjImportTally>? = null,
// 分单理货列表
var htallyList: List<GjjImportTally>? = null,
// 重置状态原因
var resetReason: String = "",
// 重置的状态(正常-'01';未申报-null-不传值)
var restStatus: String? = null
)

View File

@@ -0,0 +1,126 @@
package com.lukouguoji.module_base.bean
import androidx.databinding.ObservableBoolean
import java.io.Serializable
/**
* 国际进港原始舱单
*/
data class GjjImportManifest(
// 代理代码
var agentCode: String = "",
// 代理人名称(中)
var agentName: String = "",
// 运单类型
var awbType: String = "",
// 运单类型(中)
var awbTypeName: String = "",
// 收货人
var consignee: String = "",
// 收货人地址
var consigneeAddress: String = "",
// 收货人公司代码
var consigneeCode: String = "",
// 收货人通讯方式
var consigneeComType: String = "",
// 收货人国家代码
var consigneeCountryCode: String = "",
// 收货人名称
var consigneeName: String = "",
// 收货人电话号码
var consigneePNum: String = "",
// 发货人地址
var consignorAddress: String = "",
// 发货人公司代码
var consignorCode: String = "",
// 发货人通讯方式
var consignorComType: String = "",
// 发货人国家代码
var consignorCountryCode: String = "",
// 发货人名称
var consignorName: String = "",
// 发货人电话号码
var consignorPNum: String = "",
// 目的地
var dest: String = "",
// 危险品收货人通讯方式
var dgrContactMame: String = "",
// 危险品收货人通讯方式
var dgrContactNumber: String = "",
// 航班起始站
var fdep: String = "",
// 航班目的站
var fdest: String = "",
// 航班id
var fid: Long = 0,
// 运费支付方式
var freightPayment: String = "",
// 品名
var goods: String = "",
// 品名(中)
var goodsCn: String = "",
// 分单数量
var haWbNum: Int = 0,
// 分单总件数
var haWbTotalPc: Long = 0,
// 分单总重
var haWbTotalWeight: Double = 0.0,
// 分单号
var hno: String = "",
// 舱单申报删除次数
var mftDCount: Long = 0,
// 舱单申报删除税率
var mftDRate: Double = 0.0,
// 舱单报文编号
var mftMsgId: String = "",
// 舱单申报次数
var mftSCount: Long = 0,
// 舱单申报税率
var mftSRate: Double = 0.0,
// 舱单申报状态
var mftStatus: String = "",
// 编号
var no: String = "",
// 货源地
var origin: String = "",
// 件数
var pc: Long = 0,
// 前缀
var prefix: String = "",
// 备注
var remark: String = "",
// 舱单报文回执
var response: String = "",
// 发货人
var shipper: String = "",
// 特码
var spCode: String = "",
// 特货收货人通讯方式
var speConsigneeComType: String = "",
// 特货收货人名称
var speConsigneeName: String = "",
// 特货收货人联系号码
var speConsigneePNum: String = "",
// 分批标志
var splitFlag: String = "",
// 总件数
var totalPc: Long = 0,
// 危险品编号
var unNumber: String = "",
// 体积
var volume: Double = 0.0,
// 主运单号prefix+no拼接
var wbNo: String = "",
// 重量
var weight: Double = 0.0
) : Serializable {
// ========== UI扩展字段 ==========
// 选中状态
@Transient
val checked: ObservableBoolean = ObservableBoolean(false)
// 兼容现有API的isSelected属性
var isSelected: Boolean
get() = checked.get()
set(value) = checked.set(value)
}

View File

@@ -0,0 +1,75 @@
package com.lukouguoji.module_base.bean
/**
* 国际进港理货数据
*/
data class GjjImportTally(
// 有效ID
var activeId: Long = 0,
// 代理代码
var agentCode: String = "",
// 代理(中文)
var agentName: String = "",
// 运单类型(5位代码)
var awbType: String = "",
// 运单类型(中文)
var awbTypeName: String = "",
// 提单号
var billsNo: String = "",
// 车牌号
var carNumber: String = "",
// 海关库区(2位代码)
var customsLib: String = "",
// 目的地(3位代码)
var dest: String = "",
// 航班日期
var fdate: String = "",
// 航班目的地(3位代码)
var fdest: String = "",
// 航班号
var fno: String = "",
// 货物描述
var goods: String = "",
// 分单数量
var haWbNum: Int = 0,
// 运单号
var hno: String = "",
// 理货申报上一次消息ID
var lastMsgId: String = "",
// 理货申报上一次状态
var lastStatus: String = "",
// 理货申报消息ID
var msgId: String = "",
// 编号(8位字符)
var no: String = "",
// 操作时间
var opDate: String = "",
// 操作人ID
var opId: String = "",
// 始发地(3位代码)
var origin: String = "",
// 包装类型(2位代码)
var packageType: String = "",
// 件数
var pc: Long = 0,
// 前缀(3位字符)
var prefix: String = "",
// 响应信息
var response: String = "",
// 特货代码
var spCode: String = "",
// 理货申报状态
var status: String = "",
// 理货删除次数
var tallyDCount: Long = 0,
// 理货删除费率
var tallyDRate: Double = 0.0,
// 理货申报次数
var tallySCount: Long = 0,
// 理货申报费率
var tallySRate: Double = 0.0,
// 体积(m³)
var volume: Double = 0.0,
// 重量(kg)
var weight: Double = 0.0
)

View File

@@ -133,6 +133,9 @@ interface Constant {
// 运单
const val WAYBILL = 10002
// 分单号
const val HNO = 10006
// 单号
const val CODE = 10003
const val ORDER = 10004
@@ -263,6 +266,7 @@ interface Constant {
const val GjjPacketParseActivity = "AppIntExpPacketParse" //报文解析(旧)
const val IntImpMsgParseActivity = "AppIntImpMsgParse" //电报解析(电报生成)
const val IntArrAirManifest = "AppIntArrAirManifest" //原始舱单
const val GjjManifestListActivity = "AppIntExpManifest" //舱单
const val GjjTallyListActivity = "AppIntExpTally" //理货
const val GjjGoodsListActivity = "AppIntExpGjjGoods" //货物交接

View File

@@ -43,6 +43,7 @@ import com.lukouguoji.module_base.bean.GjcWaybillDataBean
import com.lukouguoji.module_base.bean.GjcWeighingBean
import com.lukouguoji.module_base.bean.GjcWeighingRecordBean
import com.lukouguoji.module_base.bean.GjcWeighingStatisticsBean
import com.lukouguoji.module_base.bean.GjjAirManifest
import com.lukouguoji.module_base.bean.GjjGoodsBean
import com.lukouguoji.module_base.bean.GjjGoodsDetailsBean
import com.lukouguoji.module_base.bean.GjjGoodsTypeBean
@@ -1534,4 +1535,38 @@ interface Api {
*/
@POST("IntImpMsg/batchGenerate")
suspend fun batchGenerateMsg(@Body data: RequestBody): BaseResultBean<SimpleResultBean>
///////////////////////////////////////////////////////////////////////////
// 国际进港-原始舱单
///////////////////////////////////////////////////////////////////////////
/**
* 国际进港原始舱单-分页查询
*/
@POST("IntImpAirManifest/pageQuery")
suspend fun getIntArrAirManifestList(@Body data: RequestBody): BaseResultBean<PageInfo<GjjAirManifest>>
/**
* 国际进港原始舱单-分页合计
*/
@POST("IntImpAirManifest/pageQueryTotal")
suspend fun getIntArrAirManifestTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>
/**
* 国际进港原始舱单-舱单申报(分单+主单)
*/
@POST("IntImpAirManifest/declare")
suspend fun declareIntArrManifest(@Body data: RequestBody): BaseResultBean<Boolean>
/**
* 国际进港原始舱单-重置舱单申报状态
*/
@POST("IntImpAirManifest/resetDeclare")
suspend fun resetIntArrManifestStatus(@Body data: RequestBody): BaseResultBean<Boolean>
/**
* 国际进港原始舱单-删除舱单申报
*/
@POST("IntImpAirManifest/deleteDeclare")
suspend fun deleteIntArrManifestDeclare(@Body data: RequestBody): BaseResultBean<Boolean>
}

View File

@@ -168,6 +168,9 @@ object ARouterConstants {
const val ACTIVITY_URL_GJJ_GOODS = "/gjj/GjjGoodsListActivity" //国际进港 货物交接
const val ACTIVITY_URL_INT_IMP_MSG_PARSE = "/gjj/IntImpMsgParseActivity" //国际进港 电报解析(电报生成)
const val ACTIVITY_URL_INT_ARR_TELEGRAM_DETAILS = "/gjj/IntArrTelegramDetailsActivity" //国际进港 电报详情
const val ACTIVITY_URL_INT_ARR_AIR_MANIFEST = "/gjj/IntArrAirManifestActivity" //国际进港 原始舱单
const val ACTIVITY_URL_INT_ARR_AIR_MANIFEST_DETAILS = "/gjj/IntArrAirManifestDetailsActivity" //国际进港 原始舱单详情
const val ACTIVITY_URL_INT_ARR_SUPPLEMENT_INFO = "/gjj/IntArrSupplementInfoActivity" //国际进港 补充信息
///////////////// 航班查询模块
/**