<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper">

    <resultMap type="TWarehousebills" id="TWarehousebillsResult">
        <result property="fId"    column="f_id"    />
        <result property="fBillno"    column="f_billno"    />
        <result property="fCustomsdeclartion"    column="f_customsdeclartion"    />
        <result property="fOriginalbillno"    column="f_originalbillno"    />
        <result property="fDeptid"    column="f_deptid"    />
        <result property="fBsdeptid"    column="f_bsdeptid"    />
        <result property="fContacts"    column="f_contacts"    />
        <result property="fTel"    column="f_tel"    />
        <result property="fCorpid"    column="f_corpid"    />
        <result property="fShipper"    column="f_shipper"    />
        <result property="fTocorpid"    column="f_tocorpid"    />
        <result property="fStltypeid"    column="f_stltypeid"    />
        <result property="fBscorpno"    column="f_bscorpno"    />
        <result property="fWarehouseid"    column="f_warehouseid"    />
        <result property="fStorekeeper"    column="f_storekeeper"    />
        <result property="fChargedate"    column="f_chargedate"    />
        <result property="fBsdate"    column="f_bsdate"    />
        <result property="fPlanqty"    column="f_planqty"    />
        <result property="fPlangrossweight"    column="f_plangrossweight"    />
        <result property="fPlannetweight"    column="f_plannetweight"    />
        <result property="fPlanvolumn"    column="f_planvolumn"    />
        <result property="fQty"    column="f_qty"    />
        <result property="fGrossweight"    column="f_grossweight"    />
        <result property="fNetweight"    column="f_netweight"    />
        <result property="fVolumn"    column="f_volumn"    />
        <result property="fTrademodeid"    column="f_trademodeid"    />
        <result property="fBillingway"    column="f_billingway"    />
        <result property="fSbu"    column="f_sbu"    />
        <result property="fFeetunit"    column="f_feetunit"    />
        <result property="fMblno"    column="f_mblno"    />
        <result property="fEmblno"    column="f_emblno"    />
        <result property="fCompany"    column="f_company"    />
        <result property="fVslvoy"    column="f_vslvoy"    />
        <result property="fEta"    column="f_eta"    />
        <result property="fMarks"    column="f_marks"    />
        <result property="fCustomno"    column="f_customno"    />
        <result property="fIfweigh"    column="f_ifweigh"    />
        <result property="fIfpledge"    column="f_ifpledge"    />
        <result property="fIfdamage"    column="f_ifdamage"    />
        <result property="fBankcorpid"    column="f_bankcorpid"    />
        <result property="fBilltype"    column="f_billtype"    />
        <result property="fBillstatus"    column="f_billstatus"    />
        <result property="delFlag"    column="del_flag"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="fItemsStatus"    column="f_items_status"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="remark"    column="remark"    />
        <result property="fBillingDeadline"    column="f_billing_deadline"    />
        <result property="fProductName"    column="f_product_name"    />
        <result property="fReviewDate"    column="f_review_date"    />
        <result property="fTruckno"    column="f_truckno"    />
        <result property="fDriverName"    column="f_driver_name"    />
        <result property="fDriverTel"    column="f_driver_tel"    />
        <result property="fDriverIdCar"    column="f_driver_id_car"    />
        <result property="fBusinessType"    column="f_business_type"    />
        <result property="fLabour"    column="f_labour"    />
        <result property="fFleet"    column="f_fleet"    />
        <result property="fInwarehouseid"    column="f_inwarehouseid"    />
        <result property="fBstime"    column="f_bstime"    />
        <result property="fCartype"    column="f_cartype"    />
        <result property="fGoodsid"    column="f_goodsid"    />
        <result property="fNewTrademodeid"    column="f_new_trademodeid"    />
        <result property="fLoadportid"    column="f_loadportid"    />
        <result property="fDestportid"    column="f_destportid"    />
        <result property="fServiceitems"    column="f_serviceitems"    />
        <result property="fInvoceobj"    column="f_invoceobj"    />
        <result property="fSign"    column="f_sign"    />
        <result property="fDetentioncargo"    column="f_detentioncargo"    />
        <result property="fBooksmarks"    column="f_booksmarks"    />
        <result property="fShippername"    column="f_shippername"    />
        <result property="fShipperattn"    column="f_shipperattn"    />
        <result property="fShippertel"    column="f_shippertel"    />
        <result property="fConsigneername"    column="f_consigneername"    />
        <result property="fConsigneeattn"    column="f_consigneeattn"    />
        <result property="fConsigneetel"    column="f_consigneetel"    />
        <result property="fInsurance"    column="f_insurance"    />
        <result property="fInsuranceamt"    column="f_insuranceamt"    />
        <result property="fClosedate"    column="f_closedate"    />
        <result property="fDocmentdate"    column="f_docmentdate"    />
        <result property="fVslid"    column="f_vslid"    />
        <result property="fVoyid"    column="f_voyid"    />
        <result property="fTypeid"    column="f_typeid"    />
        <result property="fPaymode"    column="f_paymode"    />
        <result property="fLaneid"    column="f_laneid"    />
        <result property="fCntval"    column="f_cntval"    />
        <result property="freeContainerDate"    column="free_container_date"    />
        <result property="fBusinessAttribution"    column="f_business_attribution"    />
        <result property="fSupervisionUnit"    column="f_supervision_unit"    />
        <result property="fDeclarationElements"    column="f_declaration_elements"    />
        <result property="fPartNumber"    column="f_part_number"    />
        <result property="fIfinspection"    column="f_ifinspection"    />
        <result property="fValue"    column="f_value"    />
        <result property="fWeighingDate"    column="f_weighing_date"    />
        <result property="fIfsampling"    column="f_ifsampling"    />
        <result property="sendSampleDate"    column="send_sample_date"    />
        <result property="fIfweightRecovery"    column="f_ifweight_recovery"    />
        <result property="weightRecoveryDate"    column="weight_recovery_date"    />
        <result property="warehouseStatus"    column="warehouse_status"    />
        <result property="fTimes"    column="f_times"    />
        <result property="fDateChanged" column="f_date_changed"/>
        <result property="fChargetype" column="f_chargetype"/>
        <result property="fWeighWeight" column="f_weigh_weight" />
        <result property="fPredictBranch"    column="f_predict_branch" />
        <result property="fGrade"    column="f_grade" />
        <result property="fDeliveryDetails"  column="f_delivery_details" />
        <result property="fSalesmanId"  column="f_salesman_id"  />
        <result property="fItemstatus"  column="f_itemstatus" />
        <result property="fUpdeteStatus"    column="f_updete_status"/>
        <result property="fSubmitUpdate"    column="f_submit_update"/>
        <result property="fDeleteStatus"    column="f_delete_status"/>
        <result property="fRemarksFees"    column="f_remarks_fees"    />
        <result property="fCargoPlanning"    column="f_cargo_planning"    />
        <result property="fArrivalStatus"    column="f_arrival_status"    />
        <result property="fDismountStatus"    column="f_dismount_status"    />
        <result property="fFeeStatus"    column="f_fee_status"    />
        <result property="fServiceitemsNew"    column="f_serviceitems_new"    />
    </resultMap>

    <resultMap type="WarehouseBillsVO" id="WarehousebillsVOResult">
        <result property="fId"    column="f_id"    />
        <result property="fBillno"    column="f_billno"    />
        <result property="fMblno"    column="f_mblno"    />
        <result property="fBsdate"    column="f_bsdate"    />
        <result property="fQty"    column="f_qty"    />
        <result property="fGrossweight"    column="f_grossweight"    />
        <result property="fNetweight"    column="f_netweight"    />
        <result property="fBilltype"    column="f_billtype"    />
    </resultMap>

    <sql id="selectTWarehousebillsVo">
        select f_id, f_billno, f_customsdeclartion, f_originalbillno, f_deptid, f_bsdeptid, f_contacts, f_tel, f_corpid, f_shipper, f_tocorpid, f_stltypeid, f_bscorpno,
        f_warehouseid, f_storekeeper, f_chargedate, f_bsdate, f_planqty, f_plangrossweight, f_plannetweight, f_planvolumn, f_qty, f_grossweight, f_netweight,
        f_volumn, f_billingway, f_trademodeid, f_sbu, f_feetunit, f_mblno, f_emblno, f_company, f_marks, f_vslvoy, f_eta, f_customno, f_ifweigh, f_ifpledge, f_ifdamage, f_bankcorpid,
        f_billtype, f_billstatus, f_items_status, del_flag, create_by, create_time, update_by, update_time, remark, f_billing_deadline, f_product_name, f_review_date,
        f_truckno, f_driver_name, f_driver_tel, f_driver_id_car, f_business_type, f_labour, f_fleet, f_inwarehouseid, f_bstime, f_cartype, f_goodsid, f_new_trademodeid,
        f_loadportid, f_destportid, f_serviceitems, f_invoceobj, f_sign, f_detentioncargo, f_booksmarks, f_shippername, f_shipperattn, f_shippertel, f_consigneername,
        f_consigneeattn, f_consigneetel, f_insurance, f_insuranceamt, f_closedate, f_docmentdate, f_vslid, f_voyid, f_typeid, f_paymode, f_laneid, f_cntval,
        free_container_date, f_business_attribution, f_fee_status, f_supervision_unit, f_declaration_elements, f_part_number, f_ifinspection, f_value, f_weighing_date,
        f_ifsampling, send_sample_date, f_ifweight_recovery, weight_recovery_date, warehouse_status, f_times ,f_date_changed, f_chargetype,f_weigh_weight,
        f_predict_branch,f_grade,f_delivery_details,f_salesman_id,f_itemstatus,f_updete_status, f_submit_update, f_delete_status,f_remarks_fees,f_cargo_planning,
        f_arrival_status,f_dismount_status,f_serviceitems_new from t_warehousebills
    </sql>

    <select id="selectTWarehousebillsList" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
        select
            ware.*
        from
            t_warehousebills ware
            left join sys_user u on ware.create_by = u.user_name
            left join sys_dept d on ware.f_bsdeptid = d.dept_id
        <where>
            ware.f_typeid IS NULL
            <if test="fBillno != null  and fBillno != ''">and f_billno = #{fBillno}</if>
            <if test="fCustomsdeclartion != null  and fCustomsdeclartion != ''">and f_customsdeclartion =
                #{fCustomsdeclartion}
            </if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and f_originalbillno = #{fOriginalbillno}</if>
            <if test="fDeptid != null ">and f_deptid = #{fDeptid}</if>
            <if test="fBsdeptid != null ">and f_bsdeptid = #{fBsdeptid}</if>
            <if test="fInwarehouseid != null ">and f_inwarehouseid = #{fInwarehouseid}</if>
            <if test="fContacts != null  and fContacts != ''">and f_contacts = #{fContacts}</if>
            <if test="fTel != null  and fTel != ''">and f_tel = #{fTel}</if>
            <if test="fCorpid != null ">and f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fTocorpid != null ">and f_tocorpid = #{fTocorpid}</if>
            <if test="fChargedate != null ">and f_chargedate = #{fChargedate}</if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and f_bsdate &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and f_bsdate &lt;= #{timeInterval[1]}
            </if>
            <if test="fStltypeid != null ">and f_stltypeid = #{fStltypeid}</if>
            <if test="fBscorpno != null  and fBscorpno != ''">and f_bscorpno = #{fBscorpno}</if>
            <if test="fWarehouseid != null ">and f_warehouseid = #{fWarehouseid}</if>
            <if test="fStorekeeper != null  and fStorekeeper != ''">and f_storekeeper = #{fStorekeeper}</if>
            <if test="fBsdate != null ">and f_bsdate = #{fBsdate}</if>
            <if test="fPlanqty != null ">and f_planqty = #{fPlanqty}</if>
            <if test="fProductName != null  and fProductName != ''">and f_product_name like concat('%', #{fProductName},
                '%')
            </if>
            <if test="fPlangrossweight != null ">and f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and f_plannetweight = #{fPlannetweight}</if>
            <if test="fPlanvolumn != null ">and f_planvolumn = #{fPlanvolumn}</if>
            <if test="fQty != null ">and f_qty = #{fQty}</if>
            <if test="fMarks != null  and fMarks != ''">and f_marks = #{fMarks}</if>
            <if test="fGrossweight != null ">and f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and f_netweight = #{fNetweight}</if>
            <if test="fVolumn != null ">and f_volumn = #{fVolumn}</if>
            <if test="fTrademodeid != null ">and f_trademodeid = #{fTrademodeid}</if>
            <if test="fBillingway != null ">and f_billingway = #{fBillingway}</if>
            <if test="fSbu != null ">and f_sbu = #{fSbu}</if>
            <if test="fFeetunit != null  and fFeetunit != ''">and f_feetunit = #{fFeetunit}</if>
            <if test="fMblno != null  and fMblno != ''">and f_mblno = #{fMblno}</if>
            <if test="fEmblno != null  and fEmblno != ''">and f_emblno = #{fEmblno}</if>
            <if test="fVslvoy != null  and fVslvoy != ''">and f_vslvoy = #{fVslvoy}</if>
            <if test="fEta != null ">and f_eta = #{fEta}</if>
            <if test="fCustomno != null  and fCustomno != ''">and f_customno = #{fCustomno}</if>
            <if test="fIfweigh != null  and fIfweigh != ''">and f_ifweigh = #{fIfweigh}</if>
            <if test="fIfpledge != null  and fIfpledge != ''">and f_ifpledge = #{fIfpledge}</if>
            <if test="fIfdamage != null  and fIfdamage != ''">and f_ifdamage = #{fIfdamage}</if>
            <if test="fBankcorpid != null ">and f_bankcorpid = #{fBankcorpid}</if>
            <if test="fBillingDeadline != null ">and f_billing_deadline = #{fBillingDeadline}</if>
            <if test="fBilltype != null  and fBilltype != ''">and f_billtype = #{fBilltype}</if>
            <if test="fBillstatus != null  and fBillstatus != ''">and f_billstatus = #{fBillstatus}</if>
            <if test="fNewTrademodeid != null ">and f_new_trademodeid = #{fNewTrademodeid}</if>
        </where>
        ${params.dataScope}
    </select>

    <select id="selectWarehouseBusinessList" parameterType="TWarehousebills" resultType="Map">
        SELECT
            DISTINCT
            bill.f_id AS fId,
            corp.f_name AS fCorpid,
            corpTo.f_name AS fTocorpid,
            bill.f_shipper AS fShipper,
            bill.f_mblno AS fMblno,
            bill.f_emblno AS fEmblno,
            bill.f_company AS fCompany,
            corpSub.f_name AS fSbu,
            bill.f_marks AS fMarks,
            bill.remark AS remark,
            bill.f_planqty AS fPlanqty,
            bill.f_plangrossweight AS fPlangrossweight,
            bill.f_plannetweight AS fPlannetweight,
            bill.f_planvolumn AS fPlanvolumn,
            bill.f_bsdate AS fBsdate,
            bill.f_trademodeid AS fTrademodeid,
            bill.f_truckno AS fTruckno,
            bill.f_driver_name AS fDriverName,
            bill.f_driver_tel AS fDriverTel,
            bill.f_driver_id_car AS fDriverIdCar,
            dictIn.dict_label AS fBusinessType,
            ware.f_name AS fWarehouseid,
            bill.f_qty AS fQty,
            bill.f_cntval AS fCntval,
            bill.f_netweight AS fNetweight,
            bill.create_time AS createTime,
            ware1.f_name AS fInwarehouseid,
            bill.f_chargetype AS fChargetype,
            bill.create_by AS createBy,
            bill.f_grossweight AS fGrossweight,
            bill.f_product_name AS fProductName,
            bill.f_billing_deadline AS fBillingDeadline,
            bill.free_container_date AS freeContainerDate,
            CASE
            WHEN bill.f_fee_status = '0'THEN ''
            WHEN bill.f_fee_status = '1'THEN '暂存'
            WHEN bill.f_fee_status = '2'THEN '部分入账'
            WHEN bill.f_fee_status = '3'THEN '全部入账'
            END AS fFeeStatus,
        CASE WHEN bill.f_billstatus = '1' THEN '录入'
            WHEN bill.f_billstatus = '2' THEN '暂存'
            WHEN bill.f_billstatus = '3' THEN '驳回'
            WHEN bill.f_billstatus = '4' THEN '请核'
            WHEN bill.f_billstatus = '5' THEN '审核中'
            WHEN bill.f_billstatus = '6' THEN '全部入账'
            END
            AS fBillstatus,
            CASE
            WHEN bill.f_billtype = 'SJRK'
            AND bill.f_items_status = '1' THEN
            '计划'
            WHEN bill.f_billtype = 'SJRK'
            AND bill.f_items_status = '2' THEN
            '待入库'
            WHEN bill.f_billtype = 'SJRK'
            AND bill.f_items_status = '3' THEN
            '入库中'
            WHEN bill.f_billtype = 'SJRK'
            AND bill.f_items_status = '4' THEN
            '已入库'
            WHEN bill.f_billtype = 'SJCK'
            AND bill.f_items_status = '1' THEN
            '计划'
            WHEN bill.f_billtype = 'SJCK'
            AND bill.f_items_status = '2' THEN
            '待出库'
            WHEN bill.f_billtype = 'SJCK'
            AND bill.f_items_status = '3' THEN
            '出库中'
            WHEN bill.f_billtype = 'SJCK'
            AND bill.f_items_status = '4' THEN
            '已出库'
            WHEN bill.f_billtype = 'CKDB'
            AND bill.f_items_status = '1' THEN
            '计划'
            WHEN bill.f_billtype = 'CKDB'
            AND bill.f_items_status = '2' THEN
            '待调拨'
            WHEN bill.f_billtype = 'CKDB'
            AND bill.f_items_status = '3' THEN
            '调拨中'
            WHEN bill.f_billtype = 'CKDB'
            AND bill.f_items_status = '4' THEN
            '已调拨'
            WHEN bill.f_billtype = 'HWTG'
            AND bill.f_items_status = '1' THEN
            '计划'
            WHEN bill.f_billtype = 'HWTG'
            AND bill.f_items_status = '2' THEN
            '待调拨'
            WHEN bill.f_billtype = 'HWTG'
            AND bill.f_items_status = '3' THEN
            '调拨中'
            WHEN bill.f_billtype = 'HWTG'
            AND bill.f_items_status = '4' THEN
            '已调拨'
            END AS fItemsStatus,
            bill.f_billno AS fBillno,
            g.f_name AS fGoodsid,
            bill.f_storekeeper AS fStorekeeper,
            bill.f_remarks_fees AS fRemarksFees
        FROM
            t_warehousebills bill
            LEFT JOIN t_goods g ON g.f_id = bill.f_goodsid
            left join sys_user u on bill.create_by = u.user_name
            left join sys_user u1 on bill.f_storekeeper = u1.user_name
            left join sys_dept d on bill.f_bsdeptid = d.dept_id
            LEFT JOIN t_corps corp ON corp.f_id = bill.f_corpid
            LEFT JOIN t_corps corpTo ON corpTo.f_id = bill.f_tocorpid
            LEFT JOIN t_corps corpSub ON corpSub.f_id = bill.f_sbu
            LEFT JOIN t_warehouse ware ON ware.f_id = bill.f_warehouseid
            LEFT JOIN t_warehouse ware1 ON ware1.f_id = bill.f_inwarehouseid
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = bill.f_id
            LEFT JOIN t_goods goods ON goods.f_id = item.f_goodsid
            LEFT JOIN sys_dict_data dictIn ON dictIn.dict_value = bill.f_business_type
        <where>
            bill.f_typeid IS NULL
            <if test="fFeeStatus != null and fFeeStatus != ''">and bill.f_fee_status = #{fFeeStatus}</if>
            <if test="fBillno != null  and fBillno != ''">and bill.f_billno like concat('%', #{fBillno}, '%')</if>
            <if test="fTruckno != null  and fTruckno != ''">and item.f_truckno like concat('%', #{fTruckno}, '%')</if>
            <if test="fCustomsdeclartion != null  and fCustomsdeclartion != ''">and bill.f_customsdeclartion =
                #{fCustomsdeclartion}
            </if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and bill.f_originalbillno =
                #{fOriginalbillno}
            </if>
            <if test="fDeptid != null ">and bill.f_deptid = #{fDeptid}</if>
            <if test="fInwarehouseid != null ">and bill.f_inwarehouseid = #{fInwarehouseid}</if>
            <if test="fBsdeptid != null ">and bill.f_bsdeptid = #{fBsdeptid}</if>
            <if test="fChargedate != null ">and bill.f_chargedate = #{fChargedate}</if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and bill.f_bsdate &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and bill.f_bsdate &lt;= #{timeInterval[1]}
            </if>
            <if test='freeContainerList != null and freeContainerList[0] != null and freeContainerList[0]!= ""'>
                and bill.free_container_date &gt;= #{freeContainerList[0]}
            </if>
            <if test='freeContainerList != null and freeContainerList[1] != null and freeContainerList[1]!= ""'>
                and bill.free_container_date &lt;= #{freeContainerList[1]}
            </if>
            <if test="fGoodsid != null  and fGoodsid != ''">and item.f_goodsid = #{fGoodsid}</if>
            <if test="fContacts != null  and fContacts != ''">and bill.f_contacts = #{fContacts}</if>
            <if test="fTel != null  and fTel != ''">and bill.f_tel = #{fTel}</if>
            <if test="fCorpid != null ">and bill.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and bill.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fBillingDeadline != null ">and bill.f_billing_deadline = #{fBillingDeadline}</if>
            <if test="fTocorpid != null ">and bill.f_tocorpid = #{fTocorpid}</if>
            <if test="fMarks != null  and fMarks != ''">and bill.f_marks like concat('%', #{fMarks}, '%')</if>
            <if test="fStltypeid != null ">and bill.f_stltypeid = #{fStltypeid}</if>
            <if test="fReviewDate != null ">and f_review_date = #{fReviewDate}</if>
            <if test="fBscorpno != null  and fBscorpno != ''">and bill.f_bscorpno = #{fBscorpno}</if>
            <if test="fWarehouseid != null ">and bill.f_warehouseid = #{fWarehouseid}</if>
            <if test="fStorekeeper != null  and fStorekeeper != ''">and bill.f_storekeeper = #{fStorekeeper}</if>
            <if test="fBsdate != null ">and bill.f_bsdate = #{fBsdate}</if>
            <if test="fPlanqty != null ">and bill.f_planqty = #{fPlanqty}</if>
            <if test="fPlangrossweight != null ">and bill.f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and bill.f_plannetweight = #{fPlannetweight}</if>
            <if test="fPlanvolumn != null ">and bill.f_planvolumn = #{fPlanvolumn}</if>
            <if test="fQty != null ">and bill.f_qty = #{fQty}</if>
            <if test="fGrossweight != null ">and bill.f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and bill.f_netweight = #{fNetweight}</if>
            <if test="fVolumn != null ">and bill.f_volumn = #{fVolumn}</if>
            <if test="fTrademodeid != null ">and bill.f_trademodeid = #{fTrademodeid}</if>
            <if test="fBillingway != null ">and bill.f_billingway = #{fBillingway}</if>
            <if test="fSbu != null ">and bill.f_sbu = #{fSbu}</if>
            <if test="fFeetunit != null  and fFeetunit != ''">and bill.f_feetunit = #{fFeetunit}</if>
            <if test="fMblno != null  and fMblno != ''">and bill.f_mblno like concat('%', #{fMblno}, '%')</if>
            <if test="fEmblno != null  and fEmblno != ''">and bill.f_emblno like concat('%', #{fEmblno}, '%')</if>
            <if test="fVslvoy != null  and fVslvoy != ''">and bill.f_vslvoy = #{fVslvoy}</if>
            <if test="fEta != null ">and bill.f_eta = #{fEta}</if>
            <if test="fCustomno != null  and fCustomno != ''">and bill.f_customno = #{fCustomno}</if>
            <if test="fIfweigh != null  and fIfweigh != ''">and bill.f_ifweigh = #{fIfweigh}</if>
            <if test="fIfpledge != null  and fIfpledge != ''">and bill.f_ifpledge = #{fIfpledge}</if>
            <if test="fIfdamage != null  and fIfdamage != ''">and bill.f_ifdamage = #{fIfdamage}</if>
            <if test="fBankcorpid != null ">and bill.f_bankcorpid = #{fBankcorpid}</if>
            <if test="fBilltype != null">and bill.f_billtype = #{fBilltype}</if>
            <if test="fBilltype != null  and fBilltype == 'SJRK'">
                AND dictIn.dict_type = 'st_in_type'
                AND dictIn.status = '0'
            </if>
            <if test="fBilltype != null  and fBilltype == 'SJCK'">
                AND dictIn.dict_type = 'st_out_type'
                AND dictIn.status = '0'
            </if>
            <if test="fBilltype != null  and fBilltype == 'CKDB'">
                AND dictIn.dict_type = 'st_trans_type'
                AND dictIn.status = '0'
            </if>
            <if test="fBilltype != null  and fBilltype == 'HWTG'">
                AND dictIn.dict_type = 'st_trans_type'
                AND dictIn.status = '0'
            </if>
            <if test="fBilltype != null  and fBilltype == 'CDZZ'"><!-- 场地直装 仿出库 -->
                AND dictIn.dict_type = 'st_out_type'
                AND dictIn.status = '0'
            </if>
            <if test="fBillstatus != null  and fBillstatus != ''">and bill.f_billstatus = #{fBillstatus}</if>
            <if test="fItemsStatus != null  and fItemsStatus != ''">and bill.f_items_status = #{fItemsStatus}</if>
            <if test="createBy != null and createBy != ''">and bill.create_by = #{createBy}</if>
            <if test="fNewTrademodeid != null ">and bill.f_new_trademodeid = #{fNewTrademodeid}</if>
        </where>
        ${params.dataScope}
        ORDER BY bill.f_bsdate DESC, bill.f_bstime DESC,bill.f_id DESC,bill.f_billstatus
    </select>

    <select id="selectWarehouseBusinessList1" parameterType="TWarehousebills" resultType="Map">
        SELECT
            DISTINCT
            bill.f_id AS fId,
            corp.f_name AS fCorpid,
            corpTo.f_name AS fTocorpid,
            bill.f_shipper AS fShipper,
            bill.f_mblno AS fMblno,
            bill.f_emblno AS fEmblno,
            bill.f_company AS fCompany,
            corpSub.f_name AS fSbu,
            bill.f_marks AS fMarks,
            bill.remark AS remark,
            bill.f_planqty AS fPlanqty,
            bill.f_plangrossweight AS fPlangrossweight,
            bill.f_plannetweight AS fPlannetweight,
            bill.f_planvolumn AS fPlanvolumn,
            bill.f_bsdate AS fBsdate,
            dict.dict_label AS fTrademodeid,
            bill.f_truckno AS fTruckno,
            bill.f_driver_name AS fDriverName,
            bill.f_driver_tel AS fDriverTel,
            bill.f_driver_id_car AS fDriverIdCar,
            ware.f_name AS fWarehouseid,
            bill.f_qty AS fQty,
            bill.f_cntval AS fCntval,
            bill.f_chargetype AS fChargetype,
            bill.f_netweight AS fNetweight,
            bill.create_time AS createTime,
            ware1.f_name AS fInwarehouseid,
            bill.create_by AS createBy,
            bill.f_grossweight AS fGrossweight,
            bill.f_product_name AS fProductName,
            bill.f_billing_deadline AS fBillingDeadline,
            bill.free_container_date AS freeContainerDate,
            CASE
            WHEN bill.f_fee_status = '0'THEN ''
            WHEN bill.f_fee_status = '1'THEN '暂存'
            WHEN bill.f_fee_status = '2'THEN '部分入账'
            WHEN bill.f_fee_status = '3'THEN '全部入账'
            END AS fFeeStatus,
            CASE
            WHEN bill.f_billtype = 'HQZY' AND bill.f_billstatus = '1' THEN '录入'
            WHEN bill.f_billtype = 'HQZY' AND bill.f_billstatus = '2' THEN '暂存'
            WHEN bill.f_billtype = 'HQZY' AND bill.f_billstatus = '3' THEN '驳回'
            WHEN bill.f_billtype = 'HQZY' AND bill.f_billstatus = '4' THEN '请核'
            WHEN bill.f_billtype = 'HQZY' AND bill.f_billstatus = '5' THEN '审核中'
            WHEN bill.f_billtype = 'HQZY' AND bill.f_billstatus = '6' THEN '全部入账'
            WHEN bill.f_billtype = 'JSCCF' AND bill.f_billstatus = '1' THEN '新建'
            WHEN bill.f_billtype = 'JSCCF' AND bill.f_billstatus = '2' THEN '暂存'
            WHEN bill.f_billtype = 'JSCCF' AND bill.f_billstatus = '3' THEN '审核驳回'
            WHEN bill.f_billtype = 'JSCCF' AND bill.f_billstatus = '4' THEN '提交审核'
            WHEN bill.f_billtype = 'JSCCF' AND bill.f_billstatus = '5' THEN '审核中'
            WHEN bill.f_billtype = 'JSCCF' AND bill.f_billstatus = '6' THEN '审核通过'
            END
            AS fBillstatus,
            CASE
            WHEN bill.f_billtype = 'HQZY'
            AND bill.f_items_status = '1' THEN
            '计划'
            WHEN bill.f_billtype = 'HQZY'
            AND bill.f_items_status = '2' THEN
            '待货转'
            WHEN bill.f_billtype = 'HQZY'
            AND bill.f_items_status = '3' THEN
            '货转中'
            WHEN bill.f_billtype = 'HQZY'
            AND bill.f_items_status = '4' THEN
            '已货转'
            END
            AS fItemsStatus,
            bill.f_billno AS fBillno,
            g.f_name AS fGoodsid,
            bill.f_storekeeper AS fStorekeeper,
            bill.f_remarks_fees AS fRemarksFees
        FROM
            t_warehousebills bill
            LEFT JOIN t_goods g ON g.f_id = bill.f_goodsid
            left join sys_user u on bill.create_by = u.user_name
            left join sys_user u1 on bill.f_storekeeper = u1.user_name
            left join sys_dept d on bill.f_bsdeptid = d.dept_id
            LEFT JOIN t_corps corp ON corp.f_id = bill.f_corpid
            LEFT JOIN t_corps corpTo ON corpTo.f_id = bill.f_tocorpid
            LEFT JOIN t_corps corpSub ON corpSub.f_id = bill.f_sbu
            LEFT JOIN t_warehouse ware ON ware.f_id = bill.f_warehouseid
            LEFT JOIN t_warehouse ware1 ON ware1.f_id = bill.f_inwarehouseid
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = bill.f_id
            LEFT JOIN t_goods goods ON goods.f_id = item.f_goodsid
            LEFT JOIN sys_dict_data dict ON dict.dict_value = bill.f_trademodeid
        <where>
            dict.status = '0'
            AND dict.dict_type = 'data_trademodes'
            AND bill.f_typeid IS NULL
            <if test="fFeeStatus != null and fFeeStatus != ''">and bill.f_fee_status = #{fFeeStatus}</if>
            <if test="fBillno != null  and fBillno != ''">and bill.f_billno like concat('%', #{fBillno}, '%')</if>
            <if test="fTruckno != null  and fTruckno != ''">and item.f_truckno like concat('%', #{fTruckno}, '%')</if>
            <if test="fCustomsdeclartion != null  and fCustomsdeclartion != ''">and bill.f_customsdeclartion =
                #{fCustomsdeclartion}
            </if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and bill.f_originalbillno =
                #{fOriginalbillno}
            </if>
            <if test="fDeptid != null ">and bill.f_deptid = #{fDeptid}</if>
            <if test="fInwarehouseid != null ">and bill.f_inwarehouseid = #{fInwarehouseid}</if>
            <if test="fBsdeptid != null ">and bill.f_bsdeptid = #{fBsdeptid}</if>
            <if test="fChargedate != null ">and bill.f_chargedate = #{fChargedate}</if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and bill.f_bsdate &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and bill.f_bsdate &lt;= #{timeInterval[1]}
            </if>
            <if test='freeContainerList != null and freeContainerList[0] != null and freeContainerList[0]!= ""'>
                and bill.free_container_date &gt;= #{freeContainerList[0]}
            </if>
            <if test='freeContainerList != null and freeContainerList[1] != null and freeContainerList[1]!= ""'>
                and bill.free_container_date &lt;= #{freeContainerList[1]}
            </if>
            <if test="fGoodsid != null  and fGoodsid != ''">and item.f_goodsid = #{fGoodsid}</if>
            <if test="fContacts != null  and fContacts != ''">and bill.f_contacts = #{fContacts}</if>
            <if test="fTel != null  and fTel != ''">and bill.f_tel = #{fTel}</if>
            <if test="fCorpid != null ">and bill.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and bill.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fBillingDeadline != null ">and bill.f_billing_deadline = #{fBillingDeadline}</if>
            <if test='timeInterval2 != null and timeInterval2[0] != null and timeInterval2[0]!= ""'><!-- 仓储费增加计费截止日期区间查询 -->
                and bill.f_billing_deadline &gt;= #{timeInterval2[0]}
            </if>
            <if test='timeInterval2 != null and timeInterval2[1] != null and timeInterval2[1]!= ""'>
                and bill.f_billing_deadline &lt;= #{timeInterval2[1]}
            </if>
            <if test="fTocorpid != null ">and bill.f_tocorpid = #{fTocorpid}</if>
            <if test="fMarks != null  and fMarks != ''">and bill.f_marks like concat('%', #{fMarks}, '%')</if>
            <if test="fStltypeid != null ">and bill.f_stltypeid = #{fStltypeid}</if>
            <if test="fReviewDate != null ">and f_review_date = #{fReviewDate}</if>
            <if test="fBscorpno != null  and fBscorpno != ''">and bill.f_bscorpno = #{fBscorpno}</if>
            <if test="fWarehouseid != null ">and bill.f_warehouseid = #{fWarehouseid}</if>
            <if test="fStorekeeper != null  and fStorekeeper != ''">and bill.f_storekeeper = #{fStorekeeper}</if>
            <if test="fBsdate != null ">and bill.f_bsdate = #{fBsdate}</if>
            <if test="fPlanqty != null ">and bill.f_planqty = #{fPlanqty}</if>
            <if test="fPlangrossweight != null ">and bill.f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and bill.f_plannetweight = #{fPlannetweight}</if>
            <if test="fPlanvolumn != null ">and bill.f_planvolumn = #{fPlanvolumn}</if>
            <if test="fQty != null ">and bill.f_qty = #{fQty}</if>
            <if test="fGrossweight != null ">and bill.f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and bill.f_netweight = #{fNetweight}</if>
            <if test="fVolumn != null ">and bill.f_volumn = #{fVolumn}</if>
            <if test="fTrademodeid != null ">and bill.f_trademodeid = #{fTrademodeid}</if>
            <if test="fBillingway != null ">and bill.f_billingway = #{fBillingway}</if>
            <if test="fSbu != null ">and bill.f_sbu = #{fSbu}</if>
            <if test="fFeetunit != null  and fFeetunit != ''">and bill.f_feetunit = #{fFeetunit}</if>
            <if test="fMblno != null  and fMblno != ''">and bill.f_mblno like concat('%', #{fMblno}, '%')</if>
            <if test="fEmblno != null  and fEmblno != ''">and bill.f_emblno like concat('%', #{fEmblno}, '%')</if>
            <if test="fVslvoy != null  and fVslvoy != ''">and bill.f_vslvoy = #{fVslvoy}</if>
            <if test="fEta != null ">and bill.f_eta = #{fEta}</if>
            <if test="fCustomno != null  and fCustomno != ''">and bill.f_customno = #{fCustomno}</if>
            <if test="fIfweigh != null  and fIfweigh != ''">and bill.f_ifweigh = #{fIfweigh}</if>
            <if test="fIfpledge != null  and fIfpledge != ''">and bill.f_ifpledge = #{fIfpledge}</if>
            <if test="fIfdamage != null  and fIfdamage != ''">and bill.f_ifdamage = #{fIfdamage}</if>
            <if test="fBankcorpid != null ">and bill.f_bankcorpid = #{fBankcorpid}</if>
            <if test="fBilltype != null  and fBilltype != ''">
                and bill.f_billtype = #{fBilltype}
            </if>
            <if test="fBillstatus != null  and fBillstatus != ''">and bill.f_billstatus = #{fBillstatus}</if>
            <if test="fItemsStatus != null  and fItemsStatus != ''">and bill.f_items_status = #{fItemsStatus}</if>
            <if test="createBy != null and createBy != ''">and bill.create_by = #{createBy}</if>
            <if test="fNewTrademodeid != null ">and bill.f_new_trademodeid = #{fNewTrademodeid}</if>
        </where>
        ${params.dataScope}
        ORDER BY bill.f_bsdate DESC, bill.f_bstime DESC,bill.f_id DESC,bill.f_billstatus
    </select>

    <select id="selectTWarehousebillsById" parameterType="Long" resultMap="TWarehousebillsResult">
        <include refid="selectTWarehousebillsVo"/>
        where f_id = #{fId}
        ORDER BY f_bsdate desc
    </select>

    <select id="selectTWarehousebillsItemsList"
            resultType="com.ruoyi.warehouseBusiness.domain.TWareHouseExcelItems">
        SELECT
            ( @ii := @ii + 1 ) AS fId,
            CASE
                wi.f_billtype
                WHEN 'SJRK' THEN
                    '入库'
                WHEN 'SJCK' THEN
                    '出库'
                WHEN 'KCZZ' THEN
                    '库存总账'
                END AS fBilltype,
            ware.f_name AS warehouseName,
            wi.f_mblno AS fMblno,
            wi.f_product_name AS fGoodsid,
            wi.f_marks AS fMarks,
            wi.f_bsdate AS fBsdate,
            dict.dict_label AS fFeeUnitid,
            wi.f_billing_qty AS fBillingQty,
            wi.f_chargedate AS fChargedate,
            wi.f_billing_deadline AS fBillingDeadline,
            wi.f_billing_days AS fBillingDays,
            wi.f_inventory_days AS fInventoryDays,
            wi.f_amt AS fAmt,
            wi.price_date_remarks AS priceDateRemarks,
            wi.remark AS remark
        FROM
            t_warehousebills w
                LEFT JOIN t_warehousebillsfees wi ON w.f_id = wi.f_pid
                LEFT JOIN t_warehouse ware ON ware.f_id = wi.f_warehouseid
                LEFT JOIN sys_dict_data dict ON dict.dict_value = wi.f_feeUnitid,
            ( SELECT @ii := 0 ) AS ii
        WHERE w.f_id = #{fId}
          AND w.f_typeid IS NULL
          AND dict.status = '0'
          AND dict.dict_type = 'data_unitfees'
    </select>

    <select id="selectInStockDetail" resultType="com.ruoyi.warehouseBusiness.excel.StorageDetail">
        SELECT
        wi.f_mblno AS fMblno,
        tg.f_name AS fProductName,
        wi.f_packagespecs AS fPackagespecs,
        dict.dict_label AS fBusinessType,
        wi.f_bsdate AS inStockDate,
        wi.f_qty AS fQtyD,
        wi.f_grossweight AS fGrossweightD
        FROM t_warehousebillsitems wi
        LEFT JOIN t_warehousebills w ON wi.f_pid =  w.f_id
        LEFT JOIN t_goods tg ON wi.f_goodsid = tg.f_id
        LEFT JOIN sys_dict_data dict ON w.f_business_type = dict.dict_value
        WHERE
            wi.f_billstatus = 40
            AND dict.status = 0
            <if test="billType != null and billType!= '' and billType== 'SJRK'">
                AND wi.f_billtype = 'SJRK'
                AND dict.dict_type = 'st_in_type'
                <if test="fId != null and fId!= ''">
                    AND wi.f_mblno = (select distinct f_mblno from t_warehousebills where f_id = #{fId})
                    AND wi.f_warehouselocid in (
                        select distinct wi.f_warehouselocid
                        from t_warehousebillsitems wi left join t_warehousebillsfees wf on wf.src_id = wi.f_id
                        where wf.f_pid = #{fId}
                    )
                </if>
            </if>
            <if test="billType != null and billType!= '' and billType== 'CKDB'">
                AND wi.f_billtype = 'CKDB'
                AND dict.dict_type = 'st_trans_type'
                <if test="fId != null and fId!= ''">
                    AND wi.f_mblno = (select distinct f_mblno from t_warehousebills where f_id = #{fId})
                    AND wi.f_transfer_warehouselocid in (
                        select distinct wi.f_warehouselocid
                        from t_warehousebillsitems wi left join t_warehousebillsfees wf on wf.src_id = wi.f_id
                        where wf.f_pid = #{fId}
                    )
                </if>
            </if>
            <if test="fId != null and fId!= ''">
                AND wi.f_bsdate &gt;= (select min(f_chargedate) from t_warehousebillsfees where f_pid = #{fId})
            </if>
    </select>

    <select id="selectNotInStockDetail" resultType="com.ruoyi.warehouseBusiness.excel.StorageDetail">
        SELECT
        wf.f_mblno            AS fMblno,
        wf.f_product_name     AS fProductName,
        wi.f_packagespecs     AS fPackagespecs,
        dict.dict_label       AS fBusinessType,
        wf.f_chargedate       AS inStockDate,
        wf.f_billing_deadline AS outStockDate,
        wi.f_truckno          AS fTruckno,
        wi.f_qty              AS fQtyC,
        wi.f_grossweight      AS fGrossweightC,
        dictF.dict_label      AS fBillingway,
        wf.f_billing_qty      AS fBillingQty,
        wf.f_billing_days     AS fBillingDays,
        wf.f_amount           AS fAmount
        FROM t_warehousebillsfees wf
        LEFT JOIN t_warehousebillsitems wi ON wi.f_id = wf.src_id
        LEFT JOIN t_warehousebills w ON w.f_id = wi.f_pid
        LEFT JOIN sys_dict_data dict ON w.f_business_type = dict.dict_value
        LEFT JOIN sys_dict_data dictF ON wf.f_billingway = dictF.dict_value
        WHERE w.f_typeid IS NULL
            AND dict.status = '0'
            AND dictF.status = '0'
            AND dictF.dict_type = 'data_unitfees'
            <if test="fId != null and fId!= ''">AND wf.f_pid = #{fId}</if>
            <if test="billType != null and billType!= '' and billType== 'SJCK'">
                AND wf.f_billtype = 'SJCK'
                AND dict.dict_type = 'st_out_type'
            </if>
            <if test="billType != null and billType!= '' and billType== 'HQZY'">
                AND wf.f_billtype = 'HQZY'
                AND dict.dict_type = 'st_goodstf_type'
            </if>
    </select>

    <select id="selectInventoryDetail" resultType="com.ruoyi.warehouseBusiness.excel.StorageDetail">
        SELECT
        wf.f_mblno            AS fMblno,
        wf.f_product_name     AS fProductName,
        wi.f_packagespecs     AS fPackagespecs,
        '在库'                 AS fBusinessType,
        wf.f_bsdate           AS inStockDate,
        dictF.dict_label      AS fBillingway,
        wf.f_billing_qty      AS fBillingQty,
        wf.f_billing_days     AS fBillingDays,
        wf.f_amount           AS fAmount
        FROM t_warehousebillsfees wf
        LEFT JOIN t_warehousebillsitems wi ON wi.f_id = wf.src_id
        LEFT JOIN t_warehousebills w ON w.f_id = wi.f_pid
        LEFT JOIN sys_dict_data dictF ON wf.f_billingway = dictF.dict_value
        WHERE w.f_typeid IS NULL
            AND dictF.status = '0'
            AND dictF.dict_type = 'data_unitfees'
            AND wf.f_billtype = 'KCZZ'
            <if test="fId != null and fId!= ''">AND wf.f_pid = #{fId}</if>
    </select>

    <select id="selectInventorySJRKList" parameterType="TWarehousebills" resultType="java.util.Map">
        SELECT
        co.f_name AS fName,
        leg.f_shipper AS fShipper,
        it.f_bsdate AS fBsdate,
        leg.f_mblno AS fMblno,
        it.f_business_type AS fBusinessType,
        dict.dict_label AS fBusinessTypes,
        it.f_marks AS fMarks ,
        goo.f_name AS fGoodsName,
        it.f_warehouse_information AS fWarehouseLocationids,
        dicttr.dict_label AS fTrademodeid,
        it.f_qty AS fQty,
        it.f_grossweight AS fGrossweight,
        it.f_netweight AS fNetweight,
        CASE
        it.f_billtype
        WHEN 'SJRK' THEN
        '入库'
        WHEN 'SJCK' THEN
        '出库'
        WHEN 'CKDB' THEN
        '调拨'
        END AS fBilltype
        FROM
        t_warehousebills leg
        left join sys_user u on leg.create_by = u.user_name
        left join sys_dept d on leg.f_bsdeptid = d.dept_id
        LEFT JOIN t_warehousebillsitems it ON leg.f_id = it.f_pid
        LEFT JOIN t_goods goo ON it.f_goodsid = goo.f_id
        LEFT JOIN t_corps co ON leg.f_corpid = co.f_id
        LEFT JOIN sys_dict_data dict ON dict.dict_value = it.f_business_type
        LEFT JOIN t_warehouse ware ON ware.f_id = it.f_warehouselocid
        LEFT JOIN sys_dict_data dicttr ON dicttr.dict_value = leg.f_trademodeid
        <where>
            dict.status = '0'
            AND leg.f_typeid IS NULL
            AND dict.dict_type = 'storage_type'
            AND dicttr.STATUS = '0'
            AND dicttr.dict_type = 'data_trademodes'
            AND leg.f_billtype in ('SJRK','CKDB')
            AND it.f_billstatus = 40
            <if test="fGoodsid != null ">and it.f_goodsid = #{fGoodsid}</if>
            <if test="fTrademodeid != null ">and leg.f_trademodeid = #{fTrademodeid}</if>
            <if test="fNewTrademodeid != null ">and leg.f_new_trademodeid = #{fNewTrademodeid}</if>
            <if test="fCorpid != null ">and leg.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and leg.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fMblno != null ">and it.f_mblno like concat('%',#{fMblno},'%')</if>
            <if test="fEmblno != null ">and it.f_emblno like concat('%',#{fEmblno},'%')</if>
            <if test="fLocation != null  and fLocation ==1 ">
                and it.f_warehouselocid = #{fWarehouseid}
            </if>
            <if test="fLocation != null  and fLocation ==0 ">
                and ware.ancestors LIKE concat('%', #{fWarehouseid}, '%')
            </if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and it.f_bsdate &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and it.f_bsdate &lt;= #{timeInterval[1]}
            </if>
        </where>
        ${params.dataScope}
    </select>

    <select id="selectInventorySJCKList" parameterType="TWarehousebills"  resultType="java.util.Map">
        SELECT
            co.f_name AS fName,
            leg.f_shipper AS fShipper,
            it.f_bsdate AS fBsdate,
            leg.f_mblno AS fMblno,
            it.f_business_type AS fBusinessType,
            dict.dict_label AS fBusinessTypes,
            it.f_marks AS fMarks ,
            goo.f_name AS fGoodsName,
            dicttr.dict_label AS fTrademodeid,
            it.f_qty AS fQty,
            it.f_grossweight AS fGrossweight,
            it.f_netweight AS fNetweight,
            CASE
            it.f_billtype
            WHEN 'SJRK' THEN
            '入库'
            WHEN 'SJCK' THEN
            '出库'
            WHEN 'CKDB' THEN
            '调拨'
            END AS fBilltype ,
            CASE
            it.f_billtype
            WHEN 'SJRK' THEN
            it.f_warehouse_information
            WHEN 'SJCK' THEN
            it.f_warehouse_information
            WHEN 'CKDB' THEN
            it.f_orgwarehouse_information
            END AS fWarehouseLocationids
        FROM
            t_warehousebills leg
            left join sys_user u on leg.create_by = u.user_name
            left join sys_dept d on leg.f_bsdeptid = d.dept_id
            LEFT JOIN t_warehousebillsitems it ON leg.f_id = it.f_pid
            LEFT JOIN t_goods goo ON it.f_goodsid = goo.f_id
            LEFT JOIN t_corps co ON leg.f_corpid = co.f_id
            LEFT JOIN sys_dict_data dict ON dict.dict_value = it.f_business_type
            LEFT JOIN t_warehouse ware ON ware.f_id = it.f_warehouselocid
            LEFT JOIN sys_dict_data dicttr ON dicttr.dict_value = leg.f_trademodeid
        <where>
            dict.status = '0'
            AND leg.f_typeid IS NULL
            AND dict.dict_type = 'storage_type'
            AND dicttr.STATUS = '0'
            AND dicttr.dict_type = 'data_trademodes'
            AND leg.f_billtype in ('SJCK','CKDB')
            AND it.f_billstatus = 40
            <if test="fGoodsid != null ">and it.f_goodsid = #{fGoodsid}</if>
            <if test="fTrademodeid != null ">and leg.f_trademodeid = #{fTrademodeid}</if>
            <if test="fNewTrademodeid != null ">and leg.f_new_trademodeid = #{fNewTrademodeid}</if>
            <if test="fCorpid != null ">and leg.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and leg.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fMblno != null ">and it.f_mblno like concat('%',#{fMblno},'%')</if>
            <if test="fEmblno != null ">and it.f_emblno like concat('%',#{fEmblno},'%')</if>
            <if test="fLocation != null  and fLocation ==1 ">
                and it.f_warehouselocid = #{fWarehouseid}
            </if>
            <if test="fLocation != null  and fLocation ==0 ">
                and ware.ancestors LIKE concat('%', #{fWarehouseid}, '%')
            </if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and it.f_bsdate &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and it.f_bsdate &lt;= #{timeInterval[1]}
            </if>
        </where>
        ${params.dataScope}
    </select>

    <select id="selectTWarehousebillsItemList"
            resultType="com.ruoyi.reportManagement.domain.TWareHouseItemsExcel">
        SELECT
        ( @ii := @ii + 1 ) AS fId,
        co.f_name AS fCorpid,
        leg.f_shipper AS fShipper,
        it.f_bsdate AS fBsdate,
        leg.f_mblno AS fMblno,
        dict.dict_label AS fBusinessType,
        it.f_marks AS fMarks,
        go.f_name AS fGoodsid,
        it.f_warehouse_information AS fWarehouseInformation,
        dicttr.dict_label AS fTrademodeid,
        it.f_qty AS fQty,
        it.f_grossweight AS fGrossweight,
        it.f_netweight AS fNetweight
        FROM
        t_warehousebills leg
        LEFT JOIN t_warehousebillsitems it ON leg.f_id = it.f_pid
        LEFT JOIN t_goods go ON it.f_goodsid = go.f_id
        LEFT JOIN t_corps co ON leg.f_corpid = co.f_id
        LEFT JOIN sys_dict_data dict ON dict.dict_value = it.f_business_type
        LEFT JOIN t_warehouse_area area ON area.f_id = it.f_warehouselocid
        LEFT JOIN sys_dict_data dicttr ON dicttr.dict_value = leg.f_trademodeid,(
        SELECT
        @ii := 0
        ) AS ii
        WHERE
        dict.STATUS = '0'
        AND leg.f_typeid IS NULL
        AND dict.dict_type = 'storage_type'
        AND dicttr.STATUS = '0'
        AND dicttr.dict_type = 'data_trademodes'
        AND leg.f_billtype IN (
        'SJRk',
        'SJCK'
        )
        <if test="fBilltype != null">AND leg.f_billtype = #{fBilltype}</if>
        <if test="fGoodsid != null ">and it.f_goodsid = #{fGoodsid}</if>
        <if test="fTrademodeid != null ">and leg.f_trademodeid = #{fTrademodeid}</if>
        <if test="fNewTrademodeid != null ">and leg.f_new_trademodeid = #{fNewTrademodeid}</if>
        <if test="fCorpid != null ">and leg.f_corpid = #{fCorpid}</if>
        <if test="fShipper != null and fShipper != ''">and leg.f_shipper like concat('%', #{fShipper}, '%')</if>
        <if test="fMblno != null ">and leg.f_mblno = #{fMblno}</if>
        <if test="fEmblno != null ">and leg.f_emblno = #{fEmblno}</if>
        <if test="fLocation != null  and fLocation ==1 ">
            and it.f_warehouselocid = #{fWarehouseid}
        </if>
        <if test="fLocation != null  and fLocation ==0 ">
            and ware.ancestors LIKE concat('%', #{fWarehouseid}, '%')
        </if>
        <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
            and it.f_bsdate &gt;= #{timeInterval[0]}
        </if>
        <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
            and it.f_bsdate &lt;= #{timeInterval[1]}
        </if>
    </select>

    <select id="selectContainMblno" parameterType="TWarehousebills" resultType="int">
        SELECT
            count( f_id )
        FROM
            t_warehousebills
        where
            f_mblno = #{fMblno}
            AND f_bsdate = #{fBsdate}
            AND f_billtype = #{fBilltype}
    </select>

    <insert id="insertTWarehousebills" parameterType="TWarehousebills" useGeneratedKeys="true" keyProperty="fId">
        insert into t_warehousebills
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="fBillno != null">f_billno,</if>
            <if test="fCustomsdeclartion != null">f_customsdeclartion,</if>
            <if test="fOriginalbillno != null">f_originalbillno,</if>
            <if test="fDeptid != null">f_deptid,</if>
            <if test="fBsdeptid != null">f_bsdeptid,</if>
            <if test="fContacts != null">f_contacts,</if>
            <if test="fTel != null">f_tel,</if>
            <if test="fCorpid != null">f_corpid,</if>
            <if test="fShipper != null">f_shipper,</if>
            <if test="fTocorpid != null">f_tocorpid,</if>
            <if test="fStltypeid != null">f_stltypeid,</if>
            <if test="fBscorpno != null">f_bscorpno,</if>
            <if test="fWarehouseid != null">f_warehouseid,</if>
            <if test="fStorekeeper != null">f_storekeeper,</if>
            <if test="fChargedate != null">f_chargedate,</if>
            <if test="fBsdate != null">f_bsdate,</if>
            <if test="fPlanqty != null">f_planqty,</if>
            <if test="fPlangrossweight != null">f_plangrossweight,</if>
            <if test="fPlannetweight != null">f_plannetweight,</if>
            <if test="fPlanvolumn != null">f_planvolumn,</if>
            <if test="fQty != null">f_qty,</if>
            <if test="fGrossweight != null">f_grossweight,</if>
            <if test="fNetweight != null">f_netweight,</if>
            <if test="fVolumn != null">f_volumn,</if>
            <if test="fTrademodeid != null">f_trademodeid,</if>
            <if test="fBillingway != null">f_billingway,</if>
            <if test="fSbu != null">f_sbu,</if>
            <if test="fFeetunit != null">f_feetunit,</if>
            <if test="fMblno != null">f_mblno,</if>
            <if test="fEmblno != null">f_emblno,</if>
            <if test="fCompany != null">f_company,</if>
            <if test="fVslvoy != null">f_vslvoy,</if>
            <if test="fEta != null">f_eta,</if>
            <if test="fMarks != null">f_marks,</if>
            <if test="fCustomno != null">f_customno,</if>
            <if test="fIfweigh != null">f_ifweigh,</if>
            <if test="fIfpledge != null">f_ifpledge,</if>
            <if test="fIfdamage != null">f_ifdamage,</if>
            <if test="fBankcorpid != null">f_bankcorpid,</if>
            <if test="fBilltype != null">f_billtype,</if>
            <if test="fBillstatus != null">f_billstatus,</if>
            <if test="delFlag != null">del_flag,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="fItemsStatus != null">f_items_status,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="remark != null">remark,</if>
            <if test="fBillingDeadline != null">f_billing_deadline,</if>
            <if test="fProductName != null">f_product_name,</if>
            <if test="fReviewDate != null">f_review_date,</if>
            <if test="fTruckno != null">f_truckno,</if>
            <if test="fDriverName != null">f_driver_name,</if>
            <if test="fDriverTel != null">f_driver_tel,</if>
            <if test="fDriverIdCar != null">f_driver_id_car,</if>
            <if test="fBusinessType != null">f_business_type,</if>
            <if test="fLabour != null">f_labour,</if>
            <if test="fFleet != null">f_fleet,</if>
            <if test="fInwarehouseid != null">f_inwarehouseid,</if>
            <if test="fBstime != null">f_bstime,</if>
            <if test="fCartype != null">f_cartype,</if>
            <if test="fGoodsid != null">f_goodsid,</if>
            <if test="fNewTrademodeid != null">f_new_trademodeid,</if>
            <if test="fLoadportid != null">f_loadportid,</if>
            <if test="fDestportid != null">f_destportid,</if>
            <if test="fServiceitems != null">f_serviceitems,</if>
            <if test="fInvoceobj != null">f_invoceobj,</if>
            <if test="fSign != null">f_sign,</if>
            <if test="fDetentioncargo != null">f_detentioncargo,</if>
            <if test="fBooksmarks != null">f_booksmarks,</if>
            <if test="fShippername != null">f_shippername,</if>
            <if test="fShipperattn != null">f_shipperattn,</if>
            <if test="fShippertel != null">f_shippertel,</if>
            <if test="fConsigneername != null">f_consigneername,</if>
            <if test="fConsigneeattn != null">f_consigneeattn,</if>
            <if test="fConsigneetel != null">f_consigneetel,</if>
            <if test="fInsurance != null">f_insurance,</if>
            <if test="fInsuranceamt != null">f_insuranceamt,</if>
            <if test="fClosedate != null">f_closedate,</if>
            <if test="fDocmentdate != null">f_docmentdate,</if>
            <if test="fVslid != null">f_vslid,</if>
            <if test="fVoyid != null">f_voyid,</if>
            <if test="fTypeid != null">f_typeid,</if>
            <if test="fPaymode != null">f_paymode,</if>
            <if test="fLaneid != null">f_laneid,</if>
            <if test="fCntval != null">f_cntval,</if>
            <if test="freeContainerDate != null">free_container_date,</if>
            <if test="fBusinessAttribution != null">f_business_attribution,</if>
            <if test="fSupervisionUnit != null">f_supervision_unit,</if>
            <if test="fDeclarationElements != null">f_declaration_elements,</if>
            <if test="fPartNumber != null">f_part_number,</if>
            <if test="fIfinspection != null">f_ifinspection,</if>
            <if test="fValue != null">f_value,</if>
            <if test="fWeighingDate != null">f_weighing_date,</if>
            <if test="fIfsampling != null">f_ifsampling,</if>
            <if test="sendSampleDate != null">send_sample_date,</if>
            <if test="fIfweightRecovery != null">f_ifweight_recovery,</if>
            <if test="weightRecoveryDate != null">weight_recovery_date,</if>
            <if test="warehouseStatus != null">warehouse_status,</if>
            <if test="fTimes != null">f_times,</if>
            <if test="fDateChanged != null">f_date_changed,</if>
            <if test="fChargetype != null">f_chargetype,</if>
            <if test="fWeighWeight != null">f_weigh_weight,</if>
            <if test="fPredictBranch != null">f_predict_branch,</if>
            <if test="fGrade != null">f_grade,</if>
            <if test="fDeliveryDetails != null">f_delivery_details,</if>
            <if test="fSalesmanId != null">f_salesman_id,</if>
            <if test="fItemstatus != null">f_itemstatus,</if>
            <if test="fUpdeteStatus != null">f_updete_status,</if>
            <if test="fSubmitUpdate != null">f_submit_update,</if>
            <if test="fDeleteStatus != null">f_delete_status,</if>
            <if test="fRemarksFees != null">f_remarks_fees,</if>
            <if test="fCargoPlanning != null">f_cargo_planning,</if>
            <if test="fFeeStatus != null">f_fee_status,</if>
            <if test="fArrivalStatus != null">f_arrival_status,</if>
            <if test="fDismountStatus != null">f_dismount_status,</if>
            <if test="fServiceitemsNew != null">f_serviceitems_new,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="fBillno != null">#{fBillno},</if>
            <if test="fCustomsdeclartion != null">#{fCustomsdeclartion},</if>
            <if test="fOriginalbillno != null">#{fOriginalbillno},</if>
            <if test="fDeptid != null">#{fDeptid},</if>
            <if test="fBsdeptid != null">#{fBsdeptid},</if>
            <if test="fContacts != null">#{fContacts},</if>
            <if test="fTel != null">#{fTel},</if>
            <if test="fCorpid != null">#{fCorpid},</if>
            <if test="fShipper != null">#{fShipper},</if>
            <if test="fTocorpid != null">#{fTocorpid},</if>
            <if test="fStltypeid != null">#{fStltypeid},</if>
            <if test="fBscorpno != null">#{fBscorpno},</if>
            <if test="fWarehouseid != null">#{fWarehouseid},</if>
            <if test="fStorekeeper != null">#{fStorekeeper},</if>
            <if test="fChargedate != null">#{fChargedate},</if>
            <if test="fBsdate != null">#{fBsdate},</if>
            <if test="fPlanqty != null">#{fPlanqty},</if>
            <if test="fPlangrossweight != null">#{fPlangrossweight},</if>
            <if test="fPlannetweight != null">#{fPlannetweight},</if>
            <if test="fPlanvolumn != null">#{fPlanvolumn},</if>
            <if test="fQty != null">#{fQty},</if>
            <if test="fGrossweight != null">#{fGrossweight},</if>
            <if test="fNetweight != null">#{fNetweight},</if>
            <if test="fVolumn != null">#{fVolumn},</if>
            <if test="fTrademodeid != null">#{fTrademodeid},</if>
            <if test="fBillingway != null">#{fBillingway},</if>
            <if test="fSbu != null">#{fSbu},</if>
            <if test="fFeetunit != null">#{fFeetunit},</if>
            <if test="fMblno != null">#{fMblno},</if>
            <if test="fEmblno != null">#{fEmblno},</if>
            <if test="fCompany != null">#{fCompany},</if>
            <if test="fVslvoy != null">#{fVslvoy},</if>
            <if test="fEta != null">#{fEta},</if>
            <if test="fMarks != null">#{fMarks},</if>
            <if test="fCustomno != null">#{fCustomno},</if>
            <if test="fIfweigh != null">#{fIfweigh},</if>
            <if test="fIfpledge != null">#{fIfpledge},</if>
            <if test="fIfdamage != null">#{fIfdamage},</if>
            <if test="fBankcorpid != null">#{fBankcorpid},</if>
            <if test="fBilltype != null">#{fBilltype},</if>
            <if test="fBillstatus != null">#{fBillstatus},</if>
            <if test="delFlag != null">#{delFlag},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="fItemsStatus != null">#{fItemsStatus},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remark != null">#{remark},</if>
            <if test="fBillingDeadline != null">#{fBillingDeadline},</if>
            <if test="fProductName != null">#{fProductName},</if>
            <if test="fReviewDate != null">#{fReviewDate},</if>
            <if test="fTruckno != null">#{fTruckno},</if>
            <if test="fDriverName != null">#{fDriverName},</if>
            <if test="fDriverTel != null">#{fDriverTel},</if>
            <if test="fDriverIdCar != null">#{fDriverIdCar},</if>
            <if test="fBusinessType != null">#{fBusinessType},</if>
            <if test="fLabour != null">#{fLabour},</if>
            <if test="fFleet != null">#{fFleet},</if>
            <if test="fInwarehouseid != null">#{fInwarehouseid},</if>
            <if test="fBstime != null">#{fBstime},</if>
            <if test="fCartype != null">#{fCartype},</if>
            <if test="fGoodsid != null">#{fGoodsid},</if>
            <if test="fNewTrademodeid != null">#{fNewTrademodeid},</if>
            <if test="fLoadportid != null">#{fLoadportid},</if>
            <if test="fDestportid != null">#{fDestportid},</if>
            <if test="fServiceitems != null">#{fServiceitems},</if>
            <if test="fInvoceobj != null">#{fInvoceobj},</if>
            <if test="fSign != null">#{fSign},</if>
            <if test="fDetentioncargo != null">#{fDetentioncargo},</if>
            <if test="fBooksmarks != null">#{fBooksmarks},</if>
            <if test="fShippername != null">#{fShippername},</if>
            <if test="fShipperattn != null">#{fShipperattn},</if>
            <if test="fShippertel != null">#{fShippertel},</if>
            <if test="fConsigneername != null">#{fConsigneername},</if>
            <if test="fConsigneeattn != null">#{fConsigneeattn},</if>
            <if test="fConsigneetel != null">#{fConsigneetel},</if>
            <if test="fInsurance != null">#{fInsurance},</if>
            <if test="fInsuranceamt != null">#{fInsuranceamt},</if>
            <if test="fClosedate != null">#{fClosedate},</if>
            <if test="fDocmentdate != null">#{fDocmentdate},</if>
            <if test="fVslid != null">#{fVslid},</if>
            <if test="fVoyid != null">#{fVoyid},</if>
            <if test="fTypeid != null">#{fTypeid},</if>
            <if test="fPaymode != null">#{fPaymode},</if>
            <if test="fLaneid != null">#{fLaneid},</if>
            <if test="fCntval != null">#{fCntval},</if>
            <if test="freeContainerDate != null">#{freeContainerDate},</if>
            <if test="fBusinessAttribution != null">#{fBusinessAttribution},</if>
            <if test="fSupervisionUnit != null">#{fSupervisionUnit},</if>
            <if test="fDeclarationElements != null">#{fDeclarationElements},</if>
            <if test="fPartNumber != null">#{fPartNumber},</if>
            <if test="fIfinspection != null">#{fIfinspection},</if>
            <if test="fValue != null">#{fValue},</if>
            <if test="fWeighingDate != null">#{fWeighingDate},</if>
            <if test="fIfsampling != null">#{fIfsampling},</if>
            <if test="sendSampleDate != null">#{sendSampleDate},</if>
            <if test="fIfweightRecovery != null">#{fIfweightRecovery},</if>
            <if test="weightRecoveryDate != null">#{weightRecoveryDate},</if>
            <if test="warehouseStatus != null">#{warehouseStatus},</if>
            <if test="fTimes != null">#{fTimes},</if>
            <if test="fDateChanged != null">#{fDateChanged},</if>
            <if test="fChargetype != null">#{fChargetype},</if>
            <if test="fWeighWeight != null">#{fWeighWeight},</if>
            <if test="fPredictBranch != null">#{fPredictBranch},</if>
            <if test="fGrade != null">#{fGrade},</if>
            <if test="fDeliveryDetails != null">#{fDeliveryDetails},</if>
            <if test="fSalesmanId != null">#{fSalesmanId},</if>
            <if test="fItemstatus != null">#{fItemstatus},</if>
            <if test="fUpdeteStatus != null">#{fUpdeteStatus},</if>
            <if test="fSubmitUpdate != null">#{fSubmitUpdate},</if>
            <if test="fDeleteStatus != null">#{fDeleteStatus},</if>
            <if test="fRemarksFees != null">#{fRemarksFees},</if>
            <if test="fCargoPlanning != null">#{fCargoPlanning},</if>
            <if test="fFeeStatus != null">#{fFeeStatus},</if>
            <if test="fArrivalStatus != null">#{fArrivalStatus},</if>
            <if test="fDismountStatus != null">#{fDismountStatus},</if>
            <if test="fServiceitemsNew != null">#{fServiceitemsNew},</if>
        </trim>
    </insert>

    <update id="updateTWarehousebills" parameterType="TWarehousebills">
        update t_warehousebills
        <trim prefix="SET" suffixOverrides=",">
            <if test="fBillno != null">f_billno = #{fBillno},</if>
            <if test="fCustomsdeclartion != null">f_customsdeclartion = #{fCustomsdeclartion},</if>
            <if test="fOriginalbillno != null">f_originalbillno = #{fOriginalbillno},</if>
            <if test="fDeptid != null">f_deptid = #{fDeptid},</if>
            <if test="fBsdeptid != null">f_bsdeptid = #{fBsdeptid},</if>
            <if test="fContacts != null">f_contacts = #{fContacts},</if>
            <if test="fTel != null">f_tel = #{fTel},</if>
            <if test="fCorpid != null">f_corpid = #{fCorpid},</if>
            <if test="fShipper != null">f_shipper = #{fShipper},</if>
            <if test="fTocorpid != null">f_tocorpid = #{fTocorpid},</if>
            <if test="fStltypeid != null">f_stltypeid = #{fStltypeid},</if>
            <if test="fBscorpno != null">f_bscorpno = #{fBscorpno},</if>
            <if test="fWarehouseid != null">f_warehouseid = #{fWarehouseid},</if>
            <if test="fStorekeeper != null">f_storekeeper = #{fStorekeeper},</if>
            <if test="fBsdate != null">f_bsdate = #{fBsdate},</if>
            <if test="fChargedate != null">f_chargedate = #{fChargedate},</if>
            <if test="fPlanqty != null">f_planqty = #{fPlanqty},</if>
            <if test="fPlangrossweight != null">f_plangrossweight = #{fPlangrossweight},</if>
            <if test="fPlannetweight != null">f_plannetweight = #{fPlannetweight},</if>
            <if test="fPlanvolumn != null">f_planvolumn = #{fPlanvolumn},</if>
            <if test="fQty != null">f_qty = #{fQty},</if>
            <if test="fGrossweight != null">f_grossweight = #{fGrossweight},</if>
            <if test="fNetweight != null">f_netweight = #{fNetweight},</if>
            <if test="fVolumn != null">f_volumn = #{fVolumn},</if>
            <if test="fTrademodeid != null">f_trademodeid = #{fTrademodeid},</if>
            <if test="fBillingway != null">f_billingway = #{fBillingway},</if>
            <if test="fSbu != null">f_sbu = #{fSbu},</if>
            <if test="fFeetunit != null">f_feetunit = #{fFeetunit},</if>
            <if test="fMblno != null">f_mblno = #{fMblno},</if>
            <if test="fEmblno != null">f_emblno = #{fEmblno},</if>
            f_company = #{fCompany},
            <if test="fVslvoy != null">f_vslvoy = #{fVslvoy},</if>
            <if test="fEta != null">f_eta = #{fEta},</if>
            <if test="fMarks != null">f_marks = #{fMarks},</if>
            <if test="fCustomno != null">f_customno = #{fCustomno},</if>
            <if test="fIfweigh != null">f_ifweigh = #{fIfweigh},</if>
            <if test="fIfpledge != null">f_ifpledge = #{fIfpledge},</if>
            <if test="fIfdamage != null">f_ifdamage = #{fIfdamage},</if>
            <if test="fBankcorpid != null">f_bankcorpid = #{fBankcorpid},</if>
            <if test="fBilltype != null">f_billtype = #{fBilltype},</if>
            <if test="fBillstatus != null">f_billstatus = #{fBillstatus},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="fItemsStatus != null">f_items_status = #{fItemsStatus},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="fBillingDeadline != null">f_billing_deadline = #{fBillingDeadline},</if>
            <if test="fProductName != null">f_product_name = #{fProductName},</if>
            <if test="fReviewDate != null">f_review_date = #{fReviewDate},</if>
            <if test="fTruckno != null">f_truckno = #{fTruckno},</if>
            <if test="fDriverName != null">f_driver_name = #{fDriverName},</if>
            <if test="fDriverTel != null">f_driver_tel = #{fDriverTel},</if>
            <if test="fDriverIdCar != null">f_driver_id_car = #{fDriverIdCar},</if>
            <if test="fBusinessType != null">f_business_type = #{fBusinessType},</if>
            f_labour = #{fLabour},
            f_fleet = #{fFleet},
            <if test="fInwarehouseid != null">f_inwarehouseid = #{fInwarehouseid},</if>
            <if test="fBstime != null">f_bstime = #{fBstime},</if>
            <if test="fCartype != null">f_cartype = #{fCartype},</if>
            <if test="fGoodsid != null">f_goodsid = #{fGoodsid},</if>
            <if test="fNewTrademodeid != null">f_new_trademodeid = #{fNewTrademodeid},</if>
            <if test="fLoadportid != null">f_loadportid = #{fLoadportid},</if>
            <if test="fDestportid != null">f_destportid = #{fDestportid},</if>
            <if test="fServiceitems != null">f_serviceitems = #{fServiceitems},</if>
            <if test="fInvoceobj != null">f_invoceobj = #{fInvoceobj},</if>
            <if test="fSign != null">f_sign = #{fSign},</if>
            <if test="fDetentioncargo != null">f_detentioncargo = #{fDetentioncargo},</if>
            <if test="fBooksmarks != null">f_booksmarks = #{fBooksmarks},</if>
            <if test="fShippername != null">f_shippername = #{fShippername},</if>
            <if test="fShipperattn != null">f_shipperattn = #{fShipperattn},</if>
            <if test="fShippertel != null">f_shippertel = #{fShippertel},</if>
            <if test="fConsigneername != null">f_consigneername = #{fConsigneername},</if>
            <if test="fConsigneeattn != null">f_consigneeattn = #{fConsigneeattn},</if>
            <if test="fConsigneetel != null">f_consigneetel = #{fConsigneetel},</if>
            <if test="fInsurance != null">f_insurance = #{fInsurance},</if>
            <if test="fInsuranceamt != null">f_insuranceamt = #{fInsuranceamt},</if>
            <if test="fClosedate != null">f_closedate = #{fClosedate},</if>
            <if test="fDocmentdate != null">f_docmentdate = #{fDocmentdate},</if>
            <if test="fVslid != null">f_vslid = #{fVslid},</if>
            <if test="fVoyid != null">f_voyid = #{fVoyid},</if>
            <if test="fTypeid != null">f_typeid = #{fTypeid},</if>
            <if test="fPaymode != null">f_paymode = #{fPaymode},</if>
            <if test="fLaneid != null">f_laneid = #{fLaneid},</if>
            <if test="fCntval != null">f_cntval = #{fCntval},</if>
            <if test="freeContainerDate != null">free_container_date = #{freeContainerDate},</if>
            <if test="fBusinessAttribution != null">f_business_attribution = #{fBusinessAttribution},</if>
            <if test="fSupervisionUnit != null">f_supervision_unit = #{fSupervisionUnit},</if>
            <if test="fDeclarationElements != null">f_declaration_elements = #{fDeclarationElements},</if>
            <if test="fPartNumber != null">f_part_number = #{fPartNumber},</if>
            <if test="fIfinspection != null">f_ifinspection = #{fIfinspection},</if>
            <if test="fValue != null">f_value = #{fValue},</if>
            <if test="fWeighingDate != null">f_weighing_date = #{fWeighingDate},</if>
            <if test="fIfsampling != null">f_ifsampling = #{fIfsampling},</if>
            <if test="sendSampleDate != null">send_sample_date = #{sendSampleDate},</if>
            <if test="fIfweightRecovery != null">f_ifweight_recovery = #{fIfweightRecovery},</if>
            <if test="weightRecoveryDate != null">weight_recovery_date = #{weightRecoveryDate},</if>
            <if test="warehouseStatus != null">warehouse_status = #{warehouseStatus},</if>
            <if test="fTimes != null">f_times = #{fTimes},</if>
            <if test="fDateChanged != null">f_date_changed = #{fDateChanged},</if>
            <if test="fChargetype != null">f_chargetype = #{fChargetype},</if>
            <if test="fWeighWeight != null">f_weigh_weight = #{fWeighWeight},</if>
            <if test="fPredictBranch != null">f_predict_branch = #{fPredictBranch},</if>
            <if test="fGrade != null">f_grade = #{fGrade},</if>
            <if test="fDeliveryDetails != null">f_delivery_details = #{fDeliveryDetails},</if>
            <if test="fSalesmanId != null">f_salesman_id = #{fSalesmanId},</if>
            <if test="fItemstatus != null">f_itemstatus = #{fItemstatus},</if>
            <if test="fUpdeteStatus != null">f_updete_status = #{fUpdeteStatus},</if>
            <if test="fSubmitUpdate != null">f_submit_update = #{fSubmitUpdate},</if>
            <if test="fDeleteStatus != null">f_delete_status = #{fDeleteStatus},</if>
            <if test="fRemarksFees != null">f_remarks_fees = #{fRemarksFees},</if>
            <if test="fCargoPlanning != null">f_cargo_planning = #{fCargoPlanning},</if>
            <if test="fFeeStatus != null">f_fee_status = #{fFeeStatus},</if>
            <if test="fArrivalStatus != null">f_arrival_status = #{fArrivalStatus},</if>
            <if test="fDismountStatus != null">f_dismount_status = #{fDismountStatus},</if>
            <if test="fServiceitemsNew != null">f_serviceitems_new = #{fServiceitemsNew},</if>
        </trim>
        where f_id = #{fId}
    </update>

    <update id="updateKaHeOrder" parameterType="TWarehousebills">
        update t_warehousebills
        <trim prefix="SET" suffixOverrides=",">
            <if test="fBillno != null">f_billno = #{fBillno},</if>
            <if test="fCustomsdeclartion != null">f_customsdeclartion = #{fCustomsdeclartion},</if>
            <if test="fOriginalbillno != null">f_originalbillno = #{fOriginalbillno},</if>
            <if test="fDeptid != null">f_deptid = #{fDeptid},</if>
            <if test="fBsdeptid != null">f_bsdeptid = #{fBsdeptid},</if>
            <if test="fContacts != null">f_contacts = #{fContacts},</if>
            <if test="fTel != null">f_tel = #{fTel},</if>
            <if test="fCorpid != null">f_corpid = #{fCorpid},</if>
            <if test="fShipper != null">f_shipper = #{fShipper},</if>
            <if test="fTocorpid != null">f_tocorpid = #{fTocorpid},</if>
            <if test="fStltypeid != null">f_stltypeid = #{fStltypeid},</if>
            <if test="fBscorpno != null and fBscorpno != ''">f_bscorpno = #{fBscorpno},</if>
            <if test="fWarehouseid != null">f_warehouseid = #{fWarehouseid},</if>
            <if test="fStorekeeper != null">f_storekeeper = #{fStorekeeper},</if>
            <if test="fChargedate != null">f_chargedate = #{fChargedate},</if>
            <if test="fBsdate != null">f_bsdate = #{fBsdate},</if>
            <if test="fPlanqty != null">f_planqty = #{fPlanqty},</if>
            <if test="fPlangrossweight != null">f_plangrossweight = #{fPlangrossweight},</if>
            <if test="fPlannetweight != null">f_plannetweight = #{fPlannetweight},</if>
            <if test="fPlanvolumn != null">f_planvolumn = #{fPlanvolumn},</if>
            <if test="fQty != null">f_qty = #{fQty},</if>
            <if test="fGrossweight != null">f_grossweight = #{fGrossweight},</if>
            <if test="fNetweight != null">f_netweight = #{fNetweight},</if>
            <if test="fVolumn != null">f_volumn = #{fVolumn},</if>
            <if test="fTrademodeid != null">f_trademodeid = #{fTrademodeid},</if>
            <if test="fBillingway != null">f_billingway = #{fBillingway},</if>
            <if test="fSbu != null">f_sbu = #{fSbu},</if>
            <if test="fFeetunit != null">f_feetunit = #{fFeetunit},</if>
            <if test="fMblno != null">f_mblno = #{fMblno},</if>
            <if test="fEmblno != null">f_emblno = #{fEmblno},</if>
            <if test="fCompany != null">f_company = #{fCompany},</if>
            <if test="fVslvoy != null">f_vslvoy = #{fVslvoy},</if>
            <if test="fMarks != null and fMarks != ''">f_marks = #{fMarks},</if>
            <if test="fEta != null">f_eta = #{fEta},</if>
            <if test="fCustomno != null">f_customno = #{fCustomno},</if>
            <if test="fIfweigh != null">f_ifweigh = #{fIfweigh},</if>
            <if test="fIfpledge != null">f_ifpledge = #{fIfpledge},</if>
            <if test="fIfdamage != null">f_ifdamage = #{fIfdamage},</if>
            <if test="fBankcorpid != null">f_bankcorpid = #{fBankcorpid},</if>
            <if test="fBilltype != null">f_billtype = #{fBilltype},</if>
            <if test="fBillstatus != null">f_billstatus = #{fBillstatus},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="fItemsStatus != null">f_items_status = #{fItemsStatus},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="fBillingDeadline != null">f_billing_deadline = #{fBillingDeadline},</if>
            <if test="fProductName != null">f_product_name = #{fProductName},</if>
            <if test="fReviewDate != null and fBillstatus == 11" >f_review_date = #{fReviewDate},</if>
            <if test="fReviewDate != null and fBillstatus != 11">f_review_date = null,</if>
            <if test="fTruckno != null">f_truckno = #{fTruckno},</if>
            <if test="fDriverName != null">f_driver_name = #{fDriverName},</if>
            <if test="fDriverTel != null">f_driver_tel = #{fDriverTel},</if>
            <if test="fDriverIdCar != null">f_driver_id_car = #{fDriverIdCar},</if>
            <if test="fBusinessType != null">f_business_type = #{fBusinessType},</if>
            <if test="fReviewDate == null">f_review_date = null,</if>
            <if test="fLabour  != null">f_labour = #{fLabour },</if>
            <if test="fFleet != null">f_fleet = #{fFleet},</if>
            <if test="fInwarehouseid != null">f_inwarehouseid = #{fInwarehouseid},</if>
            <if test="fBstime != null">f_bstime = #{fBstime},</if>
            <if test="fCartype != null">f_cartype = #{fCartype},</if>
            <if test="fGoodsid != null">f_goodsid = #{fGoodsid},</if>
            <if test="fNewTrademodeid != null">f_new_trademodeid = #{fNewTrademodeid},</if>
            <if test="fLoadportid != null">f_loadportid = #{fLoadportid},</if>
            <if test="fDestportid != null">f_destportid = #{fDestportid},</if>
            <if test="fServiceitems != null">f_serviceitems = #{fServiceitems},</if>
            <if test="fInvoceobj != null">f_invoceobj = #{fInvoceobj},</if>
            <if test="fSign != null">f_sign = #{fSign},</if>
            <if test="fDetentioncargo != null">f_detentioncargo = #{fDetentioncargo},</if>
            <if test="fBooksmarks != null">f_booksmarks = #{fBooksmarks},</if>
            <if test="fShippername != null">f_shippername = #{fShippername},</if>
            <if test="fShipperattn != null">f_shipperattn = #{fShipperattn},</if>
            <if test="fShippertel != null">f_shippertel = #{fShippertel},</if>
            <if test="fConsigneername != null">f_consigneername = #{fConsigneername},</if>
            <if test="fConsigneeattn != null">f_consigneeattn = #{fConsigneeattn},</if>
            <if test="fConsigneetel != null">f_consigneetel = #{fConsigneetel},</if>
            <if test="fInsurance != null">f_insurance = #{fInsurance},</if>
            <if test="fInsuranceamt != null">f_insuranceamt = #{fInsuranceamt},</if>
            <if test="fClosedate != null">f_closedate = #{fClosedate},</if>
            <if test="fDocmentdate != null">f_docmentdate = #{fDocmentdate},</if>
            <if test="fVslid != null">f_vslid = #{fVslid},</if>
            <if test="fVoyid != null">f_voyid = #{fVoyid},</if>
            <if test="fPaymode != null">f_paymode = #{fPaymode},</if>
            <if test="fLaneid != null">f_laneid = #{fLaneid},</if>
            <if test="fTypeid != null">f_typeid = #{fTypeid},</if>
            <if test="freeContainerDate != null">free_container_date = #{freeContainerDate},</if>
            <if test="fBusinessAttribution != null">f_business_attribution = #{fBusinessAttribution},</if>
            <if test="fSupervisionUnit != null">f_supervision_unit = #{fSupervisionUnit},</if>
            <if test="fDeclarationElements != null">f_declaration_elements = #{fDeclarationElements},</if>
            <if test="fPartNumber != null">f_part_number = #{fPartNumber},</if>
            <if test="fIfinspection != null">f_ifinspection = #{fIfinspection},</if>
            <if test="fValue != null">f_value = #{fValue},</if>
            <if test="fWeighingDate != null">f_weighing_date = #{fWeighingDate},</if>
            <if test="fIfsampling != null">f_ifsampling = #{fIfsampling},</if>
            <if test="sendSampleDate != null">send_sample_date = #{sendSampleDate},</if>
            <if test="fIfweightRecovery != null">f_ifweight_recovery = #{fIfweightRecovery},</if>
            <if test="weightRecoveryDate != null">weight_recovery_date = #{weightRecoveryDate},</if>
            <if test="warehouseStatus != null">warehouse_status = #{warehouseStatus},</if>
            <if test="fTimes != null">f_times = #{fTimes},</if>
            <if test="fDateChanged != null">f_date_changed = #{fDateChanged},</if>
            <if test="fChargetype != null">f_chargetype = #{fChargetype},</if>
            <if test="fWeighWeight != null">f_weigh_weight = #{fWeighWeight},</if>
            <if test="fPredictBranch != null">f_predict_branch = #{fPredictBranch},</if>
            <if test="fGrade != null">f_grade = #{fGrade},</if>
            <if test="fDeliveryDetails != null">f_delivery_details = #{fDeliveryDetails},</if>
            <if test="fSalesmanId != null">f_salesman_id = #{fSalesmanId},</if>
            <if test="fItemstatus != null">f_itemstatus = #{fItemstatus},</if>
            <if test="fUpdeteStatus != null">f_updete_status = #{fUpdeteStatus},</if>
            <if test="fSubmitUpdate != null">f_submit_update = #{fSubmitUpdate},</if>
            <if test="fDeleteStatus != null">f_delete_status = #{fDeleteStatus},</if>
            <if test="fRemarksFees != null">f_remarks_fees = #{fRemarksFees},</if>
            <if test="fCargoPlanning != null">f_cargo_planning = #{fCargoPlanning},</if>
            <if test="fFeeStatus != null">f_fee_status = #{fFeeStatus},</if>
            <if test="fArrivalStatus != null">f_arrival_status = #{fArrivalStatus},</if>
            <if test="fDismountStatus != null">f_dismount_status = #{fDismountStatus},</if>
            <if test="fServiceitemsNew != null">f_serviceitems_new = #{fServiceitemsNew},</if>
        </trim>
        where f_id = #{fId}
    </update>

    <delete id="deleteTWarehousebillsById" parameterType="Long">
        delete
        from t_warehousebills
        where f_id = #{fId}
    </delete>

    <delete id="deleteTWarehousebillsByIds" parameterType="String">
        delete
        item.*,
        bill.*,
        fess.*,
        enclosure.*
        from
        t_warehousebills bill
        LEFT JOIN t_warehousebillsfees fess ON fess.f_pid = bill.f_id
        LEFT JOIN t_enclosure enclosure ON enclosure.f_pid = bill.f_id
        LEFT JOIN t_warehousebillsitems item ON item.f_pid = bill.f_id
        where
        bill.f_id in
        <foreach item="fId" collection="array" open="(" separator="," close=")">
            #{fId}
        </foreach>
    </delete>

    <delete id="deleteKHTWarehousebillsByIds" parameterType="String">
        delete
        bill.*,
        fess.*,
        enclosure.*
        from
        t_warehousebills bill
        LEFT JOIN t_warehousebills_cntr fess ON fess.f_pid = bill.f_id
        LEFT JOIN t_warehousebills_cntritems enclosure ON enclosure.f_pid = bill.f_id
        where
        bill.f_id in
        <foreach item="fId" collection="array" open="(" separator="," close=")">
            #{fId}
        </foreach>
    </delete>

    <update id="warehouseFollowUpdate">
        update
        t_warehousebills
        <trim prefix="SET" suffixOverrides=",">
            <if test="fettle != null">f_billstatus = #{fettle},</if>
            <if test="auditItem != null and fettle == 6">f_review_date = #{auditItem},</if>
            <if test="auditItem != null and fettle != 6">f_review_date = null,</if>
        </trim>
        where f_id = #{fPid}
    </update>

    <update id="warehouseApprovalUpdate">
        update
        t_warehousebills
        SET ${auditItem.fidStatus} = #{fettle}
        where f_id = #{auditItem.billId}
    </update>

    <select id="selectDetailedList" resultType="java.util.Map">
        SELECT
            t.f_id AS fId,
            item.f_id AS fItemsId,
            C.f_name AS fcorpid,
            t.f_shipper AS fShipper,
            t.f_mblno AS fMblno,
            g.f_name AS fGoodsid,
            dict.dict_label AS fBusinessType,
            t.f_marks AS fMarks,
        CASE
                WHEN t.f_billtype = 'SJRK' THEN
                '入库'
                WHEN t.f_billtype = 'SJCK' THEN
                '出库'
                WHEN t.f_billtype = 'CKDB' THEN
                '调拨'
                WHEN t.f_billtype = 'HQZY' THEN
                '货权转移'
                WHEN t.f_billtype = 'HWTG' THEN
                '货物通关'
            END AS fBilltype,
            item.f_bsdate AS fBsdate,
            item.f_warehouse_information AS fWarehouseInformation,
            dictTra.dict_label AS fTrademodeid,
        CASE
                WHEN t.f_billtype = 'SJRK' THEN
                ( SELECT SUM( it.f_qty ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fQtyRK,
        CASE
                WHEN t.f_billtype = 'SJRK' THEN
                ( SELECT SUM( it.f_grossweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fGrossweightRK,
        CASE
                WHEN t.f_billtype = 'SJRK' THEN
                ( SELECT SUM( it.f_netweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fNetweightRK,
        CASE
                WHEN t.f_billtype = 'SJCK' THEN
                ( SELECT SUM( it.f_qty ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fQtyCK,
        CASE
                WHEN t.f_billtype = 'SJCK' THEN
                ( SELECT SUM( it.f_grossweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fGrossweightCK,
        CASE
                WHEN t.f_billtype = 'SJCK' THEN
                ( SELECT SUM( it.f_netweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fNetweightCK,
        CASE
                WHEN t.f_billtype = 'CKDB' THEN
                ( SELECT SUM( it.f_qty ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fQtyDB,
        CASE
                WHEN t.f_billtype = 'CKDB' THEN
                ( SELECT SUM( it.f_grossweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fGrossweightDB,
        CASE
                WHEN t.f_billtype = 'CKDB' THEN
                ( SELECT SUM( it.f_netweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fNetweightDB,
        CASE
                WHEN t.f_billtype = 'HQZY' THEN
                ( SELECT SUM( it.f_qty ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fQtyHZ,
        CASE
                WHEN t.f_billtype = 'HQZY' THEN
                ( SELECT SUM( it.f_grossweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fGrossweightHZ,
        CASE
                WHEN t.f_billtype = 'HQZY' THEN
                ( SELECT SUM( it.f_netweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fNetweightHZ,
        CASE
                WHEN t.f_billtype = 'HWTG' THEN
                ( SELECT SUM( it.f_qty ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fQtyTG,
        CASE
                WHEN t.f_billtype = 'HWTG' THEN
                ( SELECT SUM( it.f_grossweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fGrossweightTG,
        CASE
                WHEN t.f_billtype = 'HWTG' THEN
                ( SELECT SUM( it.f_netweight ) FROM t_warehousebillsitems it WHERE it.f_pid = item.f_pid ) ELSE 0
            END AS fNetweightTG
        FROM t_warehousebills t
                 LEFT JOIN t_warehousebillsitems item ON item.f_pid = t.f_id
                 LEFT JOIN t_goods g ON item.f_goodsid = g.f_id
                 LEFT JOIN t_corps C ON t.f_corpid = C.f_id
                 LEFT JOIN sys_dict_data dict ON dict.dict_value = item.f_business_type
                 LEFT JOIN sys_dict_data dictTra ON dictTra.dict_value = t.f_trademodeid
        WHERE dict.STATUS = '0'
          AND t.f_typeid IS NULL
          AND dict.dict_type = 'storage_type'
          AND dictTra.STATUS = '0'
          AND dictTra.dict_type = 'data_trademodes'
          AND item.f_billstatus = 40
          AND item.f_mblno = #{fMblno}
          AND (item.f_warehouselocid = #{fWarehouseLocationid} or
               item.f_transfer_warehouselocid = #{fWarehouseLocationid})
          AND t.f_trademodeid = #{fTrademodeids}
          AND item.f_business_type = #{fBusinessType}
          AND item.f_goodsid = #{fGoodsid}
          AND item.f_marks = #{fMarks}
          AND t.f_corpid = #{fCorpIds}
        GROUP BY t.f_id
    </select>

    <select id="webVersionOrderList" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
        SELECT
            tw.f_id,
            tw.f_billno,
            tw.f_customsdeclartion,
            tw.f_originalbillno,
            tw.f_deptid,
            tw.f_bsdeptid,
            tw.f_contacts,
            tw.f_tel,
            tw.f_corpid,
            tw.f_shipper,
            tc.f_name corpName,
            tw.f_tocorpid,
            tw.f_stltypeid,
            tw.f_bscorpno,
            tw.f_warehouseid,
            tw.f_storekeeper,
            tw.f_chargedate,
            tw.f_bsdate,
            tw.f_planqty,
            tw.f_plangrossweight,
            tw.f_plannetweight,
            tw.f_planvolumn,
            tw.f_qty,
            tw.f_grossweight,
            tw.f_netweight,
            tw.f_volumn,
            tw.f_billingway,
            tw.f_trademodeid,
            tw.f_sbu,
            tw.f_feetunit,
            tw.f_mblno,
            tw.f_marks,
            tw.f_vslvoy,
            tw.f_eta,
            tw.f_customno,
            tw.f_ifweigh,
            tw.f_ifpledge,
            tw.f_ifdamage,
            tw.f_bankcorpid,
            tw.f_billtype,
            tw.f_billstatus,
            tw.f_items_status,
            tw.del_flag,
            tw.create_by,
            tw.create_time,
            tw.update_by,
            tw.update_time,
            tw.remark,
            tw.f_billing_deadline,
            tw.f_product_name,
            tw.f_review_date,
            tw.f_truckno,
            tw.f_driver_name,
            tw.f_driver_tel,
            tw.f_driver_id_car,
            tw.f_business_type,
            tw.f_labour,
            tw.f_fleet,
            tw.f_inwarehouseid,
            tw.f_bstime,
            tw.f_cartype,
            tw.f_goodsid,
            tw.f_new_trademodeid,
            tw.f_loadportid,
            address.f_name loadportidName,
            tw.f_destportid,
            ta.f_name destportidName,
            tw.f_serviceitems,
            sd.dict_label serviceitemsName,
            tw.f_invoceobj,
            sdi.dict_label invoceobjName,
            tw.f_sign,
            sdc.dict_label signName,
            tw.f_detentioncargo,
            sdt.dict_label detentioncargoName,
            tw.f_booksmarks,
            tw.f_shippername,
            tw.f_shipperattn,
            tw.f_shippertel,
            tw.f_consigneername,
            tw.f_consigneeattn,
            tw.f_consigneetel,
            tw.f_insurance,
            sdd.dict_label insuranceName,
            tw.f_insuranceamt,
            tw.f_closedate,
            tw.f_docmentdate,
            tw.f_vslid,
            tv.f_name vslidName,
            tw.f_voyid,
            ty.f_no voyidName,
            tw.f_typeid,
            tw.f_paymode,
            sda.dict_label paymodeName,
            tw.f_laneid,
            tr.f_name laneidName,
            tw.f_updete_status,
            tw.f_submit_update,
            tw.f_delete_status,
            tw.f_cargo_planning,
            tw.f_arrival_status,
            tw.f_dismount_status,
            tw.f_serviceitems_new
        FROM t_warehousebills tw
            LEFT JOIN t_address address ON address.f_id = tw.f_loadportid
            LEFT JOIN t_address ta ON ta.f_id = tw.f_loadportid
            LEFT JOIN t_address tr ON tr.f_id = tw.f_laneid
            LEFT JOIN t_corps tc ON tc.f_id = tw.f_corpid
            LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems
            AND sd.dict_type = 'f_serviceitems'
            LEFT JOIN sys_dict_data sdi ON sdi.dict_value = tw.f_invoceobj
            AND sdi.dict_type = 'f_invoceobj'
            LEFT JOIN sys_dict_data sdc ON sdc.dict_value = tw.f_sign
            AND sdc.dict_type = 'f_sign'
            LEFT JOIN sys_dict_data sdt ON sdt.dict_value = tw.f_detentioncargo
            AND sdt.dict_type = 'f_detentioncargo'
            LEFT JOIN sys_dict_data sdd ON sdd.dict_value = tw.f_insurance
            AND sdd.dict_type = 'f_insurance'
            LEFT JOIN sys_dict_data sda ON sda.dict_value = tw.f_paymode
            AND sda.dict_type = 'f_paymode'
            LEFT JOIN t_vessel tv ON tv.f_id = tw.f_vslid
            LEFT JOIN t_voyage ty ON ty.f_id = tw.f_voyid
        <where>
            tw.f_typeid = '1'
            and tw.del_flag = '0'
            <if test="fId != null">and tw.f_id = #{fId}</if>
            <if test="fBillno != null  and fBillno != ''">and tw.f_billno = #{fBillno}</if>
            <if test="fCustomsdeclartion != null  and fCustomsdeclartion != ''">and tw.f_customsdeclartion =#{fCustomsdeclartion}</if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and tw.f_originalbillno = #{fOriginalbillno}</if>
            <if test="fDeptid != null ">and tw.f_deptid = #{fDeptid}</if>
            <if test="fBsdeptid != null ">and tw.f_bsdeptid = #{fBsdeptid}</if>
            <if test="fContacts != null  and fContacts != ''">and tw.f_contacts = #{fContacts}</if>
            <if test="fTel != null  and fTel != ''">and tw.f_tel = #{fTel}</if>
            <if test="fCorpid != null ">and tw.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and tw.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fTocorpid != null ">and tw.f_tocorpid = #{fTocorpid}</if>
            <if test="fStltypeid != null ">and tw.f_stltypeid = #{fStltypeid}</if>
            <if test="fBscorpno != null  and fBscorpno != ''">and tw.f_bscorpno = #{fBscorpno}</if>
            <if test="fWarehouseid != null ">and tw.f_warehouseid = #{fWarehouseid}</if>
            <if test="fStorekeeper != null  and fStorekeeper != ''">and tw.f_storekeeper = #{fStorekeeper}</if>
            <if test="fChargedate != null ">and tw.f_chargedate = #{fChargedate}</if>
            <if test="fBsdate != null ">and tw.f_bsdate = #{fBsdate}</if>
            <if test="fPlanqty != null ">and tw.f_planqty = #{fPlanqty}</if>
            <if test="fPlangrossweight != null ">and tw.f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and tw.f_plannetweight = #{fPlannetweight}</if>
            <if test="fPlanvolumn != null ">and tw.f_planvolumn = #{fPlanvolumn}</if>
            <if test="fQty != null ">and tw.f_qty = #{fQty}</if>
            <if test="fGrossweight != null ">and tw.f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and tw.f_netweight = #{fNetweight}</if>
            <if test="fVolumn != null ">and tw.f_volumn = #{fVolumn}</if>
            <if test="fBillingway != null ">and tw.f_billingway = #{fBillingway}</if>
            <if test="fTrademodeid != null ">and tw.f_trademodeid = #{fTrademodeid}</if>
            <if test="fSbu != null ">and tw.f_sbu = #{fSbu}</if>
            <if test="fFeetunit != null  and fFeetunit != ''">and tw.f_feetunit = #{fFeetunit}</if>
            <if test="fMblno != null  and fMblno != ''">and tw.f_mblno = #{fMblno}</if>
            <if test="fMarks != null  and fMarks != ''">and tw.f_marks = #{fMarks}</if>
            <if test="fVslvoy != null  and fVslvoy != ''">and tw.f_vslvoy = #{fVslvoy}</if>
            <if test="fEta != null ">and tw.f_eta = #{fEta}</if>
            <if test="fCustomno != null  and fCustomno != ''">and tw.f_customno = #{fCustomno}</if>
            <if test="fIfweigh != null  and fIfweigh != ''">and tw.f_ifweigh = #{fIfweigh}</if>
            <if test="fIfpledge != null  and fIfpledge != ''">and tw.f_ifpledge = #{fIfpledge}</if>
            <if test="fIfdamage != null  and fIfdamage != ''">and tw.f_ifdamage = #{fIfdamage}</if>
            <if test="fBankcorpid != null  and fBankcorpid != ''">and tw.f_bankcorpid = #{fBankcorpid}</if>
            <if test="fBilltype != null  and fBilltype != ''">and tw.f_billtype = #{fBilltype}</if>
            <if test="fBillstatus != null ">and tw.f_billstatus = #{fBillstatus}</if>
            <if test="fItemsStatus != null ">and tw.f_items_status = #{fItemsStatus}</if>
            <if test="fBillingDeadline != null ">and tw.f_billing_deadline = #{fBillingDeadline}</if>
            <if test="fProductName != null  and fProductName != ''">and tw.f_product_name like concat('%',
                #{fProductName}, '%')
            </if>
            <if test="fReviewDate != null ">and tw.f_review_date = #{fReviewDate}</if>
            <if test="fTruckno != null  and fTruckno != ''">and tw.f_truckno = #{fTruckno}</if>
            <if test="fDriverName != null  and fDriverName != ''">and tw.f_driver_name like concat('%', #{fDriverName},
                '%')
            </if>
            <if test="fDriverTel != null  and fDriverTel != ''">and tw.f_driver_tel = #{fDriverTel}</if>
            <if test="fDriverIdCar != null  and fDriverIdCar != ''">and tw.f_driver_id_car = #{fDriverIdCar}</if>
            <if test="fBusinessType != null  and fBusinessType != ''">and tw.f_business_type = #{fBusinessType}</if>
            <if test="fLabour != null ">and tw.f_labour = #{fLabour}</if>
            <if test="fFleet != null ">and tw.f_fleet = #{fFleet}</if>
            <if test="fInwarehouseid != null ">and tw.f_inwarehouseid = #{fInwarehouseid}</if>
            <if test="fBstime != null ">and tw.f_bstime = #{fBstime}</if>
            <if test="fCartype != null ">and tw.f_cartype = #{fCartype}</if>
            <if test="fGoodsid != null ">and tw.f_goodsid = #{fGoodsid}</if>
            <if test="fNewTrademodeid != null ">and tw.f_new_trademodeid = #{fNewTrademodeid}</if>
            <if test="fLoadportid != null ">and tw.f_loadportid = #{fLoadportid}</if>
            <if test="fDestportid != null ">and tw.f_destportid = #{fDestportid}</if>
            <if test="fServiceitems != null  and fServiceitems != ''">and tw.f_serviceitems = #{fServiceitems}</if>
            <if test="fInvoceobj != null  and fInvoceobj != ''">and tw.f_invoceobj = #{fInvoceobj}</if>
            <if test="fSign != null ">and tw.f_sign = #{fSign}</if>
            <if test="fDetentioncargo != null ">and tw.f_detentioncargo = #{fDetentioncargo}</if>
            <if test="fBooksmarks != null  and fBooksmarks != ''">and tw.f_booksmarks = #{fBooksmarks}</if>
            <if test="fShippername != null  and fShippername != ''">and tw.f_shippername like concat('%',
                #{fShippername}, '%')
            </if>
            <if test="fShipperattn != null  and fShipperattn != ''">and tw.f_shipperattn = #{fShipperattn}</if>
            <if test="fShippertel != null  and fShippertel != ''">and tw.f_shippertel = #{fShippertel}</if>
            <if test="fConsigneername != null  and fConsigneername != ''">and tw.f_consigneername like concat('%',
                #{fConsigneername}, '%')
            </if>
            <if test="fConsigneeattn != null  and fConsigneeattn != ''">and tw.f_consigneeattn = #{fConsigneeattn}</if>
            <if test="fConsigneetel != null  and fConsigneetel != ''">and tw.f_consigneetel = #{fConsigneetel}</if>
            <if test="fInsurance != null  and fInsurance != ''">and tw.f_insurance = #{fInsurance}</if>
            <if test="fInsuranceamt != null ">and tw.f_insuranceamt = #{fInsuranceamt}</if>
            <if test="fClosedate != null ">and tw.f_closedate = #{fClosedate}</if>
            <if test="fDocmentdate != null ">and tw.f_docmentdate = #{fDocmentdate}</if>
            <if test="fVslid != null ">and tw.f_vslid = #{fVslid}</if>
            <if test="fVoyid != null ">and tw.f_voyid = #{fVoyid}</if>
            <if test="fTypeid != null ">and tw.f_typeid = #{fTypeid}</if>
            <if test="fPaymode != null">and tw.f_paymode = #{fPaymode},</if>
            <if test="fLaneid != null">and tw.f_laneid = #{fLaneid},</if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and tw.create_time &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and tw.create_time &lt;= #{timeInterval[1]}
            </if>
            <if test="fCargoPlanning != null "> and tw.f_cargo_planning = #{fCargoPlanning}</if>
            <if test="fArrivalStatus != null "> and tw.f_arrival_status = #{fArrivalStatus}</if>
            <if test="billList != null "> and tw.f_mblno in
            <foreach item="fMblno" collection="billList" open="(" separator="," close=")">
                #{fMblno}
            </foreach>
            </if>
        </where>
        ORDER BY tw.create_time DESC, tw.f_id DESC
    </select>

    <select id="ruoYiVersionOrderList" parameterType="TWarehousebills" resultType="map">
        SELECT
        DISTINCT
        tw.f_id fId,
        tw.f_billno fBillno,
        tw.f_originalbillno fOriginalbillno,
        tw.f_shipper fShipper,
        tw.f_mblno fMblno,
        sd.dict_label fServiceitems,
        tk.dict_label fDestportMode,
        tw.f_consigneername fConsigneername,
        ta.f_name fName,
        tw.f_bsdate fBsdate,
        tc.f_cntrcount fCntrcount,
        tc.f_no fNo,
        tv.f_name vslName,
        ty.f_no voyNo,
        tw.f_corpid fCorpid,
        tp.f_name corpName,
        tw.create_by createBy,
        tw.create_time createTime,
        tw.f_loadportid fLoadportid,
        tre.f_name loadportName,
        tw.f_destportid fDestportid,
        ts.f_name  destportName,
        tc.f_name goodsName,
        CASE
        WHEN tw.f_billstatus = '1' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单新建'
        WHEN tw.f_billstatus = '2' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单暂存'
        WHEN tw.f_billstatus = '3' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单驳回'
        WHEN tw.f_billstatus = '4' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单提交'
        WHEN tw.f_billstatus = '5' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单审批中'
        WHEN tw.f_billstatus = '6' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单审批通过'
        WHEN tw.f_billstatus = '7' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船暂存'
        WHEN tw.f_billstatus = '8' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船驳回'
        WHEN tw.f_billstatus = '9' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船提交'
        WHEN tw.f_billstatus = '10' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船审批中'
        WHEN tw.f_billstatus = '11' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船审批通过'
        WHEN tw.f_billstatus = '12' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '运单变更'
        WHEN  tw.f_updete_status = '3'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更驳回'
        WHEN  tw.f_updete_status = '4'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更提交'
        WHEN  tw.f_updete_status = '5'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更审批中'
        WHEN  tw.f_updete_status = '6'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更通过'
        WHEN  tw.f_submit_update = '3' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更驳回'
        WHEN  tw.f_submit_update = '4' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更审批'
        WHEN  tw.f_submit_update = '5' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更审批中'
        WHEN  tw.f_submit_update = '6' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更通过'
        WHEN  tw.f_delete_status = '3' and tw.f_dismount_status = '2' THEN
        '申请删单驳回'
        WHEN  tw.f_delete_status = '4' and tw.f_dismount_status = '2' THEN
        '申请删单提交'
        WHEN  tw.f_delete_status = '5' and tw.f_dismount_status = '2' THEN
        '申请删单审批中'
        WHEN  tw.f_delete_status = '6' and tw.f_dismount_status = '2' THEN
        '申请删单通过'
        WHEN  tw.f_dismount_status = '3' THEN
        '拆单审批驳回'
        WHEN  tw.f_dismount_status = '4' THEN
        '拆单审批提交'
        WHEN  tw.f_dismount_status = '5' THEN
        '拆单审批中'
        WHEN  tw.f_dismount_status = '6' THEN
        '拆单审批通过'
        END AS fBillstatus,
        CASE
        WHEN tf.f_billstatus = '1' THEN
        '新建'
        WHEN tf.f_billstatus = '2' THEN
        '暂存'
        WHEN tf.f_billstatus = '3' THEN
        '驳回'
        WHEN tf.f_billstatus = '4' THEN
        '提交'
        WHEN tf.f_billstatus = '5' THEN
        '审批中'
        WHEN tf.f_billstatus = '6' THEN
        '审批通过'
        END AS moneyStatus,
        tw.f_updete_status fUpdeteStatus,
        tw.f_submit_update fSubmitUpdate,
        tw.f_delete_status fDeleteStatus,
        tw.f_cargo_planning fCargoPlanning,
        tw.f_arrival_status fArrivalStatus,
        tw.f_vslid fVslid,
        tw.f_voyid fVoyid,
        tw.remark remark,
        IFNULL(tcntr.loadCntr,0) AS loadCntr,
        tw.f_serviceitems_new AS fServiceitemsNew
        FROM
        t_warehousebills tw
        LEFT JOIN t_address ta ON ta.f_id = tw.f_laneid
        LEFT JOIN t_address tre ON tre.f_id = tw.f_loadportid
        LEFT JOIN t_address ts ON ts.f_id = tw.f_destportid
        LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems AND sd.dict_type = 'f_serviceitems'
        LEFT JOIN sys_dict_data tk ON tk.dict_value = tw.f_serviceitems_new AND tk.dict_type = 'f_serviceitems'
        <if test="fCntrno != null and fCntrno != ''">
        LEFT JOIN t_warehousebills_cntritems items ON tw.f_id = items.f_pid
        </if>
        LEFT JOIN t_vessel tv ON tw.f_vslid = tv.f_id
        LEFT JOIN t_voyage ty ON tw.f_voyid = ty.f_id
        LEFT JOIN t_corps tp ON tw.f_corpid = tp.f_id
        LEFT JOIN (
        SELECT
        th.f_pid,
        th.f_cntrcount,
        tr.f_no,
        th.f_cntrid,
        tg.f_name
        FROM
        t_warehousebills_cntr th
        LEFT JOIN t_cntr tr ON th.f_cntrid = tr.f_id
        LEFT JOIN t_goods tg ON th.f_goodsid = tg.f_id
        ) tc ON tc.f_pid = tw.f_id
        LEFT JOIN (SELECT f_pid,f_billstatus FROM t_warehousebillsfees GROUP BY f_pid)tf ON tf.f_pid = tw.f_id
        LEFT JOIN (
        SELECT
        th.f_pid,
        count(th.f_pid) loadCntr
        FROM
        t_warehousebills_cntritems th
        GROUP BY th.f_pid
        ) tcntr ON tcntr.f_pid = tw.f_id
        <where>
            tw.f_typeid = '1'
            and tw.del_flag = '0'
            <if test="fId != null">and tw.f_id = #{fId}</if>
            <if test="fCntrno != null and fCntrno != ''">and items.f_cntrno like concat('%', #{fCntrno}, '%')</if>
            <if test="fBillno != null  and fBillno != ''">and tw.f_billno like concat('%',#{fBillno}, '%')</if>
            <if test="fCustomsdeclartion != null  and fCustomsdeclartion != ''">and tw.f_customsdeclartion =
                #{fCustomsdeclartion}
            </if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and tw.f_originalbillno = #{fOriginalbillno}
            </if>
            <if test="fDeptid != null ">and tw.f_deptid = #{fDeptid}</if>
            <if test="fBsdeptid != null ">and tw.f_bsdeptid = #{fBsdeptid}</if>
            <if test="fContacts != null  and fContacts != ''">and tw.f_contacts = #{fContacts}</if>
            <if test="fTel != null  and fTel != ''">and tw.f_tel = #{fTel}</if>
            <if test="fCorpid != null ">and tw.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and tw.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fTocorpid != null ">and tw.f_tocorpid = #{fTocorpid}</if>
            <if test="fStltypeid != null ">and tw.f_stltypeid = #{fStltypeid}</if>
            <if test="fBscorpno != null  and fBscorpno != ''">and tw.f_bscorpno = #{fBscorpno}</if>
            <if test="fWarehouseid != null ">and tw.f_warehouseid = #{fWarehouseid}</if>
            <if test="fStorekeeper != null  and fStorekeeper != ''">and tw.f_storekeeper = #{fStorekeeper}</if>
            <if test="fChargedate != null ">and tw.f_chargedate = #{fChargedate}</if>
            <if test="fBsdate != null ">and tw.f_bsdate = #{fBsdate}</if>
            <if test="fPlanqty != null ">and tw.f_planqty = #{fPlanqty}</if>
            <if test="fPlangrossweight != null ">and tw.f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and tw.f_plannetweight = #{fPlannetweight}</if>
            <if test="fPlanvolumn != null ">and tw.f_planvolumn = #{fPlanvolumn}</if>
            <if test="fQty != null ">and tw.f_qty = #{fQty}</if>
            <if test="fGrossweight != null ">and tw.f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and tw.f_netweight = #{fNetweight}</if>
            <if test="fVolumn != null ">and tw.f_volumn = #{fVolumn}</if>
            <if test="fBillingway != null ">and tw.f_billingway = #{fBillingway}</if>
            <if test="fTrademodeid != null ">and tw.f_trademodeid = #{fTrademodeid}</if>
            <if test="fSbu != null ">and tw.f_sbu = #{fSbu}</if>
            <if test="fFeetunit != null  and fFeetunit != ''">and tw.f_feetunit = #{fFeetunit}</if>
            <if test="fMblno != null  and fMblno != ''">and tw.f_mblno like concat('%',
                #{fMblno}, '%')</if>
            <if test="fMarks != null  and fMarks != ''">and tw.f_marks = #{fMarks}</if>
            <if test="fVslvoy != null  and fVslvoy != ''">and tw.f_vslvoy = #{fVslvoy}</if>
            <if test="fEta != null ">and tw.f_eta = #{fEta}</if>
            <if test="fCustomno != null  and fCustomno != ''">and tw.f_customno = #{fCustomno}</if>
            <if test="fIfweigh != null  and fIfweigh != ''">and tw.f_ifweigh = #{fIfweigh}</if>
            <if test="fIfpledge != null  and fIfpledge != ''">and tw.f_ifpledge = #{fIfpledge}</if>
            <if test="fIfdamage != null  and fIfdamage != ''">and tw.f_ifdamage = #{fIfdamage}</if>
            <if test="fBankcorpid != null  and fBankcorpid != ''">and tw.f_bankcorpid = #{fBankcorpid}</if>
            <if test="fBilltype != null  and fBilltype != ''">and tw.f_billtype = #{fBilltype}</if>
            <if test="fBillstatus != null and (fBillstatus == 4 or fBillstatus == 6 or fBillstatus == 9 or fBillstatus == 11)">
                and tw.f_billstatus = #{fBillstatus}
                and tw.f_updete_status = 2
                and tw.f_submit_update = 2
                and tw.f_delete_status = 2
            </if>
            <if test="fBillstatus != null and fBillstatus == 10">
                and tw.f_billstatus in ('3','8')
                and tw.f_updete_status in ('2','3')
                and tw.f_submit_update in ('2','3')
                and tw.f_delete_status in ('2','3')
            </if>
            <if test="fBillstatus != null and fBillstatus == 12">
                AND (tw.f_updete_status != 2
                OR tw.f_submit_update != 2
                OR tw.f_delete_status != 2 )
            </if>
            <if test="fItemsStatus != null ">and tw.f_items_status = #{fItemsStatus}</if>
            <if test="fBillingDeadline != null ">and tw.f_billing_deadline = #{fBillingDeadline}</if>
            <if test="fProductName != null  and fProductName != ''">and tw.f_product_name like concat('%',
                #{fProductName}, '%')
            </if>
            <if test="fReviewDate != null ">and tw.f_review_date = #{fReviewDate}</if>
            <if test="fTruckno != null  and fTruckno != ''">and tw.f_truckno = #{fTruckno}</if>
            <if test="fDriverName != null  and fDriverName != ''">and tw.f_driver_name like concat('%', #{fDriverName},
                '%')
            </if>
            <if test="fDriverTel != null  and fDriverTel != ''">and tw.f_driver_tel = #{fDriverTel}</if>
            <if test="fDriverIdCar != null  and fDriverIdCar != ''">and tw.f_driver_id_car = #{fDriverIdCar}</if>
            <if test="fBusinessType != null  and fBusinessType != ''">and tw.f_business_type = #{fBusinessType}</if>
            <if test="fLabour != null ">and tw.f_labour = #{fLabour}</if>
            <if test="fFleet != null ">and tw.f_fleet = #{fFleet}</if>
            <if test="fInwarehouseid != null ">and tw.f_inwarehouseid = #{fInwarehouseid}</if>
            <if test="fBstime != null ">and tw.f_bstime = #{fBstime}</if>
            <if test="fCartype != null ">and tw.f_cartype = #{fCartype}</if>
            <if test="fGoodsid != null ">and tw.f_goodsid = #{fGoodsid}</if>
            <if test="fNewTrademodeid != null ">and tw.f_new_trademodeid = #{fNewTrademodeid}</if>
            <if test="fLoadportid != null ">and tw.f_loadportid = #{fLoadportid}</if>
            <if test="fDestportid != null ">and tw.f_destportid = #{fDestportid}</if>
            <if test="fServiceitems != null  and fServiceitems != ''">and tw.f_serviceitems = #{fServiceitems}</if>
            <if test="fInvoceobj != null  and fInvoceobj != ''">and tw.f_invoceobj = #{fInvoceobj}</if>
            <if test="fSign != null ">and tw.f_sign = #{fSign}</if>
            <if test="fDetentioncargo != null ">and tw.f_detentioncargo = #{fDetentioncargo}</if>
            <if test="fBooksmarks != null  and fBooksmarks != ''">and tw.f_booksmarks = #{fBooksmarks}</if>
            <if test="fShippername != null  and fShippername != ''">and tw.f_shippername like concat('%',
                #{fShippername}, '%')
            </if>
            <if test="fShipperattn != null  and fShipperattn != ''">and tw.f_shipperattn = #{fShipperattn}</if>
            <if test="fShippertel != null  and fShippertel != ''">and tw.f_shippertel = #{fShippertel}</if>
            <if test="fConsigneername != null  and fConsigneername != ''">and tw.f_consigneername like concat('%',
                #{fConsigneername}, '%')
            </if>
            <if test="fConsigneeattn != null  and fConsigneeattn != ''">and tw.f_consigneeattn = #{fConsigneeattn}</if>
            <if test="fConsigneetel != null  and fConsigneetel != ''">and tw.f_consigneetel = #{fConsigneetel}</if>
            <if test="fInsurance != null  and fInsurance != ''">and tw.f_insurance = #{fInsurance}</if>
            <if test="fInsuranceamt != null ">and tw.f_insuranceamt = #{fInsuranceamt}</if>
            <if test="fClosedate != null ">and tw.f_closedate = #{fClosedate}</if>
            <if test="fDocmentdate != null ">and tw.f_docmentdate = #{fDocmentdate}</if>
            <if test="fVslid != null ">and tw.f_vslid = #{fVslid}</if>
            <if test="fVoyid != null ">and tw.f_voyid = #{fVoyid}</if>
            <if test="fTypeid != null ">and tw.f_typeid = #{fTypeid}</if>
            <if test="fPaymode != null">and tw.f_paymode = #{fPaymode},</if>
            <if test="fLaneid != null">and tw.f_laneid = #{fLaneid},</if>
            <if test='startTime != null'>
                and tw.create_time &gt;= #{startTime}
            </if>
            <if test='endTime != null'>
                and tw.create_time &lt;= #{endTime}
            </if>
            <if test="fCntrid != null ">and tc.f_cntrid = #{fCntrid}</if>
            <if test="fCntrcount != null ">and tc.f_cntrcount = #{fCntrcount}</if>
            <if test="vslidName != null  and vslidName != ''">and tv.f_name like concat('%',
                #{vslidName}, '%')
            </if>
            <if test="voyidName != null  and voyidName != ''">and ty.f_no like concat('%',
                #{voyidName}, '%')
            </if>
            <if test="boxNumber != null  and boxNumber != ''">and tc.f_no like concat('%',
                #{voyidName}, '%')
            </if>
            <if test="createBy != null  and createBy != ''">and tw.create_by = #{createBy}</if>
            <if test='cLoadDate != null and cLoadDate[0] != null and cLoadDate[0]!= ""'>
                and tw.f_bsdate &gt;= #{cLoadDate[0]}
            </if>
            <if test='cLoadDate != null and cLoadDate[1] != null and cLoadDate[1]!= ""'>
                and tw.f_bsdate &lt;= #{cLoadDate[1]}
            </if>
            <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                and ty.f_ATD &gt;= #{timeInterval[0]}
            </if>
            <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                and ty.f_ATD &lt;= #{timeInterval[1]}
            </if>
            <if test="fCargoPlanning != null "> and tw.f_cargo_planning = #{fCargoPlanning}</if>
            <if test="fArrivalStatus != null and fArrivalStatus != 3"> and tw.f_arrival_status = #{fArrivalStatus}</if>
            <if test="fArrivalStatus != null and fArrivalStatus == 3"> and tw.f_arrival_status != '2'</if>
        </where>
        ORDER BY tw.create_time DESC, tw.f_id DESC
    </select>
    <select id="ruoYiVersionOrderList1" parameterType="TWarehousebills" resultType="map">
        SELECT
        tw.f_id fId,
        tw.f_billno fBillno,
        tw.f_originalbillno fOriginalbillno,
        tw.f_shipper fShipper,
        tw.f_mblno fMblno,
        sd.dict_label fServiceitems,
        tw.f_consigneername fConsigneername,
        ta.f_name fName,
        tw.f_bsdate fBsdate,
        tc.f_cntrcount fCntrcount,
        tc.f_no fNo,
        tv.f_name vslName,
        ty.f_no voyNo,
        tw.f_corpid fCorpid,
        tp.f_name corpName,
        tw.create_by createBy,
        tw.create_time createTime,
        tw.f_loadportid fLoadportid,
        tre.f_name loadportName,
        tw.f_destportid fDestportid,
        ts.f_name  destportName,
        tc.f_name goodsName,
        tw.f_billstatus fBillstatus,
        CASE

        WHEN tw.f_billstatus = '1' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单新建'
        WHEN tw.f_billstatus = '2' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单暂存'
        WHEN tw.f_billstatus = '3' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单驳回'
        WHEN tw.f_billstatus = '4' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单提交'
        WHEN tw.f_billstatus = '5' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单审批中'
        WHEN tw.f_billstatus = '6' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '下单审批通过'
        WHEN tw.f_billstatus = '7' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船暂存'
        WHEN tw.f_billstatus = '8' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船驳回'
        WHEN tw.f_billstatus = '9' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船提交'
        WHEN tw.f_billstatus = '10' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船审批中'
        WHEN tw.f_billstatus = '11' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '配船审批通过'
        WHEN tw.f_billstatus = '12' and tw.f_updete_status = '2'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '运单变更'
        WHEN  tw.f_updete_status = '3'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更驳回'
        WHEN  tw.f_updete_status = '4'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更提交'
        WHEN  tw.f_updete_status = '5'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更审批中'
        WHEN  tw.f_updete_status = '6'and tw.f_submit_update = '2' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '申请变更通过'
        WHEN  tw.f_submit_update = '3' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更驳回'
        WHEN  tw.f_submit_update = '4' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更审批'
        WHEN  tw.f_submit_update = '5' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更审批中'
        WHEN  tw.f_submit_update = '6' and tw.f_delete_status = '2' and tw.f_dismount_status = '2' THEN
        '提交变更通过'
        WHEN  tw.f_delete_status = '3' and tw.f_dismount_status = '2' THEN
        '申请删单驳回'
        WHEN  tw.f_delete_status = '4' and tw.f_dismount_status = '2' THEN
        '申请删单提交'
        WHEN  tw.f_delete_status = '5' and tw.f_dismount_status = '2' THEN
        '申请删单审批中'
        WHEN  tw.f_delete_status = '6' and tw.f_dismount_status = '2' THEN
        '申请删单通过'
        WHEN  tw.f_dismount_status = '3' THEN
        '拆单审批驳回'
        WHEN  tw.f_dismount_status = '4' THEN
        '拆单审批提交'
        WHEN  tw.f_dismount_status = '5' THEN
        '拆单审批中'
        WHEN  tw.f_dismount_status = '6' THEN
        '拆单审批通过'
        END AS fBillstatusName,
        CASE
        WHEN tf.f_billstatus = '1' THEN
        '新建'
        WHEN tf.f_billstatus = '2' THEN
        '暂存'
        WHEN tf.f_billstatus = '3' THEN
        '驳回'
        WHEN tf.f_billstatus = '4' THEN
        '提交'
        WHEN tf.f_billstatus = '5' THEN
        '审批中'
        WHEN tf.f_billstatus = '6' THEN
        '审批通过'
        END AS moneyStatus,
        tw.f_updete_status fUpdeteStatus,
        tw.f_submit_update fSubmitUpdate,
        tw.f_delete_status fDeleteStatus,
        ROUND(IFNULL(tf.fAmount,0),2) fAmount,
        tw.f_cargo_planning fCargoPlanning,
        tw.f_arrival_status,
        tw.remark remark,
        tw.f_serviceitems_new AS fServiceitemsNew
        FROM
        t_warehousebills tw
        LEFT JOIN t_address ta ON ta.f_id = tw.f_laneid
        LEFT JOIN t_address tre ON tre.f_id = tw.f_loadportid
        LEFT JOIN t_address ts ON ts.f_id = tw.f_destportid
        LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems
        AND sd.dict_type = 'f_serviceitems'
        LEFT JOIN t_vessel tv ON tw.f_vslid = tv.f_id
        LEFT JOIN t_voyage ty ON tw.f_voyid = ty.f_id
        LEFT JOIN t_corps tp ON tw.f_corpid = tp.f_id
        LEFT JOIN (
        SELECT
        th.f_pid,
        th.f_cntrcount,
        tr.f_no,
        th.f_cntrid,
        tg.f_name
        FROM
        t_warehousebills_cntr th
        LEFT JOIN t_cntr tr ON th.f_cntrid = tr.f_id
        LEFT JOIN t_goods tg ON th.f_goodsid = tg.f_id
        ) tc ON tc.f_pid = tw.f_id
        LEFT JOIN (SELECT f_pid,f_billstatus,IFNULL(SUM(f_amount),0) fAmount FROM t_warehousebillsfees GROUP BY f_pid)tf ON tf.f_pid = tw.f_id
        <where>
            tw.f_typeid = '1'
            and tw.del_flag = '0'
            <if test="fId != null">and tw.f_id = #{fId}</if>
            <if test="fBillno != null  and fBillno != ''">and tw.f_billno = #{fBillno}</if>
            <if test="fCustomsdeclartion != null  and fCustomsdeclartion != ''">and tw.f_customsdeclartion =
                #{fCustomsdeclartion}
            </if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and tw.f_originalbillno = #{fOriginalbillno}
            </if>
            <if test="fDeptid != null ">and tw.f_deptid = #{fDeptid}</if>
            <if test="fBsdeptid != null ">and tw.f_bsdeptid = #{fBsdeptid}</if>
            <if test="fContacts != null  and fContacts != ''">and tw.f_contacts = #{fContacts}</if>
            <if test="fTel != null  and fTel != ''">and tw.f_tel = #{fTel}</if>
            <if test="fCorpid != null ">and tw.f_corpid = #{fCorpid}</if>
            <if test="fShipper != null and fShipper != ''">and tw.f_shipper like concat('%', #{fShipper}, '%')</if>
            <if test="fTocorpid != null ">and tw.f_tocorpid = #{fTocorpid}</if>
            <if test="fStltypeid != null ">and tw.f_stltypeid = #{fStltypeid}</if>
            <if test="fBscorpno != null  and fBscorpno != ''">and tw.f_bscorpno = #{fBscorpno}</if>
            <if test="fWarehouseid != null ">and tw.f_warehouseid = #{fWarehouseid}</if>
            <if test="fStorekeeper != null  and fStorekeeper != ''">and tw.f_storekeeper = #{fStorekeeper}</if>
            <if test="fChargedate != null ">and tw.f_chargedate = #{fChargedate}</if>
            <if test="fBsdate != null ">and tw.f_bsdate = #{fBsdate}</if>
            <if test="fPlanqty != null ">and tw.f_planqty = #{fPlanqty}</if>
            <if test="fPlangrossweight != null ">and tw.f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and tw.f_plannetweight = #{fPlannetweight}</if>
            <if test="fPlanvolumn != null ">and tw.f_planvolumn = #{fPlanvolumn}</if>
            <if test="fQty != null ">and tw.f_qty = #{fQty}</if>
            <if test="fGrossweight != null ">and tw.f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and tw.f_netweight = #{fNetweight}</if>
            <if test="fVolumn != null ">and tw.f_volumn = #{fVolumn}</if>
            <if test="fBillingway != null ">and tw.f_billingway = #{fBillingway}</if>
            <if test="fTrademodeid != null ">and tw.f_trademodeid = #{fTrademodeid}</if>
            <if test="fSbu != null ">and tw.f_sbu = #{fSbu}</if>
            <if test="fFeetunit != null  and fFeetunit != ''">and tw.f_feetunit = #{fFeetunit}</if>
            <if test="fMblno != null  and fMblno != ''">and tw.f_mblno = #{fMblno}</if>
            <if test="fMarks != null  and fMarks != ''">and tw.f_marks = #{fMarks}</if>
            <if test="fVslvoy != null  and fVslvoy != ''">and tw.f_vslvoy = #{fVslvoy}</if>
            <if test="fEta != null ">and tw.f_eta = #{fEta}</if>
            <if test="fCustomno != null  and fCustomno != ''">and tw.f_customno = #{fCustomno}</if>
            <if test="fIfweigh != null  and fIfweigh != ''">and tw.f_ifweigh = #{fIfweigh}</if>
            <if test="fIfpledge != null  and fIfpledge != ''">and tw.f_ifpledge = #{fIfpledge}</if>
            <if test="fIfdamage != null  and fIfdamage != ''">and tw.f_ifdamage = #{fIfdamage}</if>
            <if test="fBankcorpid != null  and fBankcorpid != ''">and tw.f_bankcorpid = #{fBankcorpid}</if>
            <if test="fBilltype != null  and fBilltype != ''">and tw.f_billtype = #{fBilltype}</if>
            <if test="fBillstatus != null and (fBillstatus == 4 or fBillstatus == 6 or fBillstatus == 9 or fBillstatus == 11)">
                and tw.f_billstatus = #{fBillstatus}
                and tw.f_updete_status = 2
                and tw.f_submit_update = 2
                and tw.f_delete_status = 2
            </if>
            <if test="fBillstatus != null and fBillstatus == 10">
                and tw.f_billstatus in ('3','8')
                and tw.f_updete_status in ('2','3')
                and tw.f_submit_update in ('2','3')
                and tw.f_delete_status in ('2','3')
            </if>
            <if test="fBillstatus != null and fBillstatus == 12">
                AND (tw.f_updete_status != 2
                OR tw.f_submit_update != 2
                OR tw.f_delete_status != 2 )
            </if>
            <if test="fItemsStatus != null ">and tw.f_items_status = #{fItemsStatus}</if>
            <if test="fBillingDeadline != null ">and tw.f_billing_deadline = #{fBillingDeadline}</if>
            <if test="fProductName != null  and fProductName != ''">and tw.f_product_name like concat('%',
                #{fProductName}, '%')
            </if>
            <if test="fReviewDate != null ">and tw.f_review_date = #{fReviewDate}</if>
            <if test="fTruckno != null  and fTruckno != ''">and tw.f_truckno = #{fTruckno}</if>
            <if test="fDriverName != null  and fDriverName != ''">and tw.f_driver_name like concat('%', #{fDriverName},
                '%')
            </if>
            <if test="fDriverTel != null  and fDriverTel != ''">and tw.f_driver_tel = #{fDriverTel}</if>
            <if test="fDriverIdCar != null  and fDriverIdCar != ''">and tw.f_driver_id_car = #{fDriverIdCar}</if>
            <if test="fBusinessType != null  and fBusinessType != ''">and tw.f_business_type = #{fBusinessType}</if>
            <if test="fLabour != null ">and tw.f_labour = #{fLabour}</if>
            <if test="fFleet != null ">and tw.f_fleet = #{fFleet}</if>
            <if test="fInwarehouseid != null ">and tw.f_inwarehouseid = #{fInwarehouseid}</if>
            <if test="fBstime != null ">and tw.f_bstime = #{fBstime}</if>
            <if test="fCartype != null ">and tw.f_cartype = #{fCartype}</if>
            <if test="fGoodsid != null ">and tw.f_goodsid = #{fGoodsid}</if>
            <if test="fNewTrademodeid != null ">and tw.f_new_trademodeid = #{fNewTrademodeid}</if>
            <if test="fLoadportid != null ">and tw.f_loadportid = #{fLoadportid}</if>
            <if test="fDestportid != null ">and tw.f_destportid = #{fDestportid}</if>
            <if test="fServiceitems != null  and fServiceitems != ''">and tw.f_serviceitems = #{fServiceitems}</if>
            <if test="fInvoceobj != null  and fInvoceobj != ''">and tw.f_invoceobj = #{fInvoceobj}</if>
            <if test="fSign != null ">and tw.f_sign = #{fSign}</if>
            <if test="fDetentioncargo != null ">and tw.f_detentioncargo = #{fDetentioncargo}</if>
            <if test="fBooksmarks != null  and fBooksmarks != ''">and tw.f_booksmarks = #{fBooksmarks}</if>
            <if test="fShippername != null  and fShippername != ''">and tw.f_shippername like concat('%',
                #{fShippername}, '%')
            </if>
            <if test="fShipperattn != null  and fShipperattn != ''">and tw.f_shipperattn = #{fShipperattn}</if>
            <if test="fShippertel != null  and fShippertel != ''">and tw.f_shippertel = #{fShippertel}</if>
            <if test="fConsigneername != null  and fConsigneername != ''">and tw.f_consigneername like concat('%',
                #{fConsigneername}, '%')
            </if>
            <if test="fConsigneeattn != null  and fConsigneeattn != ''">and tw.f_consigneeattn = #{fConsigneeattn}</if>
            <if test="fConsigneetel != null  and fConsigneetel != ''">and tw.f_consigneetel = #{fConsigneetel}</if>
            <if test="fInsurance != null  and fInsurance != ''">and tw.f_insurance = #{fInsurance}</if>
            <if test="fInsuranceamt != null ">and tw.f_insuranceamt = #{fInsuranceamt}</if>
            <if test="fClosedate != null ">and tw.f_closedate = #{fClosedate}</if>
            <if test="fDocmentdate != null ">and tw.f_docmentdate = #{fDocmentdate}</if>
            <if test="fVslid != null ">and tw.f_vslid = #{fVslid}</if>
            <if test="fVoyid != null ">and tw.f_voyid = #{fVoyid}</if>
            <if test="fTypeid != null ">and tw.f_typeid = #{fTypeid}</if>
            <if test="fPaymode != null">and tw.f_paymode = #{fPaymode},</if>
            <if test="fLaneid != null">and tw.f_laneid = #{fLaneid},</if>
            <if test='startTime != null'>
                and tw.create_time &gt;= #{startTime}
            </if>
            <if test='endTime != null'>
                and tw.create_time &lt;= #{endTime}
            </if>
            <if test="fCntrid != null ">and tc.f_cntrid = #{fCntrid}</if>
            <if test="fCntrcount != null ">and tc.f_cntrcount = #{fCntrcount}</if>
            <if test="vslidName != null  and vslidName != ''">and tv.f_name like concat('%',
                #{vslidName}, '%')
            </if>
            <if test="voyidName != null  and voyidName != ''">and ty.f_no like concat('%',
                #{voyidName}, '%')
            </if>
            <if test="boxNumber != null  and boxNumber != ''">and tc.f_no like concat('%',
                #{voyidName}, '%')
            </if>
            <if test="createBy != null  and createBy != ''">and tw.create_by = #{createBy}</if>
            <if test='cLoadDate != null and cLoadDate[0] != null and cLoadDate[0]!= ""'>
                and tw.f_bsdate &gt;= #{cLoadDate[0]}
            </if>
            <if test='cLoadDate != null and cLoadDate[1] != null and cLoadDate[1]!= ""'>
                and tw.f_bsdate &lt;= #{cLoadDate[1]}
            </if>
            <if test="fCargoPlanning != null "> and tw.f_cargo_planning = #{fCargoPlanning}</if>
            <if test="fArrivalStatus != null "> and tw.f_arrival_status = #{fArrivalStatus}</if>
        </where>
        ORDER BY tw.create_time DESC, tw.f_id DESC
    </select>

    <select id="webVersionOrderById" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
        SELECT tw.f_id,
               tw.f_billno,
               tw.f_customsdeclartion,
               tw.f_originalbillno,
               tw.f_deptid,
               tw.f_bsdeptid,
               tw.f_contacts,
               tw.f_tel,
               tw.f_shipper,
               tw.f_corpid,
               tc.f_name      corpName,
               tw.f_tocorpid,
               tw.f_stltypeid,
               tw.f_bscorpno,
               tw.f_warehouseid,
               tw.f_storekeeper,
               tw.f_chargedate,
               tw.f_bsdate,
               tw.f_planqty,
               tw.f_plangrossweight,
               tw.f_plannetweight,
               tw.f_planvolumn,
               tw.f_qty,
               tw.f_grossweight,
               tw.f_netweight,
               tw.f_volumn,
               tw.f_billingway,
               tw.f_trademodeid,
               tw.f_sbu,
               tw.f_feetunit,
               tw.f_mblno,
               tw.f_marks,
               tw.f_vslvoy,
               tw.f_eta,
               tw.f_customno,
               tw.f_ifweigh,
               tw.f_ifpledge,
               tw.f_ifdamage,
               tw.f_bankcorpid,
               tw.f_billtype,
               tw.f_billstatus,
               tw.f_items_status,
               tw.del_flag,
               tw.create_by,
               tw.create_time,
               tw.update_by,
               tw.update_time,
               tw.remark,
               tw.f_billing_deadline,
               tw.f_product_name,
               tw.f_review_date,
               tw.f_truckno,
               tw.f_driver_name,
               tw.f_driver_tel,
               tw.f_driver_id_car,
               tw.f_business_type,
               tw.f_labour,
               tw.f_fleet,
               tw.f_inwarehouseid,
               tw.f_bstime,
               tw.f_cartype,
               tw.f_goodsid,
               tw.f_new_trademodeid,
               tw.f_loadportid,
               address.f_name loadportidName,
               tw.f_destportid,
               ta.f_name      destportidName,
               tw.f_serviceitems,
               sd.dict_label  serviceitemsName,
               tw.f_invoceobj,
               sdi.dict_label invoceobjName,
               tw.f_sign,
               sdc.dict_label signName,
               tw.f_detentioncargo,
               sdt.dict_label detentioncargoName,
               tw.f_booksmarks,
               tw.f_shippername,
               tw.f_shipperattn,
               tw.f_shippertel,
               tw.f_consigneername,
               tw.f_consigneeattn,
               tw.f_consigneetel,
               tw.f_insurance,
               sdd.dict_label insuranceName,
               tw.f_insuranceamt,
               tw.f_closedate,
               tw.f_docmentdate,
               tw.f_vslid,
               tv.f_name      vslidName,
               tw.f_voyid,
               ty.f_no        voyidName,
               tw.f_typeid,
               tw.f_paymode,
               sda.dict_label paymodeName,
               tw.f_laneid,
               tr.f_name      laneidName,
               tw.f_updete_status,
               tw.f_submit_update,
               tw.f_delete_status,
               tw.f_cargo_planning,
               tw.f_arrival_status,
               tw.f_dismount_status,
               tw.f_serviceitems_new
        FROM t_warehousebills tw
                 LEFT JOIN t_address address ON address.f_id = tw.f_loadportid
                 LEFT JOIN t_address ta ON ta.f_id = tw.f_loadportid
                 LEFT JOIN t_address tr ON tr.f_id = tw.f_laneid
                 LEFT JOIN t_corps tc ON tc.f_id = tw.f_corpid
                 LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems
            AND sd.dict_type = 'f_serviceitems'
                 LEFT JOIN sys_dict_data sdi ON sdi.dict_value = tw.f_invoceobj
            AND sdi.dict_type = 'f_invoceobj'
                 LEFT JOIN sys_dict_data sdc ON sdc.dict_value = tw.f_sign
            AND sdc.dict_type = 'f_sign'
                 LEFT JOIN sys_dict_data sdt ON sdt.dict_value = tw.f_detentioncargo
            AND sdt.dict_type = 'f_detentioncargo'
                 LEFT JOIN sys_dict_data sdd ON sdd.dict_value = tw.f_insurance
            AND sdd.dict_type = 'f_insurance'
                 LEFT JOIN sys_dict_data sda ON sda.dict_value = tw.f_paymode
            AND sda.dict_type = 'f_paymode'
                 LEFT JOIN t_vessel tv ON tv.f_id = tw.f_vslid
                 LEFT JOIN t_voyage ty ON ty.f_id = tw.f_voyid
        where 1= 1
        <if test="fMblno != null and fMblno != ''">and tw.f_mblno = #{fMblno} </if>
        <if test="fId != null ">and tw.f_id = #{fId} </if>
    </select>

    <select id="selectTWarehousebillsfMblno" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
        SELECT
            f_id,
            f_mblno
        FROM
            t_warehousebills
        WHERE
            f_typeid = '1'
          and f_mblno = #{fMblno}
    </select>

    <select id="selectAppStockList" parameterType="TWarehousebills" resultType="Map">
        SELECT DISTINCT
            w.f_id fId,
            w.f_corpid fCorpid,
            c.f_name corpName,
            w.f_shipper fShipper,
            w.f_bsdate fBsdate,
            g.f_name goodsName,
            w.f_mblno fMblno,
            w.f_qty fQty,
            w.f_cntval fCntval,
            w.f_planqty fPlanqty,
            t.f_name fWarehouseName,
            w.f_planvolumn fPlanvolumn,
            w.f_plannetweight fPlannetweight,
            w.f_plangrossweight fPlangrossweight,
            IFNULL(ROUND(w.f_grossweight/1000,2),0) fGrossweight,
            w.f_grossweight fGrossweights,
            w.f_storekeeper fStorekeeper,
            w.create_by createBy,
            w.f_warehouseid fWarehouseid,
            w.f_driver_tel fDriverTel,
            w.f_trademodeid fTrademodeid,
            w.f_product_name fProductName,
            CASE
            WHEN w.f_billtype = 'SJRK'
            AND w.f_items_status = '1' THEN
            '计划'
            WHEN w.f_billtype = 'SJRK'
            AND w.f_items_status = '2' THEN
            '待入库'
            WHEN w.f_billtype = 'SJRK'
            AND w.f_items_status = '3' THEN
            '入库中'
            WHEN w.f_billtype = 'SJRK'
            AND w.f_items_status = '4' THEN
            '已入库'
            WHEN w.f_billtype = 'SJCK'
            AND w.f_items_status = '1' THEN
            '计划'
            WHEN w.f_billtype = 'SJCK'
            AND w.f_items_status = '2' THEN
            '待出库'
            WHEN w.f_billtype = 'SJCK'
            AND w.f_items_status = '3' THEN
            '出库中'
            WHEN w.f_billtype = 'SJCK'
            AND w.f_items_status = '4' THEN
            '已出库'
            WHEN w.f_billtype = 'CKDB'
            AND w.f_items_status = '1' THEN
            '计划'
            WHEN w.f_billtype = 'CKDB'
            AND w.f_items_status = '2' THEN
            '待调拨'
            WHEN w.f_billtype = 'CKDB'
            AND w.f_items_status = '3' THEN
            '调拨中'
            WHEN w.f_billtype = 'CKDB'
            AND w.f_items_status = '4' THEN
            '已调拨'
            WHEN w.f_billtype = 'HWTG'
            AND w.f_items_status = '1' THEN
            '计划'
            WHEN w.f_billtype = 'HWTG'
            AND w.f_items_status = '2' THEN
            '待调拨'
            WHEN w.f_billtype = 'HWTG'
            AND w.f_items_status = '3' THEN
            '调拨中'
            WHEN w.f_billtype = 'HWTG'
            AND w.f_items_status = '4' THEN
            '已调拨'
            END AS fBillstatus
        FROM
            t_warehousebills w
            LEFT JOIN t_corps c ON c.f_id = w.f_corpid
            LEFT JOIN t_goods g ON g.f_id = w.f_goodsid
            LEFT JOIN t_warehouse t ON t.f_id = w.f_warehouseid
            left join sys_user u on w.create_by = u.user_name
            left join sys_user u1 on w.f_storekeeper = u1.user_name
            left join sys_dept d on w.f_bsdeptid = d.dept_id
        where
        w.f_billtype = #{fBilltype}
        AND w.f_billstatus != 6
        <if test="fItemsStatus == null and timeInterval == null and fMblno == null">
            and IF( w.f_planqty IS NOT NULL, w.f_planqty != w.f_qty, w.f_id != '')
        </if>
        <if test="fShipper != null and fShipper != ''">and w.f_shipper like concat('%', #{fShipper}, '%')</if>
        <if test="fMblno != null ">and w.f_mblno like concat('%', #{fMblno}, '%')</if>
        <if test="fItemsStatus != null ">and w.f_items_status = #{fItemsStatus}</if>
        <if test="fBillstatus != null ">and w.f_billstatus = #{fBillstatus}</if>
        <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
            and w.f_bsdate &gt;= #{timeInterval[0]}
        </if>
        <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
            and w.f_bsdate &lt;= #{timeInterval[1]}
        </if>
        <if test="external != null and external != ''">
            and w.f_corpid = (select f_pid from t_customer_contact where f_tel = #{external})
        </if>
        <if test="external == null or external == ''">${params.dataScope}</if>
            order by w.f_id desc
    </select>

    <select id="selectWarehouseItemListById" resultType="java.util.Map">
        SELECT
            t.f_id fId,
            t.f_pid fPid,
            w.f_shipper fShipper,
            c.f_name corpName,
            t.f_bsdate fBsdate,
            g.f_name goodsName,
            t.f_mblno fMblno,
            t.f_warehouse_information fWarehouseInformation,
            t.f_forkliftman fForkliftman,
            t.f_truckno fTruckno,
            t.f_cntrno fCntrno,
            cntr.f_name cntrtypes,
            t.f_cntrtype fCntrtype,
            t.f_qty fQty,
            IFNULL(ROUND(w.f_grossweight/1000,2),0) fGrossweight,
            t.f_grossweight fGrossweights,
            t.f_cntqty fCntqty,
            fleet.f_name fleetName,
            t.f_driver_name fDriverName,
            t.f_driver_tel fDriverTel,
        CASE
		    WHEN t.f_billstatus = '10' THEN
		        '计划'
			WHEN t.f_billstatus = '20' THEN
			    IF(w.f_billtype = 'SJRK', '待入库', IF(w.f_billtype = 'SJCK','待出库', IF(w.f_billtype = 'CKDB', '待调拨',IF(w.f_billtype = 'HWTG', '待通关', IF(w.f_billtype = 'HQZY', '待转移', '无')))))
			WHEN t.f_billstatus = '30' THEN
			    IF(w.f_billtype = 'SJRK', '入库中', IF(w.f_billtype = 'SJCK','出库中', IF(w.f_billtype = 'CKDB', '调拨中',IF(w.f_billtype = 'HWTG', '通关中', IF(w.f_billtype = 'HQZY', '转移中', '无')))))
		    WHEN t.f_billstatus = '40' THEN
			    IF(w.f_billtype = 'SJRK', '已入库', IF(w.f_billtype = 'SJCK','已出库', IF(w.f_billtype = 'CKDB', '已调拨',IF(w.f_billtype = 'HWTG', '已通关', IF(w.f_billtype = 'HQZY', '已转移', '无')))))
	        END fBillstatus
        FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems t ON t.f_pid = w.f_id
            LEFT JOIN t_corps fleet ON fleet.f_id = t.f_fleet
            LEFT JOIN t_corps c ON c.f_id = w.f_corpid
            LEFT JOIN t_goods g ON g.f_id = t.f_goodsid
            LEFT JOIN t_cntr cntr ON cntr.f_id = t.f_cntrtype
        where
            t.f_pid = #{fId}
    </select>

    <select id="selectSingleAnalysis" parameterType="com.ruoyi.reportManagement.domain.SingleAnalysisExcel" resultType="com.ruoyi.reportManagement.domain.SingleAnalysisExcel">
        SELECT
        DISTINCT
            c.f_name corpName,
            #{fMblno} fMblno,
            w.f_product_name goodsName,
            d.dict_label fBusinessType,
            w.f_cntval fCntval,
            IF(item.f_billtype = 'SJRK' || item.f_billtype = 'HQZY' AND w.f_tocorpid = #{fCorpid} || item.f_billtype = 'CKDB', date_format( item.f_bsdate, '%Y-%m-%d' ), NULL) inBsdate,
            IF(item.f_billtype = 'SJRK' || item.f_billtype = 'HQZY' AND w.f_tocorpid = #{fCorpid} || item.f_billtype = 'CKDB' AND ware.f_id = item.f_transfer_warehouselocid, item.f_qty, 0) inQty,
            IF(item.f_billtype = 'SJRK' || item.f_billtype = 'HQZY' AND w.f_corpid = #{fCorpid} || item.f_billtype = 'CKDB' AND ware.f_id = item.f_transfer_warehouselocid, item.f_grossweight, 0.00) inGrossweight,
            IF(item.f_billtype = 'SJCK' || item.f_billtype = 'HQZY' AND w.f_corpid = #{fCorpid}, date_format( item.f_bsdate, '%Y-%m-%d' ), NULL ) outBsdate,
            IF( item.f_billtype = 'SJCK' || item.f_billtype = 'HQZY' AND w.f_corpid = #{fCorpid}, item.f_qty, 0 ) outQty,
            IF( item.f_billtype = 'SJCK' || item.f_billtype = 'HQZY' AND w.f_corpid = #{fCorpid}, item.f_grossweight, 0.00 ) outGrossweight,
            CASE
                WHEN item.f_billtype = 'SJRK' THEN
                '入库'
                WHEN item.f_billtype = 'SJCK' THEN
                '出库'
                WHEN item.f_billtype = 'CKDB' and ware.f_charg = 1 THEN
                '调拨'
                WHEN item.f_billtype = 'HQZY' THEN
                '货权转移'
                WHEN item.f_billtype = 'HWTG' THEN
                '货物通关'
            END AS fBilltype,
            0 fQtyblc,
            0 fGrossweightblc,
            item.f_truckno fTruckno,
            tf.f_billing_days fBillingDays,
            tf.f_amt fAmt,
            item.remark
        FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
            LEFT JOIN t_warehousebillsfees tf ON item.f_id = tf.src_id
            LEFT JOIN t_corps c ON c.f_id = w.f_corpid
            LEFT JOIN t_warehouse ware ON IF(item.f_billtype = 'CKDB', ware.f_id = item.f_transfer_warehouselocid, ware.f_id = item.f_warehouselocid)
            LEFT JOIN sys_dict_data d ON d.dict_value = w.f_business_type
        WHERE
            w.f_corpid = #{fCorpid}
            AND item.f_mblno = #{fMblno}
            AND IF(item.f_billtype = 'CKDB' and ware.f_charg = 0, w.f_id = '', w.f_id != '')
            AND IF( item.f_billtype = 'SJRK', d.dict_type = 'st_in_type', IF(item.f_billtype = 'SJCK', d.dict_type = 'st_out_type', d.dict_type = 'st_trans_type'))
            <if test='bsdateList != null and bsdateList[0] != null and bsdateList[0]!= ""'>
                AND item.f_bsdate &gt;= #{bsdateList[0]}
            </if>
            <if test='bsdateList != null and bsdateList[1] != null and bsdateList[1]!= ""'>
                AND item.f_bsdate &lt;= #{bsdateList[1]}
            </if>
        order by item.f_bsdate asc
    </select>

    <select id="selectSingleAnalysisFees" parameterType="com.ruoyi.reportManagement.domain.SingleAnalysisFeesExcel" resultType="com.ruoyi.reportManagement.domain.SingleAnalysisFeesExcel">
        SELECT
        DISTINCT
            f.f_id,
            date_format( f.create_time, '%Y-%m-%d' ) createTime,
            d.dict_label fBusinessType,
            fee.f_name fFeeid,
            f.f_qty fQty,
            f.f_unitprice fUnitprice,
            f.f_amount fAmount,
            f.remark
        FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
            LEFT JOIN t_warehousebillsfees f ON f.f_pid = w.f_id
            LEFT JOIN t_fees fee ON fee.f_id = f.f_feeid
            LEFT JOIN t_warehouse ware ON IF(item.f_billtype = 'CKDB', ware.f_id = item.f_transfer_warehouselocid, ware.f_id = item.f_warehouselocid)
            LEFT JOIN sys_dict_data d ON d.dict_value = f.f_business_type
        WHERE
            item.f_mblno = #{fMblno}
            AND IF(item.f_billtype = 'CKDB' and ware.f_charg = 0, w.f_id = '', w.f_id != '')
            AND IF( item.f_billtype = 'SJRK', d.dict_type = 'st_in_type', IF(item.f_billtype = 'SJCK', d.dict_type = 'st_out_type', d.dict_type = 'st_trans_type'))
            <if test='bsdateList != null and bsdateList[0] != null and bsdateList[0]!= ""'>
                AND item.f_bsdate &gt;= #{bsdateList[0]}
            </if>
            <if test='bsdateList != null and bsdateList[1] != null and bsdateList[1]!= ""'>
                AND item.f_bsdate &lt;= #{bsdateList[1]}
            </if>
        order by f.create_time asc
    </select>
    <!--凯和导出清单根据船名航次-->
    <select id="deriveInventory" parameterType="TWarehousebills" resultType="com.ruoyi.shipping.excel.DeriveInventoryExcel">
        SELECT
            @rank:=@rank + 1 AS rankNo,
            a.*
        FROM
            (
                SELECT
                    tw.f_mblno AS fMblno, /*提单号*/
                    twc.f_cntrno AS fCntrno, /*箱号*/
                    twc.f_sealno AS fSealno, /*铅封号*/
                    substring(tr.f_no,1,2) AS measure, /*尺寸*/
                    substring(tr.f_no,3,2) AS genre, /*类型*/
                    twc.f_cntrweight AS fCntrweight, /*重量*/
                    CASE
                        WHEN tcr.f_soc = '0' THEN tc.f_name
                        WHEN tcr.f_soc = '1' THEN '凯和志诚'
                    END AS boxCompany,/*箱公司最新*/
                    pro.dict_label AS boxCompanyOld, /*箱公司旧*/
                    td.f_name AS portOfDeparture, /*始发港*/
                    ts.f_name AS destinationPort, /*目的港*/
                    tg.f_name AS goodName, /*货名*/
                    sd.dict_label AS transitClause, /*运输条款*/
                    tc.f_name AS bookingCompany, /*订舱公司*/
                    tw.f_consigneername AS fConsigneername, /*收货公司名称*/
                    tw.f_consigneeattn AS fConsigneeattn, /*收货公司地址*/
                    tw.f_consigneetel AS fConsigneetel /*收货公司电话*/
                FROM
                    t_warehousebills_cntritems twc
                        LEFT JOIN t_warehousebills tw ON twc.f_pid = tw.f_id
                        LEFT JOIN t_warehousebills_cntr tcr ON tcr.f_pid = tw.f_id
                        LEFT JOIN t_corps tc ON tc.f_id = tw.f_corpid
                        LEFT JOIN t_cntr tr ON tr.f_id = twc.f_cntrid
                        LEFT JOIN t_cntrno tro ON tro.f_no = twc.f_cntrno
                        LEFT JOIN sys_dict_data pro ON pro.dict_value = tro.f_owner AND pro.dict_type = 'f_owner'
                        LEFT JOIN t_address td ON td.f_id = tw.f_loadportid
                        LEFT JOIN t_address ts ON ts.f_id = tw.f_destportid
                        LEFT JOIN t_goods tg ON tg.f_id = tcr.f_goodsid
                        LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems AND sd.dict_type = 'f_serviceitems'
                <where>
                    tw.f_typeid = '1'
                    and tw.del_flag = '0'
                    <if test="fBillno != null  and fBillno != ''">and tw.f_billno = #{fBillno}</if>
                    <if test="fCntrid != null ">and tcr.f_cntrid = #{fCntrid}</if>
                    <if test="fCntrcount != null ">and tc.f_cntrcount = #{fCntrcount}</if>
                    <if test="fMblno != null  and fMblno != ''">and tw.f_mblno = #{fMblno}</if>
                    <if test="fVslid != null ">and tw.f_vslid = #{fVslid}</if>
                    <if test="fVoyid != null ">and tw.f_voyid = #{fVoyid}</if>
                    <if test="fServiceitems != null  and fServiceitems != ''">and tw.f_serviceitems = #{fServiceitems}</if>
                    <if test="fConsigneername != null  and fConsigneername != ''">and tw.f_consigneername like concat('%',
                        #{fConsigneername}, '%')
                    </if>
                    <if test='cLoadDate != null and cLoadDate[0] != null and cLoadDate[0]!= ""'>
                        and tw.f_bsdate &gt;= #{cLoadDate[0]}
                    </if>
                    <if test='cLoadDate != null and cLoadDate[1] != null and cLoadDate[1]!= ""'>
                        and tw.f_bsdate &lt;= #{cLoadDate[1]}
                    </if>
                    <if test="fCargoPlanning != null "> and tw.f_cargo_planning = #{fCargoPlanning}</if>
                    <if test="fArrivalStatus != null "> and tw.f_arrival_status = #{fArrivalStatus}</if>
                </where>
                ORDER BY tw.f_mblno,twc.f_cntrno
            )a,
            (SELECT @rank:= 0) b
    </select>

    <!--凯和导出清单根据船名航次-->
    <select id="voyageDetails" parameterType="TWarehousebills" resultType="map">
        SELECT
            @rank:=@rank + 1 AS rankNo,
            a.*
        FROM
            (
                SELECT DISTINCT
                    tw.f_id fId,
                    tw.f_mblno fMblno,
                    ty.f_no voyNo,
                    tc.f_no fCntrno,
                    tc.f_cntrcount fCntrcount,
                    tre.f_name loadportName,
                    ts.f_name destportName,
                    sd.dict_label fLoadportMode,
                    tk.dict_label fDestportMode,
                    tc.f_name goodsName,
                    date_format(ty.f_ETD, '%Y-%m-%d') fEtd,
                    date_format(ty.f_ETA, '%Y-%m-%d') fEta,
                    tw.f_shippername fShippername,
                    tw.f_consigneername fConsigneername,
                    tw.f_consigneeattn fConsigneeattn,
                    tw.f_consigneetel fConsigneetel
                FROM
                    t_warehousebills tw
                        LEFT JOIN t_address tre ON tre.f_id = tw.f_loadportid
                        LEFT JOIN t_address ts ON ts.f_id = tw.f_destportid
                        LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems AND sd.dict_type = 'f_serviceitems'
                        LEFT JOIN sys_dict_data tk ON tk.dict_value = tw.f_serviceitems_new AND tk.dict_type = 'f_serviceitems'
                        <if test="fCntrno != null and fCntrno != ''">
                            LEFT JOIN t_warehousebills_cntritems items ON tw.f_id = items.f_pid
                        </if>
                        LEFT JOIN t_voyage ty ON tw.f_voyid = ty.f_id
                        LEFT JOIN (
                            SELECT
                                th.f_pid,
                                th.f_cntrcount,
                                tr.f_no,
                                th.f_cntrid,
                                tg.f_name
                            FROM
                                t_warehousebills_cntr th
                                    LEFT JOIN t_cntr tr ON th.f_cntrid = tr.f_id
                                    LEFT JOIN t_goods tg ON th.f_goodsid = tg.f_id
                        ) tc ON tc.f_pid = tw.f_id
                <where>
                    tw.f_typeid = '1'
                    and tw.del_flag = '0'
                    <if test="fCntrno != null and fCntrno != ''">and items.f_cntrno like concat('%', #{fCntrno}, '%')</if>
                    <if test="fCorpid != null ">and tw.f_corpid = #{fCorpid}</if>
                    <if test="fMblno != null  and fMblno != ''">and tw.f_mblno like concat('%', #{fMblno}, '%')</if>
                    <if test="fLoadportid != null ">and tw.f_loadportid = #{fLoadportid}</if>
                    <if test="fDestportid != null ">and tw.f_destportid = #{fDestportid}</if>
                    <if test="fVslid != null ">and tw.f_vslid = #{fVslid}</if>
                    <if test="fVoyid != null ">and tw.f_voyid = #{fVoyid}</if>
                    <if test="createBy != null  and createBy != ''">and tw.create_by = #{createBy}</if>
                    <if test='cLoadDate != null and cLoadDate[0] != null and cLoadDate[0]!= ""'>
                        and tw.f_bsdate &gt;= #{cLoadDate[0]}
                    </if>
                    <if test='cLoadDate != null and cLoadDate[1] != null and cLoadDate[1]!= ""'>
                        and tw.f_bsdate &lt;= #{cLoadDate[1]}
                    </if>
                    <if test='timeInterval != null and timeInterval[0] != null and timeInterval[0]!= ""'>
                        and ty.f_ATD &gt;= #{timeInterval[0]}
                    </if>
                    <if test='timeInterval != null and timeInterval[1] != null and timeInterval[1]!= ""'>
                        and ty.f_ATD &lt;= #{timeInterval[1]}
                    </if>
                </where>
                ORDER BY tw.create_time DESC, tw.f_id DESC
        ) a,
        (SELECT @rank:= 0) b
    </select>

    <select id="selectTWarehousebillsByIds" parameterType="String" resultMap="TWarehousebillsResult">
        select f_id,f_vslid, f_voyid,f_arrival_status,f_billno,f_cargo_planning from t_warehousebills
        where f_id in
        <foreach item="fId" collection="array" open="(" separator="," close=")">
            #{fId}
        </foreach>
    </select>
    <update id="updateTWarehousebillsByIds">
        update
        t_warehousebills
        <trim prefix="SET" suffixOverrides=",">
            <if test="fVessel != null">f_vslid = #{fVessel},</if>
            <if test="fVoyage != null">f_voyid = #{fVoyage},</if>
            <if test="fCargoPlanning != null">f_cargo_planning = #{fCargoPlanning},</if>
            <if test="fLoadportid != null">f_loadportid = #{fLoadportid},</if>
            <if test="fDestportid != null">f_destportid = #{fDestportid},</if>
            <if test="fLaneid != null">f_laneid = #{fLaneid},</if>
        </trim>
        where f_id in
        <foreach item="fId" collection="fIds" open="(" separator="," close=")">
            #{fId}
        </foreach>
    </update>

    <!--凯和单航次配船-->
    <select id="singleVoyageByShip" parameterType="TWarehousebills" resultType="com.ruoyi.shipping.excel.SingleVoyageByShipExcel">
        SELECT
        tv.f_name vslName,
        ty.f_no voyNo,
        ty.f_ATD fAtd,
        ty.f_ATA fAta,
        ta.f_name fName,
        tre.f_name loadportName,
        ts.f_name  destportName,
        tw.f_vslid fVslid,
        tw.f_voyid fVoyid,
        tw.f_arrival_status fArrivalStatus
        FROM
        t_warehousebills tw
        LEFT JOIN sys_dict_data sd ON sd.dict_value = tw.f_serviceitems
        AND sd.dict_type = 'f_serviceitems'
        LEFT JOIN t_vessel tv ON tw.f_vslid = tv.f_id
        LEFT JOIN t_voyage ty ON tw.f_voyid = ty.f_id
        LEFT JOIN t_address ta ON ta.f_id = ty.f_laneid
        LEFT JOIN t_address tre ON tre.f_id = ty.f_portofloadid
        LEFT JOIN t_address ts ON ts.f_id = ty.f_distinationid
        LEFT JOIN t_corps tp ON tw.f_corpid = tp.f_id
        LEFT JOIN (
        SELECT
        th.f_pid,
        th.f_cntrcount,
        tr.f_no,
        th.f_cntrid,
        tg.f_name
        FROM
        t_warehousebills_cntr th
        LEFT JOIN t_cntr tr ON th.f_cntrid = tr.f_id
        LEFT JOIN t_goods tg ON th.f_goodsid = tg.f_id
        ) tc ON tc.f_pid = tw.f_id
        LEFT JOIN (SELECT f_pid,f_billstatus FROM t_warehousebillsfees GROUP BY f_pid,f_billstatus)tf ON tf.f_pid = tw.f_id
        where
        tw.f_typeid = '1'
        and tw.del_flag = '0'
        and tw.f_cargo_planning = '0'
        and tw.f_arrival_status != '2'
        <if test="fVslid != null ">and tw.f_vslid = #{fVslid}</if>
        <if test="fVoyid != null ">and tw.f_voyid = #{fVoyid}</if>
        GROUP BY tw.f_vslid,tw.f_voyid
    </select>

    <select id="selectByItemId" resultMap="TWarehousebillsResult">
        SELECT
            w.f_id,
            w.f_billno,
            w.is_calculate_storage_fees
        FROM
            t_warehousebills w
                LEFT JOIN t_warehousebillsitems i ON i.f_pid = w.f_id
        where i.f_id = #{id}
    </select>

    <select id="selectByMblnoOrCntrnoCount" resultType="int">
        SELECT COUNT(DISTINCT w.f_id) FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
        <where>
            w.f_mblno = #{dto.fMblno}
            and w.f_bsdate = #{dto.fBsdate}
            <if test="dto.fCntrno != null ">and item.f_cntrno = #{dto.fCntrno}</if>
        </where>
    </select>

    <select id="selectWhgenlegDetailById" resultMap="WarehousebillsVOResult">
        SELECT w.f_id, w.f_mblno, w.f_bsdate, SUM( item.f_qty ) f_qty, SUM( item.f_grossweight ) f_grossweight,
            SUM( item.f_netweight ) f_netweight, w.f_billtype
        FROM
            t_whgenleg leg
                LEFT JOIN t_warehousebills w ON w.f_corpid = leg.f_corpid
                AND leg.f_trademodeid = w.f_trademodeid
                LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
                AND item.f_marks = leg.f_marks
                AND item.f_business_type = leg.f_business_type
                AND item.f_originalbilldate = leg.f_bsdate
                AND item.f_warehouselocid = leg.f_warehouse_locationid
                AND item.f_goodsid = leg.f_goodsid
        WHERE
            leg.f_id = #{id}
            AND w.f_billtype IN ( 'SJRK', 'SJCK' )
            AND item.f_billstatus = 40
            AND IF ( w.f_billtype = 'SJCK', item.f_mblno = leg.f_mblno, leg.f_mblno = w.f_mblno )
        GROUP BY
            w.f_id
    </select>

    <select id="selecStorageFeeList" resultType="Map">
        SELECT DISTINCT w.f_id AS fId, w.f_billno AS fBillno, corp.f_name AS fCorpid, w.f_billing_deadline AS fBillingDeadline, w.remark,
                        w.f_billstatus AS fBillstatus, w.create_by AS createBy, w.create_time AS createTime, w.f_fee_status fFeeStatus
        FROM t_warehousebills w LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
            LEFT JOIN t_corps corp ON corp.f_id = w.f_corpid
            left join sys_user u on w.create_by = u.user_name
            left join sys_user u1 on w.f_storekeeper = u1.user_name
            left join sys_dept d on w.f_bsdeptid = d.dept_id
        <where>
            w.f_billtype = 'JSCCF'
            <if test="fFeeStatus != null and fFeeStatus != ''">and w.f_fee_status = #{fFeeStatus}</if>
            <if test="fBillstatus != null and fBillstatus != ''">and w.f_billstatus = #{fBillstatus}</if>
            <if test="fMarks != null and fMarks != ''">and w.f_marks = #{fMarks}</if>
            <if test="createBy != null and createBy != ''">and w.create_by = #{createBy}</if>
            <if test='timeInterval2 != null and timeInterval2[0] != null and timeInterval2[1]!= ""'>
                and w.f_billing_deadline BETWEEN #{timeInterval2[0]} AND #{timeInterval2[1]}
            </if>
            <if test="fBillno != null and fBillno != ''">and w.f_billno like concat('%', #{fBillno}, '%')</if>
            <if test="fMblno != null and fMblno != ''">and w.f_mblno like concat('%', #{fMblno}, '%')</if>
            <if test="fCorpid != null and fCorpid != ''">and w.f_corpid = #{fCorpid}</if>
        </where>
            ${params.dataScope}
            ORDER BY w.f_bsdate DESC, w.f_bstime DESC,w.f_id DESC,w.f_billstatus
    </select>

    <select id="inAndOutStockList" resultType="map">
        select
            tb.f_mblno as fMblno,
            tg.f_name as goodsName,
            tb.f_marks as fMarks,
            tb.f_bsdate as fBsdate,
            tb.f_planqty as fPlanqty,
            case tb.f_billtype when 'SJRK' then '入库' when 'SJCK' then '出库' end as fBilltype,
            case
                when tb.f_billtype = 'SJRK' and tb.f_items_status = '1' then '计划'
                when tb.f_billtype = 'SJRK' and tb.f_items_status = '2' then '待入库'
                when tb.f_billtype = 'SJRK' and tb.f_items_status = '3' then '入库中'
                when tb.f_billtype = 'SJRK' and tb.f_items_status = '4' then '已入库'
                when tb.f_billtype = 'SJCK' and tb.f_items_status = '1' then '计划'
                when tb.f_billtype = 'SJCK' and tb.f_items_status = '2' then '待出库'
                when tb.f_billtype = 'SJCK' and tb.f_items_status = '3' then '出库中'
                when tb.f_billtype = 'SJCK' and tb.f_items_status = '4' then '已出库'
            end as fBillstatus
        from t_warehousebills tb
        left join t_goods tg on tg.f_id = tb.f_goodsid
        where
            if(tb.f_planqty is not null, tb.f_planqty != tb.f_qty, tb.f_id != '')
            and tb.f_billstatus != 6
            and tb.f_billtype in ('SJRK', 'SJCK')
            <if test="external != null and external != ''">
                and tb.f_corpid = (select f_pid from t_customer_contact where f_tel = #{external})
            </if>
        order by tb.f_bsdate desc
    </select>
</mapper>
