huanghongfeng
2025-04-22 3d66dd8990bd68d5521611ee58af2b9ccc299090
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs
@@ -9,6 +9,11 @@
using WIDESEA_Core;
using WIDESEA_StorageBasicRepository;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA.Common;
using WIDESEA_Common.ZY;
using Autofac.Core;
using NetTaste;
namespace WIDESEA_StorageBasicService;
@@ -16,10 +21,12 @@
{
    private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository;
    private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository;
    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository) : base(BaseDal)
    private readonly IToZYService _toZYService;
    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService) : base(BaseDal)
    {
        _SelectionStandardsRepository = selectionStandardsRepository;
        _WheelsStock_HtyRepository = WheelsStock_HtyRepository;
        _toZYService = toZYService;
    }
    /// <summary>
@@ -120,4 +127,112 @@
        }
        return WheelsList.OrderBy(x => x.CreateDate).FirstOrDefault();
    }
    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld)
    {
        //过盈量上限
        decimal selectionUpperValue = selectionStandards.upperValue;
        //过盈量下限
        decimal selectionLowerValue = selectionStandards.lowerValue;
        decimal mesStand = 0;
        string level = string.Empty;
        if ("left".Equals(wheelsPosition))  //匹配左轮座轮子
        {
            mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ);
            wheelsStocks = wheelsStocks.Where(x =>  x.venderno == level && x.repair_item == newOrOld).ToList();
        }
        else    //否则匹配右轮座轮子
        {
            mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ);
            wheelsStocks = wheelsStocks.Where(x =>  x.venderno == level && x.repair_item == newOrOld).ToList();
        }
        foreach (var item in wheelsStocks)
        {
            string Wheels_gkcc = "";
            string Wheels_gkzja = "";
            string Wheels_gkzjb = "";
            string Wheels_gkzjc = "";
            SaveModel saveModel = new SaveModel();
            saveModel.MainData = new Dictionary<string, object>
            {
                { "cltm", item.wheel_code }
            };
            WebResponseContent webResponse= _toZYService.ZY_GetCLInfo(saveModel);
            if (webResponse.Status)
            {
                var dta = JsonConvert.DeserializeObject<CLInfo_ZY>(webResponse.Data.ToString());
                Wheels_gkcc = dta.gkcc;
                // æ¯‚å­”a界面均值
                Wheels_gkzja = dta.GKZJA;
                //毂孔b界面均值
                Wheels_gkzjb = dta.GKZJB;
                //毂孔c界面均值
                Wheels_gkzjc = dta.GKZJC;
            }
            if(Wheels_gkcc !="" && Wheels_gkzja!="" && Wheels_gkzjb !="" && Wheels_gkzjc != "")
            {
                //查出来在范围之外的进行删除
                if (mesStand - (decimal.Parse(Wheels_gkcc)) < selectionLowerValue && mesStand - (decimal.Parse(Wheels_gkcc)) > selectionUpperValue)
                {
                    wheelsStocks.Remove(item);
                }
                if (selectionStandards.isCantainGK)
                {
                    //截面过盈量上限
                    decimal selectionUpperValue_gk = selectionStandards.upperValue_gk;
                    //截面过盈量下限
                    decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk;
                    if ("left".Equals(wheelsPosition))
                    {
                        decimal ZLZA = decimal.Parse(CZInfo_Mes.ZLZA);
                        decimal ZLZB = decimal.Parse(CZInfo_Mes.ZLZB);
                        decimal ZLZC = decimal.Parse(CZInfo_Mes.ZLZC);
                        //判断取反,进行删除
                        if (ZLZA - (decimal.Parse(Wheels_gkzja)) < selectionLowerValue_gk && ZLZA - (decimal.Parse(Wheels_gkzja)) > selectionUpperValue_gk
                            && ZLZB - (decimal.Parse(Wheels_gkzjb)) < selectionLowerValue_gk && ZLZB - (decimal.Parse(Wheels_gkzjb)) > selectionUpperValue_gk
                            && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk)
                        {
                            wheelsStocks.Remove(item);
                        }
                    }
                    else
                    {
                        decimal YLZA = decimal.Parse(CZInfo_Mes.YLZA);
                        decimal YLZB = decimal.Parse(CZInfo_Mes.YLZB);
                        decimal YLZC = decimal.Parse(CZInfo_Mes.YLZC);
                        if (YLZA - (decimal.Parse(Wheels_gkzja)) >= selectionLowerValue_gk && YLZA - (decimal.Parse(Wheels_gkzja)) <= selectionUpperValue_gk
                            && YLZB - (decimal.Parse(Wheels_gkzjb)) >= selectionLowerValue_gk && YLZB - (decimal.Parse(Wheels_gkzjb)) <= selectionUpperValue_gk
                            && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk)
                        {
                            wheelsStocks.Remove(item);
                        }
                    }
                }
            }
        }
        return wheelsStocks.OrderBy(x => x.dt_ins).FirstOrDefault();
    }
}