1
zxx
2025-07-04 32a9985c4a3a326d4c30432374247cca5e172c93
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
using HH.WCS.XiaoMi.util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.XiaoMi.dispatch.HanAo;
 
namespace HH.WCS.XiaoMi.LISTA.dispatch
{
    public class RcsHelper
    {
        private static readonly HttpHelper apiHelper = new HttpHelper();
        private static readonly string baseUrl = Settings.HASeverUrl;
 
        /// <summary>
        /// 推送Ants订单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool CreateAntsOrder(AntsTaskModel model)
        {
            var msg = "";
            var result = true;
            var request = JsonConvert.SerializeObject(model);
            var response = apiHelper.Post(baseUrl + "/api/om/order", request);
            msg = $"[hanao-CreateAntsOrder] request={request} response={response}";
            Console.WriteLine(msg);
            LogHelper.Info("[hanao-CreateAntsOrder]" + msg);
            if (response != "")
            {
                try
                {
                    var dataResult = JsonConvert.DeserializeObject<RcsResult>(response);
                    if (dataResult.code == 0)
                    {
                        result = true;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            else
            {
                msg = "[hanao-CreateAntsOrder]创建订单失败";
                Console.WriteLine(msg);
            }
            LogHelper.Info(msg, "杭奥");
            return result;
        }
 
        /// <summary>
        /// 推送Picking订单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool CreatePickingOrder(PickingTaskModel model)
        {
            var msg = "";
            var result = true;
            var request = JsonConvert.SerializeObject(model);
            var response = apiHelper.Post(baseUrl + "/api/om/order", request);
            msg = $"[hanao-CreatePickingOrder] request={request} response={response}";
            Console.WriteLine(msg);
            if (response != "")
            {
                try
                {
                    var dataResult = JsonConvert.DeserializeObject<RcsResult>(response);
                    if (dataResult.code == 0)
                    {
                        result = true;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            else
            {
                msg = "[hanao-CreatePickingOrder]创建订单失败";
                Console.WriteLine(msg);
            }
            LogHelper.Info(msg, "杭奥");
            return result;
        }
 
        /// <summary>
        /// 删除订单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool CancelOrder(CancelModel model)
        {
            bool result = false;
            string msg = "";
            var request = JsonConvert.SerializeObject(model);
            var response = apiHelper.Post(baseUrl + ":9002/wcs-admin/api/cancel", request);
            msg = $"[hanao-CancelOrder] request={request};response={response}";
            Console.WriteLine(msg);
            if (response != "")
            {
                var dataResult = JsonConvert.DeserializeObject<HAResult>(response);
                if (dataResult.code == "0")
                {
                    result = true;
                }
            }
            else
            {
                msg = "[hanao-CancelOrder]取消订单失败";
                Console.WriteLine(msg);
            }
            LogHelper.Info(msg, "杭奥");
            return result;
        }
        
 
        /// <summary>
        /// 创建Ants点到点订单参数
        /// </summary>
        public class AntsTaskModel
        {
            /// <summary>
            /// 订单名
            /// </summary>
            public string order_name { get; set; }
            /// <summary>
            /// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序
            /// </summary>
            public int priority { get; set; }
            /// <summary>
            /// 当前时间
            /// </summary>
            public string dead_line { get; set; }
            /// <summary>
            /// 订单TS名字 
            /// </summary>
            public string ts_name { get; set; }
            /// <summary>
            /// TS订单参数
            /// </summary>
            //public AntsParasModel parameters { get; set; }
            public string parameters { get; set; }
 
            /// <summary>
            /// 订单的全局唯一ID
            /// </summary>
            public string uid { get; set; }
 
            /// <summary>
            /// WCS
            /// </summary>
            public string created_user { get; set; }
 
        }
        public class AntsParasModel
        {
            /// <summary>
            /// 起点库位名
            /// </summary>
            public string src { get; set; }
            /// <summary>
            /// 终点库位名
            /// </summary>
            public string dst { get; set; }
            /// <summary>
            /// 载具类型id,如无需区分载具,默认填-99
            /// </summary>
            public string carrier_type_id { get; set; }
            
        }
 
 
        /// <summary>
        /// 创建picking点到点订单参数
        /// </summary>
        public class PickingTaskModel
        {
            /// <summary>
            /// 订单名
            /// </summary>
            public string order_name { get; set; }
            /// <summary>
            /// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序
            /// </summary>
            public string priority { get; set; }
            /// <summary>
            /// 订单截止时间
            /// </summary>
            public string dead_line { get; set; }
            /// <summary>
            /// 订单参数
            /// </summary>
            public PickingParasModel parameters { get; set; }
 
            /// <summary>
            /// 订单TS名字
            /// </summary>
            public string ts_name { get; set; }
 
            /// <summary>
            /// 订单的全局唯一ID
            /// </summary>
            public string uid { get; set; }
 
            /// <summary>
            /// WCS
            /// </summary>
            public string created_user { get; set; }
 
            /// <summary>
            /// 订单ID
            /// </summary>
            public string order_id { get; set; }
            
        }
        public class PickingParasModel
        {
            /// <summary>
            /// 托盘名
            /// </summary>
            public string tote_id { get; set; }
            /// <summary>
            /// 任务类型 inbound | return | outbound | ic | empty | tally | move
            /// </summary>
            public string task_type { get; set; }
            /// <summary>
            /// 起始库位/区域
            /// </summary>
            public string src { get; set; }
            /// <summary>
            /// 目标库位/区域
            /// </summary>
            public string dst { get; set; }
 
            /// <summary>
            /// 托盘冷热度
            /// </summary>
            public string indicator { get; set; }
            /// <summary>
            /// 任务约束信息
            /// </summary>
            public string extra_info { get; set; }
 
        }
        /// <summary>
        /// 取消订单参数
        /// </summary>
        public class CancelModel
        {
            /// <summary>
            /// 
            /// </summary>
            public string order_id { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string order_command_type_id { get; set; }
            
        }
 
        /// <summary>
        /// WCS返回结果
        /// </summary>
        public class RcsResult
        {
            public string app_name { get; set; }
            public string version { get; set; }
            public int code { get; set; }
            public string msg { get; set; }
            public RcsData data { get; set; }
        }
        public class RcsData
        {
            public string in_order_id { get; set; }
        }
    }
}