| | |
| | | { |
| | | public class SavePrjRequest |
| | | { |
| | | public string day { get; set; } |
| | | public IStation.CalcModel.AnaPrj prj { get; set; } |
| | | public Model.AnaSetting settting { get; set; } |
| | | public Model.AnaRequestBase requestBase { get; set; } |
| | | public IStation.CalcModel.AnaSetting settting { get; set; } |
| | | 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 static void SavePrj(DateTime day,Model.AnaRequest ana_request , Model.AnaSetting ana_settting,CalcModel.AnaPrj prj,bool isSubmit) |
| | | 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(day, ana_settting, ana_request == null ? null : new Model.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)) |
| | | { |
| | | return; |
| | | } |
| | | if (string.IsNullOrEmpty(prj.ID)) |
| | | { |
| | | var time = DateTime.Now; |
| | | prj.ID = $"{time.Year}{time.Month}{time.Day}{time.Hour}{time.Minute}{time.Second}"; |
| | | } |
| | | |
| | | |
| | | string url = string.Format(@"{0}\AnaPrj\SavePrj", ServiceParas.ApiServiceUrl); |
| | | string url = string.Format(@"{0}/AnaPrj/SavePrj", ServiceParas.ApiServiceUrl); |
| | | |
| | | SavePrjRequest request = new SavePrjRequest(); |
| | | request.day = day.ToString("yyyy-MM-dd"); |
| | | request.prj = prj; |
| | | request.requestBase = new Model.AnaRequestBase(ana_request); |
| | | request.requestBase = new CalcModel.AnaRequestBase(ana_request); |
| | | request.settting = ana_settting; |
| | | request.isSubmit = isSubmit; |
| | | |
| | |
| | | |
| | | myRequest.Method = "POST"; |
| | | //myRequest.Accept = "application/json"; |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | myRequest.AutomaticDecompression = DecompressionMethods.GZip; |
| | | myRequest.Accept = Accept; |
| | | //myRequest.ContentType = ContentType; |
| | |
| | | |
| | | reader.Close(); |
| | | myResponse.Close(); |
| | | |
| | | } |
| | | |
| | | |
| | | public static CalcModel.AnaPrj GetPrj(DateTime day ) |
| | | public static CalcModel.AnaPrj GetDefaultPrjByStartDay(DateTime day) |
| | | { |
| | | if (!ServiceParas.IsRemote) |
| | | { |
| | | return IStation.Common.HistoryAnaPrjFileHelper.GetPrj(day ); |
| | | IStation.CalcModel.AnaRequestBase 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); |
| | | //string ContentType = "application/json"; |
| | |
| | | |
| | | myRequest.Method = "GET"; |
| | | //myRequest.Accept = "application/json"; |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | myRequest.AutomaticDecompression = DecompressionMethods.GZip; |
| | | myRequest.Accept = Accept; |
| | | //myRequest.ContentType = ContentType; |
| | |
| | | StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); |
| | | //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法 |
| | | string returnData = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾 |
| | | if(string.IsNullOrEmpty(returnData)) |
| | | if (string.IsNullOrEmpty(returnData)) |
| | | { |
| | | myResponse.Close(); |
| | | return null; |
| | |
| | | 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(); |
| | | |
| | | return ret.Data; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="day"></param> |
| | | /// <returns></returns> |
| | | /// <returns></returns> |
| | | public static Dictionary<int, bool> GetExistStatus(int year, int month) |
| | | { |
| | | if (!ServiceParas.IsRemote) |
| | |
| | | { |
| | | return null; |
| | | } |
| | | string url = string.Format(@"{0}\AnaPrj\GetExistStatus?year={1}&month={2}", apiServiceUrl, year, month); |
| | | |
| | | string url = string.Format(@"{0}/AnaPrj/GetExistStatus?year={1}&month={2}", apiServiceUrl, year, month); |
| | | |
| | | //先根据用户请求的uri构造请求地址 |
| | | //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri); |
| | |
| | | |
| | | myRequest.Method = "GET"; |
| | | //myRequest.Accept = "application/json"; |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | myRequest.AutomaticDecompression = DecompressionMethods.GZip; |
| | | myRequest.Accept = Accept; |
| | | //myRequest.ContentType = ContentType; |
| | |
| | | |
| | | var list = ret.Data; |
| | | |
| | | |
| | | return toFileDictionary(list); |
| | | } |
| | | private static Dictionary<int, bool> toFileDictionary(List<string> list) |
| | | |
| | | private static Dictionary<int, bool> toFileDictionary(List<string> list) |
| | | { |
| | | Dictionary<int, bool> dict = new Dictionary<int, bool>(); |
| | | if (list != null && list.Count > 0) |
| | |
| | | dict[Convert.ToInt32(sss[0])] = Convert.ToBoolean(sss[1]); |
| | | } |
| | | } |
| | | return dict; |
| | | return dict; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | /// <param name="day"></param> |
| | | /// <returns></returns> |
| | | public static int GetLastTimeOpenPumpCount(DateTime day) |
| | | /// <returns></returns> |
| | | 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); |
| | |
| | | |
| | | myRequest.Method = "GET"; |
| | | //myRequest.Accept = "application/json"; |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | //myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | myRequest.AutomaticDecompression = DecompressionMethods.GZip; |
| | | myRequest.Accept = Accept; |
| | | //myRequest.ContentType = ContentType; |
| | |
| | | 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(); |
| | | |
| | | 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 ret.Data; |
| | | return list; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |