wangxinhui
2025-01-15 26807a70f3e2c7780ad82cbb12721ea0134a032e
AGV储位绑定重发
已修改4个文件
已添加1个文件
103 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/APIEnum/APIEnum.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvPodBerthAndMatDTO.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/APIEnum/APIEnum.cs
@@ -43,6 +43,11 @@
        /// WMS是否移库判断
        /// </summary>
        [Description("WMS是否移库判断")]
        WMSIsReloaction
        WMSIsReloaction,
        /// <summary>
        /// AGV储位绑定查询
        /// </summary>
        [Description("AGV储位绑定查询")]
        Agv_CSJPodBerthAndMat
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvPodBerthAndMatDTO.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.Agv
{
    public class AgvPodBerthAndMatDTO
    {
        /// <summary>
        /// è¯·æ±‚编号
        /// </summary>
        public string ReqCode { get; set; }
        /// <summary>
        /// è¯·æ±‚时间戳
        /// </summary>
        public string ReqTime { get; set; }
        /// <summary>
        /// å®¢æˆ·ç«¯ç¼–号
        /// </summary>
        public string ClientCode { get; set; }
        /// <summary>
        /// ä»¤ç‰Œå·
        /// </summary>
        public string TokenCode { get; set; }
        /// <summary>
        /// è´§æž¶ç¼–号
        /// </summary>
        public string PodCode { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰¹æ¬¡
        /// </summary>
        public string MaterialLot { get; set; }
        /// <summary>
        /// ä½ç½®ç¼–号
        /// </summary>
        public string PositionCode { get; set; }
        /// <summary>
        /// åŒºåŸŸç¼–号
        /// </summary>
        public string AreaCode { get; set; }
        /// <summary>
        /// åœ°å›¾ç®€ç§°
        /// </summary>
        public string MapShortName { get; set; }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -28,6 +28,7 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
@@ -227,5 +228,7 @@
        /// <param name="roadwayNos"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos);
        WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat);
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs
@@ -9,6 +9,7 @@
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.Agv;
namespace WIDESEAWCS_TaskInfoService
{
@@ -90,5 +91,30 @@
        {
            return new AgvResponseContent();
        }
        public WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == PodBerthAndMat.ToString())?.ApiAddress;
                if (string.IsNullOrEmpty(apiAddress))
                    return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置");
                string response = HttpHelper.Post(apiAddress, agvPodModel.Serialize());
                AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
                if (agvContent.Code == "0")
                {
                    content.OK(agvContent.Message);
                }
                else
                {
                    content.Error(agvContent.Message);
                }
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs
@@ -11,6 +11,7 @@
using WIDESEAWCS_Model.Models;
using static Dm.net.buffer.ByteArrayBuffer;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_DTO.Agv;
namespace WIDESEAWCS_Tasks
{
@@ -71,6 +72,24 @@
                    }
                }
                _taskService.UpdateData(newTasks);
                //出库绑定查询
                Dt_Task outBound = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.Exception.ObjToInt() && nameof(AGV_CSJJob).Contains(x.DeviceCode) && x.TaskType==TaskTypeEnum.Outbound.ObjToInt()).ToList().OrderBy(x => x.Grade).ThenBy(x=>x.CreateDate).First();
                if (outBound != null)
                {
                    AgvPodBerthAndMatDTO andMatDTO = new AgvPodBerthAndMatDTO()
                    {
                        ReqCode = Guid.NewGuid().ToString().Replace("-", ""),
                        PositionCode=outBound.TargetAddress
                    };
                    WebResponseContent content = _taskService.AgvPodBerthAndMat(andMatDTO);
                    if (content.Status)
                    {
                        outBound.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
                        outBound.ExceptionMessage = "";
                        //agvTask.Remark = content.Data.ObjToString();
                        _taskService.UpdateTask(outBound, TaskStatusEnum.AGV_Execute);
                    }
                }
            }
            catch (Exception ex)
            {