From 76eef0389848065963a295c66163a630697054fa Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 07 七月 2024 09:47:01 +0800
Subject: [PATCH] PDA
---
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/EmptyTrayTask.cs | 113 ++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 80 insertions(+), 33 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/EmptyTrayTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/EmptyTrayTask.cs"
index d7e67a8..e9011ab 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/EmptyTrayTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/EmptyTrayTask.cs"
@@ -6,6 +6,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;
@@ -34,34 +35,52 @@
Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
List<string> strings = new List<string>() { };
var stations = stationinfoRepository.Find(x => x.stationCode.Contains("X") || x.stationCode.Contains("W01001004") || x.stationCode.Contains("W01001005")).ToList();
- stations = stations.Where(x => x.location_state == "Empty" && x.enable).ToList();
+ stations = stations.Where(x => x.location_state == LocationStateEnum.Empty.ToString() && x.enable).ToList();
foreach (var station in stations)
{
if (agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).Any())
continue;
var PalletSignal = Pipeline_client.ReadByOrder<Int16>("R_PalletSignal", station.stationCode);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
var MaterialSignal = Pipeline_client.ReadByOrder<Int16>("R_MaterialSignal", station.stationCode);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
+
if (PalletSignal == 2 && MaterialSignal == 2)
{
- dt_agvtask taskPart = new dt_agvtask()
+ //if (station.remark == TrayTypeEnum.SmallTray.ToString() || station.remark == TrayTypeEnum.LargeTray.ToString()) station.tray_type = station.remark;
+
+ var agv_task = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_toaddress) && x.agv_Traytype == station.tray_type).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault();
+ if (agv_task != null)
{
- agv_fromaddress = "",
- agv_id = Guid.NewGuid(),
- agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
- agv_grade = 2,
- agv_createtime = DateTime.Now,
- agv_taskstate = "Queue",
- agv_qty = 1,
- agv_tasktype = "TaskType_EmptyPallet",
- agv_toaddress = station.stationCode,
- agv_userid = "绯荤粺",
- agv_TrayStatus = "EmptyTray",// station.tray_status,
- agv_Traytype = station.tray_type
- };
- station.location_state = LocationStateEnum.Busy.ToString();
- stationinfoRepository.Update(station, true);
- agvtaskRepository.Add(taskPart, true);
- WriteDBLog.Success("鍒涘缓琛ョ┖鎵樹换鍔�", $"浠诲姟缂栧彿锛歿taskPart.agv_tasknum}", "PCS");
+ agv_task.agv_taskstate = AGVTaskStateEnum.Create.ToString();
+ //agv_task.EndQuantity = EmptyStation.quantity;
+ agv_task.agv_toaddress = station.stationCode;
+ agvtaskRepository.Update(agv_task, true);
+ station.location_state = LocationStateEnum.Busy.ToString();
+ stationinfoRepository.Update(station, true);
+ WriteDBLog.Success("鏇存柊琛ョ┖鎵樹换鍔�", $"浠诲姟缂栧彿锛歿agv_task.agv_tasknum}", "PCS");
+ }
+ else
+ {
+ dt_agvtask taskPart = new dt_agvtask()
+ {
+ agv_fromaddress = "",
+ agv_id = Guid.NewGuid(),
+ agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+ agv_grade = station.stationCode.Contains("W0100100") ? 3 : 1,
+ agv_createtime = DateTime.Now,
+ agv_taskstate = AGVTaskStateEnum.Queue.ToString(),
+ agv_qty = 1,
+ agv_tasktype = AGVTaskTypeEnum.TaskType_EmptyPallet.ToString(),
+ agv_toaddress = station.stationCode,
+ agv_userid = "绯荤粺",
+ agv_TrayStatus = TrayStateEnum.EmptyTray.ToString(),// station.tray_status,
+ agv_Traytype = station.tray_type
+ };
+ station.location_state = LocationStateEnum.Busy.ToString();
+ stationinfoRepository.Update(station, true);
+ agvtaskRepository.Add(taskPart, true);
+ WriteDBLog.Success("鍒涘缓琛ョ┖鎵樹换鍔�", $"浠诲姟缂栧彿锛歿taskPart.agv_tasknum}", "PCS");
+ }
+
}
}
}
@@ -81,41 +100,69 @@
VOLContext context = new VOLContext();
Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
- var stations = stationinfoRepository.Find(x => x.area == "2" && x.enable && x.location_state == LocationStateEnum.Empty.ToString()).OrderBy(x => x.line).OrderBy(x => x.column).ToList();
- if (stations.Count < 1)
- {
- stations = stationinfoRepository.Find(x => x.area == "3" && x.enable && x.location_state == LocationStateEnum.Empty.ToString()).OrderBy(x => x.line).OrderBy(x => x.column).ToList();
- }
+ var stations = stationinfoRepository.Find(x => x.stationCode.Contains("C01004") && x.enable && x.location_state == LocationStateEnum.Stroge.ToString()).OrderByDescending(x => x.column).ToList();
+ //if (stations.Count < 1)
+ //{
+ // stations = stationinfoRepository.Find(x => x.area == "3" && x.enable && x.location_state == LocationStateEnum.Empty.ToString()).OrderBy(x => x.line).OrderBy(x => x.column).ToList();
+ //}
foreach (var station in stations)
{
- if (agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).Any())
+ if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
continue;
dt_agvtask taskPart = new dt_agvtask()
{
- agv_fromaddress = "",
+ agv_fromaddress = station.stationCode,
agv_id = Guid.NewGuid(),
agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
- agv_grade = 2,
+ agv_grade = 1,
agv_createtime = DateTime.Now,
agv_taskstate = "Queue",
+ //agv_materielid = station.stationType,
agv_qty = 1,
+ StarQuantity = 0,
+ EndQuantity = 0,// EmptyStation.quantity,
agv_tasktype = "TaskType_EmptyPallet",
- agv_toaddress = station.stationCode,
+ agv_toaddress = "",// EmptyStation.stationCode,
agv_userid = "绯荤粺",
- agv_TrayStatus = "EmptyTray",// station.tray_status, "SmallTray" : "LargeTray"
- agv_Traytype = station.area == "4" ? "LargeTray" : "SmallTray",
+ agv_TrayStatus = "EmptyTray",//station.tray_status,
+ agv_Traytype = station.tray_type,
};
agvtaskRepository.Add(taskPart, true);
- station.location_state = LocationStateEnum.InBusy.ToString();
+ station.location_state = LocationStateEnum.OutBusy.ToString();
stationinfoRepository.Update(station, true);
- WriteDBLog.Success("鍒涘缓琛ュ簱鍐呯┖鎵樹换鍔�", $"浠诲姟缂栧彿锛歿taskPart.agv_tasknum}", "PCS");
+ //WriteDBLog.Success("鍒涘缓绌烘墭浠诲姟", $"浠诲姟缂栧彿锛歿taskPart.agv_tasknum}", "PCS");
}
}
catch (Exception ex)
{
- WriteDBLog.Error("鍒涘缓琛ュ簱鍐呯┖鎵樹换鍔�", $"閿欒淇℃伅锛歿ex.Message}", "PCS");
+ //WriteDBLog.Error("鍒涘缓琛ュ簱鍐呯┖鎵樹换鍔�", $"閿欒淇℃伅锛歿ex.Message}", "PCS");
//throw;
}
}
+ public static void task()
+ {
+ VOLContext context = new VOLContext();
+ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
+ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+ var tasks = agvtaskRepository.Find(x => x.agv_taskstate == "Queue").OrderBy(x => x.agv_createtime).ToList();
+ foreach (var task in tasks)
+ {
+ if (task.agv_tasktype == "TaskType_EmptyPallet")
+ {
+ if (task.agv_toaddress == "")
+ {
+ var EmptyStation = stationinfoRepository.Find(x => x.area == "11" && x.stationCode.Contains("A") && x.quantity < 5 && x.enable).OrderByDescending(x => x.line).OrderBy(x => x.column).FirstOrDefault();
+ if (EmptyStation == null) return;
+ if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) return;
+ task.agv_toaddress = EmptyStation.stationCode;
+ task.EndQuantity = EmptyStation.quantity;
+ task.agv_taskstate = "Create";
+ EmptyStation.location_state = LocationStateEnum.Busy.ToString();
+ stationinfoRepository.Update(EmptyStation, true);
+ agvtaskRepository.Update(task, true);
+ }
+ }
+ }
+ }
}
}
--
Gitblit v1.9.3