wangxinhui
2025-12-29 d0cc37c3c11859cc55f30624692dca55be2b8a32
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs
@@ -18,11 +18,13 @@
using AutoMapper;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using SqlSugar;
using System.Reflection.Emit;
using System.Threading.Tasks;
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.MaterielEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
@@ -35,6 +37,7 @@
using WIDESEA_DTO;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Outbound;
using WIDESEA_DTO.Stock;
using WIDESEA_DTO.Task;
using WIDESEA_External.ERPService;
@@ -185,5 +188,68 @@
            }
            return content;
        }
        /// <summary>
        /// å¯ç”¨
        /// </summary>
        /// <returns></returns>
        public WebResponseContent EnableStatus(int[] keys)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                List<Dt_Task> tasks = BaseDal.QueryData(x => x.TaskType < TaskTypeEnum.Inbound.ObjToInt());
                List<Dt_AGVStationInfo> stationInfos = _basicRepository.AGVStationInfoRepository.QueryData(x => keys.Contains(x.Id));
                foreach (var station in stationInfos)
                {
                    Dt_Task? taskOld = tasks.FirstOrDefault(x => x.TargetAddress == station.AGVStationCode);
                    if (taskOld!=null)
                    {
                        content.Message+= $"{station.AGVStationCode}出库{taskOld.TaskNum}任务执行中;";
                        continue;
                    }
                    if (station.StationArea==StationAreaEnum.一楼暂存架.ToString())
                    {
                        Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x=>x.LocationCode==station.AGVStationCode);
                        if (stockInfo!=null)
                        {
                            content.Message += $"{station.AGVStationCode}{stockInfo.PalletCode}库存绑定;";
                            continue;
                        }
                    }
                    station.IsOccupied = WhetherEnum.False.ObjToInt();
                }
                _basicRepository.AGVStationInfoRepository.UpdateData(stationInfos);
                content.OK(content.Message.IsNullOrEmpty() ? "成功" : $"部分成功启用!{content.Message}无法启用");
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// ç¦ç”¨
        /// </summary>
        /// <returns></returns>
        public WebResponseContent DisableStatus(int[] keys)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                List<Dt_AGVStationInfo> stationInfos = _basicRepository.AGVStationInfoRepository.QueryData(x => keys.Contains(x.Id));
                stationInfos.ForEach(x =>
                {
                    x.IsOccupied = WhetherEnum.True.ObjToInt();
                });
                _basicRepository.AGVStationInfoRepository.UpdateData(stationInfos);
                content.OK("成功");
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
    }
}