pan
2025-12-01 561c40186ee1a0134c5f671cf4ed24badcdcd6a3
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -19,16 +19,33 @@
{
    public partial class TaskService 
    {
        /// <summary>
        /// ESS扫码请求入库
        /// </summary>
        /// <param name="palletCode"></param>
        /// <param name="stationCode"></param>
        /// <returns></returns>
        public async Task<WebResponseContent> RequestInboundTask(string palletCode, string stationCode)
        {
            try
            {
                Dt_Task dbtask = Repository.QueryFirst(x => x.PalletCode == palletCode);
                Dt_Task dbtask = Repository.Db.Queryable<Dt_Task>().Where(x => x.PalletCode == palletCode).OrderByDescending(x=>x.CreateDate).First();
                if (dbtask != null)
                {
                    return WebResponseContent.Instance.Error($"该托盘已生成任务");
                }
                    _logger.LogInformation($"任务类型{dbtask.TaskType.ToString()} ,{dbtask.TaskNum}  ");
                    if (dbtask.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                    {
                        return WebResponseContent.Instance.Error($"出库待分拣任务");
                    }
                    else if (dbtask.TaskType == TaskTypeEnum.OutAllocate.ObjToInt())
                    {
                        return WebResponseContent.Instance.Error($"出库待分拣任务");
                    }
                    else
                    {
                        return WebResponseContent.Instance.Error($"该托盘已生成任务");
                    }
                }
                Dt_StockInfo stockInfo = _stockRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
                if (stockInfo == null)
@@ -45,7 +62,7 @@
                    return WebResponseContent.Instance.Error($"该托盘已绑定货位");
                }
                Dt_LocationInfo? locationInfo = _locationInfoService.AssignLocation();
                Dt_LocationInfo? locationInfo = _locationInfoService.AssignLocation(stockInfo.LocationType);
                if (locationInfo == null)
                {
                    return WebResponseContent.Instance.Error($"货位分配失败,未找到可分配货位");
@@ -53,7 +70,7 @@
                var newTask = new Dt_Task()
                {
                {
                    CurrentAddress = stationCode,
                    Grade = 0,
                    NextAddress = stations.GetValueOrDefault(stationCode) ?? "",
@@ -65,7 +82,8 @@
                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
                    WarehouseId = stockInfo.WarehouseId,
                    PalletType = stockInfo.PalletType,
                    OrderNo= stockInfo.Details.FirstOrDefault()?.OrderNo
                };
                //空箱
                if (stockInfo.PalletType == PalletTypeEnum.Empty.ObjToInt())
@@ -131,12 +149,24 @@
                            }
                    }
                };
                _logger.LogInformation("创建任务Request:  " + JsonConvert.SerializeObject(esstask));
                var result = await _eSSApiService.CreateTaskAsync(esstask);
                _logger.LogInformation("创建任务返回:  " + result);
                if (result)
                {
                    try
                    {
                        await _eSSApiService.MoveContainerAsync(new WIDESEA_DTO.Basic.MoveContainerRequest
                        {
                            slotCode = stationCode,
                            containerCode = palletCode
                        });
                    }
                    catch (Exception ex) {
                    }
                    return WebResponseContent.Instance.OK();
                }
                else