package net.lab1024.sa.admin.module.business.wms.inventory.itemKey.service;

import java.util.List;

import net.lab1024.sa.admin.module.business.wms.inventory.itemKey.domain.entity.ItemKeyEntity;
import net.lab1024.sa.admin.module.business.wms.inventory.itemKey.manager.ItemKeyManager;
import net.lab1024.sa.admin.module.business.wms.inventory.itemKey.domain.form.ItemKeyAddForm;
import net.lab1024.sa.admin.module.business.wms.inventory.itemKey.domain.form.ItemKeyUpdateForm;
import net.lab1024.sa.base.common.code.UserErrorCode;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;

import jakarta.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;

/**
 * 物料属性 Service
 *
 * @Author 霍锦
 * @Date 2024-12-05 21:38:40
 * @Copyright 友仓
 */

public interface ItemKeyService {

    /**
     * 添加
     */
    ResponseDTO<String> add(ItemKeyAddForm addForm);

    /**
     * 更新
     */
    ResponseDTO<String> update(ItemKeyUpdateForm updateForm);

    /**
     * 批量删除
     */
    ResponseDTO<String> batchDelete(List<Long> idList);

    /**
     * 单个删除
     */
    ResponseDTO<String> delete(Long itemKeyId);

    /**
     * 单一创建itemKey
     *
     * @param orderNumber 工单号
     * @param itemId      物料
     * @param propC1      批次
     * @return ItemKeyEntity
     */
    ItemKeyEntity createItemKey(String orderNumber, Long itemId, String propC1);
}
