using AngleSharp.Dom; using Mapster; using Masuit.Tools; using SqlSugar; using System.Collections.Generic; using System.Drawing.Printing; using System.Linq.Expressions; using WIDESEA_Common; 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; public class Dt_WheelsStockService : ServiceBase, IDt_WheelsStockService { 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) { _SelectionStandardsRepository = selectionStandardsRepository; _WheelsStock_HtyRepository = WheelsStock_HtyRepository; _toZYService = toZYService; } /// /// 批量删除 /// /// /// public override WebResponseContent DeleteData(object[] keys) { try { List stockInfos = new List(); List locationInfos = new List(); foreach (var item in keys) { var stock = BaseDal.QueryFirstNavAsync(x => x.Wheels_ID == item.ObjToInt()).Result; var stockHty = stock.Adapt(); stockHty.FinishWheelDate = DateTime.Now; stockHty.OperateType = (int)OperateTypeEnum.人工删除; _WheelsStock_HtyRepository.AddData(stockHty); var location = SqlSugarHelper.DbWMS.Queryable().FirstAsync(x => x.LocationCode == stock.Wheels_Location).Result; location.LocationStatus = (int)LocationEnum.Free; locationInfos.Add(location); } var locationd = SqlSugarHelper.DbWMS.Updateable(locationInfos).ExecuteCommandHasChange(); return base.DeleteData(keys); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } } public Dt_WheelsStock GetSelectionWheelsStock(List WheelsList, 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); 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); 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(); } 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); WheelsList = WheelsList.Where(x => ZLZA - (decimal.Parse(x.Wheels_gkzja)) >= selectionLowerValue_gk && ZLZA - (decimal.Parse(x.Wheels_gkzja)) <= selectionUpperValue_gk && ZLZB - (decimal.Parse(x.Wheels_gkzjb)) >= selectionLowerValue_gk && ZLZB - (decimal.Parse(x.Wheels_gkzjb)) <= selectionUpperValue_gk && ZLZC - (decimal.Parse(x.Wheels_gkzjc)) >= selectionLowerValue_gk && ZLZC - (decimal.Parse(x.Wheels_gkzjc)) <= selectionUpperValue_gk ).ToList(); } else { decimal YLZA = decimal.Parse(CZInfo_Mes.YLZA); decimal YLZB = decimal.Parse(CZInfo_Mes.YLZB); decimal YLZC = decimal.Parse(CZInfo_Mes.YLZC); WheelsList = WheelsList.Where(x => YLZA - (decimal.Parse(x.Wheels_gkzja)) >= selectionLowerValue_gk && YLZA - (decimal.Parse(x.Wheels_gkzja)) <= selectionUpperValue_gk && YLZB - (decimal.Parse(x.Wheels_gkzjb)) >= selectionLowerValue_gk && YLZB - (decimal.Parse(x.Wheels_gkzjb)) <= selectionUpperValue_gk && YLZC - (decimal.Parse(x.Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(x.Wheels_gkzjc)) <= selectionUpperValue_gk ).ToList(); } } return WheelsList.OrderBy(x => x.CreateDate).FirstOrDefault(); } public Dt_WheelsStock_Old GetSelectionWheels(List 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 { { "cltm", item.wheel_code } }; WebResponseContent webResponse= _toZYService.ZY_GetCLInfo(saveModel); if (webResponse.Status) { var dta = JsonConvert.DeserializeObject(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(); } }