1
xiazhengtongxue
2025-12-26 a2f06e43a6f4ed3c613aefbb8bc0ccf3dd30ff8f
1
已添加7个文件
已修改5个文件
232 ■■■■■ 文件已修改
项目代码/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/CodeChunks.db 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/CodeChunks.db-shm 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/CodeChunks.db-wal 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/SemanticSymbols.db 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/SemanticSymbols.db-shm 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/SemanticSymbols.db-wal 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_DTO/ConnectDTO.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/PTLAPIController.cs 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/RYB_PTL_API.dll 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/HostedService/WebSocketSetup.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_Server/Program.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/CodeChunks.db
Binary files differ
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/CodeChunks.db-shm
Binary files differ
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/CodeChunks.db-wal
Binary files differ
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/SemanticSymbols.db
Binary files differ
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/SemanticSymbols.db-shm
Binary files differ
ÏîÄ¿´úÂë/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.934.24903/SemanticSymbols.db-wal
Binary files differ
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_DTO/ConnectDTO.cs
@@ -11,14 +11,10 @@
        /// <summary>
        /// æŽ§åˆ¶å™¨IP地址
        /// </summary>
        public string sIp { get; set; }
        public string sIp { get; set; } = "11.2.30.252";
        /// <summary>
        /// ç«¯å£å·é»˜è®¤å€¼6020
        /// </summary>
        public int iPort { get; set; } = 6020;
        /// <summary>
        /// å¯é€‰çš„超时参数
        /// </summary>
        public int? iTimeOut { get; set; }
    }
}
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Controllers/PTLAPIController.cs
@@ -1,13 +1,11 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using RYB_PTL_API;
using System.Security.Policy;
using System.Collections.Generic;
using System.Linq;
using WIDESEAWCS_DTO;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_QuartzJob.Repository;
namespace WIDESEAWCS_Server.Controllers
{
@@ -16,70 +14,75 @@
    public class PTLAPIController : ControllerBase
    {
        private readonly ITaskService _taskService;
        //private bool _eventSubscribed = false;
        private bool _eventSubscribed = false;
        public PTLAPIController(ITaskService taskService)
        {
            _taskService = taskService;
            //SubscribeEvent();
            SubscribeEvent();
        }
        /// <summary>
        /// è®¢é˜…PTL事件
        /// </summary>
        //private void SubscribeEvent()
        //{
        //    if (!_eventSubscribed)
        //    {
        //        RYB_PTL.UserResultAvailable += RYB_PTL_UserResultAvailable;
        //        _eventSubscribed = true;
        //    }
        //}
        private void SubscribeEvent()
        {
            if (!_eventSubscribed)
            {
                RYB_PTL.UserResultAvailable += new RYB_PTL.UserResultAvailableEventHandler(RYB_PTL_UserResultAvailable);
                _eventSubscribed = true;
            }
        }
        /// <summary>
        /// å–消订阅PTL事件
        /// </summary>
        private void UnsubscribeEvent()
        {
            if (_eventSubscribed)
            {
                RYB_PTL.UserResultAvailable -= new RYB_PTL.UserResultAvailableEventHandler(RYB_PTL_UserResultAvailable);
                _eventSubscribed = false;
            }
        }
        /// <summary>
        /// PTL回调事件处理(只处理手拍事件)
        /// </summary>
        private void RYB_PTL_UserResultAvailable(RYB_PTL.RtnValueStruct rs)
        {
            try
            {
                if (rs.KeyCode == null)
                {
                    return;
                }
                // æž„建回调数据
                var pTLCallBackDTO = new PTLCallBackDTO
                {
                    sIp = rs.Ip,
                    sTagID = rs.Tagid,
                    sValue = rs.Number,
                    sKeyCode = rs.KeyCode,
                    sLocator = rs.Locator
                };
        ///// <summary>
        ///// å–消订阅PTL事件
        ///// </summary>
        //private void UnsubscribeEvent()
        //{
        //    if (_eventSubscribed)
        //    {
        //        RYB_PTL.UserResultAvailable -= RYB_PTL_UserResultAvailable;
        //        _eventSubscribed = false;
        //    }
        //}
                // æ ¹æ®ä¸šåŠ¡éœ€è¦æž„å»ºä»»åŠ¡ä¿¡æ¯
                var taskBackLight = new TaskBackLight()
                {
                    TagNo = "B1",
                    TagCode = pTLCallBackDTO.sLocator,
                };
        ///// <summary>
        ///// PTL回调事件处理
        ///// </summary>
        //private void RYB_PTL_UserResultAvailable(RYB_PTL.RtnValueStruct rs)
        //{
        //    try
        //    {
        //        var content = new EPLightContent();
        //        var pTLCallBackDTO = new PTLCallBackDTO
        //        {
        //            sIp = rs.Ip,
        //            sTagID = rs.Tagid,
        //            sValue = rs.Number,
        //            sKeyCode = rs.KeyCode,
        //            sLocator = rs.Locator
        //        };
        //        var taskBackLight = new TaskBackLight()
        //        {
        //            TagNo = "B1",
        //            TagCode = pTLCallBackDTO.sLocator,
        //        };
        //        // è°ƒç”¨æœåŠ¡å¤„ç†
        //        _taskService.WMSLightBack(new List<TaskBackLight> { taskBackLight });
        //    }
        //    catch (Exception ex)
        //    {
        //        // è®°å½•日志或处理异常
        //        Console.WriteLine($"处理PTL回调时出错: {ex.Message}");
        //    }
        //}
                // è°ƒç”¨æœåŠ¡å¤„ç†æ‰‹æ‹äº‹ä»¶
                _taskService.WMSLightBack(new List<TaskBackLight> { taskBackLight });
                UnsubscribeEvent();
            }
            catch (Exception ex)
            {
                // è®°å½•日志或处理异常
                Console.WriteLine($"处理PTL手拍回调时出错: {ex.Message}");
            }
        }
        /// <summary>
        /// æ’­ç§å¢™ä¸‹å‘(一期)
        /// </summary>
@@ -95,8 +98,6 @@
                    request.iNum,
                    request.iMode,
                    request.iColorIndex);
            }
            catch (Exception ex)
            {
@@ -104,8 +105,6 @@
            }
            return content;
        }
        /// <summary>
        /// å›žè°ƒä¸Šä¼ 
        /// </summary>
@@ -134,6 +133,7 @@
            }
            return content;
        }
        /// <summary>
        /// æ’­ç§å¢™åˆå§‹åŒ–(一期)
        /// </summary>
@@ -144,16 +144,11 @@
            EPLightContent content = new EPLightContent();
            try
            {
                bool isConnected;
                //RYB_PTL.UserResultAvailable += new RYB_PTL.UserResultAvailableEventHandler(RYB_PTL_UserResultAvailable);
                if (request.iTimeOut.HasValue)
                {
                    isConnected = RYB_PTL.RYB_PTL_Connect(request.sIp, request.iPort, request.iTimeOut.Value);
                }
                else
                {
                    isConnected = RYB_PTL.RYB_PTL_Connect(request.sIp, request.iPort);
                }
                bool isCfg = RYB_PTL.RYB_PTL_InitialConfiguration(new string[,] { { "11.2.30.252", "0001-0016" },{ "11.2.30.252", "1-16" } });
                bool isConnected = RYB_PTL.RYB_PTL_Connect(request.sIp, request.iPort);
            }
            catch (Exception ex)
            {
@@ -161,6 +156,7 @@
            }
            return content;
        }
        /// <summary>
        /// æ’­ç§å¢™ç»“束作业(一期)
        /// </summary>
@@ -179,13 +175,14 @@
            }
            return content;
        }
        ///// <summary>
        ///// èµ„源释放
        ///// </summary>
        //public void Dispose()
        //{
        //    UnsubscribeEvent();
        //}
    }
}
        /// <summary>
        /// èµ„源释放(标记为不暴露给Swagger)
        /// </summary>
        [ApiExplorerSettings(IgnoreApi = true)]
        public void Dispose()
        {
            UnsubscribeEvent();
        }
    }
}
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Controllers/RYB_PTL_API.dll
Binary files differ
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/HostedService/WebSocketSetup.cs
@@ -1,5 +1,8 @@
using HslCommunication.WebSocket;
using RYB_PTL_API;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO;
using WIDESEAWCS_DTO.TaskInfo;
namespace WIDESEAWCS_Server.HostedService
{
@@ -26,5 +29,50 @@
                });
            }
        }
        /// <summary>
        ///// è®¢é˜…PTL事件
        ///// </summary>
        //public static void SubscribeEvent(this IServiceCollection services)
        //{
        //    if (!_eventSubscribed)
        //    {
        //        RYB_PTL.UserResultAvailable += new RYB_PTL.UserResultAvailableEventHandler(RYB_PTL_UserResultAvailable);
        //        _eventSubscribed = true;
        //    }
        //}
        ///// <summary>
        ///// PTL回调事件处理(只处理手拍事件)
        ///// </summary>
        //public static void RYB_PTL_UserResultAvailable(RYB_PTL.RtnValueStruct rs)
        //{
        //    try
        //    {
        //        if (rs.KeyCode == null)
        //        {
        //            return;
        //        }
        //        // æž„建回调数据
        //        var pTLCallBackDTO = new PTLCallBackDTO
        //        {
        //            sIp = rs.Ip,
        //            sTagID = rs.Tagid,
        //            sValue = rs.Number,
        //            sKeyCode = rs.KeyCode,
        //            sLocator = rs.Locator
        //        };
        //        // æ ¹æ®ä¸šåŠ¡éœ€è¦æž„å»ºä»»åŠ¡ä¿¡æ¯
        //        var taskBackLight = new TaskBackLight()
        //        {
        //            TagNo = "B1",
        //            TagCode = pTLCallBackDTO.sLocator,
        //        };
        //    }
        //    catch (Exception ex)
        //    {
        //        // è®°å½•日志或处理异常
        //        Console.WriteLine($"处理PTL手拍回调时出错: {ex.Message}");
        //    }
        //}
    }
}
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Server/Program.cs
@@ -54,6 +54,8 @@
builder.Services.AddWebSocketSetup();
//builder.Services.SubscribeEvent(); // æ’­ç§å¢™è®¢é˜…
builder.Services.AddAutoMapperSetup();
builder.Services.AddCorsSetup();
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -334,13 +334,13 @@
                        {
                            operationResult = RYB_PTL.RYB_PTL_CloseDigit5(url, lightSendDTO.LOCATION);
                            // TODO: å…³é—­ç¯å…‰å›žè°ƒå¤„理
                            List<EPLightBackDTO> lightBackDTOs = new List<EPLightBackDTO>();
                            List<TaskBackLight> taskBackLights = lightBackDTOs.Select(x => new TaskBackLight()
                            {
                                TagNo = "B1",
                                TagCode = x.LOCATION,
                            }).ToList();
                            content = WMSLightBack(taskBackLights);
                            //List<EPLightBackDTO> lightBackDTOs = new List<EPLightBackDTO>();
                            //List<TaskBackLight> taskBackLights = lightSendDTOs.Select(x => new TaskBackLight()
                            //{
                            //    TagNo = "B1",
                            //    TagCode = x.LOCATION,
                            //}).ToList();
                            //content = WMSLightBack(taskBackLights);
                        }
                        // å¤„理显示灯光请求
                        else
@@ -361,7 +361,6 @@
                                lightType,
                                lightColor);
                        }
                        if (!operationResult)
                        {
                            allSuccess = false;
@@ -407,9 +406,9 @@
                            QUANTITY=taskSendLight.TagQunity,
                            LIGHTCOLOR=taskSendLight.Color switch
                            {
                                "Blue" => "1",
                                "Blue" => "4",
                                "Green" => "2",
                                "Red" => "4",
                                "Red" => "1",
                                _ => throw new Exception($"未找到颜色定义")
                            },
                            ORDERTYPE="1",
@@ -849,7 +848,7 @@
                    return content.Error($"未找到播种墙下发接口,请检查接口配置");
                }
                string request = JsonConvert.SerializeObject(lightSendDTOs, settings).ToUpper();
                //调用接口
                // è°ƒç”¨æŽ¥å£
                string response = HttpHelper.Post(url, request);
                EPLightContent lightContent = JsonConvert.DeserializeObject<EPLightContent>(response) ?? throw new Exception($"未接收到播种墙下发上报返回值");
                if (lightContent.Result != "0") throw new Exception($"播种墙下发错误,信息:{lightContent.Msg}");