| | |
| | | public IStation.CalcModel.AnaRequestBase requestBase { get; set; } |
| | | public bool isSubmit { get; set; } |
| | | } |
| | | public class ZyPrjRequest |
| | | { |
| | | public string StartTime { get; set; } |
| | | public string EndTime { get; set; } |
| | | //public int? StartOpenCount { get; set; } = -1;//已作废 |
| | | |
| | | public string StartReservoirLevel { get; set; }//开始水库水位(可空):单位m |
| | | 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; }//最高水库水位限制时间(可空) 时间格式 |
| | | |
| | | public string IsSubmit { get; set; }//计算完,是否推送 |
| | | public string IsTemporary { get; set; }//是否是临时算一下(新) |
| | | } |
| | | public static void SavePrj(CalcModel.AnaRequest ana_request, CalcModel.AnaSetting ana_settting, CalcModel.AnaPrj prj, bool isSubmit) |
| | | { |
| | | if (!ServiceParas.IsRemote) |
| | | 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)) |
| | |
| | | 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)) |
| | |
| | | return null; |
| | | } |
| | | |
| | | string url = string.Format(@"{0}/AnaPrj/GetPrj?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); |
| | |
| | | return null; |
| | | } |
| | | var ret = (new System.Web.Script.Serialization.JavaScriptSerializer()).Deserialize<IStation.Dto.ApiResult<CalcModel.AnaPrj>>(returnData); |
| | | reader.Close(); |
| | | myResponse.Close(); |
| | | |
| | | return ret.Data; |
| | | } |
| | | |
| | | public static CalcModel.AnaPrj CalcPrj(CalcModel.AnaRequest ana_request,bool isUsePredictRecord, bool isTemp ) |
| | | { |
| | | if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl)) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | string url = string.Format(@"{0}/AnaPrj/Calc", ServiceParas.ApiServiceUrl); |
| | | |
| | | ZyPrjRequest request = new ZyPrjRequest(); |
| | | request.StartTime = ana_request.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | request.EndTime = ana_request.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | request.IsTemporary = isTemp.ToString(); |
| | | request.IsSubmit = "false"; |
| | | if(ana_request.MaxReservoirLevel != null) |
| | | request.MaxReservoirLevel = ana_request.MaxReservoirLevel.ToString(); |
| | | request.MaxReservoirLevelTime = ana_request.MaxReservoirLevelTime; |
| | | request.StartReservoirLevel = ana_request.StartReservoirLevel.ToString(); |
| | | request.StartOpenPumpIndexArray = ana_request.StartOpenPumpIndexArray; |
| | | if(ana_request.TotalFlowIn != null) |
| | | request.TotalFlowIn = ana_request.TotalFlowIn.ToString(); |
| | | |
| | | if (!isUsePredictRecord) |
| | | request.TotalFlowOut = (ana_request.PerHourFlowOut.Sum() - ana_request.PerHourFlowOut.Last()).ToString(); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | string parameterData = (new System.Web.Script.Serialization.JavaScriptSerializer()).Serialize(request); |
| | | //先根据用户请求的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 = "POST"; |
| | | //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就可以从响应内容从头读到尾 |
| | | |
| | | var ret = (new System.Web.Script.Serialization.JavaScriptSerializer()).Deserialize<IStation.Dto.ApiResult<CalcModel.AnaPrj>>(returnData); |
| | | reader.Close(); |
| | | myResponse.Close(); |
| | | |
| | | 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(); |
| | | |
| | |
| | | /// </summary> |
| | | /// <param name="day"></param> |
| | | /// <returns></returns> |
| | | public static int GetLastTimeOpenPumpCount(DateTime day) |
| | | public static List<int> GetLastTimeOpenPumpStatus作废(DateTime day) |
| | | { |
| | | if (!ServiceParas.IsRemote) |
| | | { |
| | | return IStation.Common.HistoryAnaPrjFileHelper.GetLastTime_OpenPumpCount(day); |
| | | } |
| | | //if (!ServiceParas.IsRemote) |
| | | //{ |
| | | // return IStation.Common.HistoryAnaPrjFileHelper.GetLastTime_OpenPumpStatus(day); |
| | | //} |
| | | |
| | | if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl)) |
| | | { |
| | | return -1; |
| | | return null; |
| | | } |
| | | |
| | | string url = string.Format(@"{0}/AnaPrj/GetLastTimeOpenPumpCount?day={1} ", ServiceParas.ApiServiceUrl, day.ToString("yyyy-MM-dd")); |
| | | string url = string.Format(@"{0}/AnaPrj/GetLastTimeOpenPumpStatus?day={1} ", ServiceParas.ApiServiceUrl, day.ToString("yyyy-MM-dd")); |
| | | |
| | | //先根据用户请求的uri构造请求地址 |
| | | //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri); |
| | |
| | | if (string.IsNullOrEmpty(returnData)) |
| | | { |
| | | myResponse.Close(); |
| | | return -1; |
| | | return null; |
| | | } |
| | | var ret = (new System.Web.Script.Serialization.JavaScriptSerializer()).Deserialize<IStation.Dto.ApiResult<int>>(returnData); |
| | | var ret = (new System.Web.Script.Serialization.JavaScriptSerializer()).Deserialize<IStation.Dto.ApiResult<string >>(returnData); |
| | | reader.Close(); |
| | | myResponse.Close(); |
| | | |
| | | return ret.Data; |
| | | var res_str = ret.Data; |
| | | if (string.IsNullOrEmpty(res_str)) |
| | | { |
| | | return null ; |
| | | } |
| | | List<int> list = new List<int>(); |
| | | foreach (var s in list) { list.Add(Convert.ToInt32(s)); } |
| | | |
| | | return list; |
| | | } |
| | | } |
| | | } |