Files
klp-oa/klp-wms/src/main/java/com/klp/service/IWmsCostCoilDailyService.java
2026-01-27 16:54:46 +08:00

167 lines
5.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.service;
import com.klp.domain.vo.WmsCostCoilDailyVo;
import com.klp.domain.bo.WmsCostCoilDailyBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.klp.domain.vo.WmsCostCoilDailyVo;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 钢卷日成本记录表Service接口
*
* @author klp
* @date 2025-11-25
*/
public interface IWmsCostCoilDailyService {
/**
* 查询钢卷日成本记录表
*/
WmsCostCoilDailyVo queryById(Long costId);
/**
* 查询钢卷日成本记录表列表
*/
TableDataInfo<WmsCostCoilDailyVo> queryPageList(WmsCostCoilDailyBo bo, PageQuery pageQuery);
/**
* 查询钢卷日成本记录表列表
*/
List<WmsCostCoilDailyVo> queryList(WmsCostCoilDailyBo bo);
/**
* 新增钢卷日成本记录表
*/
Boolean insertByBo(WmsCostCoilDailyBo bo);
/**
* 修改钢卷日成本记录表
*/
Boolean updateByBo(WmsCostCoilDailyBo bo);
/**
* 校验并批量删除钢卷日成本记录表信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 实时计算指定钢卷的成本
*
* @param coilId 钢卷ID可选不传则计算所有现存钢卷
* @param calcTime 计算时间点(可选,默认当前时间)
* @return 成本计算结果
*/
Map<String, Object> calculateCost(Long coilId, java.time.LocalDateTime calcTime);
/**
* 批量计算多个钢卷的成本
*
* @param coilIds 钢卷ID列表
* @param calcTime 计算时间点(可选,默认当前时间)
* @return 成本计算结果列表,每个元素包含一个钢卷的成本信息
*/
List<Map<String, Object>> batchCalculateCost(List<Long> coilIds, java.time.LocalDateTime calcTime);
/**
* 批量计算钢卷成本(定时任务使用)
*
* @param calcDate 计算日期(前一日)
* @return 计算成功的数量
*/
int calculateDailyCost(LocalDate calcDate);
/**
* 查询成本统计报表
*
* @param startDate 开始日期
* @param endDate 结束日期
* @param groupBy 分组维度warehouse/itemType/materialType
* @param warehouseId 库区ID可选
* @return 统计结果
*/
Map<String, Object> queryCostSummary(LocalDate startDate, LocalDate endDate, String groupBy, Long warehouseId);
/**
* 查询成本趋势分析
*
* @param startDate 开始日期
* @param endDate 结束日期
* @return 趋势数据
*/
List<Map<String, Object>> queryCostTrend(LocalDate startDate, LocalDate endDate);
/**
* 按入场钢卷号维度计算成本
* 同一个入场钢卷号可能被分卷成多个钢卷,需要汇总计算
* 未发货的:计算到当日;已发货的:计算到发货前一天
*
* @param enterCoilNo 入场钢卷号
* @param calcDate 计算日期(可选,默认当前日期)
* @return 成本计算结果(包含各子卷明细和汇总)
*/
Map<String, Object> calculateCostByEnterCoilNo(String enterCoilNo, LocalDate calcDate);
/**
* 按当前钢卷号维度计算成本(单卷详情)
*
* @param currentCoilNo 当前钢卷号
* @param calcDate 计算日期(可选,默认当前日期)
* @return 单卷成本详情
*/
Map<String, Object> calculateCostByCurrentCoilNo(String currentCoilNo, LocalDate calcDate);
/**
* 批量按入场钢卷号维度计算成本(定时任务使用)
* 按入场钢卷号分组,计算每个入场钢卷号的总成本
*
* @param calcDate 计算日期(可选,默认前一日)
* @return 计算成功的入场钢卷号数量
*/
int calculateDailyCostByEnterCoilNo(LocalDate calcDate);
/**
* 现算成本检索(基于 wms_material_coil
*
* @param enterCoilNo 入场钢卷号(支持前缀匹配)
* @param calcDate 计算日期(可选,默认当前日期)
* @param pageNum 页码
* @param pageSize 每页条数
* @return 汇总与分页明细
*/
Map<String, Object> searchMaterialCost(String enterCoilNo, LocalDate calcDate, int pageNum, int pageSize);
/**
* 查询按入场钢卷号统计的成本报表
*
* @param startDate 开始日期
* @param endDate 结束日期
* @param enterCoilNo 入场钢卷号(可选,用于精确查询)
* @return 统计结果列表
*/
List<Map<String, Object>> queryCostByEnterCoilNo(LocalDate startDate, LocalDate endDate, String enterCoilNo);
/**
* 成本模块首页概览数据
* 统计当前「现存且未发货」钢卷的总成本、总净重、总毛重以及平均在库天数
*
* @return 概览数据totalCost、totalNetWeight、totalGrossWeight、avgStorageDays、totalCoils
*/
Map<String, Object> queryOverview();
/**
* 囤积成本页数据(后台统一计算)
*
* @param enterCoilNo 入场钢卷号(可选)
* @param currentCoilNo 当前钢卷号(可选)
* @param pageQuery 分页参数
* @return rows+total+summary 结果
*/
Map<String, Object> queryStockpileCostList(String enterCoilNo, String currentCoilNo, PageQuery pageQuery);
}