duheng
2025-02-11 36a0ce55799c95821f39aab5c13566a5f238970b
WebApi/Controllers/PumpRunController.cs
@@ -20,8 +20,6 @@
    [RoutePrefix("PumpRun")]
    public class PumpRunController : ApiController
    {
        private bool isdebug = true;
        /// <summary>
        ///  获取泵实际运行参数(一天)
        /// </summary>
@@ -48,7 +46,7 @@
            PumpRunParasHelper pumpRunParasHelper = new PumpRunParasHelper();
            result = Common.PumpRunParasHelper.ReadPumpRunParas(d);
            string geterroer = null;
            if (result != null && isdebug)
            if (result != null)
            {
                result.Electric = Math.Round(result.Electric, 2);
                result.Money = Math.Round(result.Money, 2);
@@ -103,7 +101,7 @@
            {
                var PumpTotalElecty = await ZyConnectHelper.GetPumpTotalElectricity(d, d);    //获取某段时间的用电量
                var PumpState = await ZyConnectHelper.GetPumpOpenStatusBySingleDay(d);  //获取泵的开机情况
                var TotalWater = await ZyConnectHelper.GetTotalWaterByDayTimeRange_In(d, d);    //取水量
                var TotalWater = await ZyConnectHelper.GetTotalWaterByDayTimeRange_In(d.AddDays(-1), d);    //取水量
                /*        PumpHistoryDataFileHelper pumpHistoryDataFileHelper=new PumpHistoryDataFileHelper();
                        var TotalWater = pumpHistoryDataFileHelper.GetAllWaterData();
@@ -325,7 +323,7 @@
        /// <returns></returns>
        [Route("GetPumpHistoryData")]
        [HttpGet]
        public async Task<IStation.Dto.ApiResult> GetPumpHistoryData(string startday, string endday)
        public async Task<IStation.Dto.ApiResult> GetPumpHistoryData(string startday, string endday, string resolution)
        {
            if (startday == null || endday == null)
            {
@@ -341,7 +339,7 @@
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 格式不正确" };
            }
            var TotalWater = await ZyConnectHelper.GetTotalWaterByDayTimeRange_In(Start, d, "3600s");    //取水量
            var TotalWater = await ZyConnectHelper.GetTotalWaterByTimeRange_Out(Start, d, resolution);    //取水量
            /*     var one = TotalWater
                   .SelectMany(otdl => otdl.MonitorRecords);
                 var two = one.GroupBy(totalDay => totalDay.Time);
@@ -376,5 +374,71 @@
            }
            return new IStation.Dto.ApiResult<List<SSAData>>(totalOneDays) { Code = ApiResultCode.Success, Message = "Success" };
        }
        /// <summary>
        /// 获取供水开机状态
        /// </summary>
        /// <param name="startday"></param> 开始日期
        /// <param name="endday"></param> 结束日期
        /// <returns></returns>
        [Route("GetPumpOpenState")]
        [HttpGet]
        public async Task<IStation.Dto.ApiResult> GetPumpOpenState(string startday, string endday)
        {
            if (startday == null || endday == null)
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day null" };
            }
            DateTime Start;
            if (!DateTime.TryParse(startday, out Start))
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 格式不正确" };
            }
            DateTime d;
            if (!DateTime.TryParse(endday, out d))
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 格式不正确" };
            }
            var result = await ZyConnectHelper.GetPumpOpenStatusDay(Start, d, "1h");
            var totalSumByTimePoint = result
            .SelectMany(otdl => otdl.MonitorRecords)
            .GroupBy(totalDay => totalDay.Time) // 按照小时和分钟进行分组
            .Select(group =>
            {
                var time = group.First().Time; // 从组中获取时间
                var totalSumForTimePoint = group.Sum(totalDay => totalDay.Value); // 在时间点分组中计算总和
                return new { Time = time, Total = totalSumForTimePoint };
            });
            List<SSAData> totalOneDays = new List<SSAData>();
            foreach (var item in totalSumByTimePoint)
            {
                totalOneDays.Add(new SSAData() { DateTime = item.Time, Total = (double)item.Total });
            }
            return new IStation.Dto.ApiResult<List<SSAData>>(totalOneDays) { Code = ApiResultCode.Success, Message = "Success" };
        }
        [Route("GetPumpRealData")]
        [HttpGet]
        public async Task<IStation.Dto.ApiResult> GetPumpRealData(string startday, string endday, string resolution)
        {
            if (startday == null || endday == null)
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day null" };
            }
            DateTime Start;
            if (!DateTime.TryParse(startday, out Start))
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 格式不正确" };
            }
            DateTime d;
            if (!DateTime.TryParse(endday, out d))
            {
                return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 格式不正确" };
            }
            var TotalWater = await ZyConnectHelper.GetTotalWaterByTimeRange_Out(Start, d, resolution);    //取水量
            return new IStation.Dto.ApiResult<List<RealScadaData>>(TotalWater) { Code = ApiResultCode.Success, Message = "Success" };
        }
    }
}