huangxiaoqiang
19 小时以前 eaa7c0d999c6dd7901bf4f0de79b861eae38e978
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
using AngleSharp.Io;
using HslCommunication;
using Mapster;
using Newtonsoft.Json;
using SkiaSharp;
using System.Diagnostics.CodeAnalysis;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_DTO.AGV;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
 
namespace WIDESEAWCS_TaskInfoService
{
    public partial class TaskService
    {
        #region AGV接口
        private string GetAGVIPAddress(string baseIp, string name)
        {
            var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
            var wcsBasez = configz.Where(x => x.ConfigKey == baseIp).FirstOrDefault()?.ConfigValue;
            var address = configz.Where(x => x.ConfigKey == name).FirstOrDefault()?.ConfigValue;
            if (wcsBasez == null || address == null)
            {
                throw new InvalidOperationException("WMS IP 未配置");
            }
            return wcsBasez + address;
        }
 
        public async Task<WebResponseContent> SendAgvTask(string modelProcessCode,Dt_Task task)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                SendTask sendTask = new SendTask()
                {
                    modelProcessCode = modelProcessCode,
                    priority = 1,
                    fromSystem = "WMS",
                    orderId = task.TaskNum.ToString(),
                    orderDetail = new taskOrderDetail()
                    {
                        taskPath = $"{task.CurrentAddress},{task.NextAddress}",
                        shelfNumber = "",
                    }
                };
                var AgvSendTaskAddrss = GetAGVIPAddress(SysConfigKeyConst.AGVIP_BASE, SysConfigKeyConst.SendAGVTask);
                // 发送请求并等待响应
                var result = await HttpHelper.PostAsync(AgvSendTaskAddrss, sendTask.ToJsonString());
 
                var respone = JsonConvert.DeserializeObject<AgvRespone>(result.ToString());
 
                if (respone.code != 1000)
                {
                    content.Error(respone.desc);
                }
                content.OK("任务下发至AGV系统");
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
 
        #endregion
    }
}