<?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.TWarehousebillsitemsMapper">

    <resultMap type="TWarehousebillsitems" id="TWarehousebillsitemsResult">
        <result property="fId" column="f_id"/>
        <result property="fPid" column="f_pid"/>
        <result property="fSrcid" column="f_srcid"/>
        <result property="fLineno" column="f_lineno"/>
        <result property="fBillno" column="f_billno"/>
        <result property="fGoodsid" column="f_goodsid"/>
        <result property="fMblno" column="f_mblno"/>
        <result property="fOriginalbillno" column="f_originalbillno"/>
        <result property="fTransferWarehouselocid" column="f_transfer_warehouselocid"/>
        <result property="fWarehouselocid" column="f_warehouselocid"/>
        <result property="fOriginalbilldate" column="f_originalbilldate"/>
        <result property="fBsdate" column="f_bsdate"/>
        <result property="fBillingway" column="f_billingway"/>
        <result property="fChargedate" column="f_chargedate"/>
        <result property="fBoxno" column="f_boxno"/>
        <result property="fGoodsval" column="f_goodsval"/>
        <result property="fCntqty" column="f_cntqty"/>
        <result property="fPackagespecs" column="f_packagespecs"/>
        <result property="fCntrtype" column="f_cntrtype"/>
        <result property="fPlanvolumn" column="f_planvolumn"/>
        <result property="fPlanqty" column="f_planqty"/>
        <result property="fPlangrossweight" column="f_plangrossweight"/>
        <result property="fPlannetweight" column="f_plannetweight"/>
        <result property="fVolumn" column="f_volumn"/>
        <result property="fQty" column="f_qty"/>
        <result property="fGrossweight" column="f_grossweight"/>
        <result property="fNetweight" column="f_netweight"/>
        <result property="fCntrno" column="f_cntrno"/>
        <result property="fTruckno" column="f_truckno"/>
        <result property="fMarks" column="f_marks"/>
        <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="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="remark" column="remark"/>
        <result property="fInventoryDays" column="f_inventory_days"/>
        <result property="fStorageFeeDeadline" column="f_storage_fee_deadline"/>
        <result property="fAmt" column="f_amt"/>
        <result property="fBillingDays" column="f_billing_days"/>
        <result property="fDriverName" column="f_driver_name"/>
        <result property="fDriverTel" column="f_driver_tel"/>
        <result property="fDriverIdCar" column="f_driver_id_car"/>
        <result property="fSerialNumber" column="f_serial_number"/>
        <result property="fIsPass" column="f_is_pass"/>
        <result property="fBilltype" column="f_billtype"/>
        <result property="fBillingQty" column="f_billing_qty"/>
        <result property="fBillingDeadline" column="f_billing_deadline"/>
        <result property="fBusinessType" column="f_business_type"/>
        <result property="fIsInventory" column="f_is_inventory"/>
        <result property="fWarehouseInformation" column="f_warehouse_information"/>
        <result property="fOrgwarehouseInformation" column="f_orgwarehouse_information"/>
        <result property="fLabour" column="f_labour"/>
        <result property="fFleet" column="f_fleet"/>
        <result property="fStevedore" column="f_stevedore"/>
        <result property="fLntype" column="f_lntype"/>
        <result property="fForkliftman" column="f_forkliftman"/>
        <result property="fLocalcntrno" column="f_localcntrno"/>
        <result property="fSealno" column="f_sealno"/>
        <result property="fNowCarton"  column="f_now_carton" />
        <result property="fItemstatus"    column="f_itemstatus"    />
        <result property="fCartypeId"    column="f_cartype_id"    />
        <result property="fDc"    column="f_dc"    />
    </resultMap>

    <sql id="selectTWarehousebillsitemsVo">
        select f_id, f_pid, f_srcid, f_lineno, f_billno, f_goodsid, f_mblno, f_originalbillno, f_transfer_warehouselocid, f_warehouselocid,
         f_originalbilldate, f_bsdate, f_billingway, f_chargedate, f_boxno, f_goodsval, f_cntqty, f_packagespecs, f_cntrtype, f_planvolumn,
          f_planqty, f_plangrossweight, f_plannetweight, f_volumn, f_qty, f_grossweight, f_netweight, f_cntrno, f_truckno, f_marks, f_billstatus,
           del_flag, create_by, create_time, update_by, update_time, remark, f_inventory_days, f_storage_fee_deadline, f_amt, f_billing_days,
            f_driver_name, f_driver_tel, f_driver_id_car, f_serial_number, f_is_pass, f_billtype, f_billing_qty, f_billing_deadline, f_business_type,
             f_is_inventory, f_warehouse_information, f_orgwarehouse_information, f_labour, f_fleet, f_stevedore, f_lntype, f_forkliftman,
              f_localcntrno, f_sealno,f_now_carton,f_itemstatus,f_cartype_id,f_dc from t_warehousebillsitems
    </sql>

    <select id="selectTWarehousebillsitemsList" parameterType="TWarehousebillsitems"
            resultMap="TWarehousebillsitemsResult">
        <include refid="selectTWarehousebillsitemsVo"/>
        <where>
            <if test="fPid != null ">and f_pid = #{fPid}</if>
            <if test="fLineno != null ">and f_lineno = #{fLineno}</if>
            <if test="fGoodsid != null ">and f_goodsid = #{fGoodsid}</if>
            <if test="fMblno != null  and fMblno != ''">and f_mblno = #{fMblno}</if>
            <if test="fBillno != null  and fBillno != ''">and f_billno = #{fBillno}</if>
            <if test="fWarehouselocid != null ">and f_warehouselocid = #{fWarehouselocid}</if>
            <if test="fBsdate != null ">and f_bsdate = #{fBsdate}</if>
            <if test="fLabour != null ">and f_labour = #{fLabour}</if>
            <if test="fLabour != null ">and f_labour = #{fLabour}</if>
            <if test="fFleet != null ">and f_fleet = #{fFleet}</if>
            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and f_originalbillno = #{fOriginalbillno}</if>
            <if test="fBoxno != null  and fBoxno != ''">and f_boxno = #{fBoxno}</if>
            <if test="fOriginalbilldate != null ">and f_originalbilldate = #{fOriginalbilldate}</if>
            <if test="fStorageFeeDeadline != null "> and f_storage_fee_deadline = #{fStorageFeeDeadline}</if>
            <if test="fTransferWarehouselocid != null "> and f_transfer_warehouselocid = #{fTransferWarehouselocid}</if>
            <if test="fCntqty != null ">and f_cntqty = #{fCntqty}</if>
            <if test="fGoodsval != null ">and f_goodsval = #{fGoodsval}</if>
            <if test="fCntrtype != null  and fCntrtype != ''">and f_cntrtype = #{fCntrtype}</if>
            <if test="fPlanqty != null ">and f_planqty = #{fPlanqty}</if>
            <if test="fPlanvolumn != null ">and f_planvolumn = #{fPlanvolumn}</if>
            <if test="fChargedate != null ">and f_chargedate = #{fChargedate}</if>
            <if test="fIsInventory != null ">and f_is_inventory = #{fIsInventory}</if>
            <if test="fPackagespecs != null ">and f_packagespecs = #{fPackagespecs}</if>
            <if test="fBusinessType != null "> and f_business_type = #{fBusinessType}</if>
            <if test="fWarehouseInformation != null "> and f_warehouse_information = #{fWarehouseInformation}</if>
            <if test="fOrgwarehouseInformation != null "> and f_orgwarehouse_information = #{fOrgwarehouseInformation}</if>
            <if test="fPlangrossweight != null ">and f_plangrossweight = #{fPlangrossweight}</if>
            <if test="fPlannetweight != null ">and f_plannetweight = #{fPlannetweight}</if>
            <if test="fQty != null ">and f_qty = #{fQty}</if>
            <if test="fVolumn != null ">and f_volumn = #{fVolumn}</if>
            <if test="fGrossweight != null ">and f_grossweight = #{fGrossweight}</if>
            <if test="fNetweight != null ">and f_netweight = #{fNetweight}</if>
            <if test="fCntrno != null  and fCntrno != ''">and f_cntrno = #{fCntrno}</if>
            <if test="fTruckno != null  and fTruckno != ''">and f_truckno = #{fTruckno}</if>
            <if test="fBillstatus != null  and fBillstatus != ''">and f_billstatus = #{fBillstatus}</if>
            <if test="fMarks != null  and fMarks != ''">and f_marks = #{fMarks}</if>
            <if test="fInventoryDays != null ">and f_inventory_days = #{fInventoryDays}</if>
            <if test="fAmt != null ">and f_amt = #{fAmt}</if>
            <if test="fBillingDays != null ">and f_billing_days = #{fBillingDays}</if>
            <if test="fDriverName != null  and fDriverName != ''">and f_driver_name like concat('%',
                #{fDriverName},'%')
            </if>
            <if test="fDriverTel != null  and fDriverTel != ''">and f_driver_tel = #{fDriverTel}</if>
            <if test="fDriverIdCar != null  and fDriverIdCar != ''">and f_driver_id_car = #{fDriverIdCar}</if>
            <if test="fSerialNumber != null  and fSerialNumber != ''">and f_serial_number = #{fSerialNumber}</if>
            <if test="fIsPass != null  and fIsPass != ''">and f_is_pass = #{fIsPass}</if>
            <if test="fDc != null  and fDc != ''">and f_dc = #{fDc}</if>
        </where>
    </select>

    <select id="selectGoodsTransferitemsList" parameterType="TWarehousebillsitems" resultType="Map">
        SELECT DISTINCT
            item.f_id AS fId,
            item.f_pid AS fPid,
            item.f_srcid AS fSrcid,
            item.f_lineno AS fLineno,
            item.f_billno AS fBillno,
            item.f_goodsid AS fGoodsid,
            goods.f_name AS fGoodsids,
            goods.if_cntrno AS ifCntrno,
            item.f_warehouselocid AS fWarehouselocid,
            area.f_name AS fWarehouselocids,
            ware.f_name AS fWarehouseids,
            item.f_is_pass AS fIsPass,
            item.f_originalbillno AS fOriginalbillno,
            item.f_mblno AS fMblno,
            item.f_bsdate AS fBsdate,
            item.f_boxno AS fBoxno,
            item.f_cntqty AS fCntqty,
            item.f_goodsval AS fGoodsval,
            item.f_cntrtype AS fCntrtype,
            item.f_planqty AS fPlanqty,
            item.f_planvolumn AS fPlanvolumn,
            item.f_billingway AS fBillingway,
            item.f_chargedate AS fChargedate,
            item.f_packagespecs AS fPackagespecs,
            item.f_plangrossweight AS fPlangrossweight,
            item.f_originalbilldate AS fOriginalbilldate,
            item.f_plannetweight AS fPlannetweight,
            item.f_transfer_warehouselocid AS fTransferWarehouselocid,
            w.f_storekeeper fStorekeeper,
            item.f_qty AS fQty,
            item.f_volumn AS fVolumn,
            item.f_driver_name AS fDriverName,
            item.f_driver_tel AS fDriverTel,
            item.f_driver_id_car AS fDriverIdCar,
            item.f_serial_number AS fSerialNumber,
            item.f_marks AS fMarks,
            item.f_grossweight AS fGrossweight,
            item.f_is_inventory AS fIsInventory,
            item.f_business_type AS fBusinessType,
            item.f_netweight AS fNetweight,
            item.f_cntrno AS fCntrno,
            item.f_truckno AS fTruckno,
            item.f_billstatus AS fBillstatus,
            item.remark,
            b.f_name AS fLabours,
            item.f_labour AS fLabour,
            f.f_name AS fFleets,
            item.f_fleet AS fFleet,
            item.f_stevedore AS fStevedore,
            item.f_forkliftman AS fForkliftman,
            item.f_localcntrno AS fLocalcntrno,
            l.dict_label AS fLntypes,
            item.f_lntype AS fLntype,
            item.f_sealno AS fSealno,
            item.f_warehouse_information AS fWarehouseInformation,
            item.f_orgwarehouse_information AS fOrgwarehouseInformation,
            item.f_now_carton AS fNowCarton,
            item.f_cartype_id AS fCartypeId,
            item.f_dc AS fDc
        FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
            LEFT JOIN t_goods goods ON goods.f_id = item.f_goodsid
            LEFT JOIN t_warehouse_area area ON area.f_id = item.f_warehouselocid
            LEFT JOIN t_warehouse ware ON ware.f_id = area.f_warehouseid
            LEFT JOIN t_corps b ON b.f_id = item.f_labour
            LEFT JOIN t_corps f ON f.f_id = item.f_fleet
            LEFT JOIN sys_dict_data l ON l.dict_value = item.f_lntype
            AND l.dict_type = 'ln_way'
        WHERE
            item.f_pid = #{fPid}
    </select>

    <select id="selectTWarehousebillsitemsById" parameterType="Long" resultMap="TWarehousebillsitemsResult">
        <include refid="selectTWarehousebillsitemsVo"/>
        where f_id = #{fId}
    </select>

    <insert id="insertTWarehousebillsitems" parameterType="TWarehousebillsitems" useGeneratedKeys="true" keyProperty="fId">
        insert into t_warehousebillsitems
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="fPid != null">f_pid,</if>
            <if test="fSrcid != null">f_srcid,</if>
            <if test="fLineno != null">f_lineno,</if>
            <if test="fBillno != null">f_billno,</if>
            <if test="fGoodsid != null">f_goodsid,</if>
            <if test="fMblno != null">f_mblno,</if>
            <if test="fOriginalbillno != null">f_originalbillno,</if>
            <if test="fTransferWarehouselocid != null">f_transfer_warehouselocid,</if>
            <if test="fWarehouselocid != null">f_warehouselocid,</if>
            <if test="fOriginalbilldate != null">f_originalbilldate,</if>
            <if test="fBsdate != null">f_bsdate,</if>
            <if test="fBillingway != null">f_billingway,</if>
            <if test="fChargedate != null">f_chargedate,</if>
            <if test="fBoxno != null">f_boxno,</if>
            <if test="fGoodsval != null">f_goodsval,</if>
            <if test="fCntqty != null">f_cntqty,</if>
            <if test="fPackagespecs != null">f_packagespecs,</if>
            <if test="fCntrtype != null">f_cntrtype,</if>
            <if test="fPlanvolumn != null">f_planvolumn,</if>
            <if test="fPlanqty != null">f_planqty,</if>
            <if test="fPlangrossweight != null">f_plangrossweight,</if>
            <if test="fPlannetweight != null">f_plannetweight,</if>
            <if test="fVolumn != null">f_volumn,</if>
            <if test="fQty != null">f_qty,</if>
            <if test="fGrossweight != null">f_grossweight,</if>
            <if test="fNetweight != null">f_netweight,</if>
            <if test="fCntrno != null">f_cntrno,</if>
            <if test="fTruckno != null">f_truckno,</if>
            <if test="fMarks != null">f_marks,</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="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="remark != null">remark,</if>
            <if test="fInventoryDays != null">f_inventory_days,</if>
            <if test="fStorageFeeDeadline != null">f_storage_fee_deadline,</if>
            <if test="fAmt != null">f_amt,</if>
            <if test="fBillingDays != null">f_billing_days,</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="fSerialNumber != null">f_serial_number,</if>
            <if test="fIsPass != null">f_is_pass,</if>
            <if test="fBilltype != null">f_billtype,</if>
            <if test="fBillingQty != null">f_billing_qty,</if>
            <if test="fBillingDeadline != null">f_billing_deadline,</if>
            <if test="fBusinessType != null">f_business_type,</if>
            <if test="fIsInventory != null">f_is_inventory,</if>
            <if test="fWarehouseInformation != null">f_warehouse_information,</if>
            <if test="fOrgwarehouseInformation != null">f_orgwarehouse_information,</if>
            <if test="fLabour != null">f_labour,</if>
            <if test="fFleet != null">f_fleet,</if>
            <if test="fStevedore != null">f_stevedore,</if>
            <if test="fLntype != null">f_lntype,</if>
            <if test="fForkliftman != null">f_forkliftman,</if>
            <if test="fLocalcntrno != null">f_localcntrno,</if>
            <if test="fSealno != null">f_sealno,</if>
            <if test="fNowCarton != null">f_now_carton,</if>
            <if test="fItemstatus != null">f_itemstatus,</if>
            <if test="fCartypeId != null">f_cartype_id,</if> 
            <if test="fDc != null">f_dc,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="fPid != null">#{fPid},</if>
            <if test="fSrcid != null">#{fSrcid},</if>
            <if test="fLineno != null">#{fLineno},</if>
            <if test="fBillno != null">#{fBillno},</if>
            <if test="fGoodsid != null">#{fGoodsid},</if>
            <if test="fMblno != null">#{fMblno},</if>
            <if test="fOriginalbillno != null">#{fOriginalbillno},</if>
            <if test="fTransferWarehouselocid != null">#{fTransferWarehouselocid},</if>
            <if test="fWarehouselocid != null">#{fWarehouselocid},</if>
            <if test="fOriginalbilldate != null">#{fOriginalbilldate},</if>
            <if test="fBsdate != null">#{fBsdate},</if>
            <if test="fBillingway != null">#{fBillingway},</if>
            <if test="fChargedate != null">#{fChargedate},</if>
            <if test="fBoxno != null">#{fBoxno},</if>
            <if test="fGoodsval != null">#{fGoodsval},</if>
            <if test="fCntqty != null">#{fCntqty},</if>
            <if test="fPackagespecs != null">#{fPackagespecs},</if>
            <if test="fCntrtype != null">#{fCntrtype},</if>
            <if test="fPlanvolumn != null">#{fPlanvolumn},</if>
            <if test="fPlanqty != null">#{fPlanqty},</if>
            <if test="fPlangrossweight != null">#{fPlangrossweight},</if>
            <if test="fPlannetweight != null">#{fPlannetweight},</if>
            <if test="fVolumn != null">#{fVolumn},</if>
            <if test="fQty != null">#{fQty},</if>
            <if test="fGrossweight != null">#{fGrossweight},</if>
            <if test="fNetweight != null">#{fNetweight},</if>
            <if test="fCntrno != null">#{fCntrno},</if>
            <if test="fTruckno != null">#{fTruckno},</if>
            <if test="fMarks != null">#{fMarks},</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="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remark != null">#{remark},</if>
            <if test="fInventoryDays != null">#{fInventoryDays},</if>
            <if test="fStorageFeeDeadline != null">#{fStorageFeeDeadline},</if>
            <if test="fAmt != null">#{fAmt},</if>
            <if test="fBillingDays != null">#{fBillingDays},</if>
            <if test="fDriverName != null">#{fDriverName},</if>
            <if test="fDriverTel != null">#{fDriverTel},</if>
            <if test="fDriverIdCar != null">#{fDriverIdCar},</if>
            <if test="fSerialNumber != null">#{fSerialNumber},</if>
            <if test="fIsPass != null">#{fIsPass},</if>
            <if test="fBilltype != null">#{fBilltype},</if>
            <if test="fBillingQty != null">#{fBillingQty},</if>
            <if test="fBillingDeadline != null">#{fBillingDeadline},</if>
            <if test="fBusinessType != null">#{fBusinessType},</if>
            <if test="fIsInventory != null">#{fIsInventory},</if>
            <if test="fWarehouseInformation != null">#{fWarehouseInformation},</if>
            <if test="fOrgwarehouseInformation != null">#{fOrgwarehouseInformation},</if>
            <if test="fLabour != null">#{fLabour},</if>
            <if test="fFleet != null">#{fFleet},</if>
            <if test="fStevedore != null">#{fStevedore},</if>
            <if test="fLntype != null">#{fLntype},</if>
            <if test="fForkliftman != null">#{fForkliftman},</if>
            <if test="fLocalcntrno != null">#{fLocalcntrno},</if>
            <if test="fSealno != null">#{fSealno},</if>
            <if test="fNowCarton != null">#{fNowCarton},</if>
            <if test="fItemstatus != null">#{fItemstatus},</if>
            <if test="fCartypeId != null">#{fCartypeId},</if>
            <if test="fDc != null">#{fDc},</if>
        </trim>
    </insert>

    <update id="updateTWarehousebillsitems" parameterType="TWarehousebillsitems">
        update t_warehousebillsitems
        <trim prefix="SET" suffixOverrides=",">
            <if test="fPid != null">f_pid = #{fPid},</if>
            <if test="fSrcid != null">f_srcid = #{fSrcid},</if>
            <if test="fLineno != null">f_lineno = #{fLineno},</if>
            <if test="fBillno != null">f_billno = #{fBillno},</if>
            <if test="fGoodsid != null">f_goodsid = #{fGoodsid},</if>
            <if test="fMblno != null">f_mblno = #{fMblno},</if>
            <if test="fOriginalbillno != null">f_originalbillno = #{fOriginalbillno},</if>
            <if test="fTransferWarehouselocid != null">f_transfer_warehouselocid = #{fTransferWarehouselocid},</if>
            <if test="fWarehouselocid != null">f_warehouselocid = #{fWarehouselocid},</if>
            <if test="fOriginalbilldate != null">f_originalbilldate = #{fOriginalbilldate},</if>
            <if test="fBsdate != null">f_bsdate = #{fBsdate},</if>
            <if test="fBillingway != null">f_billingway = #{fBillingway},</if>
            <if test="fChargedate != null">f_chargedate = #{fChargedate},</if>
            <if test="fBoxno != null">f_boxno = #{fBoxno},</if>
            <if test="fGoodsval != null">f_goodsval = #{fGoodsval},</if>
            <if test="fCntqty != null">f_cntqty = #{fCntqty},</if>
            <if test="fPackagespecs != null">f_packagespecs = #{fPackagespecs},</if>
            <if test="fCntrtype != null">f_cntrtype = #{fCntrtype},</if>
            <if test="fPlanvolumn != null">f_planvolumn = #{fPlanvolumn},</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="fVolumn != null">f_volumn = #{fVolumn},</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="fCntrno != null">f_cntrno = #{fCntrno},</if>
            <if test="fTruckno != null">f_truckno = #{fTruckno},</if>
            <if test="fMarks != null">f_marks = #{fMarks},</if>
            <if test="fBillstatus != null and fBillstatus != ''">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="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="fInventoryDays != null">f_inventory_days = #{fInventoryDays},</if>
            <if test="fStorageFeeDeadline != null">f_storage_fee_deadline = #{fStorageFeeDeadline},</if>
            <if test="fAmt != null">f_amt = #{fAmt},</if>
            <if test="fBillingDays != null">f_billing_days = #{fBillingDays},</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="fSerialNumber != null">f_serial_number = #{fSerialNumber},</if>
            <if test="fIsPass != null">f_is_pass = #{fIsPass},</if>
            <if test="fBilltype != null">f_billtype = #{fBilltype},</if>
            <if test="fBillingQty != null">f_billing_qty = #{fBillingQty},</if>
            <if test="fBillingDeadline != null">f_billing_deadline = #{fBillingDeadline},</if>
            <if test="fBusinessType != null">f_business_type = #{fBusinessType},</if>
            <if test="fIsInventory != null">f_is_inventory = #{fIsInventory},</if>
            <if test="fWarehouseInformation != null">f_warehouse_information = #{fWarehouseInformation},</if>
            <if test="fOrgwarehouseInformation != null">f_orgwarehouse_information = #{fOrgwarehouseInformation},</if>
            <if test="fLabour != null">f_labour = #{fLabour},</if>
            <if test="fFleet != null">f_fleet = #{fFleet},</if>
            <if test="fStevedore != null">f_stevedore = #{fStevedore},</if>
            <if test="fLntype != null">f_lntype = #{fLntype},</if>
            <if test="fForkliftman != null">f_forkliftman = #{fForkliftman},</if>
            <if test="fLocalcntrno != null">f_localcntrno = #{fLocalcntrno},</if>
            <if test="fSealno != null">f_sealno = #{fSealno},</if>
            <if test="fNowCarton != null">f_now_carton = #{fNowCarton},</if>
            <if test="fItemstatus != null">f_itemstatus = #{fItemstatus},</if>
            <if test="fCartypeId != null">f_cartype_id = #{fCartypeId},</if>
            <if test="fDc != null">f_dc = #{fDc},</if>     
        </trim>
        where f_id = #{fId}
    </update>

    <update id="agreementApprovalRejected" parameterType="TWarehousebillsitems">
        UPDATE
            t_warehousebillsitems
            SET f_storage_fee_deadline = null, f_chargedate = #{fChargedate}
        WHERE
            f_id = #{fId}
    </update>

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

    <delete id="deleteTWarehousebillsitemsByIds" parameterType="String">
        delete from t_warehousebillsitems where f_id in
        <foreach item="fId" collection="array" open="(" separator="," close=")">
            #{fId}
        </foreach>
    </delete>

    <delete id="deleteByFPid" parameterType="Long">
        delete from t_warehousebillsitems where f_pid = #{fId}
    </delete>

    <select id="selectStorageFeeItemList" parameterType="com.ruoyi.warehouseBusiness.domain.TWarehouseBills"
            resultType="Map">
        SELECT
            ware.f_warehouseid AS warehouse,
            item.f_id AS fId,
            item.f_billno AS fBillno,
            item.f_goodsid AS fGoodsid,
            item.f_bsdate AS fBsdate,
            item.f_billingway AS fBillingway,
            item.f_chargedate AS fChargedate,
            item.f_originalbilldate AS fOriginalbilldate,
            item.f_mblno AS fMblno,
            item.f_volumn AS fVolumn,
            item.f_marks AS fMarks,
            item.f_billing_days AS fBillingDays,
            item.f_is_inventory AS fIsInventory,
            item.f_qty AS fQty,
            item.f_orgwarehouse_information AS fOrgwarehouseInformation,
            item.f_grossweight AS fGrossweight,
            item.f_netweight AS fNetweight,
            item.f_billtype AS fBilltype,
            goods.f_typeid AS fTypeid,
            goods.f_name AS fGoodsids
        FROM
            t_warehousebills ware
            LEFT JOIN t_warehousebillsitems item ON item.f_pid = ware.f_id
            LEFT JOIN t_goods goods ON goods.f_id = item.f_goodsid
            LEFT JOIN t_warehouse wa ON wa.f_id = ware.f_warehouseid
        <where>
            ware.f_corpid = #{warehouse.fCorpid}
            and ware.f_billtype in ("HQZY", "SJCK")
            and wa.f_charg = 1
            and item.f_billstatus = 40
            and item.f_storage_fee_deadline IS NULL
            and IF(ware.f_billtype = "SJCK", item.f_bsdate &lt;#{warehouse.fBillingDeadline}, item.f_chargedate &lt;= #{warehouse.fBillingDeadline})
            <if test="warehouse.fGoodsid != null and warehouse.fGoodsid != ''">and item.f_goodsid = #{warehouse.fGoodsid}</if>
            <if test="warehouse.fMblno != null and warehouse.fMblno != ''">and ware.f_mblno = #{warehouse.fMblno}</if>
            <if test="warehouse.fWarehouseid != null and warehouse.fWarehouseid != ''">and ware.f_warehouseid = #{warehouse.fWarehouseid}</if>
           <!--  <if test="warehouse.fId != null">and item.f_id = #{warehouse.fId}</if> -->
        </where>
    </select>
    <select id="warehousebillsitemsWarehouselocidSize" resultType="java.lang.Integer">
        SELECT
            COUNT( 1 )
        FROM
            t_warehousebillsitems
        WHERE
            f_warehouselocid = #{fWarehouselocid}
    </select>
    <select id="inStock" resultType="java.lang.Integer">
        SELECT
            COUNT(f_id)
        FROM
            t_warehousebillsitems
        WHERE
            f_billtype = 'SJRK'
          AND
            f_billstatus in (20,30)
    </select>
    <select id="outStock" resultType="java.lang.Integer">
        SELECT
            COUNT(f_id)
        FROM
            t_warehousebillsitems
        WHERE
            f_billtype = 'SJCK'
          AND
            f_billstatus in (20,30)
    </select>
    <select id="monthInStock" resultType="java.lang.Integer">
        SELECT
        COUNT(f_id)
        FROM
            t_warehousebillsitems
        WHERE
            f_billtype = 'SJRK'
            AND
             f_billstatus =40
            AND
            f_bsdate &gt;= #{timeInterval[0]}
            AND
            f_bsdate &lt;=  #{timeInterval[1]}
    </select>
    <select id="monthOutStock" resultType="java.lang.Integer">
        SELECT
        COUNT(f_id)
        FROM
            t_warehousebillsitems
        WHERE
            f_billtype = 'SJCK'
            AND
            f_billstatus =40
            AND
            f_bsdate &gt;=  #{timeInterval[0]}
            AND
            f_bsdate &lt;=  #{timeInterval[1]}
    </select>

    <select id="selectWarehouseBusinesInList" resultType="java.util.Map">
        SELECT
            items.f_id AS fId,
            items.f_pid AS  fPid,
            c.f_name AS fName,
            items.f_mblno AS fMblno,
            items.f_bsdate AS fBsdate,
            items.f_is_pass AS fIsPass,
            CASE
                WHEN items.f_billstatus = 20 THEN
                    '待入库'
                WHEN items.f_billstatus = 30 THEN
                    '入库中'
                END AS fBillstatus,
            g.f_name AS fGoodsid,
            items.f_driver_tel AS fDriverTel,
            dict.dict_label AS fBusinessType,
            items.f_marks AS fMarks,
            items.f_warehouse_information AS fWarehouseInformation,
            items.f_qty AS fQty,
            items.f_grossweight AS fGrossweight,
            items.f_netweight AS  fNetweight
        FROM
            t_warehousebillsitems items
                LEFT JOIN t_warehousebills t ON items.f_pid = t.f_id
                LEFT JOIN t_corps c ON t.f_corpid = c.f_id
                LEFT JOIN t_goods g ON items.f_goodsid = g.f_id
                LEFT JOIN sys_dict_data dict ON dict.dict_type = 'storage_type'
                AND dict.dict_value = items.f_business_type
        WHERE
            items.f_billtype = 'SJRK'
          AND items.f_billstatus IN ( 20, 30 )
          <if test="timeStartBsdate != null">AND items.f_bsdate &gt;= #{timeStartBsdate}</if>
          <if test="timeEndBsdate != null">AND items.f_bsdate &lt;= #{timeEndBsdate}</if>
          <if test="fBillstatus != null">AND items.f_billstatus = #{fBillstatus}</if>
          <if test="fMblno != null and fMblno != '' ">AND items.f_mblno like concat('%',#{fMblno},'%') </if>
    </select>
    <select id="selectWarehouseBusinesOutList" resultType="java.util.Map">
        SELECT
            items.f_id AS fId,
            items.f_pid AS  fPid,
            c.f_name AS fName,
            items.f_mblno AS fMblno,
            items.f_bsdate AS fBsdate,
            items.f_is_pass AS fIsPass,
            CASE
                WHEN items.f_billstatus = 20 THEN
                    '待出库'
                WHEN items.f_billstatus = 30 THEN
                    '出库中'
                END AS fBillstatus,
            g.f_name AS fGoodsid,
            items.f_driver_tel AS fDriverTel,
            dict.dict_label AS fBusinessType ,
            items.f_marks AS fMarks,
            items.f_warehouse_information AS fWarehouseInformation,
            items.f_qty AS fQty,
            items.f_grossweight AS fGrossweight,
            items.f_netweight AS  fNetweight
        FROM
            t_warehousebillsitems items
                LEFT JOIN t_warehousebills t ON items.f_pid = t.f_id
                LEFT JOIN t_corps c ON t.f_corpid = c.f_id
                LEFT JOIN t_goods g ON items.f_goodsid = g.f_id
                LEFT JOIN sys_dict_data dict ON dict.dict_type = 'storage_type'
                AND dict.dict_value = items.f_business_type
        WHERE
            items.f_billtype = 'SJCK'
          AND items.f_billstatus IN ( 20, 30 )
        <if test="timeStartBsdate != null">AND items.f_bsdate &gt;= #{timeStartBsdate}</if>
        <if test="timeEndBsdate != null">AND items.f_bsdate &lt;= #{timeEndBsdate}</if>
        <if test="fBillstatus != null">AND items.f_billstatus = #{fBillstatus}</if>
        <if test="fMblno != null and fMblno != '' ">AND items.f_mblno like concat('%',#{fMblno},'%') </if>
        order by items.f_bsdate desc
    </select>

    <select id="selectWarehouseItemsByPId" parameterType="long" resultType="Map">
        SELECT
            t.f_id fId,
            t.f_pid fPid,
            t.f_bsdate bsdate,
            corp.f_name corpName,
            t.f_mblno fMblno,
            stor.dict_label businessType,
            t.f_marks marks,
            t.f_labour labour,
            g.f_name goodsName,
            fleet.f_name fleetName,
            t.f_warehouse_information warehouseInformation,
            t.f_warehouselocid fWarehouselocid,
            t.f_truckno truckno,
            cntr.f_name cntrtypes,
            t.f_cntrtype cntrtype,
            t.f_cntqty cntqty,
            t.f_cntrno cntrno,
            t.f_qty fQty,
            t.f_truckno fTruckno,
            t.f_driver_name fDriverName,
            t.f_originalbilldate fOriginalbilldate,
            t.f_grossweight fGrossweight,
            t.f_netweight fNetweight,
            t.f_driver_tel fDriverTel,
            t.f_stevedore fStevedore,
        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 billstatus,
            t.remark
        FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems t ON w.f_id = t.f_pid
            LEFT JOIN sys_dict_data stor ON stor.dict_value = t.f_business_type
            AND stor.dict_type = 'storage_type'
            LEFT JOIN t_goods g ON g.f_id = t.f_goodsid
            LEFT JOIN t_corps fleet ON fleet.f_id = t.f_fleet
            LEFT JOIN t_corps corp ON corp.f_id = w.f_corpid
            LEFT JOIN t_cntr cntr ON cntr.f_id = t.f_cntrtype
        where
            t.f_id = #{fId}
    </select>

    <select id="selectItemFStatusByFPid" resultType="java.lang.Integer">
        SELECT
            IFNULL( COUNT( w.f_id ), 0 )
        FROM
            t_warehousebills w
            LEFT JOIN t_warehousebillsitems i ON i.f_pid = w.f_id
        WHERE
            w.f_id = #{fId}
            AND i.f_billstatus = 40
    </select>

    <select id="selectItemQtyByFPid" resultType="com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems">
        SELECT
            IFNULL( SUM( f_qty ), 0 ) fQty,
            IFNULL( SUM( f_grossweight ), 0 ) fGrossweight,
            IFNULL( SUM( f_netweight ), 0 ) fNetweight
        FROM
            t_warehousebillsitems
        WHERE
            f_pid = #{fPid}
            AND f_billstatus = 40
    </select>

    <select id="selecMinBsDateByFPid" resultType="java.util.Date">
        SELECT
            MIN( f_bsdate )
        FROM
            t_warehousebillsitems
        WHERE
            f_pid = #{fId}
    </select>

    <select id="selectItemsStatusByPid" resultMap="TWarehousebillsitemsResult" parameterType="long">
        SELECT
            f_id,
            f_billstatus,
            f_itemstatus
        FROM
            t_warehousebillsitems
        WHERE
            f_pid = #{fId}
    </select>

    <update id="warehouseItemFollowUpdate" parameterType="Long">
        update
            t_warehousebillsitems
        SET f_billstatus = IF
	        ( f_billtype = 'SJCK' || f_billtype = 'SJRK', 40, #{fettle} )
        where
            f_pid = #{fPid}
    </update>
    <select id="getFchargedate" parameterType="Long" resultType="date">
        SELECT
            f_chargedate
        FROM
            t_warehousebillsitems
        WHERE f_chargedate IS NOT NULL
        and f_pid = #{fPid}
        ORDER BY f_chargedate
        LIMIT 1
    </select>
    <update id="warehouseItemfChargedate" parameterType="Long">
        update
            t_warehousebillsitems
        SET f_chargedate = #{fChargedate}
        where
            f_pid = #{fPid}
    </update>
    <update id="warehouseItemfItemstatus" parameterType="Long">
        update
            t_warehousebillsitems
        SET f_itemstatus = #{fItemstatus}
        where
            f_pid = #{fPid}
    </update>
    <update id="updatefStorageFeeDeadline" parameterType="TWarehousebillsitems">
        UPDATE
            t_warehousebillsitems
        SET f_storage_fee_deadline = null
        WHERE
            f_pid = #{fPid}
            and f_id not in
        <foreach item="fId" collection="fId" open="(" separator="," close=")">
            #{fId}
        </foreach>
    </update>
    <update id="updatefStorageFeeDeadlinefPid" parameterType="TWarehousebillsitems">
        UPDATE
        t_warehousebillsitems
        SET f_storage_fee_deadline = null
        WHERE
        f_pid = #{fPid}
    </update>
    <select id="selectStorageFeeItemfTruckNo" parameterType="string" resultType="Map">
        SELECT
        DISTINCT
	        f_truckno AS fTruckno
        FROM
	        t_warehousebillsitems
	    WHERE f_truckno IS NOT NULL
        AND f_truckno != ''
        ORDER BY CONVERT(f_truckno USING gbk) asc
    </select>

    <select id="queryChangedByFchargedate" resultType="java.lang.Integer">
        SELECT
            count( f_id )
        FROM
            t_warehousebillsitems
        WHERE
        <foreach collection="ids" item="id" open="f_id in(" separator="," close=")">
            #{id}
        </foreach>
            and f_chargedate != #{time}
    </select>

    <select id="queryChangedByFstorageFeeDeadline" resultType="java.lang.Integer">
        SELECT
            count( f_id )
        FROM
            t_warehousebillsitems
        WHERE
        <foreach collection="ids" item="id" open="f_id in(" separator="," close=")">
            #{id}
        </foreach>
            and f_storage_fee_deadline != #{time}
    </select>

</mapper>