package com.dk.mdm.mapper.ivt;

import com.dk.mdm.model.pojo.ivt.OutboundItem;
import com.dk.common.mapper.BaseMapper;
import com.dk.mdm.model.query.ivt.InboundItemQuery;
import com.dk.mdm.model.query.ivt.OutboundItemCostQuery;
import com.dk.mdm.model.query.ivt.OutboundItemQuery;
import com.dk.mdm.model.response.ivt.InboundItemResponse;
import com.dk.mdm.model.response.ivt.OutboundItemResponse;
import com.dk.mdm.model.vo.ivt.OutboundItemVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
*  出库明细 Mapper
*/
@Repository
public interface OutboundItemMapper extends BaseMapper<OutboundItem>{
    /**
     * @desc   : 根据条件进行查询
     * @author : 付斌
     * @date   : 2024-02-28 10:18
     */
    List<OutboundItemResponse> selectByCond(OutboundItemQuery outboundItemQuery);

    /**
     * @desc   : 根据条件进行查询（数量）
     * @author : 付斌
     * @date   : 2024-02-28 10:19
     */
    Long countByCond(OutboundItemQuery outboundItemQuery);

    /**
     * @desc   : 根据主表主键锁定表t_psi_outbound_item的多行数据
     * @author : 付斌
     * @date   : 2024-03-09 11:36
     */
    List<OutboundItem> selectByZIdForUpdate(String id);

    /**
     * @desc   : 根据条件进行查询（出库编辑用）
     * @author : 付斌
     * @date   : 2024-03-12 9:36
     */
    List<OutboundItemResponse> selectByCondForOutEdit(String id);

    /**
     * @desc   : 根据条件进行查询（编辑用，适用于直接新建的出库单）
     * @author : 付斌
     * @date   : 2024-03-12 9:36
     */
    List<OutboundItemResponse> selectByCondForOutEditTogether(String id);

    /**
     * @desc   : 获取出库信息（新建退货用）
     * @author : 付斌
     * @date   : 2024-03-28 14:43
     */
    List<OutboundItemResponse> selectByCondForReturn(OutboundItemQuery orderQuery);

    /**
     * @desc   : 获取退货信息（退货编辑用）
     * @author : 付斌
     * @date   : 2024-03-12 11:07
     */
    List<OutboundItemResponse> selectByCondForReturnEdit(String id);

    /**
     * @desc   : 根据id查询
     * @date   : 2024/3/18 13:41
     * @author : 寇珊珊
     */
    OutboundItemResponse selectById(@Param("id") String id);

    /**
     * @desc   : 根据id查询
     * @date   : 2024/3/18 13:41
     * @author : 寇珊珊
     */
    OutboundItemResponse selectItemIndex(@Param("itemIndex") Integer itemIndex,@Param("id") String id);

    /**
     * @desc   : 修改退货信息
     * @date   : 2024/3/29 9:05
     * @author : 寇珊珊
     */
    int  updateReturnMessage(OutboundItem outboundItem);

    /**
     * @desc   : 条件查询 --- web端出库办理用
     * @date   : 2024/3/23 9:24
     * @author : 寇珊珊
     */
    List<OutboundItemResponse> selectOutboundItem(OutboundItemQuery outboundItemQuery);


    /**
     * @desc   : 修改出库明细成本单价 金额
     * @author : 常皓宁
     * @date   : 2024/4/18 13:47
     */
    int  updateOutCost(OutboundItemQuery outboundItemQuery);

    /**
     * @desc   : 修改最后一条出库成本(入库成本核对)
     * @author : 常皓宁
     * @date   : 2024/4/18 10:55
     */
    int updateLastCost(OutboundItemQuery outboundItemQuery);


}

