<update>[important]完善任务解析
This commit is contained in:
parent
fcf6acb39b
commit
7ffb3e46be
|
|
@ -0,0 +1,31 @@
|
|||
using DataCheck;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.ElTag;
|
||||
|
||||
public class GetStackerTaskNewDestinationRequest
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 任务号
|
||||
/// </summary>
|
||||
[DataRules]
|
||||
[JsonPropertyName("taskId")]
|
||||
public string? TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 新终点
|
||||
/// </summary>
|
||||
[DataRules]
|
||||
[JsonPropertyName("destination")]
|
||||
public string? Destination { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 载具号
|
||||
/// </summary>
|
||||
[DataRules]
|
||||
[JsonPropertyName("vehicleNo")]
|
||||
public string? VehicleNo { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -11,6 +11,12 @@ public class QueryTaskRequest
|
|||
[JsonPropertyName("searchStr")]
|
||||
public string? SearchStr { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务类型
|
||||
/// </summary>
|
||||
[JsonPropertyName("elTagTaskType")]
|
||||
public List<int>? TaskType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// WMS向WCS发送任务新终点,卸货位置有货的时候
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("setStackerTaskNewDestination")]
|
||||
public WmsApiResponse GetStackerTaskNewDestination([FromBody] GetStackerTaskNewDestinationRequest request)
|
||||
{
|
||||
return _wmsTaskService.GetStackerTaskNewDestination(request);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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任务接口逻辑
|
||||
/// </summary>
|
||||
[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;
|
||||
|
||||
/// <summary>
|
||||
/// 接收WMS任务数据处理
|
||||
/// </summary>
|
||||
/// <param name="taskEntity"></param>
|
||||
/// <param name="createPerson"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public WmsApiResponse GetStackerTask(List<GetStackerRequest> 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
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// WMS向WCS发送任务新终点,卸货位置有货的时候
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public WmsApiResponse GetStackerTaskNewDestination(GetStackerTaskNewDestinationRequest request)
|
||||
{
|
||||
return WmsApiResponseFactory.Fail();
|
||||
// if(!CheckData.CheckDataRules(request)) return WmsApiResponseFactory.RequestErr();
|
||||
// /* 查找该任务有没有无法卸货 */
|
||||
// List<AppWcsTask>? 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修改终点" });
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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<LedColor>(() =>
|
||||
{
|
||||
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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace WcsMain.Business.CirculationTask.ElTag;
|
|||
/// <summary>
|
||||
/// 熄灭电子标签
|
||||
/// </summary>
|
||||
[Circulation]
|
||||
//[Circulation]
|
||||
public class OffElTag(AppElTagTaskDao tagTaskDao, AtopOperation atopOperation)
|
||||
{
|
||||
private readonly AppElTagTaskDao _tagTaskDao = tagTaskDao;
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@ public class CheckAccount(StackerOperation stackerOperation, AppWcsTaskDao wcsTa
|
|||
[Circulation("监控PLC地址,过账", 1000)]
|
||||
public bool CheckAccountTask()
|
||||
{
|
||||
var openStackers = CommonData.AppStackers.Open();
|
||||
List<TaskFeedBackEntity>? taskFeedBackEntities = _stackerOperation.GetTaskFeedBackData(1, openStackers);
|
||||
var openStackers = CommonData.AppStackers.Open(); // 只获取开放的堆垛机
|
||||
List<TaskFeedBackEntity>? taskFeedBackEntities = _stackerOperation.GetTaskFeedBackData(20, openStackers);
|
||||
if (taskFeedBackEntities == default || taskFeedBackEntities.Count < 1)
|
||||
{
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -424,7 +424,7 @@ public class ExeTaskDoubleFork(
|
|||
/* 判断这个任务是否出现卸货位置有货 */
|
||||
if(doubleTask.TaskStatus != (int)WcsTaskStatusEnum.doubleIn) { return false; } // 没有重复入库不执行下面方法
|
||||
/* 查找这个任务的新任务 */
|
||||
List<AppWcsTask>? newTasks = _wcsTaskDao.Select(new AppWcsTask { TaskId = doubleTask.TaskId, TaskType = (int)WcsTaskTypeEnum.newTaskForDoubleIn, TaskStatus = (int)WmsTaskStatusEnum.create });
|
||||
List<AppWcsTask>? newTasks = _wcsTaskDao.Select(new AppWcsTask { TaskId = doubleTask.TaskId, TaskType = (int)WcsTaskTypeEnum.newTaskForDoubleIn, TaskStatus = (int)WcsTaskStatusEnum.create });
|
||||
if (newTasks == default)
|
||||
{
|
||||
ConsoleLog.Error($"【异常】{stackerId} 号堆垛机重复入库任务新任务查询失败,与数据库连接异常");
|
||||
|
|
|
|||
|
|
@ -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任务解析类
|
||||
/// </summary>
|
||||
[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;
|
||||
|
||||
/// <summary>
|
||||
/// 解析WMS任务
|
||||
|
|
@ -63,12 +66,7 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
|
|||
return;
|
||||
}
|
||||
/* 解析任务转换为WCS任务,一般根据项目,此处自定义规则 */
|
||||
List<AppWcsTask>? wcsTasks = TransToWcsTask(wmsTask);
|
||||
if(wcsTasks == default || wcsTasks.Count < 1)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
TransToWcsTask(wmsTask);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -78,20 +76,25 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
|
|||
/// </summary>
|
||||
/// <param name="task"></param>
|
||||
/// <returns></returns>
|
||||
private List<AppWcsTask>? 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
|
|||
/// </summary>
|
||||
/// <param name="wmsTask"></param>
|
||||
/// <returns></returns>
|
||||
private IEnumerable<AppWcsTask>? 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -133,13 +144,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
|
|||
/// </summary>
|
||||
/// <param name="wmsTask"></param>
|
||||
/// <returns></returns>
|
||||
private IEnumerable<AppWcsTask>? 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -165,13 +184,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
|
|||
/// </summary>
|
||||
/// <param name="wmsTask"></param>
|
||||
/// <returns></returns>
|
||||
private IEnumerable<AppWcsTask>? 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -197,13 +224,13 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
|
|||
/// </summary>
|
||||
/// <param name="wmsTask"></param>
|
||||
/// <returns></returns>
|
||||
private IEnumerable<AppWcsTask>? 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -230,8 +265,8 @@ public class ResolveWmsTask(AppWmsTaskDao wmsTaskDao, SendWmsTaskStatus sendWmsT
|
|||
/// </summary>
|
||||
/// <param name="wmsTask"></param>
|
||||
/// <returns></returns>
|
||||
private IEnumerable<AppWcsTask>? TransOtherTaskToWcsTask(AppWmsTask wmsTask)
|
||||
private List<AppWcsTask>? TransOtherTaskToWcsTask(AppWmsTask wmsTask)
|
||||
{
|
||||
yield break;
|
||||
return default;
|
||||
}
|
||||
}
|
||||
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -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<int?> taskTaskType = [];
|
||||
request.TaskType.ForEach(item => taskTaskType.Add(item));
|
||||
sqlFuc.Where(w => taskTaskType.Contains(w.TaskType));
|
||||
}
|
||||
if (request.TaskStatus != default)
|
||||
{
|
||||
List<int?> taskStatus = [];
|
||||
request.TaskStatus.ForEach(item => taskStatus.Add(item));
|
||||
|
|
|
|||
|
|
@ -139,6 +139,18 @@ public class AppWmsTaskDao
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将taskId更新成新的
|
||||
/// </summary>
|
||||
/// <param name="oldTaskId"></param>
|
||||
/// <param name="newTaskId"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateTaskId(string? oldTaskId, string? newTaskId)
|
||||
{
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,35 @@ namespace WcsMain.DataBase.MixDao;
|
|||
[Component]
|
||||
public class TaskDao
|
||||
{
|
||||
/// <summary>
|
||||
/// 插入WCS任务,同时将WMS任务更成排队中
|
||||
/// </summary>
|
||||
/// <param name="wcsTasks"></param>
|
||||
/// <returns></returns>
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// wcs任务开始
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,13 @@ public class AppElTagTask
|
|||
[JsonPropertyName("taskGroup")]
|
||||
public string? TaskGroup { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务类型
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "task_type")]
|
||||
[JsonPropertyName("taskType")]
|
||||
public int? TaskType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 点位
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -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
|
|||
/// <param name="tcpServe"></param>
|
||||
public void Confirm(TagReturnInfo tcpServe)
|
||||
{
|
||||
_atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符
|
||||
// _atopOperation.ShowMsgOnly(tcpServe.ControllerDisplayName, tcpServe.TagId, tcpServe.Data); // 重新点亮标签,仅显示字符
|
||||
/* 找出这个标签最新点亮的那条记录 */
|
||||
List<AppElTagBase>? 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}");
|
||||
|
|
|
|||
10
WcsMain/Enum/TaskEnum/ElTagTaskTypeEnum.cs
Normal file
10
WcsMain/Enum/TaskEnum/ElTagTaskTypeEnum.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
namespace WcsMain.Enum.TaskEnum;
|
||||
|
||||
/// <summary>
|
||||
/// 电子标签的任务类型
|
||||
/// </summary>
|
||||
public enum ElTagTaskTypeEnum
|
||||
{
|
||||
PICK = 1, // 拣选任务
|
||||
STOCK = 2, // 存储确认
|
||||
}
|
||||
|
|
@ -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" ]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user