package com.shkj.wms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shkj.common.core.domain.Result;
import com.shkj.wms.bo.BaseLocationPlcQueryPageBo;
import com.shkj.wms.bo.BaseLocationPlcSaveOrUpdateBo;
import com.shkj.wms.bo.BaseLocationSaveOrUpdateBo;
import com.shkj.wms.config.ValidList;
import com.shkj.wms.domain.BaseLocationPlc;

import java.util.List;

/**
 * 系统货位与PLC货位关系
 *
 * @author zjx
 * @date 2023-05-06
 */
public interface IBaseLocationPlcService extends IService<BaseLocationPlc>{
    /**
     * 查询系统货位与PLC货位关系
     *
     * @param id 系统货位与PLC货位关系主键
     * @return 系统货位与PLC货位关系
     */
    public BaseLocationPlc selectBaseLocationPlcById(Long id);

    /**
     * 查询系统货位与PLC货位关系列表
     *
     * @param bo 系统货位与PLC货位关系查询条件
     * @return 系统货位与PLC货位关系集合
     */
    public List<BaseLocationPlc> selectBaseLocationPlcList(BaseLocationPlcQueryPageBo bo);

    /**
     * 新增系统货位与PLC货位关系
     *
     * @param baseLocationPlc 系统货位与PLC货位关系
     * @return 结果
     */
    public Result<Boolean> insertBaseLocationPlc(BaseLocationPlc baseLocationPlc);

    /**
     * 修改系统货位与PLC货位关系
     *
     * @param baseLocationPlc 系统货位与PLC货位关系
     * @return 结果
     */
    public Result<Boolean> updateBaseLocationPlc(BaseLocationPlc baseLocationPlc);


    /**
     * 新增或修改货位与Plc货位关系
     *
     * @param list
     * @return 结果
     */
    Result<Boolean> saveOrUpdateBaseLocationPlcs(ValidList<BaseLocationPlcSaveOrUpdateBo> list);

    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @return
     */
    Result<Boolean> deleteWithValidById(List<Long> ids);

}
