yanjinhui
2025-10-27 0cf29ba50d05efa7d8db3666aa865c45982bf5d8
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/EquipmentAlarmInforService.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
@@ -12,6 +13,7 @@
using WIDESEA_Core.Helper;
using WIDESEA_IWMsInfoServices;
using WIDESEA_Model.Models;
using static WIDESEA_DTO.SquareCabin.AlarmDto;
using static WIDESEA_DTO.SquareCabin.TowcsDto;
namespace WIDESEA_WMsInfoServices
@@ -22,122 +24,127 @@
        {
        }
        //public WebResponseContent getDeviceStatus(string? deviceCode)
        //{
        //    try
        //    {
        //        var url = "http://172.16.1.2:9357/cube/taskInfo/getDeviceStatus";
        //        // è°ƒç”¨WCS接口获取设备状态
        //        var result = HttpHelper.Get(url + (string.IsNullOrEmpty(deviceCode) ? "" : $"?deviceCode={deviceCode}"));
        //        var response = JsonConvert.DeserializeObject<TowcsResponse<DeviceStatusData>>(result);
        /// <summary>
        /// æŸ¥çœ‹ç«‹åº“小车报警信息
        /// </summary>
        /// <returns></returns>
        public WebResponseContent getDeviceStatus()
        {
            try
            {
                var url = "http://172.16.1.2:8080/cube/taskInfo/getDeviceStatus?token=wH5zdAUCv2BEHJIinmowyki8cdc5ge8fAwFDcYZs0bVldNgmORt0O0l4GJTDv1dglRdMxb9xDK5Qb3NJAqL1Li2GkfdVa3KnIkfrQZtsP7UXhMmUz6xEuztG6d5svAJO9HENLb8JWVqCfpO2EWV6ebo/g5tJ9x7kbwwAxvCBrWdiEJv09FvaRQ==  ";
                var result = HttpHelper.Get(url);
        //        // æ£€æŸ¥æŽ¥å£å“åº”是否成功
        //        if (response == null || response.code != "0")
        //        {
        //            return new WebResponseContent { Status = false, Message = $"WCS接口调用失败: {response?.msg}" };
        //        }
                var response = JsonConvert.DeserializeObject<AGVResponse<DeviceStatusData>>(result);
        //        var syncTime = DateTime.Now;
        //        var saveCount = 0;
        //        // å¤„理机器人设备数据
        //        if (response.data?.robot != null && response.data.robot.Any())
        //        {
        //            foreach (var robot in response.data.robot)
        //            {
        //                // æ ¹æ®è®¾å¤‡ç¼–码查询是否存在记录
        //                var existingRecord = BaseDal.QueryData(x => x.RobotCode == robot.robotCode).FirstOrDefault();
        //                if (existingRecord == null)
        //                {
        //                    // åˆ›å»ºæ–°è®°å½•
        //                    var newRecord = new Dt_EquipmentAlarmInfor
        //                    {
        //                        RobotName = robot.robotName,
        //                        RobotCode = robot.robotCode,
        //                        Status = robot.status,
        //                        SyncTime = syncTime,
        //                        CreateDate = syncTime,
        //                        Creater = "System"
        //                    };
        //                    BaseDal.AddData(newRecord);
        //                }
        //                else
        //                {
        //                    // æ›´æ–°çŽ°æœ‰è®°å½•
        //                    existingRecord.RobotName = robot.robotName;
        //                    existingRecord.Status = robot.status;
        //                    existingRecord.SyncTime = syncTime;
        //                    existingRecord.ModifyDate = syncTime;
        //                    existingRecord.Modifier = "System";
        //                    BaseDal.UpdateData(existingRecord);
        //                }
        //                saveCount++;
        //            }
        //        }
                // æ£€æŸ¥æŽ¥å£å“åº”是否成功
                if (response == null || response.code != "0")
                {
                    return new WebResponseContent { Status = false, Message = $"WCS接口调用失败: {response?.msg}" };
                }
        //        // å¤„理分拣台设备数据
        //        if (response.data?.sorters != null && response.data.sorters.Any())
        //        {
        //            foreach (var sorter in response.data.sorters)
        //            {
        //                // æ ¹æ®è®¾å¤‡ç¼–码查询是否存在记录
        //                var existingRecord = BaseDal.QueryData(x => x.RobotCode == sorter.sorterCode).FirstOrDefault();
                var syncTime = DateTime.Now;
                var saveCount = 0;
        //                if (existingRecord == null)
        //                {
        //                    // åˆ›å»ºæ–°è®°å½•
        //                    var newRecord = new Dt_EquipmentAlarmInfor
        //                    {
        //                        RobotName = sorter.sorterName,
        //                        RobotCode = sorter.sorterCode,
        //                        Status = sorter.status,
        //                        SyncTime = syncTime,
        //                        CreateDate = syncTime,
        //                        Creater = "System"
        //                    };
        //                    BaseDal.AddData(newRecord);
        //                }
        //                else
        //                {
        //                    // æ›´æ–°çŽ°æœ‰è®°å½•
        //                    existingRecord.RobotName = sorter.sorterName;
        //                    existingRecord.Status = sorter.status;
        //                    existingRecord.SyncTime = syncTime;
        //                    existingRecord.ModifyDate = syncTime;
        //                    existingRecord.Modifier = "System";
        //                    BaseDal.UpdateData(existingRecord);
        //                }
        //                saveCount++;
        //            }
        //        }
                // å¤„理机器人设备数据
                if (response.data?.robot != null && response.data.robot.Any())
                {
                    foreach (var robot in response.data.robot)
                    {
                        // æ ¹æ®è®¾å¤‡ç¼–码查询是否存在记录
                        var existingRecord = BaseDal.QueryData(x => x.RobotCode == robot.robotCode).FirstOrDefault();
        //        //// è¿”回状态统计信息
        //        //var stateStats = response.data?.stateStatistics;
        //        //var statsInfo = stateStats != null ?
        //        //    $"可用:{stateStats.enable}, å……电:{stateStats.charging}, ä¸å¯ç”¨:{stateStats.disabled}, é”™è¯¯:{stateStats.error}, ç¦»åº“:{stateStats.down}, å ç”¨:{stateStats.occupied}"
        //        //    : "无统计信息";
                        if (existingRecord == null)
                        {
                            // åˆ›å»ºæ–°è®°å½•
                            var newRecord = new Dt_EquipmentAlarmInfor
                            {
                                RobotName = robot.robotName,
                                RobotCode = robot.robotCode,
                                Status = robot.status,
                                SyncTime = syncTime,
                                CreateDate = syncTime,
                                Creater = "System"
                            };
                            BaseDal.AddData(newRecord);
                        }
                        else
                        {
                            // æ›´æ–°çŽ°æœ‰è®°å½•
                            existingRecord.RobotName = robot.robotName;
                            existingRecord.Status = robot.status;
                            existingRecord.SyncTime = syncTime;
                            existingRecord.ModifyDate = syncTime;
                            existingRecord.Modifier = "System";
                            BaseDal.UpdateData(existingRecord);
                        }
                        saveCount++;
                    }
                }
        //        return new WebResponseContent
        //        {
        //            Status = true,
        //            Message = $"同步成功,共处理 {saveCount} æ¡è®¾å¤‡è®°å½•。状态统计: {statsInfo}"
        //        };
        //    }
        //    catch (Exception ex)
        //    {
        //        // è®°å½•详细错误日志
        //        Console.WriteLine($"获取设备状态异常: {ex.Message}, StackTrace: {ex.StackTrace}");
                // å¤„理分拣台设备数据
                if (response.data?.sorters != null && response.data.sorters.Any())
                {
                    foreach (var sorter in response.data.sorters)
                    {
                        // æ ¹æ®è®¾å¤‡ç¼–码查询是否存在记录
                        var existingRecord = BaseDal.QueryData(x => x.RobotCode == sorter.sorterCode).FirstOrDefault();
        //        return new WebResponseContent
        //        {
        //            Status = false,
        //            Message = $"获取设备状态失败: {ex.Message}"
        //        };
        //    }
        //}
                        if (existingRecord == null)
                        {
                            // åˆ›å»ºæ–°è®°å½•
                            var newRecord = new Dt_EquipmentAlarmInfor
                            {
                                RobotName = sorter.sorterName,
                                RobotCode = sorter.sorterCode,
                                Status = sorter.status,
                                SyncTime = syncTime,
                                CreateDate = syncTime,
                                Creater = "System"
                            };
                            BaseDal.AddData(newRecord);
                        }
                        else
                        {
                            // æ›´æ–°çŽ°æœ‰è®°å½•
                            existingRecord.RobotName = sorter.sorterName;
                            existingRecord.Status = sorter.status;
                            existingRecord.SyncTime = syncTime;
                            existingRecord.ModifyDate = syncTime;
                            existingRecord.Modifier = "System";
                            BaseDal.UpdateData(existingRecord);
                        }
                        saveCount++;
                    }
                }
                //// è¿”回状态统计信息
                //var stateStats = response.data?.stateStatistics;
                //var statsInfo = stateStats != null ?
                //    $"可用:{stateStats.enable}, å……电:{stateStats.charging}, ä¸å¯ç”¨:{stateStats.disabled}, é”™è¯¯:{stateStats.error}, ç¦»åº“:{stateStats.down}, å ç”¨:{stateStats.occupied}"
                //    : "无统计信息";
                return new WebResponseContent
                {
                    Status = true,
                    Message = $"同步成功,共处理 {saveCount} æ¡è®¾å¤‡è®°å½•。"
                };
            }
            catch (Exception ex)
            {
                // è®°å½•详细错误日志
                Console.WriteLine($"获取设备状态异常: {ex.Message}, StackTrace: {ex.StackTrace}");
                return new WebResponseContent
                {
                    Status = false,
                    Message = $"获取设备状态失败: {ex.Message}"
                };
            }
        }
    }
}