167 lines
5.3 KiB
Java
167 lines
5.3 KiB
Java
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);
|
||
}
|
||
|