| | |
| | | // 绝对匹配 |
| | | var absoluteMatch = adaptingManageVmos.Where(i => |
| | | ((input.Caliber == null && i.Caliber == null) || i.Caliber == input.Caliber) && |
| | | ((input.Material == null) || i.Material == input.Material)).ToList(); |
| | | ((input.Material == null) || i.MaterialName == input.Material)).ToList(); |
| | | if (absoluteMatch.Any()) |
| | | { |
| | | foreach (var range in absoluteMatch) |
| | |
| | | foreach (var range in rangeMatch) |
| | | { |
| | | //以材料为条件开始匹配 |
| | | if (range.Material == null) |
| | | if (range.MaterialName == null) |
| | | { |
| | | materialList.Add(range); |
| | | } |
| | | else |
| | | { |
| | | int commonCount = GetIntersect(input.Material, range.Material); |
| | | int commonCount = GetIntersect(input.Material, range.MaterialName); |
| | | if (commonCount > firstCount) |
| | | { |
| | | materialList.Add(range); |
| | |
| | | { |
| | | input.MatchingMinorLoss = vmo.Coefficient; |
| | | input.MatchingDbId = vmo.ID.ToString(); |
| | | input.MatchingMaterial = vmo.Material; |
| | | input.MatchingMaterial = vmo.MaterialName; |
| | | input.MatchingModelType = vmo.Name; |
| | | return true; |
| | | } |
| | |
| | | // 绝对匹配 |
| | | var absoluteMatch = adaptingManageVmos.Where(i => |
| | | ((input.Caliber == null && i.Caliber == null) || i.Caliber == input.Caliber) && |
| | | ((input.Material == null) || i.Material == input.Material)).ToList(); |
| | | ((input.Material == null) || i.MaterialName == input.Material)).ToList(); |
| | | if (absoluteMatch.Any()) |
| | | { |
| | | foreach (var range in absoluteMatch) |
| | |
| | | foreach (var range in rangeMatch) |
| | | { |
| | | //以材料为条件开始匹配 |
| | | if (range.Material == null) |
| | | if (range.MaterialName == null) |
| | | { |
| | | materialList.Add(range); |
| | | } |
| | | else |
| | | { |
| | | int commonCount = GetIntersect(input.Material, range.Material); |
| | | int commonCount = GetIntersect(input.Material, range.MaterialName); |
| | | if (commonCount > firstCount) |
| | | { |
| | | materialList.Add(range); |
| | |
| | | { |
| | | input.MatchingMinorLoss = vmo.Coefficient; |
| | | input.MatchingDbId = vmo.ID.ToString(); |
| | | input.MatchingMaterial = vmo.Material; |
| | | input.MatchingMaterial = vmo.MaterialName; |
| | | input.MatchingModelType = vmo.Name; |
| | | return true; |
| | | } |
| | |
| | | // 绝对匹配 |
| | | var absoluteMatch = adaptingManageVmos.Where(i => |
| | | ((input.Caliber == null && i.Caliber == null) || i.Caliber == input.Caliber) && |
| | | ((input.Material == null) || i.Material == input.Material)).ToList(); |
| | | ((input.Material == null) || i.MaterialName == input.Material)).ToList(); |
| | | if (absoluteMatch.Any()) |
| | | { |
| | | foreach (var range in absoluteMatch) |
| | |
| | | foreach (var range in rangeMatch) |
| | | { |
| | | //以材料为条件开始匹配 |
| | | if (range.Material == null) |
| | | if (range.MaterialName == null) |
| | | { |
| | | materialList.Add(range); |
| | | } |
| | | else |
| | | { |
| | | int commonCount = GetIntersect(input.Material, range.Material); |
| | | int commonCount = GetIntersect(input.Material, range.MaterialName); |
| | | if (commonCount > firstCount) |
| | | { |
| | | materialList.Add(range); |
| | |
| | | { |
| | | input.MatchingMinorLoss = vmo.Coefficient; |
| | | input.MatchingDbId = vmo.ID.ToString(); |
| | | input.MatchingMaterial = vmo.Material; |
| | | input.MatchingMaterial = vmo.MaterialName; |
| | | input.MatchingModelType = vmo.Name; |
| | | return true; |
| | | } |