From 8554717a7abbe2889ae1d835857661dc8b91aa68 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 25 五月 2024 10:05:23 +0800
Subject: [PATCH] 优化自动切换大小托盘
---
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobQueueTask.cs | 14 ++
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/QueueTask/ReplaceTray.cs | 143 ++++++++++++++++++++++++++++
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobSendTask.cs | 4
代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs | 3
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs | 1
代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs | 55 +++--------
代码管理/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs | 10 +
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs | 4
代码管理/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs | 6 +
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs | 15 ++-
10 files changed, 201 insertions(+), 54 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
index e2c7715..80b8a1f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
@@ -35,6 +35,10 @@
/// <summary>
/// 妗佹灦涓嬫枡
/// </summary>
- Load
+ Load,
+ /// <summary>
+ /// 鎵樼洏鍒囨崲
+ /// </summary>
+ Trayswitching
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
index c1ad6b1..9ad8b37 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
@@ -590,8 +590,6 @@
WriteLog.Write_Log(name + "鐢宠鏀炬枡寮傚父", "杞﹁疆SN鍙蜂负绌�", "", $"璇诲彇妗佹灦淇℃伅锛歕n杞﹁疆SN鍙凤細{Wheel_id}涓虹┖");
continue;
}
-
-
var Work = workinfoRepository.Find(x => x.SN == Wheel_id && x.processCode == "17").FirstOrDefault();
if (Work == null)
{
@@ -600,22 +598,7 @@
WriteLog.Write_Log(name + "鐢宠鏀炬枡寮傚父", Wheel_id, "鏌ヨ鏈哄姞宸ュ伐鍗�", $"璇诲彇妗佹灦淇℃伅锛歕n杞﹁疆SN鍙凤細{Wheel_id}鏈煡璇㈠埌宸ュ崟淇℃伅\n鍐欏叆妗佹灦淇℃伅锛歕n鏄惁鍏佽涓嬫枡锛歿false}");
continue;
}
-
-
#endregion
-
-
-
- #region MyRegion
- //var currentAreaNr = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "W_Are00aNr").First(), client);
- //var currentAreaCode = PipelineJob.area_code(name); //鏍规嵁涓嬫枡鍙e崟鍏冨悕鑾峰彇鍖哄煙浠g爜
- //var currentStation = stationinfoRepository.FindFirst(x => x.area == currentAreaCode && x.stationCode.Substring(x.stationCode.Length - 1, 1) == currentAreaNr.ToString());
- //if (!currentStation.enable || currentStation.location_state == LocationStateEnum.Empty.ToString())
- // client.WriteByOrder("W_Enabl_Load", false, name);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
- #endregion
-
-
-
var wheel = Pipeline.QueryMateriel(Work.drawingNo);
var wheel1 = Pipeline.QueryMateriel1(Work.drawingNo);
@@ -639,6 +622,21 @@
agvtask(stationinfoRepository, station, Work, "TaskType_Inbound");
}
#endregion
+
+ #region 鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏
+ foreach (var Stationinfo in Stations)
+ {
+ if (Stationinfo.tray_type != "LargeTray" && (wheel == null ? wheel1.e : wheel.e) > 1100)
+ {
+ client.WriteByOrder("W_Enabl_Load", false, name);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
+ Stationinfo.location_state = LocationStateEnum.Trayswitching.ToString();
+ Stationinfo.remark = "鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏";
+ stationinfoRepository.Update(Stationinfo, x => new { x.location_state }, true);
+ }
+ }
+ #endregion
+
+ Stations = stationinfoRepository.Find(x => x.area == Pipeline.area_code(name)).OrderBy(x => x.lastUpdateTime).ToList();
var PartStatus = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok
@@ -708,18 +706,6 @@
agvtask(stationinfoRepository, stationinfo, Work, name == "3鍗曞厓涓嬫枡鍖�" ? "TaskType_OutsourceInbound" : "TaskType_Inbound");
}
- #endregion
-
- #region 鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏
- if (Stationinfo.tray_type != "LargeTray" && (wheel == null ? wheel1.e : wheel.e) > 1100)
- {
- client.WriteByOrder("W_Enabl_Load", false, name);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
- Stationinfo.location_state = LocationStateEnum.Abnormal.ToString();
- Stationinfo.tray_type = Stationinfo.tray_type == "SmallTray" ? "SmallTray/LargeTray" : "LargeTray/SmallTray";
- Stationinfo.remark = "鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏";
- stationinfoRepository.Update(Stationinfo, true);
- continue;
- }
#endregion
var Pipelinedetails = plcRepository.Find(x => x.plcdetail_iotype == Pipelineplc.plcinfo_iotyep && x.plcdetail_number == Stationinfo.stationCode).ToList();
@@ -831,17 +817,6 @@
}
if (Stationinfo != null)
{
- #region 鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏
- //if (Stationinfo.tray_type != ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray"))
- if (Stationinfo.tray_type != "LargeTray" && (wheel == null ? wheel1.e : wheel.e) > 1100)
- {
- Stationinfo.location_state = LocationStateEnum.Abnormal.ToString();
- Stationinfo.tray_type = Stationinfo.tray_type == "SmallTray" ? "SmallTray/LargeTray" : "LargeTray/SmallTray";
- Stationinfo.remark = "鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏";
- stationinfoRepository.Update(Stationinfo, true);
- continue;
- }
- #endregion
var Pipelinedetails = plcRepository.Find(x => x.plcdetail_iotype == Pipelineplc.plcinfo_iotyep && x.plcdetail_number == Stationinfo.stationCode).ToList();
var PalletSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_PalletSignal").First(), Pipeline_client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
var MaterialSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), Pipeline_client);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
index d3978c3..87e801e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
@@ -30,10 +30,9 @@
private void DoAction(IJobExecutionContext context)
{
- //EmptyTray.EmptyTrayIn();//绌烘墭鍙犵洏鍏ュ簱
StationTask.CreateTask();//鍏ュ簱
OutboundTask.CreateOutboundTask();//鍑哄簱
- ReplaceTray.ReplaceTrayTask();//鏇存崲鎵樼洏
+ //ReplaceTray.ReplaceTrayTask();//鏇存崲鎵樼洏
RestockHCJ.HCJGetBarcode();//鏇存柊闃熷垪
EmptyTrayTask.CreateEmptyTrayTask();//鍒涘缓琛ョ┖鎵�
AutoUpdateWork.FinishMesWork();//澶勭悊宸ュ崟
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
index 32e1d90..4962644 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
@@ -55,10 +55,10 @@
{
try
{
- VOLContext context = new VOLContext();
+ 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.Abnormal.ToString() && (x.tray_type == "SmallTray/LargeTray" || x.tray_type == "LargeTray/SmallTray") && x.enable).ToList();
+ 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;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
index 2e3dab7..80b8a1f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
@@ -31,6 +31,14 @@
/// <summary>
/// 寮傚父
/// </summary>
- Abnormal
+ Abnormal,
+ /// <summary>
+ /// 妗佹灦涓嬫枡
+ /// </summary>
+ Load,
+ /// <summary>
+ /// 鎵樼洏鍒囨崲
+ /// </summary>
+ Trayswitching
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
index e55620e..4257532 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
@@ -25,7 +25,6 @@
/// </summary>
public static void SendAgvTask()
{
- WriteLog.Write_Log("鑷姩涓嬪彂浠诲姟", "SendAgvTask", "");
Respone respone = new Respone();
RequestTask requestTask = new RequestTask();
string postJson = string.Empty;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueueTask/ReplaceTray.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueueTask/ReplaceTray.cs"
new file mode 100644
index 0000000..d6c076e
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueueTask/ReplaceTray.cs"
@@ -0,0 +1,143 @@
+锘縰sing 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.BaseProvider;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.ManageUser;
+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_WMS.Common
+{
+ public class QueueTask
+ {
+ /// <summary>
+ /// 鍒涘缓鏇存崲鎵樼洏浠诲姟,闇�淇敼
+ /// </summary>
+ public static void ReplaceTrayTask()
+ {
+ try
+ {
+ VOLContext context = new VOLContext();
+ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
+ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+ IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
+ 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)
+ {
+ var task = agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).FirstOrDefault();
+ if (task != null)
+ {
+ if (task.agv_taskstate != AGVTaskStateEnum.Queue.ToString()) continue;
+ task.agv_Traytype = station.tray_type == TrayTypeEnum.SmallTray.ToString() ? TrayTypeEnum.LargeTray.ToString() : TrayTypeEnum.SmallTray.ToString();
+ agvtaskRepository.Update(task, x => new { x.agv_Traytype }, true);
+ }
+ else if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
+ {
+ #region 涓虹┖鎵樺苟涓旀暟閲忎负0,鍒涘缓鍙栫┖鎵樹换鍔�
+ if (station.tray_status == TrayStateEnum.EmptyTray.ToString() && station.quantity == 0)
+ {
+ 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,
+ agv_tasktype = AGVTaskTypeEnum.TaskType_EmptyPallet.ToString(),
+ agv_toaddress = "",
+ agv_userid = "WMS",
+ agv_TrayStatus = station.tray_status,
+ agv_Traytype = station.tray_type
+ };
+ agvtaskRepository.Add(agvtask, true);
+
+ station.location_state = LocationStateEnum.Busy.ToString();
+ }
+ #endregion
+
+ #region 鍒涘缓鍏ュ簱浠诲姟
+ else if (station.location_state == LocationStateEnum.Stroge.ToString() && station.quantity > 0)
+ {
+ var Work = workinfoRepository.Find(x => x.workOrder == station.Number && x.processCode == "17").FirstOrDefault();
+ if (Work == null) throw new Exception($"鏈壘鍒拌揣浣峽station.stationCode}鐨勬満鍔犲伐宸ュ崟淇℃伅锛�");
+ 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_materielid = station.stationType,
+ agv_qty = station.quantity,
+ agv_tasktype = station.stationCode.Contains("3") ? AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString() : AGVTaskTypeEnum.TaskType_Inbound.ToString(),
+ agv_toaddress = "",
+ agv_userid = "WMS",
+ bindSN = station.bindSN,
+ agv_worktype = Convert.ToInt32(Work.processCode),
+ agv_materbarcode = Work.materialCode,
+ agv_Traytype = station.tray_type,
+ jobID = station.Number,
+ agv_TrayStatus = station.tray_status
+ };
+ agvtaskRepository.Add(agvtask, true);
+
+ station.location_state = LocationStateEnum.InBusy.ToString();
+ }
+ #endregion
+ }
+ station.tray_type = station.tray_type == TrayTypeEnum.SmallTray.ToString() ? TrayTypeEnum.LargeTray.ToString() : TrayTypeEnum.SmallTray.ToString();
+ stationinfoRepository.Update(station, x => new { x.location_state, x.tray_type }, true);
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteDBLog.Error("鍒涘缓鏇存崲绌虹洏浠诲姟", $"閿欒淇℃伅锛歿ex.Message}", "PCS");
+ }
+ }
+ /// <summary>
+ /// 鍒涘缓瀹屾暣鐨勮ˉ绌烘墭浠诲姟
+ /// </summary>
+ /// <param name="agvtask"></param>
+ 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");
+ //}
+ }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
index 6230dc3..bef8d16 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
@@ -111,20 +111,25 @@
VOLContext context = new VOLContext();
Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
- string completor = UserContext.Current.UserName;
foreach (var Key in saveModel.DelKeys)
{
try
{
var station = repository.Find(x => x.id.ToString() == Key.ToString()).FirstOrDefault();
- if (!station.stationCode.Contains("X")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�");
+ if (!station.stationCode.Contains("X") && !station.stationCode.Contains("W01001004") && !station.stationCode.Contains("W01001005")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�");
if (!station.enable) throw new Exception($"{station.stationCode}鏈惎鐢紒");
if (station.location_state == LocationStateEnum.Abnormal.ToString()) throw new Exception($"{station.stationCode}鐘舵�佸紓甯革紒");
if (station.location_state == LocationStateEnum.Empty.ToString()) throw new Exception($"{station.stationCode}鐘舵�佷负绌猴紒");
if (station.remark == "妗佹灦涓嬫枡") throw new Exception($"{station.stationCode}妗佹灦姝e湪涓嬫枡锛�");
- if (agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
-
- if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
+
+ var task = agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).FirstOrDefault();
+ if (task != null)
+ {
+ if (task.agv_taskstate != AGVTaskStateEnum.Queue.ToString()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
+ task.agv_Traytype = station.tray_type == TrayTypeEnum.SmallTray.ToString() ? TrayTypeEnum.LargeTray.ToString() : TrayTypeEnum.SmallTray.ToString();
+ agvtaskRepository.Update(task, x => new { x.agv_Traytype }, true);
+ }
+ else if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
{
#region 涓虹┖鎵樺苟涓旀暟閲忎负0,鍒涘缓鍙栫┖鎵樹换鍔�
if (station.tray_status == TrayStateEnum.EmptyTray.ToString() && station.quantity == 0)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobQueueTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobQueueTask.cs"
new file mode 100644
index 0000000..48d3bd6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobQueueTask.cs"
@@ -0,0 +1,14 @@
+锘縰sing Pomelo.AspNetCore.TimedJob;
+using WIDESEA_WMS.Common;
+
+namespace WIDESEA_WebApi.Controllers
+{
+ public class JobQueueTask : Job
+ {
+ [Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 2, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
+ public void QueueTaskTiem()
+ {
+ QueueTask.ReplaceTrayTask();
+ }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobSendTask.cs"
similarity index 87%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobSendTask.cs"
index 95174be..821dbcf 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobSendTask.cs"
@@ -7,10 +7,10 @@
namespace WIDESEA_WebApi.Controllers
{
- public class JobTask : Job
+ public class JobSendTask : Job
{
[Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 5, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
- public void TaskTime()
+ public void SendTaskTime()
{
AGVServer.SendFromaddress();
AGVServer.SendToaddress();
--
Gitblit v1.9.3