1
huangxiaoqiang
2025-10-23 82149871f30f4564d84272649352496a2ab0a38e
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using WIDESEA_Core.Enums;
using WIDESEA_DTO;
using WIDESEA_DTO.WMS;
 
namespace WIDESEA_IStorageTaskServices;
 
public interface IDt_TaskService : IService<Dt_Task>
{
    
    /// <summary>
    /// 根据任务号获取任务
    /// </summary>
    /// <param name="taskNum"></param>
    /// <returns></returns>
    Task<Dt_Task> GetByTaskNum(int taskNum);
 
    /// <summary>
    /// 堆垛机任务完成
    /// </summary>
    /// <param name="saveModel">任务数据合集</param>
    /// <returns>返回结果集</returns>
    abstract Task<WebResponseContent> CompleteOutboundTaskAsync(Dt_Task task, DtStockInfo stock);
 
    /// <summary>
    /// 移库任务完成
    /// </summary>
    /// <param name="saveModel">任务数据合集</param>
    /// <returns>返回结果集</returns>
    abstract Task<WebResponseContent> CompleteTransferTaskAsync(Dt_Task task, DtStockInfo stock);
 
    /// <summary>
    /// 任务完成
    /// </summary>
    /// <param name="saveModel"></param>
    /// <returns></returns>
    Task<WebResponseContent> CompleteAsync(int taskNum);
 
    /// <summary>
    /// 取消任务
    /// </summary>
    /// <param name="taskNum"></param>
    /// <returns></returns>
    WebResponseContent TaskCancel(int taskNum);
 
    /// <summary>
    /// 获取任务信息
    /// </summary>
    /// <returns></returns>
    WebResponseContent GetTaskInfo();
 
    /// <summary>
    /// 请求任务巷道
    /// </summary>
    /// <param name="position"></param>
    /// <param name="areaCode"></param>
    /// <param name="palletCode"></param>
    /// <param name="type"></param>
    /// <returns></returns>
    Task<WebResponseContent> RequestInboundTaskAsync(RequestTaskDto taskDto);
 
    /// <summary>
    /// 获取空货位
    /// </summary>
    /// <param name="roadWay"></param>
    /// <returns></returns>
    Task<DtLocationInfo> GetEmptyLocation(string roadWay);
 
    /// <summary>
    /// 获取AGV空货位
    /// </summary>
    /// <param name="AreaId"></param>
    /// <returns></returns>
 
    Task<DtLocationInfo> GetAGVEmptyCacheLocation(int AreaId, DtLocationInfo location);
 
    /// <summary>
    /// 请求任务货位
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<WebResponseContent> RequestLocationAsync(RequestTaskDto input);
 
    /// <summary>
    /// 请求托盘任务
    /// </summary>
    /// <param name="position">目标位置</param>
    /// <param name="tag">托盘类型(1:实盘,2:空盘)</param>
    /// <param name="areaCode">区域编码</param>
    /// <param name="roadways">巷道列表</param>
    /// <returns>返回结果集</returns>
    Task<Dt_Task> RequestOutboundTaskAsync(RequestTaskDto taskDto);
 
 
    /// <summary>
    /// 其他出库任务请求
    /// </summary>
    /// <param name="palletCode"></param>
    /// <returns></returns>
    Task<WebResponseContent> OtherOutBoundTaskAsync(string palletCode);
 
 
    /// <summary>
    /// 任务状态修改
    /// </summary>
    /// <param name="input">请求数据</param>
    /// <returns></returns>
    Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState);
 
    /// <summary>
    /// 请求跨楼层2任务
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Task<WebResponseContent> AcrossFloorTaskAsync(RequestAcrossFloorTaskDto taskDto);
 
    /// <summary>
    /// 请求跨楼层任务
    /// </summary>
    /// <param name="SourceAddress"></param>
    /// <param name="palletCode"></param>
    /// <param name="TargetAddress"></param>
    /// <returns></returns>
 
    Dt_Task RequestAcrossFloorTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, string palletCode);
 
 
    /// <summary>
    /// AGV请求搬运任务
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Dt_Task RequestAGVCarryTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, string palletCode);
 
 
 
    /// <summary>
    /// 堆垛机出库是否需要移库
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Task<WebResponseContent> StackerIsNeedRelocationAsync(RequestTaskDto taskDto);
 
    /// <summary>
    /// AGV出库是否需要移库
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Task<WebResponseContent> AGVIsNeedRelocationAsync(RequestTaskDto taskDto);
 
 
    Task<WebResponseContent> SendERPTaskCompletion(string palletCode);
 
    Task<WebResponseContent> SendWCSTask(List<WMSTaskDTO> taskDTO);
 
    (List<DtLocationStatusChangeRecord>, List<DtLocationInfo>) UpdateLocationStatus(DtLocationInfo location, LocationEnum locationStatus, int taskNum, int StatusChangeType);
 
    (List<DtLocationStatusChangeRecord>, List<DtLocationInfo>) UpdateLocationStatus(string locationCode, LocationEnum locationStatus, int taskNum, int StatusChangeType);
}