xiaoyi
3 天以前 abf1c0a35d85d38239ff5d2ed746a4e4b797c9d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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.line.MesWmStockTakingTaskLineImportExcelVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.line.MesWmStockTakingTaskLineImportRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.line.MesWmStockTakingTaskLinePageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.line.MesWmStockTakingTaskLineSaveReqVO;
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.MesWmStockTakingTaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskLineDO;
 
import java.math.BigDecimal;
import java.util.List;
 
/**
 * MES 盘点任务行 Service 接口
 *
 * @author 超级管理员
 */
public interface MesWmStockTakingTaskLineService {
 
    /**
     * 根据盘点方案生成盘点明细行
     *
     * @param task 盘点任务
     * @param isCreate 是否为创建操作(true-创建,false-更新时需先清理旧数据)
     */
    void generateStockTakingLines(MesWmStockTakingTaskDO task, boolean isCreate);
 
    /**
     * 分页查询盘点任务行
     *
     * @param pageReqVO 分页查询条件
     * @return 盘点任务行分页结果
     */
    PageResult<MesWmStockTakingTaskLineDO> getStockTakingTaskLinePage(MesWmStockTakingTaskLinePageReqVO pageReqVO);
 
    /**
     * 获得盘点任务行
     *
     * @param id 编号
     * @return 盘点任务行
     */
    MesWmStockTakingTaskLineDO getStockTakingTaskLine(Long id);
 
    /**
     * 创建盘点任务行
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createStockTakingTaskLine(MesWmStockTakingTaskLineSaveReqVO createReqVO);
 
    /**
     * 更新盘点任务行
     *
     * @param updateReqVO 更新信息
     */
    void updateStockTakingTaskLine(MesWmStockTakingTaskLineSaveReqVO updateReqVO);
 
    /**
     * 删除盘点任务行
     *
     * @param id 盘点任务行编号
     */
    void deleteStockTakingTaskLine(Long id);
 
    /**
     * 根据任务编号获取盘点任务行列表
     *
     * @param taskId 任务编号
     * @return 盘点任务行列表
     */
    List<MesWmStockTakingTaskLineDO> getStockTakingTaskLineListByTaskId(Long taskId);
 
    /**
     * 根据任务编号删除盘点任务行
     *
     * @param taskId 任务编号
     */
    void deleteStockTakingTaskLineByTaskId(Long taskId);
 
    /**
     * 从盘点结果创建盘点任务行
     *
     * 注意:当盘点结果没有对应的盘点清单行时,会自动创建一个新的盘点任务行
     *
     * @param createReqVO 盘点结果创建信息
     * @return 盘点任务行编号
     */
    Long createStockTakingTaskLine(MesWmStockTakingTaskResultSaveReqVO createReqVO);
 
    /**
     * 根据 taskId + itemId + areaId 查询盘点任务行
     *
     * @param taskId 盘点任务编号
     * @param itemId 物料编号
     * @param areaId 库位编号
     * @return 盘点任务行
     */
    MesWmStockTakingTaskLineDO getStockTakingTaskLine(Long taskId, Long itemId, Long areaId);
 
    /**
     * 校验盘点任务行存在
     *
     * @param id 盘点任务行编号
     * @return 盘点任务行
     */
    MesWmStockTakingTaskLineDO validateStockTakingTaskLineExists(Long id);
 
    /**
     * 更新盘点任务行的盘点数量
     *
     * @param id 盘点任务行编号
     * @param takingQuantity 盘点数量(增量)
     */
    void updateStockTakingTaskLineTakingQuantity(Long id, BigDecimal takingQuantity);
 
    /**
     * Excel 导入实盘数量
     *
     * <p>按 物料编码 + 批次号 匹配盘点任务行,写入实盘数量。
     *
     * @param taskId 盘点任务编号
     * @param list   导入数据
     * @return 导入结果
     */
    MesWmStockTakingTaskLineImportRespVO importTakingQuantity(Long taskId,
                                                              List<MesWmStockTakingTaskLineImportExcelVO> list);
 
}