| | |
| | |  |
| | | using System; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Linq; |
| | |
| | | { |
| | | if (prj == null || prj.BlockTimes == null || prj.BlockTimes.Count == 0 || request == null) return false; |
| | | |
| | | |
| | | //æå
¥å°æ°æ®åº |
| | | var dal = new IStation.DAL.AnaProject(); |
| | | var old_prjs = dal.GetAllByCreateDay(DateTime.Now.Date); |
| | |
| | | } |
| | | else |
| | | { |
| | | prj.Name = string.Format("P-{0}-{1}", DateTime.Now.Date.ToString("yyyyMMdd"), (old_prjs.Count+1).ToString("000")); |
| | | prj.Name = string.Format("P-{0}-{1}", DateTime.Now.Date.ToString("yyyyMMdd"), (old_prjs.Count + 1).ToString("000")); |
| | | } |
| | | dal.Insert(prj, request); |
| | | |
| | | |
| | | |
| | | return WriteXmlFile(settting, request , prj); |
| | | return WriteXmlFile(settting, request, prj); |
| | | } |
| | | |
| | | //ä¿å |
| | | //ä¿å |
| | | public static bool SavePrj(CalcModel.AnaSetting settting, IStation.CalcModel.AnaRequestBase requestBase, IStation.CalcModel.AnaPrj prj) |
| | | { |
| | | if (prj == null || prj.BlockTimes == null || prj.BlockTimes.Count == 0) return false; |
| | | |
| | | |
| | | //æå
¥å°æ°æ®åº |
| | | var dal = new IStation.DAL.AnaProject(); |
| | |
| | | } |
| | | |
| | | #region XML读å |
| | | |
| | | // |
| | | private static bool WriteXmlFile(CalcModel.AnaSetting settting, IStation.CalcModel.AnaRequestBase requestBase, IStation.CalcModel.AnaPrj prj) |
| | | { |
| | |
| | | //toTalTick.InnerText = "10"; |
| | | //rootNode.AppendChild(toTalTick); //注æè¿éæ¯ root.AppendChild |
| | | |
| | | |
| | | |
| | | |
| | | #region çæ¬ä¿¡æ¯ |
| | | |
| | | XmlNode nodeVersionInfo = rootNode.SelectSingleNode("VersionInfo"); |
| | |
| | | if (nodeVersionInfo.InnerText != "V1") |
| | | nodeVersionInfo.InnerText = "V1"; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #endregion çæ¬ä¿¡æ¯ |
| | | |
| | | var nodeProject = xmlDoc.CreateElement("ProjectInfo"); |
| | | rootNode.AppendChild(nodeProject); |
| | |
| | | var nodeID = xmlDoc.CreateElement("ID"); |
| | | nodeID.InnerText = prj.ID; |
| | | nodeProject.AppendChild(nodeID); |
| | | |
| | | |
| | | var nodeStartTime = xmlDoc.CreateElement("StartTime"); |
| | | nodeStartTime.InnerText = prj.StartTime.ToString(); |
| | |
| | | nodeName.InnerText = prj.Name; |
| | | nodeProject.AppendChild(nodeName); |
| | | |
| | | |
| | | var nodeWaterLevelInfo = xmlDoc.CreateElement("WaterLevelInfo"); |
| | | nodeWaterLevelInfo.InnerText = prj.WaterLevelInfo; |
| | | nodeProject.AppendChild(nodeWaterLevelInfo); |
| | | |
| | | |
| | | var nodeSumPower = xmlDoc.CreateElement("SumPower"); |
| | | nodeSumPower.InnerText = prj.SumPower.ToString(); |
| | |
| | | nodeCalcSpaceMinute.InnerText = prj.CalcSpaceMinute.ToString(); |
| | | nodeProject.AppendChild(nodeCalcSpaceMinute); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if (prj.EndTimeOpenPumpStatus != null) |
| | | { |
| | | var node_LastTime_OpenPumpCount = xmlDoc.CreateElement("LastTime_OpenPumpCount"); |
| | |
| | | node_LastTime_OpenPumpIndex.InnerText = string.Join(",", prj.EndTimeOpenPumpStatus); |
| | | nodeProject.AppendChild(node_LastTime_OpenPumpIndex); |
| | | } |
| | | |
| | | } |
| | | else |
| | | {//表示å
¨é¨å
³æº |
| | |
| | | nodeProject.AppendChild(node_LastTime_OpenPumpCount); |
| | | } |
| | | |
| | | #region BlockTimes |
| | | |
| | | |
| | | |
| | | #region BlockTimes |
| | | var nodeBlockTimes = xmlDoc.CreateElement("BlockTimes"); |
| | | nodeProject.AppendChild(nodeBlockTimes); |
| | | |
| | |
| | | node_EndTimeIndex.InnerText = bt.EndTimeIndex.ToString(); |
| | | nodeBlockTime.AppendChild(node_EndTimeIndex); |
| | | |
| | | |
| | | XmlNode node_ReservoirStartHeight = xmlDoc.CreateElement("ReservoirStartHeight"); |
| | | node_ReservoirStartHeight.InnerText = bt.ReservoirStartHeight.ToString(); |
| | | nodeBlockTime.AppendChild(node_ReservoirStartHeight); |
| | |
| | | XmlNode node_ReservoirEndHeight = xmlDoc.CreateElement("ReservoirEndHeight"); |
| | | node_ReservoirEndHeight.InnerText = bt.ReservoirEndHeight.ToString(); |
| | | nodeBlockTime.AppendChild(node_ReservoirEndHeight); |
| | | |
| | | |
| | | if (bt.OpenPumpIndexs != null) |
| | | { |
| | |
| | | |
| | | if (bt.PointTimes != null) |
| | | { |
| | | #region PointTimes |
| | | #region PointTimes |
| | | |
| | | var nodePointTimes = xmlDoc.CreateElement("PointTimes"); |
| | | nodeBlockTime.AppendChild(nodePointTimes); |
| | | |
| | |
| | | XmlNode node_ReservoirDropFlowTotal = xmlDoc.CreateElement("ReservoirDropFlowTotal"); |
| | | node_ReservoirDropFlowTotal.InnerText = pt.ReservoirDropFlowTotal.ToString(); |
| | | nodePointTime.AppendChild(node_ReservoirDropFlowTotal); |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | #endregion PointTimes |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | #endregion BlockTimes |
| | | |
| | | #region PumpSwitchs |
| | | |
| | | |
| | | #region PumpSwitchs |
| | | var nodePumpSwitchs = xmlDoc.CreateElement("PumpSwitchs"); |
| | | nodeProject.AppendChild(nodePumpSwitchs); |
| | | |
| | |
| | | nodePumpSwitch.AppendChild(node_SwitchType); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #endregion PumpSwitchs |
| | | |
| | | #region setting |
| | | |
| | |
| | | //XmlNode node_MaxPumpSwitchCountL = xmlDoc.CreateElement("MaxPumpSwitchCountL"); |
| | | //node_MaxPumpSwitchCountL.InnerText = settting.MaxPumpSwitchCountL.ToString(); |
| | | //nodeSettting.AppendChild(node_MaxPumpSwitchCountL); |
| | | |
| | | |
| | | XmlNode node_SwitchPumpMinuteSpace = xmlDoc.CreateElement("SwitchPumpMinuteSpace"); |
| | | node_SwitchPumpMinuteSpace.InnerText = settting.SwitchPumpMinuteSpace.ToString(); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | XmlNode node_SwitchPumpIgnoreTimes = xmlDoc.CreateElement("SwitchPumpIgnoreTimes"); |
| | | node_SwitchPumpIgnoreTimes.InnerText = string.Join("###", stringBuilderä¸è®¸æ¢æ³µæ¶é´); |
| | | nodeSettting.AppendChild(node_SwitchPumpIgnoreTimes); |
| | |
| | | XmlNode node_OptSortType = xmlDoc.CreateElement("OptSortType"); |
| | | node_OptSortType.InnerText = settting.OptSortType.ToString(); |
| | | nodeSettting.AppendChild(node_OptSortType); |
| | | |
| | | |
| | | List<string> stringBuilder弿³µæ¶é´ = new List<string>(); |
| | | if (settting.OpenPumpTimes != null && settting.OpenPumpTimes.Count > 0) |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | XmlNode node_OpenPumpTimes = xmlDoc.CreateElement("OpenPumpTimes"); |
| | | node_OpenPumpTimes.InnerText = string.Join("###", stringBuilder弿³µæ¶é´); |
| | | nodeSettting.AppendChild(node_OpenPumpTimes); |
| | |
| | | node_RiverWaterLevelBase.InnerText = settting.RiverWaterLevelBase.ToString(); |
| | | nodeSettting.AppendChild(node_RiverWaterLevelBase); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | nodeProject.AppendChild(nodeSettting); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion setting |
| | | |
| | | if (requestBase != null) |
| | | { |
| | |
| | | node_StartWaterBoxLevel.InnerText = requestBase.StartReservoirLevel.ToString(); |
| | | nodeAnaRequest.AppendChild(node_StartWaterBoxLevel); |
| | | |
| | | |
| | | XmlNode node_TotalFlowIn = xmlDoc.CreateElement("TotalFlowIn"); |
| | | if (requestBase.TotalFlowIn != null) |
| | | node_TotalFlowIn.InnerText = requestBase.TotalFlowIn.ToString(); |
| | | nodeAnaRequest.AppendChild(node_TotalFlowIn); |
| | | |
| | | |
| | | |
| | | XmlNode node_MaxReservoirLevel = xmlDoc.CreateElement("MaxReservoirLevel"); |
| | | node_MaxReservoirLevel.InnerText = requestBase.MaxReservoirLevel == null ? "" : requestBase.MaxReservoirLevel.ToString(); |
| | |
| | | node_ReservoirDropFlow.InnerText = requestBase.PerHourFlowOut == null ? "" : string.Join(",", requestBase.PerHourFlowOut); |
| | | nodeAnaRequest.AppendChild(node_ReservoirDropFlow); |
| | | |
| | | |
| | | |
| | | |
| | | //XmlNode node_MaxReservoirLevel = xmlDoc.CreateElement("MaxReservoirLevel"); |
| | | //node_MaxReservoirLevel.InnerText = requestBase.MaxReservoirLevel == null ? "" : requestBase.MaxReservoirLevel.ToString(); |
| | | //nodeAnaRequest.AppendChild(node_MaxReservoirLevel); |
| | | |
| | | |
| | | nodeProject.AppendChild(nodeAnaRequest); |
| | | } |
| | | |
| | | |
| | | |
| | | xmlDoc.Save(filePath); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | // |
| | | private static CalcModel.AnaPrj ToPrjFromXmlDoc(System.Xml.XmlElement rootNode, out IStation.CalcModel.AnaRequestBase requestBase) |
| | | { |
| | |
| | | if (nodeProjectInfo == null) |
| | | return null; |
| | | |
| | | |
| | | CalcModel.AnaPrj prj = new CalcModel.AnaPrj(); |
| | | |
| | | |
| | | |
| | | |
| | | var nodeID = nodeProjectInfo.SelectSingleNode("ID"); |
| | | if (nodeID == null) |
| | | return null; |
| | | prj.ID = nodeID.InnerText; |
| | | |
| | | var nodeName = nodeProjectInfo.SelectSingleNode("Name"); |
| | | if (nodeName == null) |
| | | return null; |
| | | prj.Name = nodeName.InnerText; |
| | | |
| | | var nodeStartTime = nodeProjectInfo.SelectSingleNode("StartTime"); |
| | | if (nodeStartTime == null) |
| | | return null; |
| | | prj.StartTime = Convert.ToDateTime(nodeStartTime.InnerText); |
| | | |
| | | |
| | | var nodeEndTime = nodeProjectInfo.SelectSingleNode("EndTime"); |
| | | if (nodeEndTime == null) |
| | |
| | | return null; |
| | | prj.SumFlow = Convert.ToDouble(nodeSumFlow.InnerText); |
| | | |
| | | |
| | | var nodeSumPower = nodeProjectInfo.SelectSingleNode("SumPower"); |
| | | if (nodeSumPower == null) |
| | | return null; |
| | | prj.SumPower = Convert.ToDouble(nodeSumPower.InnerText); |
| | | |
| | | |
| | | |
| | | var nodeSumMoney = nodeProjectInfo.SelectSingleNode("SumMoney"); |
| | | if (nodeSumMoney == null) |
| | | return null; |
| | | prj.SumMoney = Convert.ToDouble(nodeSumMoney.InnerText); |
| | | |
| | | |
| | | var nodeCalcSpaceMinute = nodeProjectInfo.SelectSingleNode("CalcSpaceMinute"); |
| | | if (nodeCalcSpaceMinute == null) |
| | | return null; |
| | | prj.CalcSpaceMinute = Convert.ToInt32(nodeCalcSpaceMinute.InnerText); |
| | | |
| | | |
| | | #region BlockTimes |
| | | |
| | | var nodeBlockTimes = nodeProjectInfo.SelectSingleNode("BlockTimes"); |
| | | if (nodeBlockTimes == null) |
| | | return null; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | if (nodeBlockTime.SelectSingleNode("OpenPumpCount") != null) |
| | | { |
| | | abt.OpenPumpCount = int.Parse(nodeBlockTime.SelectSingleNode("OpenPumpCount").InnerText); |
| | |
| | | { |
| | | abt.ReservoirStartHeight = double.Parse(nodeBlockTime.SelectSingleNode("ReservoirStartHeight").InnerText); |
| | | } |
| | | |
| | | |
| | | |
| | | abt.SumFlow = double.Parse(nodeBlockTime.SelectSingleNode("SumFlow").InnerText); |
| | | abt.SumPower = double.Parse(nodeBlockTime.SelectSingleNode("SumPower").InnerText); |
| | |
| | | abt.PointTimes.Add(pt); |
| | | } |
| | | |
| | | #endregion |
| | | #endregion PointTimes |
| | | |
| | | prj.BlockTimes.Add(abt); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion BlockTimes |
| | | |
| | | #region PumpSwitchs |
| | | |
| | |
| | | prj.PumpSwitchs.Add(ps); |
| | | } |
| | | |
| | | #endregion |
| | | #endregion PumpSwitchs |
| | | |
| | | var nodeAnaRequest = nodeProjectInfo.SelectSingleNode("AnaRequest"); |
| | | if (nodeAnaRequest != null) |
| | |
| | | requestBase.CalcOptType = CalcModel.eCalcOptType.çµè´¹; |
| | | } |
| | | |
| | | |
| | | requestBase.StartTime = prj.StartTime; |
| | | requestBase.EndTime = prj.EndTime; |
| | | |
| | | |
| | | var nodeIsKnownStartOpenPump = nodeAnaRequest.SelectSingleNode("IsKnownStartOpenPump"); |
| | | if (nodeIsKnownStartOpenPump != null && !string.IsNullOrEmpty(nodeIsKnownStartOpenPump.InnerText)) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | var nodeTotalFlowIn = nodeAnaRequest.SelectSingleNode("TotalFlowIn"); |
| | | if (nodeTotalFlowIn != null && !string.IsNullOrEmpty(nodeTotalFlowIn.InnerText)) |
| | |
| | | requestBase.MaxReservoirLevelTime = nodeMaxMaxReservoirLevelTime.InnerText; |
| | | } |
| | | |
| | | |
| | | var nodeReservoirDropFlow = nodeAnaRequest.SelectSingleNode("SpaceFlowOut"); |
| | | if (nodeReservoirDropFlow != null && !string.IsNullOrEmpty(nodeReservoirDropFlow.InnerText)) |
| | | { |
| | |
| | | foreach (var s in sss) |
| | | { |
| | | requestBase.PerHourFlowOut.Add(Convert.ToDouble(s)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | return prj; |
| | | } |
| | | |
| | | #endregion |
| | | #endregion XML读å |
| | | |
| | | /// <summary> |
| | | /// æå¤©æ°(å°æ¶ä¸å¹é
) |
| | |
| | | var dsList = new DAL.AnaProject().GetByCreateDay(day); |
| | | if (dsList == null || dsList.Count() == 0) { return null; } |
| | | |
| | | |
| | | // IStation.LogHelper.Info(string.Format("GetByCreateDay {0} Count: {1} ", dsList.Count)); |
| | | |
| | | // IStation.LogHelper.Info(string.Format("GetByCreateDay {0} Count: {1} ", dsList.Count)); |
| | | |
| | | var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "History"); |
| | | if (!System.IO.Directory.Exists(root_folder)) |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æå¤©æ°(å°æ¶ä¸å¹é
) |
| | |
| | | return null; |
| | | } |
| | | dsList.Reverse(); |
| | | foreach(var mprj in dsList) |
| | | foreach (var mprj in dsList) |
| | | { |
| | | var file_name = string.Format("{0}_{1}.xml", day.ToString("yyyy-MM-dd"), mprj.PrjID); |
| | | string filePath = System.IO.Path.Combine(month_folder, file_name); |
| | |
| | | return null; |
| | | |
| | | return ToPrjFromXmlDoc(rootNode, out requestBase); |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | |
| | | { |
| | | requestBase = null; |
| | | var dsList = new DAL.AnaProject().GetByEndTimeHç¸å(endTime); |
| | | if(dsList == null || dsList.Count() == 0) { return null; } |
| | | |
| | | if (dsList == null || dsList.Count() == 0) { return null; } |
| | | |
| | | var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "History"); |
| | | if (!System.IO.Directory.Exists(root_folder)) |
| | |
| | | foreach (var mprj in dsList) |
| | | { |
| | | var month_folder = System.IO.Path.Combine(root_folder, endTime.AddDays(-1).ToString("yyyy-MM")); |
| | | if ( System.IO.Directory.Exists(month_folder)) |
| | | if (System.IO.Directory.Exists(month_folder)) |
| | | { |
| | | var file_name = string.Format("{0}_{1}.xml", endTime.AddDays(-1).ToString("yyyy-MM-dd"), mprj.PrjID); |
| | | string filePath = System.IO.Path.Combine(month_folder, file_name); |
| | |
| | | } |
| | | |
| | | month_folder = System.IO.Path.Combine(root_folder, endTime.AddDays(-2).ToString("yyyy-MM")); |
| | | if ( System.IO.Directory.Exists(month_folder)) |
| | | if (System.IO.Directory.Exists(month_folder)) |
| | | { |
| | | var file_name = string.Format("{0}_{1}.xml", endTime.AddDays(-2).ToString("yyyy-MM-dd"), mprj.PrjID); |
| | | var filePath = System.IO.Path.Combine(month_folder, file_name); |
| | |
| | | return ToPrjFromXmlDoc(rootNode, out requestBase); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å°æ¶å¹é
|
| | | /// </summary> |
| | |
| | | var dsList = new DAL.AnaProject().GetByEndTimeH大äº(endTime); |
| | | if (dsList == null || dsList.Count() == 0) { return null; } |
| | | |
| | | |
| | | var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "History"); |
| | | if (!System.IO.Directory.Exists(root_folder)) |
| | | { |
| | |
| | | return ToPrjFromXmlDoc(rootNode, out requestBase); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | return null; |
| | | } |
| | |
| | | //} |
| | | |
| | | //System.IO.File.Delete(filePath); |
| | | |
| | | |
| | | return true; |
| | | } |
| | |
| | | return files; |
| | | } |
| | | } |
| | | } |
| | | } |