huangxiaoqiang
2025-10-27 387731cab892804912e68cb91e6fb804411c4756
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
@@ -1,4 +1,6 @@
using WIDESEA_DTO;
using WIDESEA_Core.Enums;
using WIDESEA_DTO;
using WIDESEA_DTO.WMS;
namespace WIDESEA_IStorageTaskServices;
@@ -34,6 +36,19 @@
    Task<WebResponseContent> CompleteAsync(int taskNum);
    /// <summary>
    /// å–消任务
    /// </summary>
    /// <param name="taskNum"></param>
    /// <returns></returns>
    WebResponseContent TaskCancel(int taskNum);
    /// <summary>
    /// èŽ·å–ä»»åŠ¡ä¿¡æ¯
    /// </summary>
    /// <returns></returns>
    WebResponseContent GetTaskInfo();
    /// <summary>
    /// è¯·æ±‚任务巷道
    /// </summary>
    /// <param name="position"></param>
@@ -41,21 +56,29 @@
    /// <param name="palletCode"></param>
    /// <param name="type"></param>
    /// <returns></returns>
    Task<WebResponseContent> RequestTaskAsync(RequestTaskDto input);
    Task<WebResponseContent> RequestInboundTaskAsync(RequestTaskDto taskDto);
    /// <summary>
    /// èŽ·å–ç©ºè´§ä½
    /// </summary>
    /// <param name="roadWay"></param>
    /// <returns></returns>
    Task<DtLocationInfo> GetEmptyLocation(string roadWay);
    /// <summary>
    /// èŽ·å–AGV空货位
    /// </summary>
    /// <param name="AreaId"></param>
    /// <returns></returns>
    Task<DtLocationInfo> GetAGVEmptyCacheLocation(int AreaId, DtLocationInfo location);
    /// <summary>
    /// è¯·æ±‚任务货位
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input);
    /// <summary>
    /// è¯·æ±‚空托盘任务
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input);
    Task<WebResponseContent> RequestLocationAsync(RequestTaskDto input);
    /// <summary>
    /// è¯·æ±‚托盘任务
@@ -65,7 +88,19 @@
    /// <param name="areaCode">区域编码</param>
    /// <param name="roadways">巷道列表</param>
    /// <returns>返回结果集</returns>
    Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> areaCodes, string productionLine);
    Task<Dt_Task> RequestOutboundTaskAsync(RequestTaskDto taskDto);
    /// <summary>
    /// å…¶ä»–出库任务请求
    /// </summary>
    /// <param name="palletCode"></param>
    /// <returns></returns>
    Task<WebResponseContent> OutBoundTaskAsync(string palletCode);
    (List<DtLocationStatusChangeRecord>, List<DtLocationInfo>) GetlcoationState(List<Dt_Task> tasks, int StatusChangeTypeEnum);
    (List<DtLocationStatusChangeRecord>, List<DtLocationInfo>) GetlcoationState(Dt_Task task, int StatusChangeTypeEnum);
    /// <summary>
@@ -75,4 +110,56 @@
    /// <returns></returns>
    Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState);
    /// <summary>
    /// è¯·æ±‚跨楼层2任务
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Task<WebResponseContent> AcrossFloorTaskAsync(RequestAcrossFloorTaskDto taskDto);
    /// <summary>
    /// è¯·æ±‚跨楼层任务
    /// </summary>
    /// <param name="SourceAddress"></param>
    /// <param name="palletCode"></param>
    /// <param name="TargetAddress"></param>
    /// <returns></returns>
    Dt_Task RequestAcrossFloorTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, RequestTaskDto taskDto);
    /// <summary>
    /// AGV请求搬运任务
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Dt_Task RequestAGVCarryTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, RequestTaskDto taskDto);
    /// <summary>
    /// å †åž›æœºå‡ºåº“是否需要移库
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Task<WebResponseContent> StackerIsNeedRelocationAsync(RequestTaskDto taskDto);
    /// <summary>
    /// AGV出库是否需要移库
    /// </summary>
    /// <param name="taskDto"></param>
    /// <returns></returns>
    Task<WebResponseContent> AGVIsNeedRelocationAsync(RequestTaskDto taskDto);
    Task<WebResponseContent> ERPAllocate(string palletCode);
    Task<WebResponseContent> SendWCSTask(List<WMSTaskDTO> taskDTO);
    (List<DtLocationStatusChangeRecord>, List<DtLocationInfo>) UpdateLocationStatus(DtLocationInfo location, LocationEnum locationStatus, int taskNum, int StatusChangeType);
    (List<DtLocationStatusChangeRecord>, List<DtLocationInfo>) UpdateLocationStatus(string locationCode, LocationEnum locationStatus, int taskNum, int StatusChangeType);
    bool LocationIsOutBound(DtLocationInfo location);
}