From 62bfd66d8980d01f76408c655004c5d848f07759 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 23 一月 2026 09:39:26 +0800
Subject: [PATCH] 添加WMS下发任务接口
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs | 103 ++++++++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs | 8
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs | 73 +++++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs | 18 ++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs | 181 ++++++++++++++++++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs | 2
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json | 2
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs | 6
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs | 53 ++++++
9 files changed, 433 insertions(+), 13 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
index 1919700..02fd846 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
@@ -7,6 +7,109 @@
namespace WIDESEAWCS_Common.TaskEnum
{
+
+ public enum TaskStatusEnum
+ {
+ /// <summary>
+ /// 鏂板缓浠诲姟
+ /// </summary>
+ [Description("鏂板缓浠诲姟")]
+ New,
+ ///// <summary>
+ ///// 寰呮墽琛�
+ ///// </summary>
+ [Description("寰呮墽琛�")]
+ Execut,
+ ///// <summary>
+ ///// 鍙栬揣涓�
+ ///// </summary>
+ [Description("鍙栬揣涓�")]
+ Takeing,
+ /// <summary>
+ /// 鍙栬揣瀹屾垚
+ /// </summary>
+ [Description("鍙栬揣瀹屾垚")]
+ TakeFinish,
+
+ /// <summary>
+ /// 鏀捐揣涓�
+ /// </summary>
+ [Description("鏀捐揣涓�")]
+ Puting,
+ /// <summary>
+ /// 瀹屾垚
+ /// </summary>
+ [Description("瀹屾垚")]
+ Finish,
+ /// <summary>
+ /// 澶栧舰妫�娴嬩腑
+ /// </summary>
+ [Description("澶栧舰妫�娴嬩腑")]
+ CheckShapeing,
+ /// <summary>
+ /// 鎵樼洏鍙风‘璁や腑
+ /// </summary>
+ [Description("鎵樼洏鍙风‘璁や腑")]
+ CheckPalletCodeing,
+
+ /// <summary>
+ /// AGV寰呯户缁墽琛�
+ /// </summary>
+ [Description("AGV寰呯户缁墽琛�")]
+ AGV_WaitToExecute,
+
+
+ #region 鍑箰澹獳GV鍏朵粬浠诲姟鐘舵��
+ /// <summary>
+ /// 璧风偣鏃犺揣
+ /// </summary>
+ [Description("璧风偣鏃犺揣")]
+ FromOutOfStock,
+ /// <summary>
+ /// 缁堢偣鏈夎揣
+ /// </summary>
+ [Description("缁堢偣鏈夎揣")]
+ ToaddInStock,
+ /// <summary>
+ /// 浠诲姟鍙烽噸澶�
+ /// </summary>
+ [Description("浠诲姟鍙烽噸澶�")]
+ TaskNumRepetition,
+ /// <summary>
+ /// RCS绯荤粺鎺ユ敹鍒颁换鍔″悗鎿嶄綔鏁版嵁搴撳紓甯�
+ /// </summary>
+ [Description("RCS绯荤粺鎺ユ敹鍒颁换鍔″悗鎿嶄綔鏁版嵁搴撳紓甯�")]
+ RCSDataError,
+ /// <summary>
+ /// 浠诲姟绫诲瀷寮傚父
+ /// </summary>
+ [Description("浠诲姟绫诲瀷寮傚父")]
+ TaskTypeError,
+ /// <summary>
+ /// 鍙傛暟寮傚父
+ /// </summary>
+ [Description("鍙傛暟寮傚父")]
+ ParameterError,
+ /// <summary>
+ /// RCS绯荤粺鏈煡寮傚父
+ /// </summary>
+ [Description("RCS绯荤粺鏈煡寮傚父")]
+ RCSError,
+ /// <summary>
+ /// 浠诲姟搴熸
+ /// </summary>
+ [Description("浠诲姟搴熸")]
+ Cancel
+ #endregion
+
+ #region 娴峰悍AGV鍏朵粬浠诲姟鐘舵��
+
+ #endregion
+
+ #region 鍥涘悜杞﹀叾浠栦换鍔$姸鎬�
+
+ #endregion
+ }
public enum TaskInStatusEnum
{
/// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
index f536a07..1aa0f22 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -62,11 +62,11 @@
public string PalletCode { get; set; }
/// <summary>
- /// 宸烽亾鍙�
+ /// 鍖哄煙
/// </summary>
- [ImporterHeader(Name = "宸烽亾鍙�")]
- [ExporterHeader(DisplayName = "宸烽亾鍙�")]
- [SugarColumn(IsNullable = true, Length = 10, ColumnDescription = "宸烽亾鍙�")]
+ [ImporterHeader(Name = "鍖哄煙")]
+ [ExporterHeader(DisplayName = "鍖哄煙")]
+ [SugarColumn(IsNullable = true, Length = 10, ColumnDescription = "鍖哄煙")]
public string Roadway { get; set; }
/// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs"
new file mode 100644
index 0000000..afff1ad
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+ public class Dt_Task_Hty : Dt_Task, IBaseHistoryEntity
+ {
+ public int SourceId { get; set; }
+
+ public string OperateType { get; set; }
+
+ public DateTime InsertTime { get; set; }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs"
index ec0c524..970ee35 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs"
@@ -24,7 +24,7 @@
/// <param name="taskDTOs"></param>
/// <returns></returns>
[HttpPost, Route("UpdateTaskStatus"), AllowAnonymous]
- public WebResponseContent UpdateTaskStatus(object TaskDTO)
+ public WebResponseContent UpdateTaskStatus([FromBody] object TaskDTO)
{
return _taskService.UpdateTaskStatus(TaskDTO, DeviceTypeEnum.GALAXIS);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
index a8bb3e1..c87c48b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
@@ -17,7 +17,7 @@
//5.PostgreSQL
"DBType": "SqlServer",
//杩炴帴瀛楃涓�
- "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_GP;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_GP;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//璺ㄥ煙
"Cors": {
"PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs"
index d7526bf..a9ff92c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs"
@@ -24,7 +24,7 @@
{
try
{
- int containerType = taskDTO.containerCode.Contains("") ? LocationTypeEnum.LargePallet.ObjToInt() : LocationTypeEnum.SmallPallet.ObjToInt();
+ int containerType = taskDTO.containerCode.Contains("LLM") ? LocationTypeEnum.LargePallet.ObjToInt() : LocationTypeEnum.SmallPallet.ObjToInt();
//鑾峰彇璐т綅淇℃伅
Dt_KLSLocationInfo? kLSLocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.WarehouseId.ToString() == taskDTO.toAreaCode && x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == containerType);
if (kLSLocationInfo == null) throw new Exception($"鏈壘鍒扮粓鐐瑰簱鍖恒�恵taskDTO.toAreaCode}銆戝彲鐢ㄧ┖璐т綅锛�");
@@ -34,7 +34,7 @@
WMSTaskNum = taskDTO.taskCode,
Grade = taskDTO.taskPriority,
PalletCode = taskDTO.containerCode,
- TaskState = TaskInStatusEnum.InNew.ObjToInt(),
+ TaskState = TaskStatusEnum.New.ObjToInt(),
TaskType = taskType,
SourceAddress = taskDTO.fromLocationCode,
CurrentAddress = taskDTO.fromLocationCode,
@@ -68,7 +68,7 @@
WMSTaskNum = taskDTO.taskCode,
Grade = taskDTO.taskPriority,
PalletCode = taskDTO.containerCode,
- TaskState = TaskOutStatusEnum.OutNew.ObjToInt(),
+ TaskState = TaskStatusEnum.New.ObjToInt(),
TaskType = taskType,
SourceAddress = taskDTO.fromLocationCode,
CurrentAddress = taskDTO.fromLocationCode,
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
index 8a5ba62..0b14d18 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
@@ -1,15 +1,26 @@
-锘縰sing System;
+锘縰sing Magicodes.IE.Core;
+using NetTaste;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Text.Json;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.LocationEnum;
+using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO;
+using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_TaskInfoService
{
public partial class TaskService
{
+
+ #region 鏇存柊浠诲姟鐘舵��
/// <summary>
/// 鏇存柊浠诲姟鐘舵��
/// </summary>
@@ -23,7 +34,23 @@
{
if (deviceTypeEnum == DeviceTypeEnum.GALAXIS)
{
-
+ GALAXISUpdateTaskStatus? gALAXIS = TaskDTO.Serialize().DeserializeObject<GALAXISUpdateTaskStatus>();
+ if (gALAXIS == null) throw new Exception("鍙傛暟杞崲澶辫触锛�");
+ var task = BaseDal.QueryFirst(x => x.WMSTaskNum == gALAXIS.taskId);
+ if (task == null) throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟缂栧彿銆恵gALAXIS.taskId}銆�");
+ switch (gALAXIS.taskStatus)
+ {
+ case 0:
+ TaskCompleted(task, deviceTypeEnum);
+ break;
+ case 4:
+ TaskFromCompleted(task, deviceTypeEnum);
+ break;
+ default:
+ task.TaskState = ReturnTaskStatus(gALAXIS.taskStatus, deviceTypeEnum);
+ BaseDal.UpdateData(task);
+ break;
+ }
}
else if (deviceTypeEnum == DeviceTypeEnum.HIKROBOT)
{
@@ -37,8 +64,154 @@
}
catch (Exception ex)
{
- return WebResponseContent.Instance.Error(ex.Message);
+ throw new Exception(ex.Message);
}
- }
+ }
+ #endregion
+
+ #region 浠诲姟鐘舵�佽浆鎹�
+ public int ReturnTaskStatus(object status, DeviceTypeEnum deviceTypeEnum)
+ {
+ try
+ {
+ if (deviceTypeEnum == DeviceTypeEnum.GALAXIS)
+ {
+ TaskStatusEnum taskStatus = status switch
+ {
+ 1 => TaskStatusEnum.FromOutOfStock,
+ 2 => TaskStatusEnum.ToaddInStock,
+ 3 => TaskStatusEnum.TaskNumRepetition,
+ 5 => TaskStatusEnum.RCSDataError,
+ 6 => TaskStatusEnum.TaskTypeError,
+ 7 => TaskStatusEnum.ParameterError,
+ 8 => TaskStatusEnum.RCSError,
+ 13 => TaskStatusEnum.Cancel,
+ _ => throw new ArgumentOutOfRangeException(
+ nameof(status),
+ status,
+ $"鏈煡鐨勪换鍔$姸鎬佺爜: {status}"
+ )
+ };
+ return (int)taskStatus;
+ }
+ else if (deviceTypeEnum == DeviceTypeEnum.HIKROBOT)
+ {
+ return 0;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+ #endregion
+
+ #region 浠诲姟璧风偣瀹屾垚
+ /// <summary>
+ /// 浠诲姟璧风偣瀹屾垚
+ /// </summary>
+ /// <param name="dt_Task"></param>
+ /// <param name="deviceTypeEnum"></param>
+ /// <returns></returns>
+ public WebResponseContent TaskFromCompleted(Dt_Task dt_Task, DeviceTypeEnum deviceTypeEnum)
+ {
+ try
+ {
+ dt_Task.TaskState = TaskStatusEnum.TakeFinish.ObjToInt();
+ Db.Ado.BeginTran();
+ UpdateLocationStatus(dt_Task.SourceAddress, deviceTypeEnum, LocationStatusEnum.Free);
+ BaseDal.UpdateData(dt_Task);
+ Db.Ado.CommitTran();
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ Db.Ado.RollbackTran();
+ throw new Exception(ex.Message);
+ }
+ }
+ #endregion
+
+ #region 浠诲姟瀹屾垚
+ /// <summary>
+ /// 浠诲姟瀹屾垚
+ /// </summary>
+ /// <param name=""></param>
+ /// <param name="deviceTypeEnum"></param>
+ /// <returns></returns>
+ public WebResponseContent TaskCompleted(Dt_Task dt_Task, DeviceTypeEnum deviceTypeEnum)
+ {
+ try
+ {
+ dt_Task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+ Db.Ado.BeginTran();
+ UpdateLocationStatus(dt_Task.TargetAddress, deviceTypeEnum, LocationStatusEnum.InStock);
+ BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.鑷姩瀹屾垚);
+ Db.Ado.CommitTran();
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ Db.Ado.RollbackTran();
+ throw new Exception(ex.Message);
+ }
+ }
+ #endregion
+
+ #region 鏇存柊璐т綅鐘舵��
+ /// <summary>
+ /// 鏇存柊璐т綅鐘舵��
+ /// </summary>
+ /// <param name="LocationCode"></param>
+ /// <param name="deviceTypeEnum"></param>
+ /// <param name="locationStatusEnum"></param>
+ /// <returns></returns>
+ public WebResponseContent UpdateLocationStatus(string LocationCode, DeviceTypeEnum deviceTypeEnum, LocationStatusEnum locationStatusEnum)
+ {
+ try
+ {
+ if (deviceTypeEnum == DeviceTypeEnum.GALAXIS)
+ {
+ Dt_KLSLocationInfo? dt_KLSLocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
+ if (dt_KLSLocationInfo != null)
+ {
+ dt_KLSLocationInfo.LocationStatus = locationStatusEnum.ObjToInt();
+ _kLSLocationInfoService.Repository.UpdateData(dt_KLSLocationInfo);
+ }
+ }
+ else if (deviceTypeEnum == DeviceTypeEnum.HIKROBOT)
+ {
+ Dt_HKLocationInfo? dt_HKLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
+ if (dt_HKLocationInfo != null)
+ {
+ dt_HKLocationInfo.LocationStatus = locationStatusEnum.ObjToInt();
+ _hKLocationInfoService.Repository.UpdateData(dt_HKLocationInfo);
+ }
+ }
+ else if (deviceTypeEnum == DeviceTypeEnum.YuanLiJuHe)
+ {
+ Dt_RGVLocationInfo dt_RGVLocationInfo = _rGVLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
+ if (dt_RGVLocationInfo != null)
+ {
+ dt_RGVLocationInfo.LocationStatus = locationStatusEnum.ObjToInt();
+ _rGVLocationInfoService.Repository.UpdateData(dt_RGVLocationInfo);
+ }
+ }
+ else//搴撳绔欏彴
+ {
+
+ }
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+ #endregion
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
new file mode 100644
index 0000000..9ce6cb4
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
@@ -0,0 +1,73 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Tasks
+{
+ public partial class TaskJob
+ {
+ #region 涓嬪彂浠诲姟
+ /// <summary>
+ /// 涓嬪彂浠诲姟
+ /// </summary>
+ public void SendTask()
+ {
+ try
+ {
+ var newTask = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.New.ObjToInt()).ToList();
+ if (newTask.Count > 0)
+ {
+
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteError(nameof(TaskJob), ex.Message, ex);
+ }
+ }
+ #endregion
+
+ #region 涓嬪彂寰呮墽琛屼换鍔�
+ /// <summary>
+ /// 涓嬪彂寰呮墽琛屼换鍔�
+ /// </summary>
+ public void SendWaitToTask()
+ {
+ try
+ {
+
+ }
+ catch (Exception ex)
+ {
+ WriteError(nameof(TaskJob), ex.Message, ex);
+ }
+ }
+ #endregion
+
+ #region 涓嬪彂鍑箰澹獳GV浠诲姟
+ public void SendGALAXISTask(List<Dt_Task> tasks)
+ {
+
+ }
+ #endregion
+
+ #region 涓嬪彂鍥涘悜杞︿换鍔�
+ public void SendRGVTask(List<Dt_Task> tasks)
+ {
+
+ }
+ #endregion
+
+ #region 涓嬪彂娴峰悍AGV浠诲姟
+ public void SendHIKROBOTTask(List<Dt_Task> tasks)
+ {
+
+ }
+ #endregion
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs"
new file mode 100644
index 0000000..47e7144
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs"
@@ -0,0 +1,53 @@
+锘縰sing Autofac.Core;
+using HslCommunication;
+using HslCommunication.Core;
+using Microsoft.VisualBasic.FileIO;
+using Quartz;
+using SixLabors.ImageSharp.PixelFormats;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Communicator;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IBasicInfoService;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DeviceBase;
+using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
+
+namespace WIDESEAWCS_Tasks
+{
+ [DisallowConcurrentExecution]
+ public partial class TaskJob : JobBase, IJob
+ {
+ private readonly ITaskService _taskService;
+ private readonly IApiInfoService _apiInfoService;
+ public TaskJob(ITaskService taskService, IApiInfoService apiInfoService)
+ {
+ _taskService = taskService;//娉ㄥ叆
+ _apiInfoService = apiInfoService;
+ }
+
+ public Task Execute(IJobExecutionContext context)
+ {
+ try
+ {
+ SendTask();
+
+ SendWaitToTask();
+ }
+ catch (Exception ex)
+ {
+ Console.Out.WriteLine(nameof(TaskJob) + ":" + ex.Message);
+ }
+
+ return Task.CompletedTask;
+ }
+ }
+}
--
Gitblit v1.9.3