1
huanghongfeng
2025-06-25 b1c2dd1869a51b8f0e4acb9ddeb148f796db147f
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs
@@ -15,6 +15,9 @@
using Autofac.Core;
using NetTaste;
using AngleSharp.Io;
using WIDESEA_IRepository;
using WIDESEA_Core.Const;
using WIDESEA_IServices;
namespace WIDESEA_StorageBasicService;
@@ -23,11 +26,13 @@
    private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository;
    private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository;
    private readonly IToZYService _toZYService;
    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService) : base(BaseDal)
    private readonly ISys_ConfigService _sys_ConfigService;
    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService, ISys_ConfigService ISys_ConfigService) : base(BaseDal)
    {
        _SelectionStandardsRepository = selectionStandardsRepository;
        _WheelsStock_HtyRepository = WheelsStock_HtyRepository;
        _toZYService = toZYService;
        _sys_ConfigService = ISys_ConfigService;
    }
    /// <summary>
@@ -71,17 +76,16 @@
        //过盈量下限
        decimal selectionLowerValue = selectionStandards.lowerValue;
        decimal mesStand = 0;
        string level = string.Empty;
        if ("left".Equals(wheelsPosition))  //匹配左轮座轮子
        {
            mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
            decimal mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ);
            WheelsList = WheelsList.Where(x => mesStand - (decimal.Parse(x.Wheels_gkcc)) >= selectionLowerValue && mesStand - (decimal.Parse(x.Wheels_gkcc)) <= selectionUpperValue && x.Wheels_level == level && x.Wheels_NewOrOld == newOrOld).ToList();
        }
        else    //否则匹配右轮座轮子
        {
            mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
            decimal mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ);
            WheelsList = WheelsList.Where(x => mesStand - (decimal.Parse(x.Wheels_gkcc)) >= selectionLowerValue && mesStand - (decimal.Parse(x.Wheels_gkcc)) <= selectionUpperValue && x.Wheels_level == level && x.Wheels_NewOrOld == newOrOld).ToList();
        }
@@ -131,7 +135,7 @@
    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld)
    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld, string wheelsProps)
    {
        try
        {
@@ -148,14 +152,14 @@
            {
                mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
                wheelsStocks = wheelsStocks.Where(x => x.venderno== level && x.repair_item == newOrOld).ToList();
                wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList();
            }
            else    //否则匹配右轮座轮子
            {
                mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
                wheelsStocks = wheelsStocks.Where(x => x.venderno== level && x.repair_item == newOrOld).ToList();
                wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList();
            }
            foreach (var item in wheelsStocks)
            {
@@ -163,16 +167,23 @@
                string Wheels_gkzja = "";
                string Wheels_gkzjb = "";
                string Wheels_gkzjc = "";
                string clsx = "";
                SaveModel saveModel = new SaveModel();
                saveModel.MainData = new Dictionary<string, object>
            {
                { "cltm", item.wheel_code }
            };
                {
                    { "cltm", item.wheel_code }
                };
                WebResponseContent webResponse = _toZYService.ZY_GetCLInfo(saveModel);
                if (webResponse.Status)
                {
                    CLInfo_ZY data = (CLInfo_ZY)webResponse.Data;
                    if(wheelsProps== data.CLSX)
                    {
                        wheelsStocks.Remove(item);
                        continue;
                    }
                    Wheels_gkcc = data.gkcc;
                    // æ¯‚å­”a界面均值
@@ -190,6 +201,7 @@
                    {
                        wheelsStocks.Remove(item);
                        continue;
                    }
                    if (selectionStandards.isCantainGK)
                    {
@@ -210,6 +222,7 @@
                                && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk)
                            {
                                wheelsStocks.Remove(item);
                                continue;
                            }
                        }
                        else
@@ -223,6 +236,7 @@
                                && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk)
                            {
                                wheelsStocks.Remove(item);
                                continue;
                            }
@@ -242,7 +256,80 @@
        }
    }
    public WebResponseContent InventoryStatistics()
    {
        WebResponseContent content = new WebResponseContent();
        List<Dt_WheelsStock> stockInfos = BaseDal.QueryData();
        //获取车型
        List<string> Wheels_CarTypeList = stockInfos.Select(x => x.Wheels_CarType).Distinct().ToList();
        List<WheelGroupInfo> groupedData = new List<WheelGroupInfo>();
        foreach (var CarType in Wheels_CarTypeList)
        {
            var kd = stockInfos.Where(x => x.Wheels_CarType == CarType).GroupBy(w => w.Wheels_ldxh)
           .Select(typeGroup => new WheelGroupInfo
           {
               Wheels_CarType = CarType,    //车型
               Wheels_ldxh = typeGroup.Key,
               Count = typeGroup.Count(),
           }).ToList();
            groupedData.AddRange(kd);
        }
        content.Data = groupedData;
        return content;
    }
    public class WheelGroupInfo
    {
        public string Wheels_CarType { get; set; }
        public string Wheels_ldxh { get; set; }
        public int Count { get; set; }
    }
    public WebResponseContent UpdateInventoryStatue()
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            List<Dt_WheelsStock> groupedData = new List<Dt_WheelsStock>();
            var hourpara = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_Parameters, SysConfigConst.InventoryMarket);
            int hour = hourpara.ConfigValue.ObjToInt(); //获取设置的预期时间
            List<Dt_WheelsStock> WheelsList = BaseDal.QueryData();      //获取全部车轮信息
            foreach (var item in WheelsList)
            {
                TimeSpan timeDifference = DateTime.Today - item.CreateDate.Date;
                item.Wheels_DateDet = (int)timeDifference.TotalDays;
                if (item.Wheels_DateDet >= hour)
                {
                    item.Wheels_Statue = 1;
                }
                else
                {
                    item.Wheels_Statue = 0;
                }
                groupedData.Add(item);
            }
             BaseDal.UpdateData(groupedData);
            return content.OK();
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
            throw;
        }
    }
}