package com.zhyc.module.dairyProducts.mapper;

import com.zhyc.module.dairyProducts.domain.NpMilkInOutStore;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface NpMilkInOutStoreMapper {
    /**
     * 动态列查询
     * 修改：使用 @Param("queryParams") 传递实体，包含 params.dataScope
     */
    List<Map<String,Object>> selectWithColumns(
            @Param("queryParams") NpMilkInOutStore queryParams,
            @Param("feedSources") List<String> feedSources,
            @Param("saleDestinations") List<String> saleDestinations
    );

    /**
     * 插入主表
     */
    int insertStore(NpMilkInOutStore store);

    /**
     * 插入饲喂子表
     */
    void insertFeedRecord(
            @Param("storeId") Integer storeId,
            @Param("source") String source,
            @Param("amount") java.math.BigDecimal amount,
            @Param("userId") Long userId,
            @Param("deptId") Long deptId
    );

    /**
     * 插入销售子表
     */
    void insertSaleRecord(
            @Param("storeId") Integer storeId,
            @Param("destination") String dest,
            @Param("amount") java.math.BigDecimal amount,
            @Param("userId") Long userId,
            @Param("deptId") Long deptId
    );

    /**
     * 获取饲喂来源列表（用于动态列头）
     */
    List<String> selectFeedSources();

    /**
     * 获取销售去向列表（用于动态列头）
     */
    List<String> selectSaleDestinations();
}