package com.ruoyi.storageLocation.service.impl;

import com.ruoyi.storageLocation.domain.Operlog;
import com.ruoyi.storageLocation.domain.StorageLocation;
import com.ruoyi.storageLocation.domain.StorageSelected;
import com.ruoyi.storageLocation.mapper.StorageLocationMapper;
import com.ruoyi.storageLocation.service.StorageLocationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 库位管理Service业务层处理
 *
 * @author ruoyi
 * @date 2024-02-28
 */
@Service
public class StorageLocationServiceImpl implements StorageLocationService
{
    @Autowired
    private StorageLocationMapper storageLocationMapper;

    /**
     * 获取库位信息
     * @param storageLocation
     * @return
     */
    @Override
    public List<StorageLocation> selectStorageLocationAList(StorageLocation storageLocation) {
        return storageLocationMapper.selectStorageLocationAList(storageLocation);
    }
    @Override
    public List<StorageLocation> selectStorageLocationBList(StorageLocation storageLocation) {
        return storageLocationMapper.selectStorageLocationBList(storageLocation);
    }
    @Override
    public List<StorageLocation> selectStorageLocationCList(StorageLocation storageLocation) {
        return storageLocationMapper.selectStorageLocationCList(storageLocation);
    }

    /**
     * 录入库位信息
     * @param storageLocation
     * @return
     */
    @Override
    public int addStorageLocation(StorageLocation storageLocation) {
        return storageLocationMapper.addStorageLocation(storageLocation);
    }

    /**
     * 确认完成认领
     * @param materialBhArr
     */
    @Override
    public void confirmStorageLocation(List<String> materialBhArr) {
        storageLocationMapper.confirmStorageLocation(materialBhArr);
    }

    /**
     * 判断已选库位表是否存在库位信息
     * @param materialBh
     * @return
     */
    @Override
    public StorageSelected hasStorageLocation(String materialBh) {
        return storageLocationMapper.hasStorageLocation(materialBh);
    }

    /**
     * 保存至已选库位表
     * @param materialBh
     */
    @Override
    public void saveStorageLocation(String userName,String materialBh) {
        storageLocationMapper.saveStorageLocation(userName,materialBh);
    }

    /**
     * 删除已选库位表记录
     * @param userName
     * @param materialBh
     */
    @Override
    public void deleteStorageLocation(String userName, String materialBh) {
        storageLocationMapper.deleteStorageLocation(userName,materialBh);
    }

    /**
     * 读取已选列表
     * @param userName
     * @return
     */
    @Override
    public List<StorageLocation> selectStorageSelectedLocationAList(String userName) {
        return storageLocationMapper.selectStorageSelectedLocationAList(userName);
    }
    @Override
    public List<StorageLocation> selectStorageSelectedLocationBList(String userName) {
        return storageLocationMapper.selectStorageSelectedLocationBList(userName);
    }
    @Override
    public List<StorageLocation> selectStorageSelectedLocationCList(String userName) {
        return storageLocationMapper.selectStorageSelectedLocationCList(userName);
    }

    /**
     * 读取全部已选列表
     * @return
     */
    @Override
    public List<StorageSelected> selectStorageSelectedLocationList() {
        return storageLocationMapper.selectStorageSelectedLocationList();
    }

    /**
     * 批量删除已选库位表记录
     * @param userName
     * @param materialBhList
     */
    @Override
    public void deleteBatchStorageLocation(String userName, List<String> materialBhList) {
        storageLocationMapper.deleteBatchStorageLocation(userName,materialBhList);
    }

    /**
     * 插入操作记录表
     * @param operlog
     */
    @Override
    public void addOperlog(Operlog operlog) {
        storageLocationMapper.addOperlog(operlog);
    }

    /**
     * 查询已选库位信息
     * @param userName
     * @param materialBhList
     * @return
     */
    @Override
    public List<StorageLocation> selectStorageLocation(String userName,List<String> materialBhList) {
        return storageLocationMapper.selectStorageLocation(userName,materialBhList);
    }

    /**
     * 批量插入操作记录表
     * @param operlogList
     */
    @Override
    public void addBatchOperlog(List<Operlog> operlogList) {
        storageLocationMapper.addBatchOperlog(operlogList);
    }

    /**
     * 获取操作记录
     * @param operlog
     * @return
     */
    @Override
    public List<Operlog> selectOperlogs(Operlog operlog) {
        return storageLocationMapper.selectOperlogs(operlog);
    }
}
