package com.klp.service; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import java.util.Collection; import java.util.List; import java.util.Map; /** * 钢卷物料表Service接口 * * @author Joshi * @date 2025-07-18 */ public interface IWmsMaterialCoilService { /** * 查询钢卷物料表 */ WmsMaterialCoilVo queryById(Long coilId); /** * 查询钢卷物料表列表 */ TableDataInfo queryPageList(WmsMaterialCoilBo bo, PageQuery pageQuery); /** * 查询钢卷物料表列表 */ List queryList(WmsMaterialCoilBo bo); /** * 新增钢卷物料表 */ Boolean insertByBo(WmsMaterialCoilBo bo); /** * 修改钢卷物料表 * 如果newCoils不为空,则进行批量更新(分卷/合卷) * 如果newCoils为空,则进行单个更新 */ Boolean updateByBo(WmsMaterialCoilBo bo); /** * 简单更新钢卷物料表 * 直接更新属性内容,不进行历史记录处理 */ Boolean updateSimple(WmsMaterialCoilBo bo); /** * 校验并批量删除钢卷物料表信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); /** * 钢卷溯源查询 * 根据入场钢卷号查询二维码,解析content中的steps,然后根据steps中的钢卷号反向查询数据库 * * @param enterCoilNo 入场钢卷号 * @param currentCoilNo 当前钢卷号(可选,用于查询特定子钢卷) * @return 溯源结果(包含二维码信息和数据库记录) */ Map queryTrace(String enterCoilNo, String currentCoilNo); /** * 查询各个库区中不同类型的钢卷分布情况 * 按库区分组,统计每种物品类型和物品ID的钢卷数量和重量 * * @param itemType 物品类型(可选) * @param itemId 物品ID(可选) * @return 分布情况列表,包含库区信息、物品类型、物品ID、数量、重量等 */ List getDistributionByWarehouse(String itemType, Long itemId); /** * 查询不同类型的钢卷在不同库区的分布情况 * 按物品类型和物品ID分组,统计每个库区的钢卷数量和重量 * * @param itemType 物品类型(可选) * @param itemId 物品ID(可选) * @return 分布情况列表,包含物品类型、物品ID、库区信息、数量、重量等 */ List getDistributionByItemType(String itemType, Long itemId); }