刘磊
9 天以前 08d4252c79d088d7bf97a08d314ec8577d96e2d2
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs
@@ -2,17 +2,26 @@
using Mapster;
using Masuit.Tools;
using SqlSugar;
using System.Collections;
using System.Collections.Generic;
using System.Drawing.Printing;
using System.Linq.Expressions;
using System.Threading.Tasks;
using WIDESEA_Cache;
using WIDESEA_Common;
using WIDESEA_Core;
namespace WIDESEA_StorageBasicService;
public class StockInfoService : ServiceBase<DtStockInfo, IStockInfoRepository>, IStockInfoService
{
    public StockInfoService(IStockInfoRepository BaseDal) : base(BaseDal)
    private readonly ISimpleCacheService _simpleCacheService;
    private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
    public StockInfoService(IStockInfoRepository BaseDal, ISimpleCacheService simpleCacheService, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository) : base(BaseDal)
    {
        _simpleCacheService = simpleCacheService;
        _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository;
    }
    /// <summary>
@@ -51,6 +60,7 @@
        Expression<Func<DtStockInfo, bool>> locationStatus = null;
        Expression<Func<DtStockInfo, bool>> roadwayNo = null;
        Expression<Func<DtStockInfo, bool>> materielCode = null;
        foreach (var item in searchParametersList)
        {
            if (item.Name.Contains("locationStatus"))
@@ -61,20 +71,23 @@
            {
                roadwayNo = x => x.LocationInfo.RoadwayNo.Contains(item.Value);
            }
            else if (item.Name.Contains("materielCode"))
            {
                materielCode = x => x.StockInfoDetails.Any(d => d.MaterielCode.Contains(item.Value));
            }
        }
        var data = BaseDal.Db.Queryable<DtStockInfo>().IncludesAllFirstLayer().WhereIF(!wheres.IsNullOrEmpty(), wheres).WhereIF(locationStatus != null, locationStatus).WhereIF(roadwayNo != null, roadwayNo).OrderBy(orderByModels).ToPageList(options.Page, options.Rows, ref totalCount);
        //.IncludesAllFirstLayer()
        var data = BaseDal.Db.Queryable<DtStockInfo>()
            .Includes(x => x.StockInfoDetails)
            .Includes(x => x.LocationInfo)
            .WhereIF(!wheres.IsNullOrEmpty(), wheres)
            .WhereIF(locationStatus != null, locationStatus)
            .WhereIF(roadwayNo != null, roadwayNo)
            .WhereIF(materielCode != null, materielCode)
            .OrderBy(orderByModels)
            .ToPageList(options.Page, options.Rows, ref totalCount);
        new PageGridData<DtStockInfo>(totalCount, data);
        return new PageGridData<DtStockInfo>(totalCount, data);
        //var data = base.GetPageData(options);
        //foreach (var item in data.Rows)
        //{
        //    if (item.IsFull)
        //        item.Remark = item.StockInfoDetails.Count().ToString();
        //    else
        //        item.Remark = "0";
        //}
        //return data;
    }
    /// <summary>
@@ -88,6 +101,10 @@
        {
            List<DtStockInfo_Hty> stockInfos = new List<DtStockInfo_Hty>();
            List<DtLocationInfo> locationInfos = new List<DtLocationInfo>();
            var stocks = new List<string>();
            foreach (var item in keys)
            {
                var stock = BaseDal.QueryFirstNavAsync(x => x.Id == item.ObjToInt()).Result;
@@ -95,9 +112,20 @@
                stockInfos.Add(stockHty);
                var location = SqlSugarHelper.DbWMS.Queryable<DtLocationInfo>().FirstAsync(x => x.Id == stock.LocationId).Result;
                var lastStatus = location.LocationStatus;
                location.LocationStatus = (int)LocationEnum.Free;
                locationInfos.Add(location);
                stocks.Add(stock.PalletCode);
                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.ManualOperation, 0);
            }
            //_simpleCacheService.HashDel<DtStockInfo>(CacheConst.Cache_DtStockInfo, stocks.ToArray());
            //var hty = BaseDal.Db.InsertNav(stockInfos)
            //    .Include(x => x.StockInfoDetails)
            //    .ExecuteCommand();
            //var locationd = SqlSugarHelper.DbWMS.Updateable(locationInfos).ExecuteCommandHasChange();
            //return base.DeleteData(keys);
            var hty = BaseDal.Db.InsertNav(stockInfos)
                .Include(x => x.StockInfoDetails)
@@ -123,4 +151,9 @@
            .ToDictionary(x => x.Key, x => x.Count());
        return result;
    }
    //public override WebResponseContent UpdateData(DtStockInfo entity)
    //{
    //    return base.UpdateData(entity);
    //}
}