xiazhengtongxue
2026-02-09 e81c782b3e7a632ffb8e32be56fce931a8c89ae6
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_BasicInfoService/LocationInfoService.cs
@@ -1,26 +1,17 @@
using HslCommunication.WebSocket;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using MathNet.Numerics.Statistics.Mcmc;
using NPOI.SS.UserModel;
using NPOI.Util.Collections;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using NPOI.XSSF.UserModel;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using System.Reflection;
using WIDESEA_DTO.Basic;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.WareHouseEnum;
using WIDESEAWCS_Common.Helper;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.Utilities;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_Model.Models;
@@ -121,7 +112,21 @@
                    { nameof(Dt_LocationInfo.Columns),OrderByType.Desc },
                };
                Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//查询空货位信息并排除5分钟内分配的货位,根据层、列、深度、行排序
                //Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//查询空货位信息并排除5分钟内分配的货位,根据层、列、深度、行排序
                // åˆå¹¶æŸ¥è¯¢æ¡ä»¶ï¼Œä¼˜å…ˆ44~48列,若无则查全部
                Dt_LocationInfo locationInfo = BaseDal.QueryFirst(
                    x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
                        && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt()
                        && !lockLocations.Contains(x.LocationCode)
                        && (x.Columns >= 44 && x.Columns <= 48), // ä¼˜å…ˆ44~48列的条件
                    orderBy)
                    ??
                    BaseDal.QueryFirst(
                        x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
                            && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt()
                            && !lockLocations.Contains(x.LocationCode),
                        orderBy);
                if (locationInfo!=null)
                {
                    LocationCache locationCache = new LocationCache()
@@ -197,45 +202,19 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
                IExporter exporter = new ExcelExporter();
                options.Page = 1;
                options.Rows = 30;
                options.Order = "asc";
                options.Sort = "id";
                string savePath = AppDomain.CurrentDomain.BaseDirectory + "ExcelExport";
                string where = string.Empty;
                ISugarQueryable<Dt_LocationInfo> sugarQueryable = BaseDal.Db.Queryable<Dt_LocationInfo>();
                if (!string.IsNullOrEmpty(options.Wheres))
                {
                    try
                    {
                        List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                        if (searchParametersList?.Any() == true)
                        {
                            foreach (var param in searchParametersList)
                            {
                                switch (param.Name)
                                {
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
                // ç¡®ä¿ç›®å½•存在
                if (!Directory.Exists(savePath))
                    Directory.CreateDirectory(savePath);
                // èŽ·å–æ•°æ®
                ISugarQueryable<Dt_LocationInfo> query = BaseDal.Db.Queryable<Dt_LocationInfo>();
                var dataList = query.ToList();
                var properties = typeof(Dt_LocationInfo).GetProperties();
                byte[] data = exporter.ExportAsByteArray(sugarQueryable.ToList()).Result;
                string fileName = "库位信息.xlsx";
                FileHelper.WriteFile(savePath, fileName, data);
                content = WebResponseContent.Instance.OK(data: savePath + "\\" + fileName);
                string filePath = TExportHelper.GetExport(savePath, properties, dataList);
                return WebResponseContent.Instance.OK(data: filePath);
            }
            catch (Exception ex)
            {