package com.shkj.wms.service;

import com.shkj.common.core.domain.Result;
import com.shkj.wms.domain.SysSeqMana;
import com.shkj.wms.vo.SysSeqManaVo;
import com.shkj.wms.bo.SysSeqManaQueryBo;
import com.shkj.wms.bo.SysSeqManaAddBo;
import com.shkj.wms.bo.SysSeqManaEditBo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 号码管理Service接口
 *
 * @author lch
 * @date 2022-04-11
 */
public interface ISysSeqManaService extends IService<SysSeqMana> {
    /**
     * 查询单个
     *
     * @param id
     * @return
     */
    Result<SysSeqManaVo> queryById(Long id);

    /**
     * 查询列表
     *
     * @param bo
     * @return
     */
    List<SysSeqManaVo> queryList(SysSeqManaQueryBo bo);

    /**
     * 根据新增业务对象插入号码管理
     *
     * @param bo 号码管理新增业务对象
     * @return
     */
    Result<Boolean> insertByAddBo(SysSeqManaAddBo bo);

    /**
     * 根据编辑业务对象修改号码管理
     *
     * @param bo 号码管理编辑业务对象
     * @return
     */
    Result<Boolean> updateByEditBo(SysSeqManaEditBo bo);

    /**
     * 校验并删除数据
     *
     * @param ids     主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Result<Boolean> deleteWithValidById(List<Long> ids, Boolean isValid);

    /**
     * 生成号码
     *
     * @param seqCode
     * @param seqType
     * @param branchId
     * @return
     */
    Result<String> generatorCode(String seqCode, String seqType, Long branchId);


    /**
     * 新增或者修改号码
     *
     * @param bo
     * @return
     */
    Result<Boolean> saveOrUpdateSeqMana(List<SysSeqManaEditBo> bo);
}
