leiqunqing
2026-01-28 9f3b0f54b2c109bf32c250385b23df364c6ba4a4
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -18,12 +18,15 @@
using AutoMapper;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_DTO.WMS;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -76,18 +79,18 @@
            {
                foreach (var item in taskDTOs)
                {
                    if (item.taskType == TaskTypeEnum.MLInbound.ObjToInt())
                    foreach (var task in item.tasks)
                    {
                        foreach (var task in item.tasks)
                        content = TaskHelpMethods.isOkTaskInfo(task, true, true);
                        if (!content.Status) throw new Exception(content.Message);
                        if (BaseDal.QueryFirst(x => x.WMSTaskNum == task.taskCode || x.PalletCode == task.containerCode) != null)
                        {
                            content = TaskHelpMethods.isOkTaskInfo(task, true, true);
                            if (!content.Status) throw new Exception(content.Message);
                            if (BaseDal.QueryFirst(x => x.WMSTaskNum == task.taskCode || x.PalletCode == task.containerCode) != null)
                            {
                                continue;
                            }
                            CreateNewInTask(task);
                            continue;
                        }
                        if (item.taskType == TaskTypeEnum.MLInbound.ObjToInt())
                            CreateKLSNewInTask(task, item.taskType);
                        else if (item.taskType == TaskTypeEnum.MLOutbound.ObjToInt())
                            CreateKLSNewOutTask(task, item.taskType);
                    }
                }
            }
@@ -97,6 +100,92 @@
            }
            return content;
        }
        /// <summary>
        /// å–消任务
        /// </summary>
        /// <param name="taskCode">任务号</param>
        /// <param name="containerCode">料箱条码</param>
        /// <returns></returns>
        public WebResponseContent CancelWMSTask(WMSCancelTask wMSCancelTask)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == wMSCancelTask.TaskCode);
                if (dt_Task == null) throw new Exception("未查询到任务号相关任务");
                if (dt_Task.TaskType == TaskTypeEnum.MLInbound.ObjToInt() || dt_Task.TaskType == TaskTypeEnum.CPInbound.ObjToInt() || dt_Task.TaskType == TaskTypeEnum.CJInbound.ObjToInt())
                    dt_Task.TaskType = TaskInStatusEnum.InCancel.ObjToInt();
                else if (dt_Task.TaskType == TaskTypeEnum.MLOutbound.ObjToInt() || dt_Task.TaskType == TaskTypeEnum.CPOutbound.ObjToInt() || dt_Task.TaskType == TaskTypeEnum.CJOutbound.ObjToInt())
                    dt_Task.TaskType = TaskOutStatusEnum.OutCancel.ObjToInt();
                BaseDal.UpdateData(dt_Task);
                content.OK();
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// ä¿®æ”¹ä»»åŠ¡ä¼˜å…ˆçº§
        /// </summary>
        /// <param name="updateTaskPriority"></param>
        /// <returns></returns>
        public WebResponseContent UpdateWMSTaskPriority(WMSUpdateTaskPriority updateTaskPriority)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == updateTaskPriority.taskCode);
                if (dt_Task == null) throw new Exception("未查询到任务号相关任务");
                dt_Task.Grade = updateTaskPriority.taskPriority;
                BaseDal.UpdateData(dt_Task);
                content.OK();
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// ä¿®æ”¹åº“位分区
        /// </summary>
        /// <returns></returns>
        public WebResponseContent ModifyWMSLayoutZone(WMSUpdateLocationArea wMSUpdateLocationArea)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                if(wMSUpdateLocationArea.WarehouseId == 1)
                {
                    foreach (var LocationCode in wMSUpdateLocationArea.LocationCodes)
                    {
                        Dt_RGVLocationInfo dt_RGVLocationInfo = _rGVLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
                        UpdateLocationCode(dt_RGVLocationInfo,wMSUpdateLocationArea.UpdateAreaCode);
                    }
                }
                content.OK();
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        private void UpdateLocationCode(object LocationInfo, string updateAreaCode)
        {
        }
        /// <summary>
        /// æŽ¥æ”¶WMS任务信息
        /// </summary>
@@ -625,5 +714,14 @@
            }
            return content;
        }
        static object lock_taskNum = new object();
        public int GetTaskNum(string sequenceName)
        {
            lock (lock_taskNum)
            {
                return Db.Ado.GetScalar($"SELECT NEXT VALUE FOR {sequenceName}").ObjToInt();
            }
        }
    }
}