xiaojiao
2 天以前 9376389dbf19d202f766a4fe47cf80dfe4db4f42
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Tasks/TaskAcquisition/TaskAcquisition_Back1_Job.cs
@@ -11,6 +11,7 @@
using WIDESEAWCS_Common.StationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.PDA;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
@@ -58,32 +59,27 @@
                //string Region = "后底板1";
                //ModbusTcp modbusTcp = new ModbusTcp(ip, port, Region);
                //modbusTcp.Connect();
                Baseconversion baseconversion = new Baseconversion();
                Dictionary<int, int> Signal = new Dictionary<int, int>() { [10] = 2, [30] = 3, [50] = 4, [70] = 5 };
                Dictionary<int, int> FeedingPoint = new Dictionary<int, int>() { [10] = 2001, [30] = 2002, [50] = 2003, [70] = 2004 }; // å«æ–™çš„点位 ç»ˆç‚¹ä½ç½®
                // Dictionary<int, int> Signal = new Dictionary<int, int>() { [10] = 2, [30] = 3, [50] = 4, [70] = 5 };
                // Dictionary<int, int> FeedingPoint = new Dictionary<int, int>() { [10] = 2001, [30] = 2002, [50] = 2003, [70] = 2004 }; // å«æ–™çš„点位 ç»ˆç‚¹ä½ç½®
                Baseconversion baseconversion = new Baseconversion();
                try
                {
                    for (int i = 10; i < 90; i += 20)
                    {
                        byte[] SignalNumber = device.Communicator.Read(Signal[i].ToString(), 1); // ä¿¡å· 1:叫料 2:拉出空框
                    List<Dt_StationManager> dt_StationManagers = _stationManagerRepository.QueryData(x =>
                            x.StationStatus == ((int)StationEnum.Enable).ToString()
                            && x.StationArea == ((int)StationEnum.Rearbaseplate1).ToString()
                            && x.Remark == "上线点").ToList();
                        Dt_StationManager dt_StationManager = _stationManagerRepository.QueryFirst(
                                    x => x.StationLocation == FeedingPoint[i].ToString()
                                    && x.StationStatus != ((int)StationEnum.Disable).ToString());
                        if (dt_StationManager == null)
                    foreach (var item in dt_StationManagers)
                        {
                            // è¿™é‡Œåº”该要加日志 è®°å½•找不到站台的信息
                            Console.WriteLine($"{DateTime.Now} å½“前站台【{FeedingPoint[i].ToString()} æœªé…ç½®æˆ–已禁用】");
                            continue;
                        }
                        byte[] SignalNumber = device.Communicator.Read(item.StationChildCode, 1); // ä¿¡å· 1:叫料 2:拉出空框
                        if (SignalNumber[1] == 1)
                        {
                            byte[] PartNumber = device.Communicator.Read(i.ToString(), 20); // è¯»å–零件号
                            byte[] PartNumber = device.Communicator.Read(item.StationDeviceCode, 20); // è¯»å–零件号
                            string Ku1_Value = baseconversion.TenthTurn16(PartNumber);
                            if (Ku1_Value != "" && Ku1_Value != null)
                            if (Ku1_Value.IsNotEmptyOrNull())
                            {
                                // ç­‰åŠŸèƒ½æµ‹è¯•å®Œï¼Œè¿™é‡Œè¦åšæ—¥å¿—è®°å½•
@@ -91,7 +87,7 @@
                                // æ‰¾å¯¹åº”的零件号是否已经绑定(组盘) // è¿™é‡Œè¦æ”¹è¦åŠ åŒºåŸŸ åŠ æ˜¯å¦å·²ç”Ÿæˆä»»åŠ¡ è¿˜è¦æ ¹æ®æ—¶é—´æŽ’序 å…ˆç»‘定的先发过去
                                Dt_MaterialInfo? dt_MaterialInfo = _IDt_MaterialInfoRepository.QueryData(x => x.MaterialName == Ku1_Value
                                                                   && x.Region == ((int)StationEnum.Rearbaseplate1).ToString()
                                                                   && (x.EndPosition == null || x.EndPosition == "")).OrderBy(x => x.CreateDate).FirstOrDefault();
                                                                   && (x.IsNotEmptyOrNull())).OrderBy(x => x.CreateDate).FirstOrDefault();
                                if (dt_MaterialInfo != null)
                                {
@@ -101,20 +97,19 @@
                                    dt_Task = new Dt_Task();
                                    dt_Task.PalletCode = dt_MaterialInfo.ContainerCode;
                                    dt_Task.SourceAddress = dt_MaterialInfo.Position; // å½“前位置
                                    dt_Task.TargetAddress = FeedingPoint[i].ToString(); // ç»ˆç‚¹ä½ç½®
                                    dt_Task.TargetAddress = item.StationLocation; // ç»ˆç‚¹ä½ç½®
                                    dt_Task.Grade = 2;
                                    dt_Task.TaskState = TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt();
                                    dt_Task.TaskType = TaskAGVCarryTypeEnum.Carry.ObjToInt();
                                    dt_Task.Roadway = (Signal[i] - 1).ToString(); // åº“1 å«æ–™é‚£å°±æ˜¯1巷道
                                    dt_Task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryNew;
                                    dt_Task.TaskType = (int)TaskAGVCarryTypeEnum.Carry;
                                    dt_Task.Roadway = (int.Parse(item.StationChildCode) - 1).ToString(); // åº“1 å«æ–™é‚£å°±æ˜¯1巷道
                                    dt_Task.CurrentAddress = dt_MaterialInfo.Position; // å½“前位置
                                    dt_Task.NextAddress = FeedingPoint[i].ToString(); // ç»ˆç‚¹ä½ç½®
                                    dt_Task.NextAddress = item.StationLocation; // ç»ˆç‚¹ä½ç½®
                                    dt_MaterialInfo.EndPosition = FeedingPoint[i].ToString(); // ç»ˆç‚¹ä½ç½®
                                    dt_MaterialInfo.EndPosition = item.StationLocation; // ç»ˆç‚¹ä½ç½®
                                    dt_StationManager.StationStatus = ((int)StationEnum.Thereisatask).ToString();
                                    dt_StationManager.StationRemark = dt_MaterialInfo.ContainerCode;
                                    _stationManagerRepository.UpdateData(dt_StationManager);
                                    item.StationStatus = ((int)StationEnum.Thereisatask).ToString();
                                    item.StationRemark = dt_MaterialInfo.ContainerCode;
                                    _stationManagerRepository.UpdateData(item);
                                    _taskRepository.AddData(dt_Task);
                                    _IDt_MaterialInfoRepository.UpdateData(dt_MaterialInfo);
@@ -126,7 +121,7 @@
                        if (SignalNumber[1] == 2) // è¡¨ç¤ºæ‹‰å‡ºç©ºæ¡†
                        {
                            Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == FeedingPoint[i].ToString() && x.TaskType == (int)TaskAGVCarryTypeEnum.CarryEmpty);
                            Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == item.StationLocation && x.TaskType == (int)TaskAGVCarryTypeEnum.CarryEmpty);
                            if (dt_Task != null) continue;
                            Dt_StationManager RecyclingpointStation = _stationManagerRepository.QueryFirst(x =>
@@ -140,14 +135,14 @@
                                continue;
                            }
                            dt_Task = new Dt_Task();
                            dt_Task.PalletCode = dt_StationManager.StationRemark;
                            dt_Task.SourceAddress = FeedingPoint[i].ToString();
                            dt_Task.PalletCode = item.StationRemark;
                            dt_Task.SourceAddress = item.StationLocation;
                            dt_Task.TargetAddress = RecyclingpointStation.StationLocation;
                            dt_Task.Grade = 2;
                            dt_Task.TaskState = TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt();
                            dt_Task.TaskType = TaskAGVCarryTypeEnum.CarryEmpty.ObjToInt();
                            dt_Task.Roadway = (Signal[i] - 1).ToString(); // åº“1 å«æ–™é‚£å°±æ˜¯1巷道
                            dt_Task.CurrentAddress = FeedingPoint[i].ToString(); // å½“前位置
                            dt_Task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryNew;
                            dt_Task.TaskType = (int)TaskAGVCarryTypeEnum.CarryEmpty;
                            dt_Task.Roadway = (int.Parse(item.StationChildCode) - 1).ToString(); // åº“1 å«æ–™é‚£å°±æ˜¯1巷道
                            dt_Task.CurrentAddress = item.StationLocation; // å½“前位置
                            dt_Task.NextAddress = RecyclingpointStation.StationLocation;// ç»ˆç‚¹ä½ç½®
                            RecyclingpointStation.StationStatus = ((int)StationEnum.Thereisatask).ToString();
@@ -155,7 +150,6 @@
                            _stationManagerRepository.UpdateData(RecyclingpointStation);
                            _taskRepository.AddData(dt_Task);
                        }
                    }
                }
                catch (Exception)