From b8c024874d21dd9b27a00b324e6c14ad29fb666b Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 09 四月 2026 21:21:47 +0800
Subject: [PATCH] 优化job接口
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs | 124 --------------------
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs | 2
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs | 20 +-
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs | 162 +++++++++++++++++++++++++++
4 files changed, 178 insertions(+), 130 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
index d6d47e9..e925bf3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
@@ -234,7 +234,7 @@
}
else
{
- WriteError(nameof(TestJob), "鍙傛暟閿欒,鏈紶閫掕澶囧弬鏁版垨璁惧绫诲瀷閿欒");
+ WriteError(nameof(TSJJob), "鍙傛暟閿欒,鏈紶閫掕澶囧弬鏁版垨璁惧绫诲瀷閿欒");
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
index d1d3cfd..1d53210 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
@@ -32,10 +32,8 @@
try
{
Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
- int i = 0;
foreach (var task in tasks)
{
- i++;
fOURBOTnewMovePodTask = new()
{
priority = task.Grade,
@@ -65,11 +63,16 @@
task.RGVTaskId = fOURBO.taskID;
task.ExceptionMessage = "";
task.TaskState = (int)TaskStatusEnum.Execut;
- task.Dispatchertime=DateTime.Now;
+ task.Dispatchertime = DateTime.Now;
}
catch (Exception ex)
{
task.ExceptionMessage = ex.Message;
+ content.Error(ex.Message);
+ }
+ finally
+ {
+ _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "涓嬪彂鍥涘悜杞︽柊寤哄叆搴撲换鍔�", "", "");
}
}
var uptasks = tasks.Where(task => string.IsNullOrEmpty(task.ExceptionMessage)).ToList();
@@ -79,6 +82,7 @@
{
foreach (var item in errortasks)
{
+ Thread.Sleep(500);
_taskService.ErrorTaskFeedback(item, true);
}
}
@@ -87,10 +91,6 @@
catch (Exception ex)
{
content.Error(ex.Message);
- }
- finally
- {
- _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "涓嬪彂鍥涘悜杞︽柊寤哄叆搴撲换鍔�", "", "");
}
}
@@ -183,7 +183,9 @@
};
requestData = request; // 淇濆瓨璇锋眰鏁版嵁鐢ㄤ簬鏃ュ織
//content.candidatePodIDs = tasks.Select(x => x.PalletCode).ToList();
- string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
+ string response = HttpHelper.Post("http://127.0.0.1:4523/m2/6165241-5857331-default/440906899?apifoxApiId=440906899", request.Serialize());
+
+ //string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
content.OK(data: fOURBOTReturn);
if (fOURBOTReturn.returnCode == 0)
@@ -608,7 +610,7 @@
{
foreach (var item in tasks)
{
- var takes = _taskService.Repository.QueryFirst(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory);
+ var takes = _taskService.Repository.QueryFirst(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory && (x.TaskState == (int)TaskStatusEnum.RGV_NewMoveTask || x.TaskState == (int)TaskStatusEnum.RGV_MoveTaskSend));
if (takes == null)
{
item.TaskState = (int)TaskStatusEnum.RGV_WaitSend;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs"
new file mode 100644
index 0000000..8a46ed1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs"
@@ -0,0 +1,162 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.LocationEnum;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_QuartzJob;
+
+namespace WIDESEAWCS_Tasks
+{
+ public partial class TestJob
+ {
+ /// <summary>
+ /// 鍥涘悜杞﹁川妫�浠诲姟
+ /// </summary>
+ /// <param name="device"></param>
+ public void SXCTasks(OtherDevice device)
+ {
+ #region 鍥涘悜杞︿换鍔�
+ List<Dt_Task> Uptasks = new List<Dt_Task>();
+ var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt());
+ //浠诲姟鐨勭洰鏍囧湴鍧�瀵逛簬绔欏彴鍙凤紱
+ foreach (var task in taskList)
+ {
+ if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspection, task.SourceAddress))
+ {
+ device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, false, task.SourceAddress);
+ //鍐嶈鍙栬川妫�缁撴灉
+ var qualityResult = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspectionInProgress, task.SourceAddress);
+ //宸﹁秴瀹借鍛�
+ var R_LeftOverWidthWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_LeftOverWidthWarning, task.SourceAddress);
+ //鍙宠秴瀹借鍛�
+ var R_RightWideWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_RightWideWarning, task.SourceAddress);
+ //瓒呴珮璀﹀憡
+ var R_ExtremeWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_ExtremeWarning, task.SourceAddress);
+ if (qualityResult)
+ {
+ //濡傛灉璐ㄦ閫氳繃浜嗭紝灏辨妸浠诲姟鐘舵�佹敼涓鸿川妫�瀹屾垚
+ task.TaskState = TaskStatusEnum.CheckShapeingOk.ObjToInt();
+ task.ExceptionMessage = "";
+ Uptasks.Add(task);
+ }
+ else
+ {
+ task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
+ task.ExceptionMessage = "澶栨澶辫触";
+ if (R_LeftOverWidthWarning) task.ExceptionMessage += ",宸﹁秴瀹�";
+ if (R_RightWideWarning) task.ExceptionMessage += ",鍙宠秴瀹�";
+ if (R_ExtremeWarning) task.ExceptionMessage += ",瓒呴珮";
+ Uptasks.Add(task);
+ //鍐欏叆澶嶄綅淇″彿
+ //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress);
+ }
+ //鍐欏叆鍋滄璐ㄦ淇″彿
+ device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, true, task.SourceAddress);
+ Thread.Sleep(500);
+ device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
+ }
+ //else
+ //{
+ // //鍐欏叆鍋滄璐ㄦ淇″彿
+ // device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
+ // device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress);
+ //}
+ else
+ {
+ task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
+ task.ExceptionMessage = "鏈娴嬪埌璐ㄦ瀹屾垚淇″彿";
+ Uptasks.Add(task);
+ }
+ }
+ if (Uptasks.Count > 0)
+ {
+ _taskService.UpdateData(Uptasks);
+ }
+ #endregion
+ }
+
+
+
+ /// <summary>
+ /// 娴峰悍AGV1-6妤间换鍔�
+ /// </summary>
+ /// <param name="device"></param>
+ public void KHTasks(OtherDevice device)
+ {
+ List<Dt_Task> Uptasks = new List<Dt_Task>();
+ var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6鍜�6-1妤间换鍔�
+ foreach (var item in AGVtaskList)
+ {
+ var address = item.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? item.TargetAddress : item.SourceAddress;
+ var stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == address);
+ if (stationManger == null)
+ {
+ item.ExceptionMessage = $"鏈壘鍒般�恵address}銆戠珯鍙颁俊鎭�";
+ Uptasks.Add(item);
+ continue;
+ }
+ var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address);
+ if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
+ {
+ if (StockAvailableSymbol)
+ {
+ item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫湁璐э紒";
+ Uptasks.Add(item);
+ continue;
+ }
+ if (stationManger.IsOccupied == (int)LocationStatusEnum.Lock)
+ {
+ item.ExceptionMessage = $"绔欏彴鏈夎揣锛�";
+ Uptasks.Add(item);
+ continue;
+ }
+ }
+ else
+ {
+ if (!StockAvailableSymbol)
+ {
+ item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫棤璐э紒";
+ Uptasks.Add(item);
+ continue;
+ }
+ if (stationManger.IsOccupied == (int)LocationStatusEnum.Free)
+ {
+ item.ExceptionMessage = $"绔欏彴鏃犺揣锛�";
+ Uptasks.Add(item);
+ continue;
+ }
+ }
+ //into杩涘叆涓�妤间綅缃殑鏃跺�欙紝鍐欏叆杩涘叆淇″彿
+ device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, address);
+ if (!device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.Blocking, address))
+ {
+ item.ExceptionMessage = $"{address}绔欏彴鍏夋爡涓嶄负true锛�1锛�!";
+ Uptasks.Add(item);
+ continue;
+ }
+ var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
+ if (result.Status == false)
+ {
+ if (item.ExceptionMessage != result.Message)
+ {
+ item.ExceptionMessage = result.Message;
+ Uptasks.Add(item);
+ }
+ continue;
+ }
+ item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
+ item.ExceptionMessage = "";
+ Uptasks.Add(item);
+ }
+ if (Uptasks.Count > 0)
+ {
+ _taskService.UpdateData(Uptasks);
+ }
+ }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs"
index 77922a3..54859c8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs"
@@ -28,7 +28,7 @@
namespace WIDESEAWCS_Tasks
{
[DisallowConcurrentExecution]
- public class TestJob : JobBase, IJob
+ public partial class TestJob : JobBase, IJob
{
private readonly ITaskService _taskService;
private readonly IStationMangerService _stationMangerService;
@@ -51,127 +51,11 @@
// _taskService.Repository 浠撳偍灞傦紝杩涜鏁版嵁搴撹闂�-
try
{
- #region 鍥涘悜杞︿换鍔�
- List<Dt_Task> Uptasks = new List<Dt_Task>();
- var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt());
- //浠诲姟鐨勭洰鏍囧湴鍧�瀵逛簬绔欏彴鍙凤紱
- foreach (var task in taskList)
- {
- if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspection, task.SourceAddress))
- {
- device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, false, task.SourceAddress);
- //鍐嶈鍙栬川妫�缁撴灉
- var qualityResult = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspectionInProgress, task.SourceAddress);
- //宸﹁秴瀹借鍛�
- var R_LeftOverWidthWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_LeftOverWidthWarning, task.SourceAddress);
- //鍙宠秴瀹借鍛�
- var R_RightWideWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_RightWideWarning, task.SourceAddress);
- //瓒呴珮璀﹀憡
- var R_ExtremeWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_ExtremeWarning, task.SourceAddress);
- if (qualityResult)
- {
- //濡傛灉璐ㄦ閫氳繃浜嗭紝灏辨妸浠诲姟鐘舵�佹敼涓鸿川妫�瀹屾垚
- task.TaskState = TaskStatusEnum.CheckShapeingOk.ObjToInt();
- task.ExceptionMessage = "";
- Uptasks.Add(task);
- }
- else
- {
- task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
- task.ExceptionMessage = "澶栨澶辫触";
- if (R_LeftOverWidthWarning) task.ExceptionMessage += ",宸﹁秴瀹�";
- if (R_RightWideWarning) task.ExceptionMessage += ",鍙宠秴瀹�";
- if (R_ExtremeWarning) task.ExceptionMessage += ",瓒呴珮";
- Uptasks.Add(task);
- //鍐欏叆澶嶄綅淇″彿
- //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress);
- }
- //鍐欏叆鍋滄璐ㄦ淇″彿
- device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, true, task.SourceAddress);
- Thread.Sleep(500);
- device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
- }
- //else
- //{
- // //鍐欏叆鍋滄璐ㄦ淇″彿
- // device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
- // device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress);
- //}
- else
- {
- task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
- task.ExceptionMessage = "鏈娴嬪埌璐ㄦ瀹屾垚淇″彿";
- Uptasks.Add(task);
- }
- }
- #endregion
+ SXCTasks(device);
- var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6鍜�6-1妤间换鍔�
- foreach (var item in AGVtaskList)
- {
- var address = item.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? item.TargetAddress : item.SourceAddress;
- var stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == address);
- if (stationManger == null)
- {
- item.ExceptionMessage = $"鏈壘鍒般�恵address}銆戠珯鍙颁俊鎭�";
- Uptasks.Add(item);
- continue;
- }
- var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address);
- if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
- {
- if (StockAvailableSymbol)
- {
- item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫湁璐э紒";
- Uptasks.Add(item);
- continue;
- }
- if (stationManger.IsOccupied == (int)LocationStatusEnum.Lock)
- {
- item.ExceptionMessage = $"绔欏彴鏈夎揣锛�";
- Uptasks.Add(item);
- continue;
- }
- }
- else
- {
- if (!StockAvailableSymbol)
- {
- item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫棤璐э紒";
- Uptasks.Add(item);
- continue;
- }
- if (stationManger.IsOccupied == (int)LocationStatusEnum.Free)
- {
- item.ExceptionMessage = $"绔欏彴鏃犺揣锛�";
- Uptasks.Add(item);
- continue;
- }
- }
- //into杩涘叆涓�妤间綅缃殑鏃跺�欙紝鍐欏叆杩涘叆淇″彿
- device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, address);
- if (!device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.Blocking, address))
- {
- item.ExceptionMessage = $"{address}绔欏彴鍏夋爡涓嶄负true锛�1锛�!";
- Uptasks.Add(item);
- continue;
- }
- var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
- if (result.Status == false)
- {
- if (item.ExceptionMessage != result.Message)
- {
- item.ExceptionMessage = result.Message;
- Uptasks.Add(item);
- }
- continue;
- }
- item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
- item.ExceptionMessage = "";
- Uptasks.Add(item);
- }
+ KHTasks(device);
- _taskService.UpdateData(Uptasks);
+
//WriteInfo(device.DeviceName, "infoLog");
//WriteDebug(device.DeviceName, "debugLog");
--
Gitblit v1.9.3