刘磊
2025-04-19 823752496e2a4cdb6a1fb36227cd15b8b7135336
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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;
 
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;
    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository) : base(BaseDal)
    {
        _SelectionStandardsRepository = selectionStandardsRepository;
        _WheelsStock_HtyRepository = WheelsStock_HtyRepository;
    }
 
    /// <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();
    }
}