package com.op.wms.service.impl;

import java.util.List;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.wms.mapper.BaseProductMapper;
import com.op.wms.domain.BaseProduct;
import com.op.wms.service.IBaseProductService;

/**
 * 物料信息Service业务层处理
 * 
 * @author Open Platform
 * @date 2023-07-18
 */
@Service
public class BaseProductServiceImpl implements IBaseProductService {
	@Autowired
	private BaseProductMapper baseProductMapper;

	/**
	 * 查询物料信息
	 * 
	 * @param productId 物料信息主键
	 * @return 物料信息
	 */
	@Override
	@DS("#header.poolName")
	public BaseProduct selectBaseProductByProductId(String productId) {
		return baseProductMapper.selectBaseProductByProductId(productId);
	}

	/**
	 * 查询物料信息列表
	 * 
	 * @param baseProduct 物料信息
	 * @return 物料信息
	 */
	@Override
	@DS("#header.poolName")
	public List<BaseProduct> selectBaseProductList(BaseProduct baseProduct) {
		return baseProductMapper.selectBaseProductList(baseProduct);
	}

	/**
	 * 新增物料信息
	 * 
	 * @param baseProduct 物料信息
	 * @return 结果
	 */
	@Override
	@DS("#header.poolName")
	public int insertBaseProduct(BaseProduct baseProduct) {
		baseProduct.setCreateTime(DateUtils.getNowDate());
		baseProduct.setCreateBy(SecurityUtils.getUsername());
		return baseProductMapper.insertBaseProduct(baseProduct);
	}

	/**
	 * 修改物料信息
	 * 
	 * @param baseProduct 物料信息
	 * @return 结果
	 */
	@Override
	@DS("#header.poolName")
	public int updateBaseProduct(BaseProduct baseProduct) {
		baseProduct.setUpdateTime(DateUtils.getNowDate());
		baseProduct.setUpdateBy(SecurityUtils.getUsername());
		return baseProductMapper.updateBaseProduct(baseProduct);
	}

	/**
	 * 批量删除物料信息
	 * 
	 * @param productIds 需要删除的物料信息主键
	 * @return 结果
	 */
	@Override
	@DS("#header.poolName")
	public int deleteBaseProductByProductIds(String[] productIds) {
		return baseProductMapper.deleteBaseProductByProductIds(productIds);
	}

	/**
	 * 删除物料信息信息
	 * 
	 * @param productId 物料信息主键
	 * @return 结果
	 */
	@Override
	@DS("#header.poolName")
	public int deleteBaseProductByProductId(String productId) {
		return baseProductMapper.deleteBaseProductByProductId(productId);
	}
}
