package com.jeeplus.pubmodules.wareHouse.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeeplus.pubmodules.oss.service.dto.WorkAttachmentDto;
import com.jeeplus.pubmodules.wareHouse.domain.WareHouseDetailed;
import com.jeeplus.sys.service.dto.UserDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: 王强
 * @create: 2022-12-30 09:27
 **/
public interface WareHouseDetailedMapper extends BaseMapper<WareHouseDetailed> {
    /**
     * 根据入库基础表的id查入库明细相关数据(upFlag = '0')
     * @param id
     * @return
     */
    List<WareHouseDetailed> getByBasicId(String id);
    // 根据入库基础表的id查入库明细相关数据(upFlag 全部)
    List<WareHouseDetailed> getByBasicIdAll(String id);

    //查出附件信息
    List<WorkAttachmentDto> getByAttachmentId(String id);

    List<String> getIdByBasicId(String id);

    /**
     * 根据登陆名称查去用户信息
     * @param
     * @return
     */
    List<UserDTO> getUsersInfo();

    // 根据id置空sourceId
    void upSourceIdEmpty(String id);

    // 根据入库id删除详情  物理删除
    void deleteByBasicId(String basicId);

    // 根据入库id删除关联附件  物理删除
    void deleteFilesByIdList(@Param("attachmentIdList")List<String> attachmentIdList);

    // 修改入库详情商品名称
    void saveTradeName(@Param("oldTradeName") String oldTradeName, @Param("tradeName") String tradeName, @Param("wareHouseType") String wareHouseType);

    // 修改领用详情商品名称
    void saveGoodsName(@Param("oldTradeName") String oldTradeName, @Param("tradeName") String tradeName, @Param("wareHouseType") String wareHouseType);

    // 根据入库类型查询商品
    List<WareHouseDetailed> getByTypeId(String typeId);
}
