| | |
| | | namespace IStation.EtaCalculation.SHYS |
| | | { |
| | | internal partial class EtaAnalyCalculator4Logic |
| | | { |
| | | private IStation.Calculation.Eta.Model.LogicAnaInfoBundle Calcä¸ä¸ªæ³µç«(IStation.Model.EtaLogicTreeAnalyContextItem contextItem,List<IStation.Calculation.Eta.Model.StationAnaInfoBundle> allStationBundles,long onlyStationId) |
| | | { |
| | | { |
| | | private IStation.Calculation.Eta.Model.LogicAnaInfoBundle Calcä¸ä¸ªæ³µç«(IStation.Model.EtaLogicTreeAnalyContextItem contextItem, List<IStation.Calculation.Eta.Model.StationAnaInfoBundle> allStationBundles, long onlyStationId) |
| | | { |
| | | var logicAnaInfo = new IStation.Calculation.Eta.Model.LogicAnaInfoBundle(); |
| | | logicAnaInfo.LogicID = contextItem.LogicID; |
| | | logicAnaInfo.ChildLogicBundleList = new List<Calculation.Eta.Model.LogicAnaInfoBundle>(); |
| | |
| | | if (validStationAnaResults == null || validStationAnaResults.Count < 1) |
| | | return logicAnaInfo; |
| | | |
| | | double qaTotal = validStationAnaResults.Where(x => x.Ea.HasValue && x.Ea.Value > 10).Sum(x => x.Qa.Value); |
| | | double qaTotal = 0; |
| | | double qhTotal = 0; |
| | | foreach (var item in validStationAnaResults) |
| | | { |
| | | if (item.Ea.HasValue && item.Ea.Value > 10) |
| | | { |
| | | qaTotal += item.Qa.Value; |
| | | if (item.Ha.HasValue) |
| | | { |
| | | qhTotal += item.Ha.Value * item.Qa.Value; |
| | | } |
| | | } |
| | | } |
| | | if (qaTotal > 100) |
| | | { |
| | | double eta = 0; |
| | |
| | | { |
| | | if (item.Ea.HasValue && item.Ea.Value > 10) |
| | | { |
| | | eta += item.Ea.Value * item.Qa.Value / qaTotal; |
| | | if (item.Ha.HasValue && item.Ha.Value != 0) |
| | | { |
| | | eta += item.Ea.Value * (item.Qa.Value * item.Ha.Value / qhTotal);//å å æ¬ç¨æ¢ç® |
| | | } |
| | | // eta += item.Ea.Value * item.Qa.Value / qaTotal; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | double uwpa = 0; |
| | | |
| | | |
| | | |
| | | if (anaResult.Pa != null) |
| | | { |
| | | if (!validStationAnaResults.Exists(x => !x.Ha.HasValue)) |
| | | { |
| | | var haTatol = validStationAnaResults.Sum(x=>x.Ha.Value); |
| | | var haTatol = validStationAnaResults.Sum(x => x.Ha.Value); |
| | | uwpa = anaResult.Pa.Value / qaTotal / haTatol * 1000; |
| | | } |
| | | else |
| | | { |
| | | { |
| | | anaResult.PutAnalyInfo(Model.EtaSingleRealRecordPure.InfoTag_Ha, null); |
| | | } |
| | | } |
| | |
| | | { |
| | | anaResult.PutAnalyInfo(Model.EtaSingleRealRecordPure.InfoTag_Pa, null); |
| | | } |
| | | |
| | | |
| | | /*foreach (var item in validStationAnaResults) |
| | | { |
| | | if (item.UWPa.HasValue && item.UWPa.Value > 0) |
| | | { |
| | | uwpa += item.UWPa.Value * item.Qa.Value / qaTotal; |
| | | } |
| | | }*/ |
| | | }*/ //æ§ä»£ç |
| | | |
| | | anaResult.Ea = Math.Round(eta, 1); |
| | | anaResult.WPa = Math.Round(wpa, 2); |