杨前锦
2025-06-04 d44e3abf0d51cfea1ed7df510974d69458cf516d
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HH.WCS.Mobox3.YNJT_PT.util;
using Newtonsoft.Json;
 
namespace HH.WCS.Mobox3.YNJT_PT.dispatch
{
    public class WCSDispatch
    {
        private static readonly HttpHelper apiHelper = new HttpHelper();
        private static readonly string baseUrl = "http://192.168.1.99:2000/";
 
        /// <summary>
        /// WMS向WCS获取设备状态(堆垛机)
        /// </summary>
        /// <param name="roadway"></param>
        /// <returns></returns>
        public static List<StackerState> getStackerState(int roadway)
        {
            var msg = "";
            List<StackerState> stackerStates = new List<StackerState>();
            var data = new StackerStateModel() { req_no = Guid.NewGuid().ToString("D"), roadway = roadway.ToString() };
            var request = JsonConvert.SerializeObject(data);
            var response = apiHelper.Post(baseUrl + "api/StackerState", request);
            msg = $"WMS向WCS获取设备状态(堆垛机)[StackerState] request={request} response={response}";
            LogHelper.Info(msg, "WCS");
            if (response != "")
            {
                try
                {
                    var dataResult = JsonConvert.DeserializeObject<StackerStateResponseData>(response);
                    if (dataResult.result_flag == 0)
                    {
                        stackerStates = dataResult.data;
                    }
                    else 
                    {
                        LogHelper.Info($"WMS向WCS获取设备状态(堆垛机)失败,WCS反馈错误信息:{dataResult.err_msg}", "WCS");
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Info($"WMS向WCS获取设备状态(堆垛机)错误,错误原因:{ex.Message}", "WCS");
                }
            }
            else
            {
                msg = "[StackerState]WMS向WCS获取设备状态(堆垛机)失败";
                LogHelper.Info(msg, "WCS");
            }
            return stackerStates;
        }
 
        public class StackerStateResponseData 
        {
            public int result_flag { get; set; }
            public string err_msg { get; set; }
            public List<StackerState> data { get; set; }
        }
        public class StackerState 
        {
            public string roadway { get; set; }
            public string roadway_state { get; set; }  // 堆垛机状态 1=空闲,2=执行中,3=报警,0=不可用
        }
 
        public class StackerStateModel
        {
            public string req_no { get; set; }
            public string roadway { get; set; }
        }
 
    }
}