package net.lab1024.sa.admin.module.business.wms.receive.asnDetail.service;

import java.util.*;

import net.lab1024.sa.admin.module.business.wms.receive.asnDetail.domain.form.AsnDetailAddForm;
import net.lab1024.sa.admin.module.business.wms.receive.asnDetail.domain.form.AsnDetailUpdateForm;
import net.lab1024.sa.base.common.domain.ResponseDTO;

/**
 * 入库明细 Service
 *
 * @author 霍锦
 * @since 2025-03-26 15:16:28
 * copyright 友仓
 */
public interface AsnDetailService {

    /**
     * 添加
     *
     * @param addForm 添加表单
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> add(AsnDetailAddForm addForm);

    /**
     * 更新
     *
     * @param updateForm 更新表单
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> update(AsnDetailUpdateForm updateForm);

    /**
     * 批量删除
     *
     * @param idList id集合
     * @return ResponseDTO<String>
     */

    ResponseDTO<String> batchDelete(List<Long> idList);

    /**
     * 单个删除
     *
     * @param asnDetailId id
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> delete(Long asnDetailId);

    /**
     * 刷新入库单
     *
     * @param asnId 入库单id
     */
    void refreshAsn(Long asnId);
}
