//package com.lukouguoji.module_base.http.net
package com.lukouguoji.module_base.http.net

import com.lukouguoji.module_base.bean.AccidentVisaBean
import com.lukouguoji.module_base.bean.AirportBean
import com.lukouguoji.module_base.bean.AppUpdateResponse
import com.lukouguoji.module_base.bean.AppUpdateResponseInfo
import com.lukouguoji.module_base.bean.AssembleCompanyBean
import com.lukouguoji.module_base.bean.BaseListBean
import com.lukouguoji.module_base.bean.BaseResultBean
import com.lukouguoji.module_base.bean.BoxDetailsForCarIdBean
import com.lukouguoji.module_base.bean.CarBarBean
import com.lukouguoji.module_base.bean.CarOrUldBean
import com.lukouguoji.module_base.bean.ColdStorageBean
import com.lukouguoji.module_base.bean.DiBangChannelBean
import com.lukouguoji.module_base.bean.DictBean
import com.lukouguoji.module_base.bean.DictIdValueBean
import com.lukouguoji.module_base.bean.DictListBean
import com.lukouguoji.module_base.bean.DictLocationBean
import com.lukouguoji.module_base.bean.DocumentHandoverBean
import com.lukouguoji.module_base.bean.FlatcarBean
import com.lukouguoji.module_base.bean.FlightBean
import com.lukouguoji.module_base.bean.FlightFilterBean
import com.lukouguoji.module_base.bean.GbCarOrUldBean
import com.lukouguoji.module_base.bean.GjcAssembleAllocate
import com.lukouguoji.module_base.bean.GjcAssembled
import com.lukouguoji.module_base.bean.GjcBoxAddInsertBean
import com.lukouguoji.module_base.bean.GjcBoxAssembleBean
import com.lukouguoji.module_base.bean.GjcBoxDetailsBean
import com.lukouguoji.module_base.bean.GjcBoxWeighingStatisticsBean
import com.lukouguoji.module_base.bean.GjcCheckInRecord
import com.lukouguoji.module_base.bean.GjcExportLoad
import com.lukouguoji.module_base.bean.GjcGoodsAddBean
import com.lukouguoji.module_base.bean.GjcGoodsBean
import com.lukouguoji.module_base.bean.GjcGoodsDetailsBean
import com.lukouguoji.module_base.bean.GjcHandoverSheetResponse
import com.lukouguoji.module_base.bean.GjcInspectionBean
import com.lukouguoji.module_base.bean.GjcMaWb
import com.lukouguoji.module_base.bean.GjcMove
import com.lukouguoji.module_base.bean.GjcUldUseBean
import com.lukouguoji.module_base.bean.GjcWarehouse
import com.lukouguoji.module_base.bean.GjcWaybillBean
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.GjjHaWb
import com.lukouguoji.module_base.bean.GjjGoodsBean
import com.lukouguoji.module_base.bean.GjjGoodsDetailsBean
import com.lukouguoji.module_base.bean.GjjGoodsTypeBean
import com.lukouguoji.module_base.bean.GjjHandoverRecordBean
import com.lukouguoji.module_base.bean.GjjImportTally
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.IntImpQueryBean
import com.lukouguoji.module_base.bean.GjjManifest
import com.lukouguoji.module_base.bean.GjjManifestBean
import com.lukouguoji.module_base.bean.GjjPackTypeBean
import com.lukouguoji.module_base.bean.GjjTallyBean
import com.lukouguoji.module_base.bean.GjjTallyDetailsBean
import com.lukouguoji.module_base.bean.GjjTallyRecordBean
import com.lukouguoji.module_base.bean.GncAssembleListBean
import com.lukouguoji.module_base.bean.GncCunFangBean
import com.lukouguoji.module_base.bean.GncDistributionBean
import com.lukouguoji.module_base.bean.GncFuBangBean
import com.lukouguoji.module_base.bean.GncInspectionBean
import com.lukouguoji.module_base.bean.GncQueryBean
import com.lukouguoji.module_base.bean.GncQueryDetailsBean
import com.lukouguoji.module_base.bean.GncShouYunBean
import com.lukouguoji.module_base.bean.GncStashBean
import com.lukouguoji.module_base.bean.GnjManifestBean
import com.lukouguoji.module_base.bean.GnjOutStashBean
import com.lukouguoji.module_base.bean.GnjQueryBean
import com.lukouguoji.module_base.bean.GnjQueryDetailsBean
import com.lukouguoji.module_base.bean.GnjStashBean
import com.lukouguoji.module_base.bean.GnjUnloadListBean
import com.lukouguoji.module_base.bean.GnjYiKuBean
import com.lukouguoji.module_base.bean.GoodsTransportBean
import com.lukouguoji.module_base.bean.JianDataBean
import com.lukouguoji.module_base.bean.LogBean
import com.lukouguoji.module_base.bean.StatusLogBean
import com.lukouguoji.module_base.bean.ManifestTotalDto
import com.lukouguoji.module_base.bean.MessageBean
import com.lukouguoji.module_base.bean.MoveStashBean
import com.lukouguoji.module_base.bean.MsgPoolPage
import com.lukouguoji.module_base.bean.MsgReceivePool
import com.lukouguoji.module_base.bean.PackageBean
import com.lukouguoji.module_base.bean.PacketParseBean
import com.lukouguoji.module_base.bean.PageInfo
import com.lukouguoji.module_base.bean.SYWaybillBean
import com.lukouguoji.module_base.bean.ShouYunSyncBean
import com.lukouguoji.module_base.bean.SimpleResultBean
import com.lukouguoji.module_base.bean.StatisticsBean
import com.lukouguoji.module_base.bean.TelegramBean
import com.lukouguoji.module_base.bean.TransportLogBean
import com.lukouguoji.module_base.bean.ULDBean
import com.lukouguoji.module_base.bean.UploadBean
import com.lukouguoji.module_base.bean.UserRoleBean
import com.lukouguoji.module_base.bean.WaybillBean
import com.lukouguoji.module_base.http.user.ServiceCreator
import com.lukouguoji.module_base.ktx.toRequestBody
import okhttp3.MultipartBody
import okhttp3.RequestBody
import okhttp3.ResponseBody
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Multipart
import retrofit2.http.POST
import retrofit2.http.Part
import retrofit2.http.PartMap
import retrofit2.http.Query
import retrofit2.http.Streaming
import retrofit2.http.Url

/**
 * @author：孟凡华
 * @date：2022/11/21
 * @desc：
 */
interface Api {

    companion object {
        var BASE_URL = ServiceCreator.ipAddress
    }

    //================================= 功能接口 ==============================================
    @POST("file/uploadImg")
    @Multipart
    suspend fun uploadFile(@Part file: MultipartBody.Part): BaseResultBean<UploadBean>

    @GET
    @Streaming
    suspend fun download(@Url url: String): ResponseBody

    /**
     * 通用请求
     */
    @POST
    suspend fun anyPost(@Url url: String, @Body body: RequestBody): BaseResultBean<Any>

    /**
     * 纯字符串值
     */
    @POST
    suspend fun singleStringPost(@Url url: String): BaseResultBean<String>

    @GET
    suspend fun anyGetForId(@Url url: String, @Query("id") id: String): BaseResultBean<Any>

    @POST
    suspend fun anyPostForId(@Url url: String, @Query("id") id: String): BaseResultBean<Any>

    @POST
    suspend fun simplePost(
        @Url url: String,
        @Body body: RequestBody = mapOf("" to "").toRequestBody()
    ): BaseResultBean<SimpleResultBean>

    ///////////////////////////////////////////////////////////////////////////
    // 业务接口
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 根据三字码获取机场名称
     */
    @GET("airport/queryByAirportCode")
    suspend fun getAirportByCode(@Query("airportCode") airportCode: String): BaseResultBean<AirportBean>

    /**
     * 获取字典列表
     */
    @GET("typeCode/searchDateType")
    suspend fun getDictList(@Query("code") code: String): BaseResultBean<List<DictIdValueBean>>

    /**
     * 获取字典列表 - location接口
     */
    @GET("typeCode/locationByCode")
    suspend fun getDictListByLocation(@Query("code") code: String): BaseResultBean<List<DictLocationBean>>

    /**
     * 获取字典列表----根据用户角色选择转运类型
     */
    @GET("typeCode/getTransTypeListByRole")
    suspend fun getTransTypeListByRole(): BaseResultBean<List<DictIdValueBean>>

    @GET("typeCode/searchDateTypeNoLogin")
    suspend fun getRoleList(): BaseResultBean<List<DictIdValueBean>>


    /**
     * 获取板箱列表
     */
    @POST("gjcLoadingService/queryLoadingListEx")
    suspend fun getBoxList(@Body data: RequestBody): BaseResultBean<List<GjcBoxAssembleBean>>

    /**
     * 特码列表
     */
    @POST("typeCode/getSpecialCodeByParam")
    suspend fun getSpecialCodeList(
        // 0：国内，1：国际
        @Query("flag") flag: Int,
        // I-进港, E-出港
        @Query("ieFlag") ieFlag: String,
        // 父Code
        @Query("parentcode") parentcode: String,
    ): DictListBean

    /**
     * 获取代理人-国内进港-下拉框
     */
    @POST("typeCode/getWHSUserList")
    suspend fun getWHSUserList(): DictListBean


    /**
     * 获取代理人-国内进港-下拉框
     */
    @POST("typeCode/domImp/agentCode")
    suspend fun getAgentList(): DictListBean

    /**
     * 获取代理人-国内出港-下拉框
     */
    @POST("typeCode/domExp/agentCode")
    suspend fun getGncAgentList(): DictListBean

    /**
     * 获取代理人-国际出港-下拉框
     */
    @POST("typeCode/intExp/agentCode")
    suspend fun getIntExpAgentList(): DictListBean

    /**
     * 获取代理人-国际进港-下拉框
     */
    @POST("typeCode/intImp/agentCode")
    suspend fun getIntImpAgentList(): DictListBean

    /**
     * 获取业务类型---CI:国内进港,CO:国内出港,II:国际进港,IO:国际出港 下拉框
     */
    @POST("typeCode/business")
    suspend fun business(@Query("type") type: String): DictListBean

    /**
     * 获取包装类型下拉框
     */
    @POST("typeCode/outerPackageType")
    suspend fun getPackTypeList(): DictListBean

    /**
     * 获取 国际进港 包装类型
     */
    @POST("typeCode/searchPackage")
    suspend fun getGjjPackTypeList(): BaseResultBean<List<GjjPackTypeBean>>


    @GET("package/queryPackageList")
    suspend fun getShouYunPackTypeList(): BaseResultBean<List<PackageBean>>


    /**
     * 获取 国际进港 货物类型
     */
    @POST("typeCode/searchCargoType")
    suspend fun getGjjCargoTypeList(): BaseResultBean<List<GjjGoodsTypeBean>>

    /**
     * 获取货物类型下拉框
     */
    @POST("typeCode/cargo")
    suspend fun getGoodsTypeList(): DictListBean

    /**
     * 获取运单类型下拉框
     * @param type CI:国内进港,Co:国内出港,II:国际进港,10:国际出港
     */
    @POST("typeCode/awb")
    suspend fun getWaybillTypeList(
        @Query("type") type: String,
    ): DictListBean

    /**
     * 获取运单类型下拉框
     * @param ieFlag I进港、E出港
     * @param type CI:国内进港,Co:国内出港,II:国际进港,10:国际出港
     */
    @GET("typeCode/queryAwbType")
    suspend fun getWaybillTypeList2(
        @Query("ieFlag") ieFlag: String,
        @Query("type") type: String,
    ): DictListBean

    /**
     * 获取地区类型
     */
    @POST("typeCode/countryType")
    suspend fun getCountryTypeList(): DictListBean

    /**
     * 获取国家代码
     */
    @POST("typeCode/countryCode")
    suspend fun getCountryCodeList(): DictListBean

    /**
     * 获取国家代码（带始发站筛选）
     */
    @POST("typeCode/countryCode")
    suspend fun getCountryCodeListByFdep(@Query("fDep") fDep: String): DictListBean

    /**
     * 获取通讯方式类型
     */
    @POST("typeCode/communicateType")
    suspend fun getCommunicateTypeList(): DictListBean

    /**
     * 获取所属航司列表（国际）
     */
    @POST("typeCode/intCarrier")
    suspend fun getIntCarrierList(): DictListBean

    /**
     * 查询平板车信息
     */
    @POST("eqm/flatcar/queryFlatcar")
    suspend fun getFlatcarInfo(@Query("id") id: String): BaseResultBean<FlatcarBean>

    /**
     * 获取ULD信息
     */
    @POST("eqm/uld/queryUldList")
    suspend fun getUldInfo(@Query("id") id: String): BaseResultBean<List<ULDBean>>


    @POST("eqm/uld/queryUld")
    suspend fun getUldDetails(@Query("id") id: String): BaseResultBean<ULDBean>

    /**
     * 根据ULD编号查询ULD信息（新接口）
     */
    @GET("eqm/uld/queryUld")
    suspend fun queryUldByCode(@Query("uld") uld: String): BaseResultBean<ULDBean>

    /**
     * 获取运单信息 - 国际出
     */
    @POST("IntExpSearch/searchByWbNo")
    suspend fun getGjcWaybillInfo(@Query("wbNo") wbNo: String): BaseResultBean<GjcWaybillDataBean>

    /**
     * 获取待装运单
     */
    @POST("gjcLoadingService/queryWarehouseList")
    suspend fun getGjcUnloadWaybillList(@Body data: RequestBody): BaseResultBean<List<GjcWaybillBean>>

    /**
     * 国际出-板箱-新增组装数据
     */
    @POST("gjcLoadingService/insert")
    suspend fun gjcBoxInsert(@Body data: RequestBody): BaseResultBean<GjcBoxAddInsertBean>

    /**
     * 国际出-板箱-确认组装
     */
    @POST("gjcLoadingService/confirmPackage")
    suspend fun gjcBoxAddConfirm(@Body data: RequestBody): BaseResultBean<Any>


    /**
     * 国际出-板箱-分批
     */
    @POST("gjcLoadingService/GJCUnLoad")
    suspend fun gjcBoxAssembleBatch(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 获取-国际出-货物交接-列表
     */
    @POST("gjchandover/queryList")
    suspend fun gjcHandoverList(@Body data: RequestBody): BaseResultBean<List<GjcGoodsBean>>

    /**
     * 获取-国际出-件号列表
     */
    @GET("gjcPclist/queryByLocId")
    suspend fun getGjcBoxAssembleJianList(@Query("id") id: String): BaseResultBean<JianDataBean>

    /**
     * 获取-国际出-板箱-详情
     */
    @GET("gjcLoadingService/detail")
    suspend fun getGjcBoxAssembleDetail(@Query("locId") id: String): BaseResultBean<GjcBoxDetailsBean>

    /**
     * 清除-国际出-板箱
     */
    @GET("gjcLoadingService/clearGjcLoading")
    suspend fun gjcBoxAssembleDelete(@Query("locId") id: String): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // 国际出 - 货物交接
    ///////////////////////////////////////////////////////////////////////////
    /**
     * 获取-国际出-货物交接-add-列表
     */
    @POST("gjcLoadingService/queryLoadingWareList")
    suspend fun getGjcGoodsAddList(@Body data: RequestBody): BaseResultBean<List<GjcGoodsAddBean>>

    /**
     * 获取-国际出-货物交接-列表
     */
    @POST("gjchandover/queryList")
    suspend fun getGjcGoodsList(@Body data: RequestBody): BaseResultBean<List<GjcGoodsBean>>

    /**
     * 获取-国际出-货物交接-详情
     */
    @GET("gjchandover/detail")
    suspend fun getGjcGoodsDetail(@Query("movID") id: String): BaseResultBean<GjcGoodsDetailsBean>

    /**
     * 新增-国际出-货物交接
     */
    @POST("gjchandover/insert")
    suspend fun gjcGoodsAdd(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 国际出-货物交接-签字确认
     */
    @POST("gjchandover/update")
    @Multipart
    suspend fun gjcGoodsSubmitSignature(
        @Part file: MultipartBody.Part,
        @PartMap map: MutableMap<String, RequestBody>? = null
    ): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // 国际出 - 收运检查
    ///////////////////////////////////////////////////////////////////////////
    /**
     * 获取-国际出港-收运检查-列表（分页）
     * 接口路径: /IntExpCheckInCheck/pageQuery
     */
    @POST("IntExpCheckInCheck/pageQuery")
    suspend fun getGjcInspectionList(@Body data: RequestBody): BaseListBean<GjcInspectionBean>

    /**
     * 获取-国际出港-收运检查-详情
     * 接口路径: /IntExpCheckInCheck/queryWbById
     * @param maWbId 运单主键ID
     */
    @POST("IntExpCheckInCheck/queryWbById")
    suspend fun getGjcInspectionDetails(@Query("maWbId") maWbId: Long): BaseResultBean<GjcInspectionBean>

    /**
     * 批量审核-国际出港-收运检查(通过/退回)
     * TODO: 需要确认审核接口路径
     */
    @POST("IntExpCheckInCheck/audit")
    suspend fun auditGjcInspection(@Body data: RequestBody): BaseResultBean<SimpleResultBean>

    /**
     * 国际出港收运审核-通过（运单列表maWbId、wbNo必填）
     * 接口路径: /IntExpCheckInCheck/pass
     */
    @POST("IntExpCheckInCheck/pass")
    suspend fun passGjcInspection(
        @Query("reason") reason: String, @Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港收运审核-退回（运单列表maWbId、wbNo必填）
     * 接口路径: /IntExpCheckInCheck/back
     */
    @POST("IntExpCheckInCheck/back")
    suspend fun backGjcInspection(
        @Query("reason") reason: String,
        @Body data: RequestBody
    ): BaseResultBean<Boolean>

    /**
     * 条件查询-国际出港-收运审核-统计数据(总件数、总重量、运单总数)
     * 接口路径: /IntExpCheckInCheck/pageQueryTotal
     */
    @POST("IntExpCheckInCheck/pageQueryTotal")
    suspend fun getGjcInspectionTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港收运审核-交接单-获取交接单内容
     * 接口路径: /IntExpCheckInCheck/queryHandoverSheet
     */
    @GET("IntExpCheckInCheck/queryHandoverSheet")
    suspend fun queryHandoverSheet(@Query("maWbId") maWbId: Long): BaseResultBean<GjcHandoverSheetResponse>

    /**
     * 国际出港收运审核-交接单-保存
     * 接口路径: /IntExpCheckInCheck/saveHandoverSheet
     */
    @POST("IntExpCheckInCheck/saveHandoverSheet")
    suspend fun saveHandoverSheet(@Body data: RequestBody): BaseResultBean<Long>

    ///////////////////////////////////////////////////////////////////////////
    // 国际出 - 查询
    ///////////////////////////////////////////////////////////////////////////
    /**
     * 国际出港查询-分页查询
     * 接口路径: /IntExpSearch/pageQuery
     */
    @POST("IntExpSearch/pageQuery")
    suspend fun getGjcQueryList(@Body data: RequestBody): PageInfo<GjcMaWb>

    /**
     * 国际出港查询-分页合计统计
     * 接口路径: /IntExpSearch/pageQueryTotal
     */
    @POST("IntExpSearch/pageQueryTotal")
    suspend fun getGjcQueryTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港运单修改
     * 接口路径: /IntExpSearch/update
     */
    @POST("IntExpSearch/update")
    suspend fun updateGjcMaWb(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 国际出港查询-详情
     * 接口路径: /IntExpSearch/detail
     * 参数: maWbId (Long)
     */
    @POST("IntExpSearch/detail")
    suspend fun getGjcQueryDetails(@Query("maWbId") maWbId: Long): BaseResultBean<Map<String, Any>>

    /**
     * 国际出港组装分配-分页查询
     * 接口路径: /IntExpAssemble/allocate/pageQuery
     */
    @POST("IntExpAssemble/allocate/pageQuery")
    suspend fun getGjcAssembleAllocateList(@Body params: RequestBody): PageInfo<GjcAssembleAllocate>

    /**
     * 国际出港组装分配-分页合计统计
     * 接口路径: /IntExpAssemble/allocate/pageQueryTotal
     */
    @POST("IntExpAssemble/allocate/pageQueryTotal")
    suspend fun getGjcAssembleAllocateTotal(@Body params: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港组装分配-执行分配操作
     * 接口路径: /IntExpAssemble/allocate
     */
    @POST("IntExpAssemble/allocate")
    suspend fun allocateAssemble(@Body params: RequestBody): BaseResultBean<Boolean>

    /**
     * 获取组装公司下拉列表
     * 接口路径: /typeCode/assembleCompany
     */
    @POST("typeCode/assembleCompany")
    suspend fun getAssembleCompanyList(): BaseResultBean<List<AssembleCompanyBean>>

    /**
     * 国际出港板箱过磅-分页搜索
     * 接口路径: /IntExpWeighting/pageQuery
     */
    @POST("IntExpWeighting/pageQuery")
    suspend fun getGjcBoxWeighingList(@Body data: RequestBody): BaseListBean<GjcUldUseBean>

    /**
     * 国际出港板箱过磅-分页下的合计
     * 接口路径: /IntExpWeighting/pageQueryTotal
     */
    @POST("IntExpWeighting/pageQueryTotal")
    suspend fun getGjcBoxWeighingStatistics(@Body data: RequestBody): BaseResultBean<GjcBoxWeighingStatisticsBean>

    /**
     * 国际出港板箱过磅-详情
     * 接口路径: /IntExpWeighting/queryByUseId
     */
    @GET("IntExpWeighting/queryByUseId")
    suspend fun getGjcBoxWeighingDetails(@Query("useId") useId: Long): BaseResultBean<GjcUldUseBean>

    /**
     * 国际出港板箱过磅-提交过磅数据
     * 接口路径: /IntExpWeighting/weight
     */
    @POST("IntExpWeighting/weight")
    suspend fun submitGjcBoxWeighing(@Body data: RequestBody): BaseResultBean<SimpleResultBean>

    /**
     * 国际出港板箱过磅-根据ULD查询正在使用的记录
     * 接口路径: /IntExpWeighting/queryUsingUldByUld
     */
    @GET("IntExpWeighting/queryUsingUldByUld")
    suspend fun queryUsingUldByUld(@Query("uld") uld: String): BaseResultBean<GjcUldUseBean>

    // ==================== 国际出港-出港组装 ====================

    /**
     * 国际出港组装-分页查询已组装的ULD列表
     * 接口路径: /IntExpAssemble/pageQuery
     */
    @POST("IntExpAssemble/pageQuery")
    suspend fun getIntExpAssembleList(@Body data: RequestBody): BaseListBean<GjcUldUseBean>

    /**
     * 国际出港组装-分页合计统计数据
     * 接口路径: /IntExpAssemble/pageQueryTotal
     */
    @POST("IntExpAssemble/pageQueryTotal")
    suspend fun getIntExpAssembleTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港组装-根据板箱组装记录查询运单明细
     * 接口路径: /IntExpAssemble/queryAssembled
     * @param data 请求参数：useId（ULD使用ID）
     */
    @POST("IntExpAssemble/queryAssembled")
    suspend fun getIntExpAssembleWaybillDetails(@Body data: RequestBody): BaseResultBean<MutableList<GjcWarehouse>>

    /**
     * 国际出港组装-删除记录
     * 接口路径: /IntExpAssemble/delete
     * @param data GjcUldUseBean数组
     */
    @POST("IntExpAssemble/delete")
    suspend fun deleteIntExpAssemble(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港组装-回填重量
     * 接口路径: /IntExpAssemble/backfillWeight
     * @param data 请求参数：ids（ULD使用记录ID，逗号分隔）、weight（重量）
     */
    @POST("IntExpAssemble/backfillWeight")
    suspend fun backfillIntExpAssembleWeight(@Body data: RequestBody): BaseResultBean<SimpleResultBean>

    /**
     * 国际出港组装 - 获取组装人列表
     * 接口路径: /IntExpAssemble/pageQueryAssembler
     */
    @GET("IntExpAssemble/pageQueryAssembler")
    suspend fun getIntExpAssemblerList(): BaseResultBean<List<String>>

    /**
     * 国际出港组装 - 查询待组装运单列表
     * 接口路径: /IntExpAssemble/queryWaitingAssemble
     */
    @GET("IntExpAssemble/queryWaitingAssemble")
    suspend fun queryWaitingAssemble(@Query("wbNo") wbNo: String): BaseResultBean<MutableList<GjcWarehouse>>

    /**
     * 国际出港组装 - 根据全ULD查询ULD状态和耗材重量
     * 接口路径: /IntExpAssemble/getUld
     * @param uld ULD编号
     * @return ULD信息，包含status（0：正常，1：故障）和consumeWeight（耗材重量）
     */
    @GET("IntExpAssemble/getUld")
    suspend fun getUldWithConsumeWeight(@Query("uld") uld: String): BaseResultBean<GjcUldUseBean>

    /**
     * 国际出港组装 - 卸货
     * 接口路径: /IntExpAssemble/drop
     * @param data 请求参数：abPc（组装件数）、abWeight（组装重量）、consumeWeight（耗材重量）、
     *             ldId（组装人）、loadArea（组装区）、useInfo（ULD信息）、wbInfo（运单信息）、userId（用户ID）
     */
    @POST("IntExpAssemble/drop")
    suspend fun assembleDropCargo(@Body data: RequestBody): BaseResultBean<GjcWarehouse>

    /**
     * 国际出港组装 - 装货
     * 接口路径: /IntExpAssemble/assemble
     * @param data 请求参数：abPc（组装件数）、abWeight（组装重量）、consumeWeight（耗材重量）、
     *             ldId（组装人）、loadArea（组装区）、useInfo（ULD信息）、wbInfo（运单信息）、userId（用户ID）
     */
    @POST("IntExpAssemble/assemble")
    suspend fun assembleLoadCargo(@Body data: RequestBody): BaseResultBean<GjcWarehouse>

    /**
     * 国际出港组装 - 查询已组装的ULD列表
     * 接口路径: /IntExpAssemble/queryAssembled
     * @param data 请求参数：fno（航班号，必填）、fdate（航班日期，必填）、
     *             loadArea（组装位置，必填）、uld（ULD编号，可选）
     * @return 返回已组装的ULD列表（包含ULD信息和运单列表）
     */
    @POST("IntExpAssemble/queryAssembled")
    suspend fun getAssembledList(@Body data: RequestBody): BaseResultBean<List<GjcAssembled>>

    /**
     * 国际出港组装 - 根据ULD查询已组装的运单列表
     * 接口路径: /IntExpAssemble/queryAssembledByUld
     * @param data 请求参数：GjcUldUseBean对象（包含useId、uld等信息）
     * @return 返回该ULD下的运单列表
     */
    @POST("IntExpAssemble/queryAssembledByUld")
    suspend fun getAssembledWaybillsByUld(@Body data: RequestBody): BaseResultBean<List<GjcWarehouse>>

    /**
     * 国际出港组装 - 修改列表（批量更新运单重量）
     * 接口路径: /IntExpAssemble/update
     * @param data GjcWarehouse数组
     */
    @POST("IntExpAssemble/update")
    suspend fun updateIntExpAssemble(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港出库交接-分页查询
     * 接口路径: /IntExpOutHandover/pageQuery
     */
    @POST("IntExpOutHandover/pageQuery")
    suspend fun getIntExpOutHandoverList(@Body data: RequestBody): BaseListBean<GjcUldUseBean>

    /**
     * 国际出港出库交接-分页合计
     * 接口路径: /IntExpOutHandover/pageQueryTotal
     */
    @POST("IntExpOutHandover/pageQueryTotal")
    suspend fun getIntExpOutHandoverTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港出库交接-完成交接
     * 接口路径: /IntExpOutHandover/handover
     * @param data 请求参数：选中的ULD列表
     */
    @POST("IntExpOutHandover/handover")
    suspend fun completeHandover(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港出库交接-待配运
     * 接口路径: /IntExpOutHandover/waitingTrans
     * @param data 请求参数：GjcStorageParam (包含库位信息和ULD列表)
     */
    @POST("IntExpOutHandover/waitingTrans")
    suspend fun waitingTrans(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际出港-出港装载 分页查询
     * 接口路径: /IntExpLoad/pageQuery
     */
    @POST("IntExpLoad/pageQuery")
    suspend fun getIntExpLoadList(@Body data: RequestBody): BaseListBean<GjcExportLoad>

    /**
     * 国际出港-出港装载 分页合计
     * 接口路径: /IntExpLoad/pageQueryTotal
     */
    @POST("IntExpLoad/pageQueryTotal")
    suspend fun getIntExpLoadTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港-出港装载 状态重置
     * 接口路径: /IntExpLoad/resetDeclare
     */
    @POST("IntExpLoad/resetDeclare")
    suspend fun resetDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港-出港装载 装载申报
     * 接口路径: /IntExpLoad/declare
     */
    @POST("IntExpLoad/declare")
    suspend fun declareLoad(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港运抵-分页列表
     * 接口路径: /IntExpArrive/pageQuery
     */
    @POST("IntExpArrive/pageQuery")
    suspend fun getIntExpArriveList(@Body data: RequestBody): BaseListBean<GjcMaWb>

    /**
     * 国际出港运抵-分页合计
     * 接口路径: /IntExpArrive/pageQueryTotal
     */
    @POST("IntExpArrive/pageQueryTotal")
    suspend fun getIntExpArriveTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港运抵-重置运抵申报状态
     * 接口路径: /IntExpArrive/resetDeclare
     * @param data 请求参数：选中的运单列表
     */
    @POST("IntExpArrive/resetDeclare")
    suspend fun resetArriveDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港运抵-运抵申报（分单+主单）
     * 接口路径: /IntExpArrive/declare
     * @param data 请求参数：选中的运单列表
     */
    @POST("IntExpArrive/declare")
    suspend fun arriveDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港-出港理货-列表查询
     * 接口路径: /IntExpTally/pageQuery
     * 返回: PageInfo<GjcMaWb>
     */
    @POST("IntExpTally/pageQuery")
    suspend fun getIntExpTallyList(@Body data: RequestBody): BaseListBean<GjcMaWb>

    /**
     * 国际出港-出港理货-统计查询
     * 接口路径: /IntExpTally/pageQueryTotal
     * 返回: ManifestTotalDto（合计票数、总件数、总重量）
     */
    @POST("IntExpTally/pageQueryTotal")
    suspend fun getIntExpTallyTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港-出港理货-理货申报
     * 接口路径: /IntExpTally/declare
     * @param data 请求参数：选中的GjcMaWb列表
     */
    @POST("IntExpTally/declare")
    suspend fun declareTally(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港-出港理货-状态重置
     * 接口路径: /IntExpTally/resetDeclare
     * @param data 请求参数：选中的GjcMaWb列表
     */
    @POST("IntExpTally/resetDeclare")
    suspend fun resetTallyDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港-出港理货-删除理货申报
     * 接口路径: /IntExpTally/deleteDeclare
     * @param data 请求参数：GjcDeclareParam
     */
    @POST("IntExpTally/deleteDeclare")
    suspend fun deleteTallyDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港-出港装载-删除装载申报
     * 接口路径: /IntExpLoad/deleteDeclare
     * @param data 请求参数：GjcDeclareParam
     */
    @POST("IntExpLoad/deleteDeclare")
    suspend fun deleteLoadDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港-出港运抵-删除运抵申报
     * 接口路径: /IntExpArrive/deleteDeclare
     * @param data 请求参数：GjcDeclareParam
     */
    @POST("IntExpArrive/deleteDeclare")
    suspend fun deleteArriveDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港运抵-分单补充收发货人信息（5.5寸手机版新增）
     *
     * 后端暂无此接口（api-doc 搜索 IntExpArrive、HaWb 均无匹配），路径为参照 Pad 端国际进港
     * IntImpAirManifest/complete 命名习惯拟定的建议值，见 documents/后端接口对接问题清单.xlsx。
     * 请求体为分单数组，仅需 haWbId 与收发货人相关字段。
     */
    @POST("IntExpArrive/haWb/supplement")
    suspend fun supplementArriveHaWb(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 国际出港移库-分页查询
     * 接口路径: /IntExpMove/pageQuery
     */
    @POST("IntExpMove/pageQuery")
    suspend fun getIntExpMoveList(@Body data: RequestBody): BaseListBean<GjcMove>

    /**
     * 国际出港移库-分页合计
     * 接口路径: /IntExpMove/pageQueryTotal
     */
    @POST("IntExpMove/pageQueryTotal")
    suspend fun getIntExpMoveTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港移库-批量移库
     * 接口路径: /IntExpMove/move
     */
    @POST("IntExpMove/move")
    suspend fun submitIntExpMove(@Body data: RequestBody): BaseResultBean<SimpleResultBean>

    /**
     * 国际出港库位操作-清仓
     * 接口路径: /IntExpStorageUse/updateClear
     */
    @POST("IntExpStorageUse/updateClear")
    suspend fun clearIntExpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港库位操作-修改库位
     * 接口路径: /IntExpStorageUse/modifyStorage
     */
    @POST("IntExpStorageUse/modifyStorage")
    suspend fun modifyIntExpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港库位操作-出库
     * 接口路径: /IntExpStorageUse/outStorage
     */
    @POST("IntExpStorageUse/outStorage")
    suspend fun outIntExpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港库位操作-入库
     * 接口路径: /IntExpStorageUse/inStorage
     */
    @POST("IntExpStorageUse/inStorage")
    suspend fun inIntExpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港仓库-分页查询
     * 接口路径: /IntExpStorageUse/pageQuery
     */
    @POST("IntExpStorageUse/pageQuery")
    suspend fun getIntExpStorageUseList(@Body data: RequestBody): PageInfo<GjcMaWb>

    /**
     * 国际出港仓库-分页合计
     * 接口路径: /IntExpStorageUse/pageQueryTotal
     */
    @POST("IntExpStorageUse/pageQueryTotal")
    suspend fun getIntExpStorageUseTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际出港仓库-运单号模糊查询(后四位)
     * 接口路径: /IntExpStorageUse/queryWbNoList
     */
    @POST("IntExpStorageUse/queryWbNoList")
    suspend fun getIntExpStorageWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取库位列表
     * 接口路径: /typeCode/locationByFlag
     * @param flag 库位标志，2表示国际出港库位
     */
    @GET("typeCode/locationByFlag")
    suspend fun getLocationList(@Query("flag") flag: Int): BaseResultBean<List<DictLocationBean>>

    /**
     * 国际进港仓库-分页查询
     * 接口路径: /IntImpStorage/pageQuery
     */
    @POST("IntImpStorage/pageQuery")
    suspend fun getIntImpStorageUseList(@Body data: RequestBody): PageInfo<GjcMaWb>

    /**
     * 国际进港仓库-分页合计
     * 接口路径: /IntImpStorage/pageQueryTotal
     */
    @POST("IntImpStorage/pageQueryTotal")
    suspend fun getIntImpStorageUseTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港库位操作-清仓
     * 接口路径: /IntImpStorage/updateClear
     */
    @POST("IntImpStorage/updateClear")
    suspend fun clearIntImpStorage(@Query("clearNormal") clearNormal: String, @Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港库位操作-修改库位
     * 接口路径: /IntImpStorage/modifyStorage
     */
    @POST("IntImpStorage/modifyStorage")
    suspend fun modifyIntImpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港库位操作-出库
     * 接口路径: /IntImpStorage/outStorage
     */
    @POST("IntImpStorage/outStorage")
    suspend fun outIntImpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港库位操作-入库
     * 接口路径: /IntImpStorage/inStorage
     */
    @POST("IntImpStorage/inStorage")
    suspend fun inIntImpStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港提取记录-分页查询
     * 接口路径: /IntImpPickup/pageQuery
     */
    @POST("IntImpPickup/pageQuery")
    suspend fun getIntImpPickUpRecordList(@Body data: RequestBody): PageInfo<IntImpPickUpRecordBean>

    /**
     * 国际进港提取记录-分页合计
     * 接口路径: /IntImpPickup/pageQueryTotal
     */
    @POST("IntImpPickup/pageQueryTotal")
    suspend fun getIntImpPickUpRecordTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港提取记录-清除提货
     * 接口路径: /IntImpPickup/clearPickup
     */
    @POST("IntImpPickup/clearPickup")
    suspend fun clearIntImpPickUp(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际进港提取记录-修改费用
     * 接口路径: /IntImpPickup/modifyCharge
     */
    @POST("IntImpPickup/modifyCharge")
    suspend fun modifyIntImpPickUpCharge(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际进港提取出库-分页查询
     * 接口路径: /IntImpPickUpDlv/pageQuery
     */
    @POST("IntImpPickUpDlv/pageQuery")
    suspend fun getIntImpPickUpDLVList(@Body data: RequestBody): PageInfo<IntImpPickUpDLVBean>

    /**
     * 国际进港提取出库-分页合计
     * 接口路径: /IntImpPickUpDlv/pageQueryTotal
     */
    @POST("IntImpPickUpDlv/pageQueryTotal")
    suspend fun getIntImpPickUpDLVTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港提取出库-确认出库
     * 接口路径: /IntImpPickUpDlv/pickUpOut
     */
    @POST("IntImpPickUpDlv/pickUpOut")
    suspend fun confirmIntImpPickUpDLV(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际进港查询-分页
     * 接口路径: /IntImpSearch/pageQuery
     */
    @POST("IntImpSearch/pageQuery")
    suspend fun getIntImpQueryList(@Body data: RequestBody): PageInfo<IntImpQueryBean>

    /**
     * 国际进港查询-分页合计
     * 接口路径: /IntImpSearch/pageQueryTotal
     */
    @POST("IntImpSearch/pageQueryTotal")
    suspend fun getIntImpQueryTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港查询-详情
     * 接口路径: /IntImpSearch/detail
     */
    @POST("IntImpSearch/detail")
    suspend fun getIntImpQueryDetails(@Body data: RequestBody): BaseResultBean<Map<String, Any>>

    /**
     * 国际进港查询-修改运单
     * 接口路径: /IntImpSearch/modifyMaWb
     */
    @POST("IntImpSearch/modifyMaWb")
    suspend fun modifyIntImpMaWb(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际出港待计重-分页搜索
     * 接口路径: /IntExpCheckIn/pageQuery
     */
    @POST("IntExpCheckIn/pageQuery")
    suspend fun getGjcWeighingList(@Body data: RequestBody): BaseListBean<GjcWeighingBean>

    /**
     * 国际出港待计重-条件查询总件数、总重量、运单总数
     * 接口路径: /IntExpCheckIn/pageQueryTotal
     */
    @POST("IntExpCheckIn/pageQueryTotal")
    suspend fun getGjcWeighingStatistics(@Body data: RequestBody): BaseResultBean<GjcWeighingStatisticsBean>

    /**
     * 国际出港待计重-运单号模糊查询（用于自动补全）
     * 接口路径: /IntExpCheckIn/queryWbNoList
     */
    @POST("IntExpCheckIn/queryWbNoList")
    suspend fun getIntExpCheckInWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 国际出港待计重-根据11位具体运单号查询运单信息
     * 接口路径: /IntExpCheckIn/queryWbByNo
     * @param wbNo 11位运单号
     */
    @POST("IntExpCheckIn/queryWbByNo")
    suspend fun getIntExpCheckInWbByNo(@Query("wbNo") wbNo: String): BaseResultBean<GjcMaWb>

    /**
     * 国际出港待计重-开始计重-根据wbId查询详情
     * 接口路径: /IntExpCheckIn/queryWbById
     * @param maWbId 运单主键ID
     */
    @POST("IntExpCheckIn/queryWbById")
    suspend fun getIntExpCheckInWbById(@Query("maWbId") maWbId: Long): BaseResultBean<GjcMaWb>

    /**
     * 国际出港待计重-开始计重-根据运单id查询实时计重数据
     * 接口路径: /IntExpCheckIn/queryRecordByWh
     * @param maWbId 运单主键ID
     * @return 返回GjcCheckInRecord,包含实时的pc、weight、volume
     */
    @POST("IntExpCheckIn/queryRecordByWh")
    suspend fun getIntExpRealTimeRecord(@Query("maWbId") maWbId: Long): BaseResultBean<GjcCheckInRecord>

    /**
     * 国际出港计重记录-分页搜索
     * 接口路径: /IntExpCheckIn/checked/pageQuery
     */
    @POST("IntExpCheckIn/checked/pageQuery")
    suspend fun getGjcWeighingRecordList(@Body data: RequestBody): BaseListBean<GjcWeighingRecordBean>

    /**
     * 国际出港计重记录-条件查询总件数、总重量、运单总数
     * 接口路径: /IntExpCheckIn/checked/pageQueryTotal
     */
    @POST("IntExpCheckIn/checked/pageQueryTotal")
    suspend fun getGjcWeighingRecordStatistics(@Body data: RequestBody): BaseResultBean<GjcWeighingStatisticsBean>

    /**
     * 国际出港待计重-开始计重-完成
     * 接口路径: /IntExpCheckIn/completeCheckIn
     */
    @POST("IntExpCheckIn/completeCheckIn")
    suspend fun completeCheckIn(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际出港待计重-开始计重-分托计重
     * 接口路径: /IntExpCheckIn/splitCheckIn
     */
    @POST("IntExpCheckIn/splitCheckIn")
    suspend fun splitCheckIn(@Body data: RequestBody): BaseResultBean<Long>

    /**
     * 国际出港计重明细-根据运单号查询所有计重记录
     * 接口路径: /IntExpCheckIn/listRecordByWh
     * 参数: GjcWarehouse对象(prefix, no, opDate)
     */
    @POST("IntExpCheckIn/listRecordByWh")
    suspend fun getGjcCheckInRecordList(@Body data: RequestBody): BaseResultBean<List<GjcCheckInRecord>>

    /**
     * 国际出港计重明细-批量更新计重记录
     * 接口路径: /IntExpCheckIn/updateRecordList
     * 参数: List<GjcCheckInRecord>
     */
    @POST("IntExpCheckIn/updateRecordList")
    suspend fun updateGjcCheckInRecordList(@Body data: List<GjcCheckInRecord>): BaseResultBean<Boolean>

    /**
     * 国际出港待计重-提前运抵
     * 接口路径: /IntExpCheckIn/preArrive
     * 参数: List<GjcMaWb> - 运单列表
     */
    @POST("IntExpCheckIn/preArrive")
    suspend fun preArrive(@Body data: List<GjcMaWb>): BaseResultBean<String>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进-电报解析
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 获取-国际进-电报解析-列表
     */
    @POST("receivePool/loadByContent")
    suspend fun getGjcPacketParseList(@Body data: RequestBody): BaseResultBean<List<PacketParseBean>>

    /**
     * 获取-国际-航班信息
     */
    @POST("flt/intFlight")
    suspend fun getGjFlightBean(@Body data: RequestBody): BaseResultBean<FlightBean>

    /**
     * 获取-国内航班信息
     */
    @POST("flt/domFlight")
    suspend fun getGnFlightBean(@Body data: RequestBody): BaseResultBean<FlightBean>

    /**
     * 提交-FFM-电报信息
     */
    @POST("Manifest/GJJManifestByFFM")
    suspend fun gjjPacketParseFFMSubmit(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 提交-FWB/FHL-电报信息
     */
    @POST("GJJHawb/save")
    suspend fun gjjPacketParseFWBSubmit(@Body data: RequestBody): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进 - 理货
    ///////////////////////////////////////////////////////////////////////////
    /**
     * 获取-国际进-理货列表
     */
    @POST("gjjPclist/queryList")
    suspend fun getGjjTallyList(@Body data: RequestBody): BaseResultBean<List<GjjTallyBean>>

    /**
     * 获取-国际进-理货-详情
     */
    @GET("gjjPclist/queryListByWbNo")
    suspend fun getGjjTallyDetail(@Query("mfId") mfId: String): BaseResultBean<List<GjjTallyDetailsBean>>

    /**
     * 新增-国际进-理货
     */
    @POST("gjjPclist/insert")
    suspend fun gjjTallyConfirm(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 删除-国际进-理货
     */
    @GET("gjjPclist/delete")
    suspend fun gjjTallyDelete(@Query("mfId") mfId: String): BaseResultBean<Any>

    /**
     * 批量删除-国际进-理货
     */
    @POST("gjjPclist/deleteList")
    suspend fun gjjTallyDeleteList(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 修改-国际进-理货
     */
    @POST("gjjPclist/update")
    suspend fun gjjTallyUpdate(@Body data: RequestBody): BaseResultBean<Any>


    /**
     * 获取-国际进-交接记录
     */
    @POST("IntImpManiFest/queryHandoverRecords")
    suspend fun getGjjTallyHandoverList(@Body data: RequestBody): BaseResultBean<List<GjjHandoverRecordBean>>

    /**
     * 发放-国际进-货物
     */
    @POST("IntImpManiFest/provide")
    suspend fun gjjTallyHandover(@Body data: RequestBody): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进 - 货物交接
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 获取-国际进-货物交接-列表
     */
    @POST("gjjHandover/queryList")
    suspend fun getGjjGoodsList(@Body data: RequestBody): BaseResultBean<List<GjjGoodsBean>>

    /**
     * 获取-国际进-货物交接-详情
     */
    @GET("gjjHandover/detail")
    suspend fun getGjjGoodsDetail(@Query("movID") id: String): BaseResultBean<GjjGoodsDetailsBean>

    /**
     * 提交-国际进-货物交接-签名
     */
    @POST("gjjHandover/update")
    @Multipart
    suspend fun gjjGoodsSubmitSignature(
        @Part file: MultipartBody.Part,
        @PartMap map: MutableMap<String, RequestBody>? = null
    ): BaseResultBean<Any>

    /**
     * 提交-国际进-货物交接
     */
    @POST("gjjHandover/insert")
    suspend fun gjjGoodsInsert(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 获取-国际进-理货记录-列表
     */
    @POST("gjjPclist/queryGJJWarehouseList")
    suspend fun getGjjGoodsTallyRecordList(@Body data: RequestBody): BaseResultBean<List<GjjTallyRecordBean>>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进 - 舱单
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 获取-国际进-舱单-列表
     */
    @POST("IntImpManiFest/search")
    suspend fun getGjjManifestList(@Body data: RequestBody): BaseListBean<GjjManifestBean>

    /**
     * 获取-国际进-舱单-详情
     */
    @POST("IntImpManiFest/queryFestById")
    suspend fun getGjjManifestDetail(@Query("id") id: String): BaseResultBean<GjjManifestBean>

    /**
     * 批量删除-国际进港舱单（请求体为 mfId 数组，如 [1,2,3]）
     */
    @POST("IntImpManiFest/deleteFestList")
    suspend fun gjjManifestDeleteBatch(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 删除舱单（主单）- 请求体为 GjjManifest 对象数组
     */
    @POST("IntImpManifest/deleteManifest")
    suspend fun intImpManifestDeleteManifest(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 删除分单 - 请求体为 GjjHaWb 对象数组
     */
    @POST("IntImpManifest/deleteHawb")
    suspend fun intImpManifestDeleteHawb(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 新增-国际进港舱单
     */
    @POST("IntImpManifest/addManifest")
    suspend fun gjjManifestInsert(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 修改-国际进港舱单
     */
    @POST("IntImpManifest/modifyManifest")
    suspend fun gjjManifestUpdate(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 获取板箱组装记录-根据平板车号
     */
    @POST("gjcLoadingService/GjcLoadingDoList")
    suspend fun getGjcBoxAssembleByCarIdList(@Body data: RequestBody): BaseResultBean<BoxDetailsForCarIdBean>

    /**
     * 提交-板箱-过磅
     */
    @POST("gjcLoadingService/update")
    suspend fun gjcBoxWeighingSubmit(@Body data: RequestBody): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // PDA 模块
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 获取平板车或集装器信息
     * 收运/组装
     */
    @GET("IntExpSearch/searchCarOrUld")
    suspend fun getCarOrUldInfoForSyZz(@Query("id") id: String): BaseResultBean<BaseResultBean<CarOrUldBean>>

    /**
     * 获取平板车或集装器信息
     * 过磅
     */
    @GET("IntExpSearch/searchLoadOrUld")
    suspend fun getCarOrUldInfoForGb(@Query("id") id: String): BaseResultBean<GbCarOrUldBean>

    /**
     * 获取地磅通道列表
     */
    @POST("setting/loadList")
    suspend fun getWeighingChannelList(@Body data: RequestBody): BaseResultBean<List<DiBangChannelBean>>

    /**
     * 获取运单信息
     */
    @POST("IntExpCheckIn/queryWbByNoAndPcList")
    suspend fun getSyWaybillInfo(
        @Query("wbNo") wbNo: String,
        @Query("weight") weight: String,
    ): BaseResultBean<SYWaybillBean>

    /**
     * 获取航班列表
     */
    @POST("flt/search")
    suspend fun getFlightList(@Body data: RequestBody): BaseListBean<FlightBean>

    /**
     * 获取航班详情
     */
    @POST("flt/queryFlightById")
    suspend fun getFlightDetails(@Query("id") id: String): BaseResultBean<FlightBean>

    /**
     * 根据航班日期和航班号查询航班
     */
    @POST("flt/queryFlight")
    suspend fun queryFlightByDateAndNo(@Body data: RequestBody): BaseResultBean<FlightBean>

    /**
     * 根据航班日期、航班号、地区类型、进出港查询航班（返回列表）
     */
    @POST("flt/searchFlightList")
    suspend fun searchFlightList(@Body data: RequestBody): BaseResultBean<List<FlightBean>>

    /**
     * 获取航班目的站、经停站
     */
    @POST("flt/listFlightDest")
    suspend fun listFlightDest(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 新增或修航司屏蔽
     */
    @POST("flt_filter/addOrChange")
    suspend fun addOrModifyFltFilter(@Body data: RequestBody): BaseResultBean<FlightFilterBean>

    /**
     * 获取航班详情
     */
    @GET("flt_filter/queryFilterByUserId")
    suspend fun getFltFilter(): BaseResultBean<FlightFilterBean>

    /**
     * 修改密码
     */
    @POST("setting/updatePwd")
    suspend fun modifyPassword(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 完成-收运
     */
    @POST("IntExpCheckIn/completed")
    suspend fun completionCollection(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 获取-货物类型
     */
    @POST("typeCode/intExp/cargoType")
    suspend fun getCargoTypeList(): DictListBean

    ///////////////////////////////////////////////////////////////////////////
    // 国内出港组装
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 国内出港组装-列表
     */
    @POST("DomExpLoading/search")
    suspend fun getGncAssembleList(@Body data: RequestBody): BaseListBean<GncAssembleListBean>

    /**
     * 获取用户角色信息
     */
    @GET("api/queryUserByName")
    suspend fun getUserRole(@Query("name") name: String): BaseResultBean<UserRoleBean>

    /**
     * 根据角色ID获取用户
     **/
    @GET("api/queryUserByRole")
    suspend fun getUserByRoleId(@Query("role") role: String): BaseResultBean<List<UserRoleBean>>

    ///////////////////////////////////////////////////////////////////////////
    // 国内进港卸机
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 国内进港卸机-列表
     */
    @POST("unloadingAirCraft/search")
    suspend fun getGnjUnloadList(@Body data: RequestBody): BaseListBean<GnjUnloadListBean>

    /**
     * 国内进港卸机-单条
     */
    @POST("unloadingAirCraft/queryPage")
    suspend fun getGnjUnloadCarList(@Body data: RequestBody): BaseListBean<GnjUnloadListBean>


    /**
     * 获取-国内交接清单-查询-列表
     */
    @POST("unloadingAirCraft/queryPageWithFile")
    suspend fun getGnjUnloadCarWithFileList(@Body data: RequestBody): BaseListBean<GnjUnloadListBean>

    ///////////////////////////////////////////////////////////////////////////
    // 国内-事故签证
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 国内-事故签证-列表
     */
    @POST("GnAccidentVisa/search")
    suspend fun getGnAccidentVisaList(@Body data: RequestBody): BaseListBean<AccidentVisaBean>

    /**
     * 国内-事故签证-详情
     */
    @POST("GnAccidentVisa/queryVisaById")
    suspend fun getGnAccidentVisaDetails(@Query("id") id: String): BaseResultBean<AccidentVisaBean>

    /**
     * 获取-消息-列表
     */
    @POST("msg/pageQuery")
    suspend fun getMessageList(@Body data: RequestBody): BaseListBean<MessageBean>

    /**
     * 获取-报文-列表
     */
    @POST("msgPool/pageQuery")
    suspend fun getTelegramList(@Body data: RequestBody): BaseListBean<TelegramBean>

    @GET("msgPool/queryById")
    suspend fun getTelegramDetails(
        @Query("flow") flow: String,
        @Query("id") id: String
    ): BaseResultBean<Any>

    /**
     * 获取-平板车-列表
     */
    @POST("eqm/flatcar/search")
    suspend fun getCarList(@Body data: RequestBody): BaseListBean<FlatcarBean>

    /**
     * 获取-平板车-详情
     */
    @POST("eqm/flatcar/queryFlatcar")
    suspend fun getCarDetails(@Query("id") id: String): BaseResultBean<FlatcarBean>

    /**
     * 获取-平板车-图表数据
     */
    @GET("eqm/flatcar/countFlatcarByPosition")
    suspend fun getCarBarList(@Query("position") position: String): BaseResultBean<List<CarBarBean>>

    /**
     * 获取-日志-列表
     */
    @POST("log/pageQuery")
    suspend fun getLogList(@Body data: RequestBody): BaseListBean<LogBean>

    /**
     * 获取-运单状态列表（关键词-运单号、运单类型必填）
     */
    @POST("log/listStatus")
    suspend fun getLogStatusList(@Body data: RequestBody): BaseResultBean<List<StatusLogBean>>

    ///////////////////////////////////////////////////////////////////////////
    // 国内进港-舱单
    ///////////////////////////////////////////////////////////////////////////
    /**
     * 获取-国内进港-舱单-列表
     */
    @POST("DomImpManiFest/search")
    suspend fun getGnjManifestList(@Body data: RequestBody): BaseListBean<GnjManifestBean>

    /**
     * 获取-国内进港-舱单-详情
     */
    @POST("DomImpManiFest/queryFestById")
    suspend fun getGnjManifestDetail(@Query("id") id: String): BaseResultBean<GnjManifestBean>

    /**
     * 获取-国内进港-舱单-数量信息
     */
    @GET("DomImpManiFest/searchTotal")
    suspend fun getGnjManifestCount(@Query("fid") fid: String): BaseResultBean<SimpleResultBean>

    /**
     * 获取-国内进港-出库-列表
     */
    @POST("DomImpPickUp/search")
    suspend fun getGnjOutStashList(@Body data: RequestBody): BaseListBean<GnjOutStashBean>

    /**
     * 获取-国内进港-出库-列表--运单号列表
     */
    @POST("DomImpPickUp/searchWbList")
    suspend fun getGnjOutStashWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取-国际进港-仓库-列表
     */
    @POST("DomImpWareHouse/search")
    suspend fun getGnjStashList(@Body data: RequestBody): BaseListBean<GnjStashBean>


    /**
     * 获取-国际进港-仓库-列表-运单号列表
     */
    @POST("DomImpWareHouse/searchWbList")
    suspend fun getGnjStashWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取-国际进港-仓库-详情
     */
    @POST("DomImpWareHouse/queryInfoById")
    suspend fun getGnjStashDetails(@Query("id") id: String): BaseResultBean<GnjStashBean>

    /**
     * 获取-国际进港-查询-列表
     */
    @POST("DomImpSearch/search")
    suspend fun getGnjQueryList(@Body data: RequestBody): BaseListBean<GnjQueryBean>

    /**
     * 获取-国际进港-查询-列表--运单号列表
     */
    @POST("DomImpSearch/searchWbList")
    suspend fun getGnjQueryWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取-国际进港-查询-详情
     */
    @POST("DomImpSearch/searchById")
    suspend fun getGnjQueryDetails(@Query("id") id: String): BaseResultBean<GnjQueryDetailsBean>

    ///////////////////////////////////////////////////////////////////////////
    // 国际出港
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 获取-国际出港-待收运-列表
     */
    @POST("DomExpCheckIn/search")
    suspend fun getGncShouYunUnList(@Body data: RequestBody): BaseListBean<GncShouYunBean>


    /**
     * 获取-国际出港-待收运-列表--运单号列表
     */
    @POST("DomExpCheckIn/searchWbList")
    suspend fun getGncShouYunUnWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>


    /**
     * 获取-国际出港-收运-列表
     */
    @POST("DomExpCheckIn/searchWarehouse")
    suspend fun getGncShouYunList(@Body data: RequestBody): BaseListBean<GncShouYunBean>


    /**
     * 获取-国际出港-待收运-列表--运单号列表
     */
    @POST("DomExpCheckIn/searchWarehouseWbList")
    suspend fun getGncShouYunWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取-国际出港-收运-详情
     */
    @POST("DomExpCheckIn/queryWbByNo")
    suspend fun getGncShouYunDetails(@Query("wbNo") wbNo: String): BaseResultBean<GncShouYunBean>

    /**
     * 获取-国际出港-收运-详情-打印数据
     */
    @GET("DomExpCheckIn/searchWarehouseByWbNo")
    suspend fun getGncShouYunDetailsPrint(@Query("wbNo") wbNo: String): BaseResultBean<GncShouYunBean>


    /**
     * 获取-国际出港-复磅-列表
     */
    @POST("DomExpWeighting/pageQuery")
    suspend fun getGncFuBangList(@Body data: RequestBody): BaseListBean<GncFuBangBean>

    /**
     * 获取-国际出港-复磅-详情
     */
    @POST("DomExpWeighting/queryWeightingByNo")
    suspend fun getGncFuBangDetailsByCar(@Query("carNo") carNo: String): BaseResultBean<GncFuBangBean>

    /**
     * 获取-运单列表
     */
    @POST
    suspend fun getWaybillList(@Url url: String, @Body data: RequestBody): BaseListBean<WaybillBean>


    /**
     * 获取-运单列表
     */
    @POST
    suspend fun getWbNoList(@Url url: String, @Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取-国内出港-分配-列表
     */
    @POST("DomExpLoading/allocationPage")
    suspend fun getGncDistributionList(@Body data: RequestBody): BaseListBean<GncDistributionBean>

    /**
     * 获取-国内出港-单证交接-列表
     */
    @POST("flt/searchHandover")
    suspend fun getGncDistributionHandoverList(@Body data: RequestBody): BaseListBean<FlightBean>


    /**
     * 获取-国内出港-单证交接-列表
     */
    @POST("flt/searchHandoverByFid")
    suspend fun getHandover(@Query("fid") fid: String): BaseResultBean<FlightBean>

    /**
     * 获取-国内出港-存放-列表
     */
    @POST("DomExpLoading/depositPage")
    suspend fun getGncCunFangList(@Body data: RequestBody): BaseListBean<GncCunFangBean>

    /**
     * 获取-国内出港-仓库-列表
     */
    @POST("DomExpWareHouse/search")
    suspend fun getGncStashList(@Body data: RequestBody): BaseListBean<GncStashBean>

    /**
     * 获取-国内出港-仓库-详情
     */
    @POST("DomExpWareHouse/queryInfoById")
    suspend fun getGncStashDetails(@Query("id") id: String): BaseResultBean<GncStashBean>

    /**
     * 获取-国内出港-查询-列表
     */
    @POST("DomExpSearch/search")
    suspend fun getGncQueryList(@Body data: RequestBody): BaseResultBean<BaseListBean<GncQueryBean>>

    /**
     * 获取-国内出港-查询-详情
     */
    @POST("DomExpSearch/searchById")
    suspend fun getGncQueryDetails(@Query("id") id: String): BaseResultBean<GncQueryDetailsBean>

    /**
     * 获取-国内出港-收运检查-列表
     */
    @POST("DomExpInspection/search")
    suspend fun getGncInspectionList(@Body data: RequestBody): BaseListBean<GncInspectionBean>

    /**
     * 获取-国内出港-收运检查-统计数据
     */
    @POST("DomExpInspection/statistics")
    suspend fun getGncInspectionStatistics(@Body data: RequestBody): BaseResultBean<StatisticsBean>

    /**
     * 批量审核-国内出港-收运检查（通过/退回）
     */
    @POST("DomExpInspection/audit")
    suspend fun auditGncInspection(@Body data: RequestBody): BaseResultBean<SimpleResultBean>


    /**
     * 获取-国内出港-查询-根据主运单Id查询运单详细信息，带入库重量、入库件数
     */
    @POST("/DomExpCheckIn/queryWbDetailById")
    fun queryWbDetailById(@Query("wbId") wbId: Int): BaseResultBean<GncShouYunBean>


    /**
     * 获取-货物转运-列表
     */
    @POST("DomExpLoading/searchTrans")
    suspend fun getGoodsTransportList(@Body data: RequestBody): BaseListBean<GoodsTransportBean>

    /**
     * 获取-国内进港移库-列表
     */
    @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>

    /**
     * 获取-国内进港移库-列表--运单列表
     */
    @POST("DomImpMove/searchWbList")
    suspend fun getGnjMoveStashWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>

    /**
     * 获取-国内进港移库-详情
     */
    @POST("DomImpMove/queryById")
    suspend fun getGnjYiKuDetails(@Query("id") id: String): BaseResultBean<GnjYiKuBean>

    /**
     * 保存-国内进港移库
     */
    @POST("DomImpMove/save")
    suspend fun saveGnjYiKu(@Body data: RequestBody): BaseResultBean<SimpleResultBean>

    /**
     * 获取-国内进港移库-详情（新接口）
     */
    @GET("DomImpMove/detail")
    suspend fun getGnjMoveStashDetail(@Query("mawbId") mawbId: String): BaseResultBean<GnjYiKuBean>

    /**
     * 编辑-国内进港移库（新接口）
     */
    @POST("DomImpMove/modify")
    suspend fun modifyGnjMoveStash(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 执行-国内进港移库操作
     */
    @POST("DomImpMove/move")
    suspend fun transferGnjYiKu(@Body data: RequestBody): BaseResultBean<SimpleResultBean>

    /**
     * 获取国内出收运同步列表
     */
    @POST("DomExpCheckIn/queryListByWbNo")
    suspend fun getShouYunSyncList(@Body data: RequestBody): BaseResultBean<List<ShouYunSyncBean>>

    /**
     * 获取-货物转运记录-列表
     */
    @POST("DomTransportLog/search")
    suspend fun getTransportLogList(@Body data: RequestBody): BaseListBean<TransportLogBean>

    /**
     * 国内 单证交接 列表
     */
    @POST("flt/searchHandoverPage")
    suspend fun getDocumentHandoverList(@Body data: RequestBody): BaseListBean<DocumentHandoverBean>

    /**
     * 获取删除原因列表
     */
    @POST("typeCode/delReason")
    suspend fun getDelReasonList(@Query("needFormat") needFormat: Boolean = true): BaseResultBean<List<DictBean>>

    @GET("file/verifyVersion")
    suspend fun getAppUpdate(@Query("versionCode") versionCode: Int): AppUpdateResponse<AppUpdateResponseInfo>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进港-电报解析
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 分页查询国际进港电报
     */
    @POST("IntImpMsg/pageQuery")
    suspend fun getIntImpMsgList(@Body data: RequestBody): PageInfo<MsgReceivePool>

    /**
     * 解析电报（电报生成）
     */
    @POST("IntImpMsg/analyseMsg")
    suspend fun analyseMsg(@Body data: RequestBody): BaseResultBean<Boolean>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进港-原始舱单
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 国际进港原始舱单-分页查询
     */
    @POST("IntImpAirManifest/pageQuery")
    suspend fun getIntArrAirManifestList(@Body data: RequestBody): 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>

    /**
     * 国际进港原始舱单-补充收发货人信息
     */
    @POST("IntImpAirManifest/complete")
    suspend fun completeIntArrManifest(@Body data: RequestBody): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进港-进港舱单
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 国际进港舱单-分页查询
     */
    @POST("IntImpManifest/pageQuery")
    suspend fun getIntImpManifestList(@Body data: RequestBody): PageInfo<GjjManifest>

    /**
     * 国际进港舱单-分页合计
     */
    @POST("IntImpManifest/pageQueryTotal")
    suspend fun getIntImpManifestTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港舱单-获取主单下分单
     */
    @POST("IntImpManifest/listHaWbByManifest")
    suspend fun getIntImpManifestHaWbList(@Body data: RequestBody): BaseResultBean<List<GjjHaWb>>

    /**
     * 国际进港舱单-新增分单
     */
    @POST("IntImpManifest/addHaWb")
    suspend fun intImpManifestAddHaWb(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际进港舱单-修改分单
     */
    @POST("IntImpManifest/modifyHaWb")
    suspend fun intImpManifestModifyHaWb(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际进港舱单-获取主单减去分单的件数重量
     */
    @POST("IntImpManifest/getMaWbMinusHaWb")
    suspend fun getMaWbMinusHaWb(@Body data: RequestBody): BaseResultBean<GjjHaWb>

    /**
     * 国际进港舱单-分拣理货（装机单）-分页查询
     */
    @POST("IntImpManifest/pageQueryAir")
    suspend fun getIntImpLoadingList(@Body data: RequestBody): PageInfo<GjjManifest>

    /**
     * 国际进港舱单-分拣理货（装机单）-分页合计
     */
    @POST("IntImpManifest/pageQueryAirTotal")
    suspend fun getIntImpLoadingTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港舱单-分拣理货（装机单）-修改装机单
     */
    @POST("IntImpManifest/modifyManifestAir")
    suspend fun modifyIntImpLoadingList(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际进港舱单-分拣理货（装机单）-修改库位
     * 接口路径: /IntImpManifest/modifyStorage
     */
    @POST("IntImpManifest/modifyStorage")
    suspend fun modifyIntImpLoadingStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港舱单-分拣理货（装机单）-入库
     * 接口路径: /IntImpManifest/inStorage
     */
    @POST("IntImpManifest/inStorage")
    suspend fun inIntImpLoadingStorage(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港理货报告-分页查询
     */
    @POST("IntImpTally/pageQuery")
    suspend fun getIntImpTallyList(@Body data: RequestBody): PageInfo<GjjImportTally>

    /**
     * 国际进港理货报告-分页合计
     */
    @POST("IntImpTally/pageQueryTotal")
    suspend fun getIntImpTallyTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 国际进港理货报告-查询分单列表
     */
    @POST("IntImpTally/listHaWb")
    suspend fun getIntImpTallySubList(@Body data: RequestBody): BaseResultBean<List<GjjImportTally>>

    /**
     * 国际进港理货-人工放行
     */
    @POST("IntImpTally/customCommand")
    suspend fun intImpTallyCustomCommand(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港理货-状态重置
     */
    @POST("IntImpTally/resetDeclare")
    suspend fun intImpTallyResetDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港理货-删除申报
     */
    @POST("IntImpTally/deleteDeclare")
    suspend fun intImpTallyDeleteDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港理货-理货申报
     */
    @POST("IntImpTally/declare")
    suspend fun intImpTallyDeclare(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 国际进港舱单-货物发放
     */
    @POST("IntImpManifest/putUpCargo")
    suspend fun intImpManifestPutUpCargo(@Body data: RequestBody): BaseResultBean<String>

    ///////////////////////////////////////////////////////////////////////////
    // 国际进港-事故签证
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 国际事故签证-分页搜索
     */
    @POST("GjAccidentVisa/search")
    suspend fun getIntImpAccidentVisaList(@Body data: RequestBody): PageInfo<IntImpAccidentVisaBean>

    /**
     * 国际事故签证-删除（传选中的 Bean 列表）
     */
    @POST("GjAccidentVisa/delete")
    suspend fun deleteIntImpAccidentVisa(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际事故签证-新增
     */
    @POST("GjAccidentVisa/saveVisa")
    suspend fun saveGjAccidentVisa(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际事故签证-修改
     */
    @POST("GjAccidentVisa/modifyVisa")
    suspend fun modifyGjAccidentVisa(@Body data: RequestBody): BaseResultBean<String>

    /**
     * 国际事故签证-详情
     */
    @POST("GjAccidentVisa/detail")
    suspend fun getGjAccidentVisaDetail(@Query("id") id: Long): BaseResultBean<GjAccidentVisaEditBean>

    /**
     * 字典-破损情况
     */
    @POST("typeCode/damageType")
    suspend fun getDamageTypeList(): DictListBean

    /**
     * 字典-内容物情况
     */
    @POST("typeCode/contentType")
    suspend fun getContentTypeList(): DictListBean

    /**
     * 字典-不正常类型
     */
    @POST("typeCode/unusualType")
    suspend fun getUnusualTypeList(): DictListBean

    ///////////////////////////////////////////////////////////////////////////
    // ULD管理
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 获取-ULD-列表（分页）
     */
    @POST("eqm/uld/pageQuery")
    suspend fun getUldList(@Body data: RequestBody): PageInfo<ULDBean>

    /**
     * 新增-ULD-信息
     */
    @POST("eqm/uld/saveUld")
    suspend fun saveUld(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 更新-ULD-信息
     */
    @POST("eqm/uld/updateUld")
    suspend fun updateUld(@Body data: RequestBody): BaseResultBean<Any>

    /**
     * 删除-ULD-信息
     */
    @POST("eqm/uld/deleteUld")
    suspend fun deleteUld(@Query("uld") uld: String): BaseResultBean<Any>

    ///////////////////////////////////////////////////////////////////////////
    // 冷库登记
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 冷库登记-分页查询
     */
    @POST("ColdStorage/pageQuery")
    suspend fun getColdStorageList(@Body data: RequestBody): PageInfo<ColdStorageBean>

    /**
     * 冷库登记-分页合计
     */
    @POST("ColdStorage/pageQueryTotal")
    suspend fun getColdStorageTotal(@Body data: RequestBody): BaseResultBean<ManifestTotalDto>

    /**
     * 冷库登记-完成入库
     */
    @POST("ColdStorage/completeIn")
    suspend fun coldStorageCompleteIn(@Body data: RequestBody): BaseResultBean<Boolean>

    /**
     * 冷库登记-完成出库
     */
    @POST("ColdStorage/completeOut")
    suspend fun coldStorageCompleteOut(@Body data: RequestBody): BaseResultBean<Boolean>
}