Files
klp-oa/klp-wms/src/main/java/com/klp/service/IWmsCostCoilDailyService.java

167 lines
5.3 KiB
Java
Raw Normal View History

2025-12-02 17:58:16 +08:00
package com.klp.service;
2025-12-03 10:32:06 +08:00
import com.klp.domain.vo.WmsCostCoilDailyVo;
import com.klp.domain.bo.WmsCostCoilDailyBo;
2025-12-02 17:58:16 +08:00
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
2025-12-03 10:32:06 +08:00
import com.klp.domain.vo.WmsCostCoilDailyVo;
2025-12-02 17:58:16 +08:00
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 钢卷日成本记录表Service接口
*
* @author klp
* @date 2025-11-25
*/
2025-12-03 10:32:06 +08:00
public interface IWmsCostCoilDailyService {
2025-12-02 17:58:16 +08:00
/**
* 查询钢卷日成本记录表
*/
2025-12-03 10:32:06 +08:00
WmsCostCoilDailyVo queryById(Long costId);
2025-12-02 17:58:16 +08:00
/**
* 查询钢卷日成本记录表列表
*/
2025-12-03 10:32:06 +08:00
TableDataInfo<WmsCostCoilDailyVo> queryPageList(WmsCostCoilDailyBo bo, PageQuery pageQuery);
2025-12-02 17:58:16 +08:00
/**
* 查询钢卷日成本记录表列表
*/
2025-12-03 10:32:06 +08:00
List<WmsCostCoilDailyVo> queryList(WmsCostCoilDailyBo bo);
2025-12-02 17:58:16 +08:00
/**
* 新增钢卷日成本记录表
*/
2025-12-03 10:32:06 +08:00
Boolean insertByBo(WmsCostCoilDailyBo bo);
2025-12-02 17:58:16 +08:00
/**
* 修改钢卷日成本记录表
*/
2025-12-03 10:32:06 +08:00
Boolean updateByBo(WmsCostCoilDailyBo bo);
2025-12-02 17:58:16 +08:00
/**
* 校验并批量删除钢卷日成本记录表信息
*/
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);
2026-01-27 16:54:46 +08:00
/**
* 按当前钢卷号维度计算成本单卷详情
*
* @param currentCoilNo 当前钢卷号
* @param calcDate 计算日期可选默认当前日期
* @return 单卷成本详情
*/
Map<String, Object> calculateCostByCurrentCoilNo(String currentCoilNo, LocalDate calcDate);
2025-12-02 17:58:16 +08:00
/**
* 批量按入场钢卷号维度计算成本定时任务使用
* 按入场钢卷号分组计算每个入场钢卷号的总成本
*
* @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 概览数据totalCosttotalNetWeighttotalGrossWeightavgStorageDaystotalCoils
*/
Map<String, Object> queryOverview();
/**
* 囤积成本页数据后台统一计算
*
* @param enterCoilNo 入场钢卷号可选
* @param currentCoilNo 当前钢卷号可选
* @param pageQuery 分页参数
* @return rows+total+summary 结果
*/
Map<String, Object> queryStockpileCostList(String enterCoilNo, String currentCoilNo, PageQuery pageQuery);
}