huanghongfeng
2025-04-24 aadc2a4fe5e62be74044acbb75549ef08a2d1c5d
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs
@@ -14,6 +14,7 @@
using WIDESEA_Common.ZY;
using Autofac.Core;
using NetTaste;
using AngleSharp.Io;
namespace WIDESEA_StorageBasicService;
@@ -132,104 +133,113 @@
    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))  //匹配左轮座轮子
        try
        {
            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 = "";
            //过盈量上限
            decimal selectionUpperValue = selectionStandards.upperValue;
            //过盈量下限
            decimal selectionLowerValue = selectionStandards.lowerValue;
            SaveModel saveModel = new SaveModel();
            saveModel.MainData = new Dictionary<string, object>
            decimal mesStand = 0;
            string level = string.Empty;
            if ("left".Equals(wheelsPosition))  //匹配左轮座轮子
            {
                mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
                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();
            }
            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)
                WebResponseContent webResponse = _toZYService.ZY_GetCLInfo(saveModel);
                if (webResponse.Status)
                {
                    CLInfo_ZY data = (CLInfo_ZY)webResponse.Data;
                    wheelsStocks.Remove(item);
                    Wheels_gkcc = data.gkcc;
                    // æ¯‚å­”a界面均值
                    Wheels_gkzja = data.GKZJA;
                    //毂孔b界面均值
                    Wheels_gkzjb = data.GKZJB;
                    //毂孔c界面均值
                    Wheels_gkzjc = data.GKZJC;
                }
                if (selectionStandards.isCantainGK)
                if (Wheels_gkcc != "" && Wheels_gkzja != "" && Wheels_gkzjb != "" && Wheels_gkzjc != "")
                {
                    //截面过盈量上限
                    decimal selectionUpperValue_gk = selectionStandards.upperValue_gk;
                    //截面过盈量下限
                    decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk;
                    if ("left".Equals(wheelsPosition))
                    //查出来在范围之外的进行删除
                    if (mesStand - (decimal.Parse(Wheels_gkcc)) < selectionLowerValue && mesStand - (decimal.Parse(Wheels_gkcc)) > selectionUpperValue)
                    {
                        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);
                    }
                    if (selectionStandards.isCantainGK)
                    {
                        //截面过盈量上限
                        decimal selectionUpperValue_gk = selectionStandards.upperValue_gk;
                        //截面过盈量下限
                        decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk;
                        if ("left".Equals(wheelsPosition))
                        {
                            wheelsStocks.Remove(item);
                            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);
                            }
                        }
                    }
                    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();
        }
        catch (Exception ex)
        {
        return wheelsStocks.OrderBy(x => x.dt_ins).FirstOrDefault();
            throw;
        }
    }