分支自 SuZhouGuanHong/TaiYuanTaiZhong

huanghongfeng
2024-05-20 cb62fe00ff0c80bce983b0aa7a2b320fdc26f85f
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs
@@ -7,6 +7,7 @@
using WIDESEA_Comm;
using WIDESEA_Comm.LogInfo;
using WIDESEA_Comm.TaskNo;
using WIDESEA_Common;
using WIDESEA_Core.EFDbContext;
using WIDESEA_Entity.DomainModels;
using WIDESEA_WCS.IRepositories;
@@ -48,7 +49,7 @@
        #endregion
        /// <summary>
        /// åˆ›å»ºæ›´æ¢æ‰˜ç›˜ä»»åŠ¡
        /// åˆ›å»ºæ›´æ¢æ‰˜ç›˜ä»»åŠ¡,需修改
        /// </summary>
        public static void ReplaceTrayTask()
        {
@@ -61,47 +62,65 @@
                foreach (var station in stations)
                {
                    if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_toaddress == station.stationCode).Any()) continue;
                    #region MyRegion
                    var types = station.tray_type.Split('/');
                    var area = types[0] == "SmallTray" ? "11" : "10";
                    //找1库区的空托位
                    var EmptyStation = GetStation.EmptyPalletStation(area);
                    //var EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") /*&& x.location_state == "Empty"*/ && x.enable)
                    //    .OrderBy(x => x.column).OrderBy(x => x.line).FirstOrDefault();
                    //if (EmptyStation == null)
                    //    EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") /*&& x.location_state == "Empty"*/ && x.enable)
                    //    .OrderBy(x => x.line).OrderBy(x => x.column).FirstOrDefault();
                    if (EmptyStation != null)
                    dt_agvtask agvtask = new dt_agvtask()
                    {
                        dt_agvtask agvtask = new dt_agvtask()
                        {
                            agv_fromaddress = station.stationCode,
                            agv_id = Guid.NewGuid(),
                            agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
                            agv_grade = 2,
                            agv_createtime = DateTime.Now,
                            agv_taskstate = "Create",
                            //agv_materielid = station.stationType,
                            agv_qty = 1,
                            StarQuantity = 0,
                            EndQuantity = EmptyStation.quantity,
                            agv_tasktype = "TaskType_EmptyPallet",
                            agv_toaddress = EmptyStation.stationCode,
                            agv_userid = "系统",
                            agv_TrayStatus = station.tray_status,
                            //bindSN = station.bindSN,
                            //agv_worktype = Convert.ToInt32(mesinfo.processCode),
                            //agv_materbarcode = mesinfo.materialCode,
                            agv_Traytype = types[0]
                        };
                        agvtaskRepository.Add(agvtask, true);
                        station.location_state = LocationStateEnum.Busy.ToString();
                        stationinfoRepository.Update(EmptyStation, true);
                        EmptyStation.location_state = LocationStateEnum.Busy.ToString();
                        stationinfoRepository.Update(EmptyStation, true);
                        WriteDBLog.Success("创建更换空盘任务", $"任务编号:{agvtask.agv_tasknum}", "PCS");
                        CreatePartQueue(agvtaskRepository, agvtask, agvtask.agv_Traytype == "SmallTray" ? "LargeTray" : "SmallTray");
                        //CreatePartQueue(agvtaskRepository, agvtask, types[1]);
                    }
                        agv_fromaddress = station.stationCode,
                        agv_id = Guid.NewGuid(),
                        agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
                        agv_grade = 1,
                        agv_createtime = DateTime.Now,
                        agv_taskstate = AGVTaskStateEnum.Queue.ToString(),
                        agv_qty = 1,
                        StarQuantity = 0,
                        EndQuantity = 0,//EmptyStation.quantity,
                        agv_tasktype = AGVTaskTypeEnum.TaskType_EmptyPallet.ToString(),
                        agv_toaddress = "",//EmptyStation.stationCode,
                        agv_userid = "系统",
                        agv_TrayStatus = station.tray_status,
                        agv_Traytype = types[0]
                    };
                    agvtaskRepository.Add(agvtask, true);
                    station.location_state = LocationStateEnum.Busy.ToString();
                    stationinfoRepository.Update(station, true);
                    WriteDBLog.Success("创建更换空盘任务", $"任务编号:{agvtask.agv_tasknum}", "PCS");
                    CreatePartQueue(agvtaskRepository, agvtask, agvtask.agv_Traytype == "SmallTray" ? "LargeTray" : "SmallTray");
                    #endregion
                    #region MyRegion
                    //var types = station.tray_type.Split('/');
                    //var area = types[0] == "SmallTray" ? "11" : "10";
                    ////找1库区的空托位
                    //var EmptyStation = GetStation.EmptyPalletStation(area);
                    //if (EmptyStation != null)
                    //{
                    //    dt_agvtask agvtask = new dt_agvtask()
                    //    {
                    //        agv_fromaddress = station.stationCode,
                    //        agv_id = Guid.NewGuid(),
                    //        agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
                    //        agv_grade = 2,
                    //        agv_createtime = DateTime.Now,
                    //        agv_taskstate = "Create",
                    //        agv_qty = 1,
                    //        StarQuantity = 0,
                    //        EndQuantity = EmptyStation.quantity,
                    //        agv_tasktype = "TaskType_EmptyPallet",
                    //        agv_toaddress = EmptyStation.stationCode,
                    //        agv_userid = "系统",
                    //        agv_TrayStatus = station.tray_status,
                    //        agv_Traytype = types[0]
                    //    };
                    //    agvtaskRepository.Add(agvtask, true);
                    //    station.location_state = LocationStateEnum.Busy.ToString();
                    //    stationinfoRepository.Update(station, true);
                    //    EmptyStation.location_state = LocationStateEnum.Busy.ToString();
                    //    stationinfoRepository.Update(EmptyStation, true);
                    //    WriteDBLog.Success("创建更换空盘任务", $"任务编号:{agvtask.agv_tasknum}", "PCS");
                    //    CreatePartQueue(agvtaskRepository, agvtask, agvtask.agv_Traytype == "SmallTray" ? "LargeTray" : "SmallTray");
                    //}
                    #endregion
                }
            }
            catch (Exception ex)