package com.bonus.material.warehousing.mapper;

import com.bonus.material.devchange.domain.CsDeviceChangeDetailsVo;
import com.bonus.material.devchange.domain.CsDeviceChangeVo;
import com.bonus.material.devchange.domain.DevChangeVo;
import com.bonus.material.devchange.domain.MapBean;
import com.bonus.material.warehousing.domain.WarehousingEntity;
import com.bonus.material.warehousing.domain.WarehousingRecordEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface WarehousingMapper {
    /**
     * 新增入库记录
     *
     * @param warehousing 入库实体
     * @return 影响行数
     */
    int insert(WarehousingEntity warehousing);

    /**
     * 根据id删除入库记录（逻辑删除，更新is_deleted为1）
     *
     * @param id 主键id
     * @return 影响行数
     */
    int deleteById(@Param("id") Integer id);

    /**
     * 根据id更新入库记录
     *
     * @param warehousing 入库实体
     * @return 影响行数
     */
    int updateById(WarehousingEntity warehousing);

    /**
     * 根据id查询入库记录
     *
     * @param id 主键id
     * @return 入库实体
     */
    WarehousingEntity selectById(@Param("id") Integer id);

    /**
     * 分页查询（简化版：条件查询所有）
     *
     * @param warehousing 查询条件
     * @return 入库记录列表
     */
    List<WarehousingEntity> selectList(WarehousingEntity warehousing);

    /**
     * 批量提交
     *
     * @param ids
     * @return
     */
    Integer batchSubmission(@Param("array") Integer[] ids);

    /**
     * 批量驳回
     *
     * @param ids
     * @return
     */
    Integer batchRejection(@Param("array") Integer[] ids);

    /**
     * 批量同意
     *
     * @param ids
     * @return
     */
    Integer batchApproval(@Param("array") Integer[] ids, @Param("nickName") String nickName);

    /**
     * 查询出库单
     *
     * @param id
     * @return
     */
    List<WarehousingRecordEntity> getDevDetails(Integer id);

    List<String> getMaIds(String orderId);
}
