diff --git a/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/GetStackerTaskNewDestinationRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/GetStackerTaskNewDestinationRequest.cs
new file mode 100644
index 0000000..972bac3
--- /dev/null
+++ b/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/GetStackerTaskNewDestinationRequest.cs
@@ -0,0 +1,31 @@
+using DataCheck;
+using System.Text.Json.Serialization;
+
+namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
+
+public class GetStackerTaskNewDestinationRequest
+{
+
+ ///
+ /// 任务号
+ ///
+ [DataRules]
+ [JsonPropertyName("taskId")]
+ public string? TaskId { get; set; }
+
+ ///
+ /// 新终点
+ ///
+ [DataRules]
+ [JsonPropertyName("destination")]
+ public string? Destination { get; set; }
+
+ ///
+ /// 载具号
+ ///
+ [DataRules]
+ [JsonPropertyName("vehicleNo")]
+ public string? VehicleNo { get; set; }
+
+
+}
diff --git a/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryTaskRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryTaskRequest.cs
index 4ef6ac1..1f52c31 100644
--- a/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryTaskRequest.cs
+++ b/WcsMain/ApiServe/Controllers/Dto/WcsDto/ElTag/QueryTaskRequest.cs
@@ -11,6 +11,12 @@ public class QueryTaskRequest
[JsonPropertyName("searchStr")]
public string? SearchStr { get; set; }
+ ///
+ /// 任务类型
+ ///
+ [JsonPropertyName("elTagTaskType")]
+ public List? TaskType { get; set; }
+
///
/// 任务状态
///
diff --git a/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs b/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs
index db5884a..e2325c1 100644
--- a/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs
+++ b/WcsMain/ApiServe/Controllers/WmsController/WmsTaskController.cs
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using WcsMain.ApiServe.ControllerFilter;
+using WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
using WcsMain.ApiServe.Controllers.Dto.WMSEntity;
using WcsMain.ApiServe.Controllers.Dto.WMSEntity.WmsTask;
using WcsMain.ApiServe.Service.WmsService;
@@ -41,6 +42,17 @@ public class WmsTaskController(WmsTaskService wmsTaskService) : ControllerBase
return _wmsTaskService.UpdateStackerTaskStatus(request);
}
+ ///
+ /// WMS向WCS发送任务新终点,卸货位置有货的时候
+ ///
+ ///
+ ///
+ [HttpPost("setStackerTaskNewDestination")]
+ public WmsApiResponse GetStackerTaskNewDestination([FromBody] GetStackerTaskNewDestinationRequest request)
+ {
+ return _wmsTaskService.GetStackerTaskNewDestination(request);
+ }
+
diff --git a/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs b/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs
index e8afdcc..8020732 100644
--- a/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs
+++ b/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs
@@ -1,4 +1,5 @@
using DataCheck;
+using WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
using WcsMain.ApiServe.Controllers.Dto.WMSEntity;
using WcsMain.ApiServe.Controllers.Dto.WMSEntity.WmsTask;
using WcsMain.ApiServe.Factory;
@@ -17,16 +18,16 @@ namespace WcsMain.ApiServe.Service.WmsService;
/// Wms任务接口逻辑
///
[Service]
-public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDao)
+public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDao, AppWcsTaskDao wcsTaskDao)
{
private readonly AppWmsTaskDao _wmsTaskDao = wmsTaskDao;
private readonly WmsTaskAction _wmsTaskAction = wmsTaskAction;
+ private readonly AppWcsTaskDao _wcsTaskDao = wcsTaskDao;
///
/// 接收WMS任务数据处理
///
- ///
- ///
+ ///
///
public WmsApiResponse GetStackerTask(List request)
{
@@ -100,10 +101,10 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa
case 0:
string resetErrText = _wmsTaskAction.ResetWmsTaskStatus(request.TaskId, request.Destination, StaticString.WMS); // 重置任务
return string.IsNullOrEmpty(resetErrText) ? WmsApiResponseFactory.Success() : WmsApiResponseFactory.Fail(resetErrText);
- case 3:
+ case 2:
string completeErrText = _wmsTaskAction.CompleteWmsTaskStatus(request.TaskId, StaticString.WMS); // 完成任务
return string.IsNullOrEmpty(completeErrText) ? WmsApiResponseFactory.Success() : WmsApiResponseFactory.Fail(completeErrText);
- case 999:
+ case 1:
string deleteErrText = _wmsTaskAction.DeleteWmsTaskStatus(request.TaskId, StaticString.WMS); // 删除任务
return string.IsNullOrEmpty(deleteErrText) ? WmsApiResponseFactory.Success() : WmsApiResponseFactory.Fail(deleteErrText);
default:
@@ -111,6 +112,36 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa
}
}
-
+ ///
+ /// WMS向WCS发送任务新终点,卸货位置有货的时候
+ ///
+ ///
+ ///
+ public WmsApiResponse GetStackerTaskNewDestination(GetStackerTaskNewDestinationRequest request)
+ {
+ return WmsApiResponseFactory.Fail();
+ // if(!CheckData.CheckDataRules(request)) return WmsApiResponseFactory.RequestErr();
+ // /* 查找该任务有没有无法卸货 */
+ // List? wcsTasks = _wcsTaskDao.Select(new AppWcsTask { TaskId = request.TaskId, TaskStatus = (int)WcsTaskStatusEnum.doubleIn });
+ // if(wcsTasks == default) return WmsApiResponseFactory.DataBaseErr();
+ // if(wcsTasks.Count() < 1) return WmsApiResponseFactory.Fail($"任务号:{request.TaskId} 没有无法卸货的情况");
+ // wcsTasks = [.. wcsTasks.OrderByDescending(x => x.CompleteTime)];
+ // var wcsTask = wcsTasks[0]; // 获取最新的一条任务
+ // /* 如果是最后一条任务则更新WMS任务终点 */
+ // if(wcsTask.IsLastTask())
+ // {
+ // _wmsTaskDao.Update(new AppWmsTask { TaskId = request.TaskId, Destination = request.Destination, TaskMsg = "WMS修改终点" });
+ //
+ //
+ //
+ // }
+
+
+
+
+ }
+
+
+
}
\ No newline at end of file
diff --git a/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs b/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs
index 8e8dbf5..aaba4a7 100644
--- a/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs
+++ b/WcsMain/Business/CirculationTask/ElTag/LightElTag.cs
@@ -1,8 +1,10 @@
using CirculateTool;
+using LedSimple;
using WcsMain.Common;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
using WcsMain.ElTag.Atop;
+using WcsMain.ElTag.Atop.AtopEnum;
using WcsMain.ElTag.Atop.Entity;
using WcsMain.Enum.TaskEnum;
using WcsMain.EquipOperation.ElTag;
@@ -57,7 +59,19 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation,
return;
}
/* 点亮标签 */
- var resultException = _atopOperation.ShowMsg(tagInfo.ControllerDisplayName, tagInfo.TagId, tagTask.NeedNum);
+ LedColor lEDColor = new Func(() =>
+ {
+ switch (tagTask.TaskType)
+ {
+ case (int)ElTagTaskTypeEnum.PICK:
+ return LedColor.Green;
+ case (int)ElTagTaskTypeEnum.STOCK:
+ return LedColor.Blue;
+ default:
+ return LedColor.Red;
+ };
+ }).Invoke();
+ var resultException = _atopOperation.ShowMsg(tagInfo.ControllerDisplayName, tagInfo.TagId, tagTask.NeedNum, lEDColor);
if(resultException == default )
{
ConsoleLog.Success($"点亮电子标签成功,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId}");
@@ -73,4 +87,11 @@ public class LightElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation,
ConsoleLog.Warning($"【警告】点亮电子标签失败,点位:{tagTask.Location},数据:{tagTask.NeedNum},载具号:{tagTask.VehicleNo},标签号:{tagInfo.TagId},异常信息:{resultException.Message}");
}
+
+
+ public void LightPickTask()
+ {
+
+ }
+
}
diff --git a/WcsMain/Business/CirculationTask/ElTag/OffElTag.cs b/WcsMain/Business/CirculationTask/ElTag/OffElTag.cs
index 6f0cb66..33512c1 100644
--- a/WcsMain/Business/CirculationTask/ElTag/OffElTag.cs
+++ b/WcsMain/Business/CirculationTask/ElTag/OffElTag.cs
@@ -18,7 +18,7 @@ namespace WcsMain.Business.CirculationTask.ElTag;
///
/// 熄灭电子标签
///
-[Circulation]
+//[Circulation]
public class OffElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation)
{
private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao;
diff --git a/WcsMain/Business/CirculationTask/Stacker/CheckAccount.cs b/WcsMain/Business/CirculationTask/Stacker/CheckAccount.cs
index 36472b2..452e1f1 100644
--- a/WcsMain/Business/CirculationTask/Stacker/CheckAccount.cs
+++ b/WcsMain/Business/CirculationTask/Stacker/CheckAccount.cs
@@ -27,8 +27,8 @@ public class CheckAccount(StackerOperation stackerOperation, AppWcsTaskDao wcsTa
[Circulation("监控PLC地址,过账", 1000)]
public bool CheckAccountTask()
{
- var openStackers = CommonData.AppStackers.Open();
- List? taskFeedBackEntities = _stackerOperation.GetTaskFeedBackData(1, openStackers);
+ var openStackers = CommonData.AppStackers.Open(); // 只获取开放的堆垛机
+ List? taskFeedBackEntities = _stackerOperation.GetTaskFeedBackData(20, openStackers);
if (taskFeedBackEntities == default || taskFeedBackEntities.Count < 1)
{
return true;
diff --git a/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs b/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs
index d24c3c4..520a756 100644
--- a/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs
+++ b/WcsMain/Business/CirculationTask/Stacker/ExeTaskDoubleFork.cs
@@ -424,7 +424,7 @@ public class ExeTaskDoubleFork(
/* 判断这个任务是否出现卸货位置有货 */
if(doubleTask.TaskStatus != (int)WcsTaskStatusEnum.doubleIn) { return false; } // 没有重复入库不执行下面方法
/* 查找这个任务的新任务 */
- List? newTasks = _wcsTaskDao.Select(new AppWcsTask { TaskId = doubleTask.TaskId, TaskType = (int)WcsTaskTypeEnum.newTaskForDoubleIn, TaskStatus = (int)WmsTaskStatusEnum.create });
+ List? newTasks = _wcsTaskDao.Select(new AppWcsTask { TaskId = doubleTask.TaskId, TaskType = (int)WcsTaskTypeEnum.newTaskForDoubleIn, TaskStatus = (int)WcsTaskStatusEnum.create });
if (newTasks == default)
{
ConsoleLog.Error($"【异常】{stackerId} 号堆垛机重复入库任务新任务查询失败,与数据库连接异常");
diff --git a/WcsMain/Business/CirculationTask/TaskData/ResolveWmsTask.cs b/WcsMain/Business/CirculationTask/TaskData/ResolveWmsTask.cs
index 7f40d71..1205f4b 100644
--- a/WcsMain/Business/CirculationTask/TaskData/ResolveWmsTask.cs
+++ b/WcsMain/Business/CirculationTask/TaskData/ResolveWmsTask.cs
@@ -7,6 +7,8 @@ using WcsMain.Enum.TaskEnum;
using WcsMain.Business.CommonAction;
using WcsMain.Common;
using WcsMain.StaticData;
+using System.Linq.Expressions;
+using WcsMain.DataBase.MixDao;
namespace WcsMain.Business.CirculationTask.TaskData;
@@ -14,11 +16,12 @@ namespace WcsMain.Business.CirculationTask.TaskData;
/// WMS任务解析类
///
[Circulation()]
-public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsTaskStatus, DataBaseData dataBaseData)
+public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsTaskStatus, DataBaseData dataBaseData, TaskDao taskDao)
{
private readonly DataBaseData _dataBaseData = dataBaseData;
private readonly SendWmsTaskStatus _sendWmsTaskStatus = sendWmsTaskStatus;
private readonly AppWmsTaskDao _wmsTaskDao = wmsTaskDao;
+ private readonly TaskDao _taskDao = taskDao;
///
/// 解析WMS任务
@@ -63,12 +66,7 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
return;
}
/* 解析任务转换为WCS任务,一般根据项目,此处自定义规则 */
- List? wcsTasks = TransToWcsTask(wmsTask);
- if(wcsTasks == default || wcsTasks.Count < 1)
- {
-
- }
-
+ TransToWcsTask(wmsTask);
}
@@ -78,20 +76,25 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
///
///
///
- private List? TransToWcsTask(AppWmsTask task)
+ private void TransToWcsTask(AppWmsTask task)
{
- return task.TaskType switch
+ switch (task.TaskType)
{
- // 入库
- (int)WmsTaskTypeEnum.inTask => TransInTaskToWcsTask(task)?.ToList(),
- // 出库
- (int)WmsTaskTypeEnum.outTask => TransOutTaskToWcsTask(task)?.ToList(),
- // 移库
- (int)WmsTaskTypeEnum.moveTask => TransMoveTaskToWcsTask(task)?.ToList(),
- // 拣选
- (int)WmsTaskTypeEnum.pick => TransPickTaskToWcsTask(task)?.ToList(),
- // 其他任务,未识别的任务类型,直接报错
- _ => TransOtherTaskToWcsTask(task)?.ToList(),
+ case (int)WmsTaskTypeEnum.inTask:// 入库
+ TransInTaskToWcsTask(task);
+ break;
+ case (int)WmsTaskTypeEnum.outTask:// 出库
+ TransOutTaskToWcsTask(task);
+ break;
+ case (int)WmsTaskTypeEnum.moveTask:// 移库
+ TransMoveTaskToWcsTask(task);
+ break;
+ case (int)WmsTaskTypeEnum.pick:// 拣选
+ TransPickTaskToWcsTask(task);
+ break;
+ default: // 其他任务,未识别的任务类型,直接报错
+ TransOtherTaskToWcsTask(task);
+ break;
};
}
@@ -100,13 +103,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
///
///
///
- private IEnumerable? TransInTaskToWcsTask(AppWmsTask wmsTask)
+ private void TransInTaskToWcsTask(AppWmsTask wmsTask)
{
AppLocation? wcsOrigin = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Origin);
AppLocation? wcsDestination = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Destination);
- if (wcsOrigin == default || wcsDestination == default) { yield break; }
+ if (wcsOrigin == default || wcsDestination == default) { return; }
int? plcId = _dataBaseData.GetNewPlcTaskId();
- if(plcId == default) { yield break; }
+ if(plcId == default) { return; }
AppWcsTask wcsTask = new()
{
PlcId = plcId,
@@ -125,7 +128,15 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
CreatePerson = wmsTask.CreatePerson,
CreateTime = DateTime.Now,
};
- yield return wcsTask;
+ /* 插入新任务同时更新 wms 任务为排队中 */
+ string? errMessage = _taskDao.CreateWcsTask(wcsTask);
+ if(string.IsNullOrWhiteSpace(errMessage))
+ {
+ ConsoleLog.Info($"【提示】任务:{wmsTask.TaskId} 已经进入队列");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】任务:{wmsTask.TaskId} 无法处理,异常信息:{errMessage}");
+ return;
}
///
@@ -133,13 +144,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
///
///
///
- private IEnumerable? TransOutTaskToWcsTask(AppWmsTask wmsTask)
+ private void TransOutTaskToWcsTask(AppWmsTask wmsTask)
{
AppLocation? wcsOrigin = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Origin);
AppLocation? wcsDestination = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Destination);
- if (wcsOrigin == default || wcsDestination == default) { yield break; }
+ if (wcsOrigin == default || wcsDestination == default) { return; }
int? plcId = _dataBaseData.GetNewPlcTaskId();
- if (plcId == default) { yield break; }
+ if (plcId == default) { return; }
AppWcsTask wcsTask = new()
{
PlcId = plcId,
@@ -157,7 +168,15 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
CreatePerson = wmsTask.CreatePerson,
CreateTime = DateTime.Now,
};
- yield return wcsTask;
+ /* 插入新任务同时更新 wms 任务为排队中 */
+ string? errMessage = _taskDao.CreateWcsTask(wcsTask);
+ if (string.IsNullOrWhiteSpace(errMessage))
+ {
+ ConsoleLog.Info($"【提示】任务:{wmsTask.TaskId} 已经进入队列");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】任务:{wmsTask.TaskId} 无法处理,异常信息:{errMessage}");
+ return;
}
///
@@ -165,13 +184,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
///
///
///
- private IEnumerable? TransPickTaskToWcsTask(AppWmsTask wmsTask)
+ private void TransPickTaskToWcsTask(AppWmsTask wmsTask)
{
AppLocation? wcsOrigin = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Origin);
AppLocation? wcsDestination = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Destination);
- if (wcsOrigin == default || wcsDestination == default) { yield break; }
+ if (wcsOrigin == default || wcsDestination == default) { return; }
int? plcId = _dataBaseData.GetNewPlcTaskId();
- if (plcId == default) { yield break; }
+ if (plcId == default) { return; }
AppWcsTask wcsTask = new()
{
PlcId = plcId,
@@ -189,7 +208,15 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
CreatePerson = wmsTask.CreatePerson,
CreateTime = DateTime.Now,
};
- yield return wcsTask;
+ /* 插入新任务同时更新 wms 任务为排队中 */
+ string? errMessage = _taskDao.CreateWcsTask(wcsTask);
+ if (string.IsNullOrWhiteSpace(errMessage))
+ {
+ ConsoleLog.Info($"【提示】任务:{wmsTask.TaskId} 已经进入队列");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】任务:{wmsTask.TaskId} 无法处理,异常信息:{errMessage}");
+ return;
}
///
@@ -197,13 +224,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
///
///
///
- private IEnumerable? TransMoveTaskToWcsTask(AppWmsTask wmsTask)
+ private void TransMoveTaskToWcsTask(AppWmsTask wmsTask)
{
AppLocation? wcsOrigin = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Origin);
AppLocation? wcsDestination = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Destination);
- if (wcsOrigin == default || wcsDestination == default) { yield break; }
+ if (wcsOrigin == default || wcsDestination == default) { return; }
int? plcId = _dataBaseData.GetNewPlcTaskId();
- if (plcId == default) { yield break; }
+ if (plcId == default) { return; }
AppWcsTask wcsTask = new()
{
PlcId = plcId,
@@ -222,7 +249,15 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
CreatePerson = wmsTask.CreatePerson,
CreateTime = DateTime.Now,
};
- yield return wcsTask;
+ /* 插入新任务同时更新 wms 任务为排队中 */
+ string? errMessage = _taskDao.CreateWcsTask(wcsTask);
+ if (string.IsNullOrWhiteSpace(errMessage))
+ {
+ ConsoleLog.Info($"【提示】任务:{wmsTask.TaskId} 已经进入队列");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】任务:{wmsTask.TaskId} 无法处理,异常信息:{errMessage}");
+ return;
}
///
@@ -230,8 +265,8 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
///
///
///
- private IEnumerable? TransOtherTaskToWcsTask(AppWmsTask wmsTask)
+ private List? TransOtherTaskToWcsTask(AppWmsTask wmsTask)
{
- yield break;
+ return default;
}
}
\ No newline at end of file
diff --git a/WcsMain/ConsoleLog.cs b/WcsMain/ConsoleLog.cs
index 320dd48..1ea34b1 100644
--- a/WcsMain/ConsoleLog.cs
+++ b/WcsMain/ConsoleLog.cs
@@ -26,7 +26,7 @@ public class ConsoleLog
public static void Info(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
@@ -57,7 +57,7 @@ public class ConsoleLog
public static void Error(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
@@ -88,7 +88,7 @@ public class ConsoleLog
public static void Exception(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
@@ -119,7 +119,7 @@ public class ConsoleLog
public static void Success(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
@@ -150,7 +150,7 @@ public class ConsoleLog
public static void Warning(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
@@ -181,7 +181,7 @@ public class ConsoleLog
public static void Tip(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
@@ -211,7 +211,7 @@ public class ConsoleLog
public static void Tcp(bool isShow, params string[] messages)
{
if (!isShow) return;
- if (messages == default || messages.Length == 0) return;
+ if (messages.Length == 0) return;
DateTime now = DateTime.Now;
StringBuilder stringBuilder = new();
stringBuilder.AppendLine(now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
diff --git a/WcsMain/DataBase/Dao/AppElTagTaskDao.cs b/WcsMain/DataBase/Dao/AppElTagTaskDao.cs
index b72cdd8..53451ee 100644
--- a/WcsMain/DataBase/Dao/AppElTagTaskDao.cs
+++ b/WcsMain/DataBase/Dao/AppElTagTaskDao.cs
@@ -108,7 +108,13 @@ public class AppElTagTaskDao
|| w.VehicleNo!.Contains(request.SearchStr!)
|| w.GoodsId!.Contains(request.SearchStr!)
|| w.Remark!.Contains(request.SearchStr!));
- if(request.TaskStatus != default)
+ if (request.TaskType != default)
+ {
+ List taskTaskType = [];
+ request.TaskType.ForEach(item => taskTaskType.Add(item));
+ sqlFuc.Where(w => taskTaskType.Contains(w.TaskType));
+ }
+ if (request.TaskStatus != default)
{
List taskStatus = [];
request.TaskStatus.ForEach(item => taskStatus.Add(item));
diff --git a/WcsMain/DataBase/Dao/AppWmsTaskDao.cs b/WcsMain/DataBase/Dao/AppWmsTaskDao.cs
index 10ca691..d5d6644 100644
--- a/WcsMain/DataBase/Dao/AppWmsTaskDao.cs
+++ b/WcsMain/DataBase/Dao/AppWmsTaskDao.cs
@@ -139,6 +139,18 @@ public class AppWmsTaskDao
}
}
+ ///
+ /// 将taskId更新成新的
+ ///
+ ///
+ ///
+ ///
+ public int UpdateTaskId(string? oldTaskId, string? newTaskId)
+ {
+ return 0;
+
+
+ }
///
diff --git a/WcsMain/DataBase/MixDao/TaskDao.cs b/WcsMain/DataBase/MixDao/TaskDao.cs
index 72e4309..0812862 100644
--- a/WcsMain/DataBase/MixDao/TaskDao.cs
+++ b/WcsMain/DataBase/MixDao/TaskDao.cs
@@ -16,6 +16,35 @@ namespace WcsMain.DataBase.MixDao;
[Component]
public class TaskDao
{
+ ///
+ /// 插入WCS任务,同时将WMS任务更成排队中
+ ///
+ ///
+ ///
+ public string? CreateWcsTask(params AppWcsTask[] wcsTasks)
+ {
+ if(wcsTasks.Length < 1) return "未传入任务";
+ DateTime dateTime = DateTime.Now;
+ var result = CommonTool.DbServe.Ado.UseTran(() =>
+ {
+ /* 插入WCS任务表 */
+ CommonTool.DbServe.Insertable(wcsTasks).ExecuteCommand();
+ /* 更新WMS任务表状态为排队中 */
+ foreach(var wcsTask in wcsTasks)
+ {
+ CommonTool.DbServe.Updateable(new AppWmsTask
+ {
+ TaskId = wcsTask.TaskId,
+ TaskStatus = (int)WmsTaskStatusEnum.queuing,
+ StartTime = dateTime
+ }).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
+ }
+ });
+ return result.Data ? string.Empty : result.ErrorException.Message;
+ }
+
+
+
///
/// wcs任务开始
///
diff --git a/WcsMain/DataBase/TableEntity/AppElTagTask.cs b/WcsMain/DataBase/TableEntity/AppElTagTask.cs
index 1b62361..84ad4cf 100644
--- a/WcsMain/DataBase/TableEntity/AppElTagTask.cs
+++ b/WcsMain/DataBase/TableEntity/AppElTagTask.cs
@@ -20,6 +20,13 @@ public class AppElTagTask
[JsonPropertyName("taskGroup")]
public string? TaskGroup { get; set; }
+ ///
+ /// 任务类型
+ ///
+ [SugarColumn(ColumnName = "task_type")]
+ [JsonPropertyName("taskType")]
+ public int? TaskType { get; set; }
+
///
/// 点位
///
diff --git a/WcsMain/ElTag/Atop/BaseOprDataHandler.cs b/WcsMain/ElTag/Atop/BaseOprDataHandler.cs
index a28aef7..94d07cc 100644
--- a/WcsMain/ElTag/Atop/BaseOprDataHandler.cs
+++ b/WcsMain/ElTag/Atop/BaseOprDataHandler.cs
@@ -1,5 +1,4 @@
using System.Text.RegularExpressions;
-using WcsMain.Common;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
using WcsMain.ElTag.Atop.AtopEnum;
@@ -58,7 +57,7 @@ public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagT
///
public void Confirm(TagReturnInfo tcpServe)
{
- _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符
+ // _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符
/* 找出这个标签最新点亮的那条记录 */
List? eltags = _tagBaseDao.Query(new AppElTagBase { ControllerDisplayName = tcpServe.ControllerDisplayName, TagId = tcpServe.TagId });
if(eltags == default)
@@ -97,7 +96,7 @@ public class BaseOprDataHandler(AppElTagBaseDao tagBaseDao, AppElTagTaskDao tagT
var tagTask = tagTasks[0]; // 获取到的任务
int pickNum = Regex.Replace(tcpServe.Data!, "\\D", "").IsNumber() ? Convert.ToInt32(tcpServe.Data) : -1;
/* 更新任务状态为确认 */
- _tagTaskDao.Update(new AppElTagTask() { TaskId = tagTask.TaskId, ConfirmTime = DateTime.Now, TaskStatus = (int)ElTagTaskStatusEnum.Confirm, PickNum = pickNum, Remark = "标签确认" });
+ _tagTaskDao.Update(new AppElTagTask() { TaskId = tagTask.TaskId, ConfirmTime = DateTime.Now, TaskStatus = (int)ElTagTaskStatusEnum.Confirm, PickNum = pickNum, Remark = "标签确认", OffTime = DateTime.Now });
/* 更新绑定的库位信息为空 */
_tagBaseDao.ResetLocation(eltag.Location!);
ConsoleLog.Success($"电子标签确认按钮按下,标签任务号:{tagTask.TaskId} 已经确认,箱号:{tagTask.VehicleNo},拣选数量:{tagTask.NeedNum}({pickNum}) 控制器:{tcpServe.ControllerDisplayName},标签号:{tcpServe.TagId},数据:{tcpServe.Data}");
diff --git a/WcsMain/Enum/TaskEnum/ElTagTaskTypeEnum.cs b/WcsMain/Enum/TaskEnum/ElTagTaskTypeEnum.cs
new file mode 100644
index 0000000..458f582
--- /dev/null
+++ b/WcsMain/Enum/TaskEnum/ElTagTaskTypeEnum.cs
@@ -0,0 +1,10 @@
+namespace WcsMain.Enum.TaskEnum;
+
+///
+/// 电子标签的任务类型
+///
+public enum ElTagTaskTypeEnum
+{
+ PICK = 1, // 拣选任务
+ STOCK = 2, // 存储确认
+}
diff --git a/WcsMain/appsettings.json b/WcsMain/appsettings.json
index 2f6a46a..33113d0 100644
--- a/WcsMain/appsettings.json
+++ b/WcsMain/appsettings.json
@@ -14,7 +14,7 @@
"DBMssqlLocal": "Data Source=192.168.142.131;Initial Catalog=wcs_stacker;User Id=sa;Password=Sa123;",
"ApplicationConfig": {
- "ApiOnly": false,
+ "ApiOnly": true,
"Language": "zh-CN"
},
"UseUrls": [ "http://*:890" ]