tangxu
2023-04-10 dfdb157df49c99d5599688fa6209ec2dc9f1afbc
Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
@@ -58,7 +58,7 @@
        [HttpGet]
        public List<PlanAnaDto> Calculate_debug()
        {
            var path = @"D:\WorkData\IStation\result_20221103.json";
            var path = @"D:\WorkData\IStation\result_20221114.json";
            if (!System.IO.File.Exists(path))
                return null;
@@ -70,39 +70,60 @@
            return ret;
        }
        /// <summary>
        /// 计算-Web
        /// </summary>
        [AllowAnonymous]
        [NonUnify]
        [Route("Calculate@Web")]
        [HttpPost]
        public List<PlanAnaDto> Calculate_Web([Required] List<PlanAnaData> list)
        {
            if (list == null || list.Count < 1)
            {
                LogHelper.Error("上海原水能耗计划分析计算接口入参为空");
                return default;
            }
            var ret = CalculateCore(list);
            return ret;
        }
        #region 分析核心
        /// <summary>
        /// 分析核心
        /// </summary>
        /// <param name="planDataList"></param>
        /// <returns></returns>
        private List<PlanAnaDto> CalculateCore(List<PlanAnaData> planDataList )
        /// <param name="planDataList"></param>
        private List<PlanAnaDto> CalculateCore(List<PlanAnaData> planDataList)
        {
            if (planDataList == null || planDataList.Count < 1)
            {
            {
                LogHelper.Error("上海原水能耗计划分析计算三高返回接口出参为空");
                return default;
            }
            if (planDataList.Exists(x => x.datas == null || x.datas.Count < 1))
            {
            {
                LogHelper.Error("上海原水能耗计划分析计算三高返回接口出参格式错误");
                return default;
            }
            var sg_factoryIds = planDataList.SelectMany(x => x.datas).Select(x => x.factory).Distinct().ToList();
            var vmList = new List<PlanAnaDto>();
            foreach (var sg_factoryId in sg_factoryIds)
            {
                string error_info;
                var vmItem = Ana(planDataList, sg_factoryId,out error_info);
                var vmItem = Ana(planDataList, sg_factoryId, out error_info);
                if (vmItem != null)
                {
                    vmList.Add(vmItem);
                }
                }
                else
                {
                    vmList.Add(new PlanAnaDto() { factory=sg_factoryId, name="", error = error_info });
                    vmList.Add(new PlanAnaDto() { factory = sg_factoryId, name = "", error = error_info });
                }
            }
            return vmList;
@@ -114,7 +135,7 @@
            var stationInfo = ShysPlanHelper.GetStationInfo(sg_factoryId);
            if (stationInfo == null)
            {
                error_info = "未找到id:{factoryId},对应的泵站" ;
                error_info = "未找到id:{factoryId},对应的泵站";
                return null;
            }
@@ -122,13 +143,13 @@
            var station = new Service.Station().GetByID(_corpId, stationId);
            if (station == null)
            {
                error_info = $"泵站id:{stationId}, 数据库中未找到此泵站" ;
                error_info = $"泵站id:{stationId}, 数据库中未找到此泵站";
                return null;
            }
            var calculator = stationInfo.Calculator;
            if (calculator == null)
            {
                error_info =  $"泵站id:{stationId}, 未构建计算器" ;
                error_info = $"泵站id:{stationId}, 未构建计算器";
                return null;
            }
            calculator.SetStationID(_corpId, stationInfo.ID);//设置ID
@@ -165,7 +186,7 @@
                                //}
                                else
                                {
                                    error_info = $"factoryId:{sg_factoryId}, 泵站id:{stationId}, 测试tag:{scadaItem.tagname} ,测点名称{calculator.GetMonitorNameByTag(scadaItem.tagname)},时间点{i}, 未找到对应数据" ;
                                    error_info = $"factoryId:{sg_factoryId}, 泵站id:{stationId}, 测试tag:{scadaItem.tagname} ,测点名称{calculator.GetMonitorNameByTag(scadaItem.tagname)},时间点{i}, 未找到对应数据";
                                    return null;
                                }
                            }
@@ -182,7 +203,7 @@
                sumRecordList.Add(sumRecord);
            }
            string  ana_error_info = "";
            string ana_error_info = "";
            var resultList = calculator.Calc(station, sg_factoryId, sumRecordList, out ana_error_info);
            if (resultList == null || resultList.Count() < 1)
            {
@@ -216,11 +237,7 @@
        }
        #endregion
    }
}