using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography.Xml; using System.Text; using System.Threading.Tasks; 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; using WIDESEA_WCS.Repositories; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; using static FreeSql.Internal.GlobalFilter; using static System.Collections.Specialized.BitVector32; namespace WIDESEA_WCS.JobsPart.Common { public class ReplaceTray { #region MyRegion //public static void a() //{ // FreeDB freeDB = new FreeDB(); // var mes_Detail = freeDB.Select().Where(x => x.SN == "1202956016").First(); // var mes_Head = freeDB.Select().Where(x => x.jobID == mes_Detail.jobID).First(); // dt_inventory inventory = new dt_inventory() // { // SN = mes_Detail.SN, // Name = mes_Head.productName, // FigureNumber = mes_Head.drawingNo, // area = "2", // HeatNumber = mes_Detail.heatID, // BilletNumber = mes_Detail.billetID, // OnlineTime = DateTime.Now, // Operator = "AGV", // stationCode = "B01001001", // jobID = mes_Detail.jobID, // ID = Guid.NewGuid(), // remark = "" // }; // StoredProcedure.Main(inventory, "Delete"); // //StoredProcedure.EXECAdd(inventory, ""); //} #endregion /// /// 创建更换托盘任务,需修改 /// public static void ReplaceTrayTask() { try { VOLContext context = new VOLContext(); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);//"Abnormal" var stations = stationinfoRepository.Find(x => (x.stationCode.Contains("X") || x.stationCode.Contains("W01001004") || x.stationCode.Contains("W01001005")) && x.location_state == LocationStateEnum.Trayswitching.ToString() && x.enable).ToList(); 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('/'); dt_agvtask agvtask = new dt_agvtask() { 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) { WriteDBLog.Error("创建更换空盘任务", $"错误信息:{ex.Message}", "PCS"); } } /// /// 创建完整的补空托任务 /// /// public static void CreatePartQueue(Idt_agvtaskRepository agvtaskRepository, dt_agvtask agvtask, string type = "") { //if (agvtask.agv_fromaddress.Contains("X") || agvtask.agv_fromaddress.Contains("W01001004") || agvtask.agv_fromaddress.Contains("W01001005")) //{ dt_agvtask taskPart = new dt_agvtask() { agv_fromaddress = "", agv_id = Guid.NewGuid(), agv_tasknum = agvtask.agv_tasknum + "_1", agv_grade = 1, agv_createtime = DateTime.Now, agv_taskstate = "Queue", agv_qty = 1, agv_tasktype = "TaskType_EmptyPallet", agv_toaddress = agvtask.agv_fromaddress, agv_userid = "系统", agv_TrayStatus = agvtask.agv_TrayStatus, agv_Traytype = type, }; agvtaskRepository.Add(taskPart, true); WriteDBLog.Success("创建更换空盘任务", $"任务编号:{taskPart.agv_tasknum}", "PCS"); //} } } }