package cn.iocoder.yudao.module.mes.service.wm.stocktaking.task; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.result.MesWmStockTakingTaskResultPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.result.MesWmStockTakingTaskResultSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskLineDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskResultDO; import java.math.BigDecimal; import java.util.List; /** * MES 盘点结果 Service 接口 * * @author 超级管理员 */ public interface MesWmStockTakingTaskResultService { /** * 分页查询盘点结果 * * @param pageReqVO 分页查询条件 * @return 盘点结果分页结果 */ PageResult getStockTakingTaskResultPage(MesWmStockTakingTaskResultPageReqVO pageReqVO); /** * 获得盘点结果 * * @param id 盘点结果编号 * @return 盘点结果 */ MesWmStockTakingTaskResultDO getStockTakingTaskResult(Long id); /** * 创建盘点结果 * * @param result 盘点结果 * @return 盘点结果编号 */ Long createStockTakingTaskResult(MesWmStockTakingTaskResultSaveReqVO result); /** * 更新盘点结果 * * @param result 盘点结果 */ void updateStockTakingTaskResult(MesWmStockTakingTaskResultSaveReqVO result); /** * 删除盘点结果 * * @param id 盘点结果编号 */ void deleteStockTakingTaskResult(Long id); /** * 根据任务编号删除盘点结果 * * @param taskId 任务编号 */ void deleteStockTakingTaskResultByTaskId(Long taskId); /** * 根据任务编号获取盘点结果列表 * * @param taskId 任务编号 * @return 盘点结果列表 */ List getStockTakingTaskResultListByTaskId(Long taskId); /** * Excel 导入场景同步盘点结果 * *

若盘点行已存在盘点结果则覆盖其实盘数量;否则按盘点行维度新建一条盘点结果, * 使纯导入的实盘数据也进入 {@code task_result},与人工/扫码录入口径一致,保证完成时差异核销有据可依。 * * @param line 盘点任务行(承载账面数量与库存维度) * @param takingQuantity 实盘数量 */ void upsertResultForImport(MesWmStockTakingTaskLineDO line, BigDecimal takingQuantity); }