3 天以前 b852254d90e7d1955db31db154193ec8ee84d8b3
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
package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
import jakarta.validation.Valid;
 
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Map;
 
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 
/**
 * MES 盘点方案 Service 接口
 *
 * @author 超级管理员
 */
public interface MesWmStockTakingPlanService {
 
    /**
     * 创建盘点方案
     *
     * @param createReqVO 创建信息
     * @return 盘点方案编号
     */
    Long createStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO createReqVO);
 
    /**
     * 更新盘点方案
     *
     * @param updateReqVO 更新信息
     */
    void updateStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO updateReqVO);
 
    /**
     * 删除盘点方案
     *
     * @param id 盘点方案编号
     */
    void deleteStockTakingPlan(Long id);
 
    /**
     * 更新盘点方案状态。
     *
     * @param id 盘点方案编号
     * @param status 状态
     */
    void updateStockTakingPlanStatus(Long id, Integer status);
 
    /**
     * 获得盘点方案
     *
     * @param id 盘点方案编号
     * @return 盘点方案
     */
    MesWmStockTakingPlanDO getStockTakingPlan(Long id);
 
    /**
     * 校验盘点方案是否存在
     *
     * @param id 盘点方案编号
     * @return 盘点方案
     */
    MesWmStockTakingPlanDO validateStockTakingPlanExists(Long id);
 
    /**
     * 校验盘点方案是否可编辑
     *
     * @param id 盘点方案编号
     * @return 盘点方案
     */
    MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id);
 
    /**
     * 校验盘点方案存在且已启用
     *
     * @param id 盘点方案编号
     * @return 盘点方案
     */
    MesWmStockTakingPlanDO validateStockTakingPlanEnabled(Long id);
 
    /**
     * 获得盘点方案列表。
     *
     * @param ids 盘点方案编号集合
     * @return 盘点方案列表
     */
    List<MesWmStockTakingPlanDO> getStockTakingPlanList(Collection<Long> ids);
 
    /**
     * 获得盘点方案 Map
     *
     * @param ids 盘点方案编号集合
     * @return 盘点方案 Map
     */
    default Map<Long, MesWmStockTakingPlanDO> getStockTakingPlanMap(Collection<Long> ids) {
        return convertMap(getStockTakingPlanList(ids), MesWmStockTakingPlanDO::getId);
    }
 
    /**
     * 分页查询盘点方案
     *
     * @param pageReqVO 分页查询条件
     * @return 盘点方案分页结果
     */
    PageResult<MesWmStockTakingPlanDO> getStockTakingPlanPage(MesWmStockTakingPlanPageReqVO pageReqVO);
 
    /**
     * 获取启用且开启定期自动生成的盘点方案列表
     *
     * <p>供后台定时任务扫描:按各方案配置的 cron 周期自动创建盘点任务。
     *
     * @return 盘点方案列表
     */
    List<MesWmStockTakingPlanDO> getEnableAutoGeneratePlanList();
 
    /**
     * 更新盘点方案上次自动生成时间
     *
     * @param id 盘点方案编号
     * @param time 上次自动生成时间
     */
    void updateStockTakingPlanLastGenerateTime(Long id, LocalDateTime time);
 
}