tangxu
2025-02-07 03a0d99de9c5fed6bea8bc83b49ce27786bda38c
BLL/IStation.BLL.Connect/AnaPrj.cs
@@ -29,6 +29,7 @@
            public List<int> StartOpenPumpIndexArray { get; set; }//开始机泵开机状态(新)
            public string TotalFlowIn { get; set; }//取水总量 (单位 吨)
            public string TotalFlowOut { get; set; }//供水总量 (单位 吨) 不输入就用预测值
            public string MaxReservoirLevel { get; set; }//最高水库水位限制(可空):单位m
            public string MaxReservoirLevelTime { get; set; }//最高水库水位限制时间(可空) 时间格式
@@ -40,7 +41,10 @@
        {
            if (!IStation.BLL.ServiceParas.IsRemote)
            {
                IStation.Common.HistoryAnaPrjFileHelper.SavePrj(ana_settting, ana_request == null ? null : new CalcModel.AnaRequestBase(ana_request), prj); return;
                IStation.Common.HistoryAnaPrjFileHelper.SavePrj(ana_settting,
                    true,
                    ana_request == null ? null : new CalcModel.AnaRequestBase(ana_request), prj);
                return;
            }
            if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl))
@@ -102,12 +106,12 @@
            myResponse.Close();
        }
        public static CalcModel.AnaPrj GetPrj(DateTime day)
        public static CalcModel.AnaPrj GetDefaultPrjByStartDay(DateTime day)
        {
            if (!ServiceParas.IsRemote)
            {
                IStation.CalcModel.AnaRequestBase requestBase;
                return IStation.Common.HistoryAnaPrjFileHelper.GetByDay(day, out requestBase);
                return IStation.Common.HistoryAnaPrjFileHelper.GetByStartDay(day, out requestBase);
            }
            if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl))
@@ -115,7 +119,7 @@
                return null;
            }
            string url = string.Format(@"{0}/AnaPrj/GetPrjByDay?day={1}", ServiceParas.ApiServiceUrl, day.ToString("yyyy-MM-dd"));
            string url = string.Format(@"{0}/AnaPrj/GetDefaultPrjByStartDay?day={1}", ServiceParas.ApiServiceUrl, day.ToString("yyyy-MM-dd"));
            //先根据用户请求的uri构造请求地址
            //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
@@ -164,10 +168,8 @@
            return ret.Data;
        }
        public static CalcModel.AnaPrj CalcPrj(CalcModel.AnaRequest ana_request,bool isTemp )
        {
        public static CalcModel.AnaPrj CalcPrj(CalcModel.AnaRequest ana_request,bool isUsePredictRecord, bool isTemp )
        {
            if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl))
            {
                return null;
@@ -187,7 +189,12 @@
            request.StartReservoirLevel = ana_request.StartReservoirLevel.ToString();
            request.StartOpenPumpIndexArray = ana_request.StartOpenPumpIndexArray;
            if(ana_request.TotalFlowIn != null)
            request.TotalFlowIn = ana_request.TotalFlowIn.ToString();
            request.TotalFlowIn = ana_request.TotalFlowIn.ToString();
            if (!isUsePredictRecord)
                request.TotalFlowOut = (ana_request.PerHourFlowOut.Sum() - ana_request.PerHourFlowOut.Last()).ToString();
@@ -235,6 +242,71 @@
            return ret.Data;
        }
        /// <summary>
        /// 获取开始状态
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static CalcModel.ZyStartInfo GetAnaStartPara(DateTime time )
        {
            if (!ServiceParas.IsRemote)
            {
                return  null;
            }
            if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl))
            {
                return null;
            }
            string url = string.Format(@"{0}/AnaPrj/GetAnaStartPara?AnaStartTime={1}", ServiceParas.ApiServiceUrl, time.ToString("yyyy-MM-dd HH:mm:ss"));
            //先根据用户请求的uri构造请求地址
            //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
            //string ContentType = "application/json";
            string Accept = "application/json";
            //创建Web访问对象
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
            //把用户传过来的数据转成“UTF-8”的字节流
            //byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);
            myRequest.Method = "GET";
            //myRequest.Accept = "application/json";
            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded
            myRequest.AutomaticDecompression = DecompressionMethods.GZip;
            myRequest.Accept = Accept;
            //myRequest.ContentType = ContentType;
            myRequest.ContentType = "application/json; charset=UTF-8";
            //myRequest.ContentLength = buf.Length;
            myRequest.MaximumAutomaticRedirections = 1;
            myRequest.AllowAutoRedirect = true;
            //myRequest.Headers.Add("content-type", "application/json");
            //myRequest.Headers.Add("accept-encoding", "gzip");
            //myRequest.Headers.Add("accept-charset", "utf-8");
            //发送请求
            //Stream stream = myRequest.GetRequestStream();
            //stream.Write(buf, 0, buf.Length);
            //stream.Close();
            //通过Web访问对象获取响应内容
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
            string returnData = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
            if (string.IsNullOrEmpty(returnData))
            {
                myResponse.Close();
                return null;
            }
            var ret = (new System.Web.Script.Serialization.JavaScriptSerializer()).Deserialize<IStation.Dto.ApiResult<CalcModel.ZyStartInfo>>(returnData);
            reader.Close();
            myResponse.Close();
            return ret.Data;
        }
        /// <summary>
        ///
@@ -327,12 +399,12 @@
        /// </summary>
        /// <param name="day"></param>
        /// <returns></returns>
        public static List<int> GetLastTimeOpenPumpStatus(DateTime day)
        public static List<int> GetLastTimeOpenPumpStatus作废(DateTime day)
        {
            if (!ServiceParas.IsRemote)
            {
                return IStation.Common.HistoryAnaPrjFileHelper.GetLastTime_OpenPumpStatus(day);
            }
            //if (!ServiceParas.IsRemote)
            //{
            //    return IStation.Common.HistoryAnaPrjFileHelper.GetLastTime_OpenPumpStatus(day);
            //}
            if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl))
            {