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<Dt_WheelsStock, IDt_WheelsStockRepository>, 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;
|
}
|
|
/// <summary>
|
/// 批量删除
|
/// </summary>
|
/// <param name="keys"></param>
|
/// <returns></returns>
|
public override WebResponseContent DeleteData(object[] keys)
|
{
|
try
|
{
|
List<Dt_WheelsStock_hty> stockInfos = new List<Dt_WheelsStock_hty>();
|
List<DtLocationInfo> locationInfos = new List<DtLocationInfo>();
|
foreach (var item in keys)
|
{
|
var stock = BaseDal.QueryFirstNavAsync(x => x.Wheels_ID == item.ObjToInt()).Result;
|
|
var stockHty = stock.Adapt<Dt_WheelsStock_hty>();
|
stockHty.FinishWheelDate = DateTime.Now;
|
stockHty.OperateType = (int)OperateTypeEnum.人工删除;
|
_WheelsStock_HtyRepository.AddData(stockHty);
|
|
var location = SqlSugarHelper.DbWMS.Queryable<DtLocationInfo>().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<Dt_WheelsStock> 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<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();
|
}
|
|
|
|
|
}
|