package com.klp.mapper; import com.klp.common.core.mapper.BaseMapperPlus; import com.klp.domain.WmsCostCoilDaily; import com.klp.domain.vo.WmsCostCoilDailyVo; import org.apache.ibatis.annotations.Param; import java.time.LocalDate; import java.util.List; import java.util.Map; /** * 钢卷日成本记录表Mapper接口 * * @author klp * @date 2025-11-25 */ public interface WmsCostCoilDailyMapper extends BaseMapperPlus { /** * 查询成本统计汇总 * * @param startDate 开始日期 * @param endDate 结束日期 * @param warehouseId 库区ID(可选) * @param itemType 物品类型(可选) * @param materialType 材料类型(可选) * @return 统计结果 */ Map selectCostSummary(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("warehouseId") Long warehouseId, @Param("itemType") String itemType, @Param("materialType") String materialType); /** * 按库区统计成本 * * @param startDate 开始日期 * @param endDate 结束日期 * @return 统计结果列表 */ List> selectCostByWarehouse(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); /** * 按物品类型统计成本 * * @param startDate 开始日期 * @param endDate 结束日期 * @return 统计结果列表 */ List> selectCostByItemType(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); /** * 检查指定日期和钢卷的成本记录是否存在 * * @param coilId 钢卷ID * @param calcDate 计算日期 * @return 记录数量 */ int countByCoilIdAndDate(@Param("coilId") Long coilId, @Param("calcDate") LocalDate calcDate); /** * 按入场钢卷号统计成本 * * @param startDate 开始日期 * @param endDate 结束日期 * @param enterCoilNo 入场钢卷号(可选) * @return 统计结果列表 */ List> selectCostByEnterCoilNo(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("enterCoilNo") String enterCoilNo); /** * 删除指定日期的成本记录 * * @param calcDate 计算日期 * @return 删除数量 */ int deleteByCalcDate(@Param("calcDate") LocalDate calcDate); /** * 囤积成本(按入场钢卷号聚合)列表查询 * * @param calcDate 计算日期 * @param enterCoilNo 入场钢卷号(可选,支持精确匹配或前缀匹配,可在 SQL 中自行处理) * @param offset 分页偏移量 * @param pageSize 分页大小 * @return 聚合后的列表 */ List> selectStockpileByEnterCoilNo(@Param("calcDate") LocalDate calcDate, @Param("enterCoilNo") String enterCoilNo, @Param("offset") int offset, @Param("pageSize") int pageSize); /** * 囤积成本(按入场钢卷号聚合)列表总数 * * @param calcDate 计算日期 * @param enterCoilNo 入场钢卷号(可选) * @return 入场钢卷号分组条数 */ long countStockpileByEnterCoilNo(@Param("calcDate") LocalDate calcDate, @Param("enterCoilNo") String enterCoilNo); /** * 囤积成本(按入场钢卷号聚合)汇总 * * @param calcDate 计算日期 * @param enterCoilNo 入场钢卷号(可选) * @return 汇总数据 */ Map selectStockpileSummaryByEnterCoilNo(@Param("calcDate") LocalDate calcDate, @Param("enterCoilNo") String enterCoilNo); /** * 首页概览:直接基于 wms_material_coil 现算当日成本 */ Map selectOverviewFromMaterialCoil(); /** * 成本趋势(按日汇总) */ List> selectCostTrend(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); /** * 成本检索(基于 wms_material_coil 实时计算)- 列表 */ List> selectMaterialCostCards(@Param("enterCoilNo") String enterCoilNo, @Param("calcDate") LocalDate calcDate, @Param("offset") int offset, @Param("pageSize") int pageSize); /** * 成本检索(基于 wms_material_coil 实时计算)- 总数 */ long countMaterialCostCards(@Param("enterCoilNo") String enterCoilNo, @Param("calcDate") LocalDate calcDate); /** * 成本检索(基于 wms_material_coil 实时计算)- 汇总 */ Map selectMaterialCostSummary(@Param("enterCoilNo") String enterCoilNo, @Param("calcDate") LocalDate calcDate); }