成本模块

This commit is contained in:
2025-12-02 17:58:16 +08:00
parent be91905508
commit 4b9cce2777
22 changed files with 4808 additions and 3 deletions

View File

@@ -0,0 +1,156 @@
package com.klp.service;
import com.klp.domain.vo.CostCoilDailyVo;
import com.klp.domain.bo.CostCoilDailyBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
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 ICostCoilDailyService {
/**
* 查询钢卷日成本记录表
*/
CostCoilDailyVo queryById(Long costId);
/**
* 查询钢卷日成本记录表列表
*/
TableDataInfo<CostCoilDailyVo> queryPageList(CostCoilDailyBo bo, PageQuery pageQuery);
/**
* 查询钢卷日成本记录表列表
*/
List<CostCoilDailyVo> queryList(CostCoilDailyBo bo);
/**
* 新增钢卷日成本记录表
*/
Boolean insertByBo(CostCoilDailyBo bo);
/**
* 修改钢卷日成本记录表
*/
Boolean updateByBo(CostCoilDailyBo 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 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);
}