123
wanshenmean
2025-04-12 7d8f716f4bead12d27b54949846fc38ba993335b
123
已修改1个文件
已添加1个文件
131 ■■■■■ 文件已修改
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/MESAPIInvoke.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/MESAPIInvoke.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
using StackExchange.Profiling.Internal;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_Tasks
{
    public class MESAPIInvoke
    {
        // ä½¿ç”¨é™æ€HttpClient实例
        private static readonly HttpClient _client = new HttpClient
        {
            BaseAddress = new Uri("http://192.168.12.212:9003/api/WMS/"),
            DefaultRequestHeaders =
            {
                Accept = { new MediaTypeWithQualityHeaderValue("application/json") },
                UserAgent = { new ProductInfoHeaderValue("MESClient", "1.0") }
            }
        };
        /// <summary>
        /// çƒ˜ç®±ç‰©æ–™ç»‘定
        /// </summary>
        /// <param name="Devid"></param>
        /// <param name="Materials"></param>
        /// <returns></returns>
        public static MESback BakingFeedingBinding(string devId, List<BakingClass> materials)
        {
            var request = new BakingFeedingClass
            {
                Devid = devId,
                Materials = materials
            };
            var response =  _client.PostAsJsonAsync("BakingFeedingBinding", request).Result;
            response.EnsureSuccessStatusCode();
            return response.Content.ReadFromJsonAsync<MESback>().Result;
            //using (HttpClient client = new HttpClient())
            //{
            //    client.BaseAddress = new Uri("http://192.168.12.212:9003/api/WMS/BakingFeedingBinding");
            //    client.DefaultRequestHeaders.Accept.Clear();
            //    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            //    client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
            //    HttpResponseMessage response = client.PostAsJsonAsync("BakingFeedingBinding", req).Result;
            //    if (response.IsSuccessStatusCode)
            //    {
            //        MESback back = response.Content.ReadAsStringAsync().Result.FromJson<MESback>();
            //        return back;
            //    }
            //    else
            //    {
            //        throw new Exception("调用MESAPI失败!");
            //    }
            //}
        }
    }
    public class MESback
    {
        /// <summary>
        /// 0:成功,大于0:失败
        /// </summary>
        public int Code { get; set; }
        /// <summary>
        /// åé¦ˆä¿¡æ¯
        /// </summary>
        public string Message { get; set; }
        /// <summary>
        /// ç‰©æ–™ç±»åž‹
        /// </summary>
        public string MaterialType { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰¹å·ï¼Œå†™å…¥PLC
        /// </summary>
        public string BarCode { get; set; }
        public string ProcessName { get; set; }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/UpdateTaskAGV.cs
@@ -1,4 +1,5 @@
using WIDESEAWCS_Common.AGVEnum;
using Newtonsoft.Json;
using WIDESEAWCS_Common.AGVEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_Model.Models;
@@ -176,6 +177,32 @@
                                plcClient.Communicator.Write(taskFbInteractive2, 1);
                                //throw new Exception("任务状态更改为4终点已完成失败,任务ID:" + agvTask.agv_tasknum + DateTime.Now + ",任务状态不是终点执行中!");
                            }
                            if (agvTask.TargetAddress.Contains("HXWLX"))
                            {
                                if (agvTask.SourceAddress.Contains("KPHLX"))
                                {
                                    // ç©ºç›˜çº¿è¿›çƒ˜ç®±
                                    // TODO: è°ƒç”¨åˆ›æ™ºæŽ¥å£èŽ·å–å®Œæ•´æ¡ç 
                                    var materials = new List<BakingClass>
                                    {
                                            new BakingClass { BarCode = "1", MaterialType = "1" },
                                    };
                                    MESback WMSbackresult = MESAPIInvoke.BakingFeedingBinding(agvTask.TargetAddress, materials);
                                    if (WMSbackresult.Code > 0) { new Exception(WMSbackresult.Message); return; }
                                }
                                else
                                {
                                    // æå‡æœºè¿›çƒ˜ç®±
                                    // TODO: è°ƒç”¨åˆ›æ™ºæŽ¥å£èŽ·å–å®Œæ•´æ¡ç 
                                    var materials = new List<BakingClass>
                                    {
                                            new BakingClass { BarCode = "1", MaterialType = "1" },
                                    };
                                    MESback WMSbackresult = MESAPIInvoke.BakingFeedingBinding(agvTask.TargetAddress, materials);
                                    if (WMSbackresult.Code > 0) { new Exception(WMSbackresult.Message); return; }
                                }
                            }
                            //agvtask_HtyRepository.AddTaskHistory(agvTask, OperateType.Finished.ToString());
                            _taskRepository.DeleteData(agvTask);
@@ -385,4 +412,17 @@
            }
        }
    }
    public class BakingFeedingClass
    {
        public string Devid { get; set; }
        public List<BakingClass> Materials { get; set; }
    }
    public class BakingClass
    {
        public string MaterialType { get; set; }
        public string BarCode { get; set; }
    }
}