tangxu
2024-12-19 9acdf3c826311bd67180821ce19c625d0e384ca8
DAL/IStation.DAL.Project/ÀúÊ·µ÷¶È·½°¸/HistoryAnaPrjFileHelper.cs
@@ -9,7 +9,11 @@
{
    public class HistoryAnaPrjFileHelper
    {
        public static bool SavePrj(CalcModel.AnaSetting settting, IStation.CalcModel.AnaRequest request, IStation.CalcModel.AnaPrj prj)
        public static bool SavePrj(
            CalcModel.AnaSetting settting,
            bool isPredictRecord,//是否是用到水量预测
            IStation.CalcModel.AnaRequest request,
            IStation.CalcModel.AnaPrj prj)
        {
            if (prj == null || prj.BlockTimes == null || prj.BlockTimes.Count == 0 || request == null) return false;
@@ -26,11 +30,15 @@
            }
            dal.Insert(prj, request);
            return WriteXmlFile(settting, request, prj);
            return WriteXmlFile(settting, isPredictRecord, request, prj);
        }
        //保存
        public static bool SavePrj(CalcModel.AnaSetting settting, IStation.CalcModel.AnaRequestBase requestBase, IStation.CalcModel.AnaPrj prj)
        public static bool SavePrj(
            CalcModel.AnaSetting settting,
            bool isPredictRecord,//是否是用到水量预测
            IStation.CalcModel.AnaRequestBase requestBase,
            IStation.CalcModel.AnaPrj prj)
        {
            if (prj == null || prj.BlockTimes == null || prj.BlockTimes.Count == 0) return false;
@@ -38,13 +46,17 @@
            var dal = new IStation.DAL.AnaProject();
            dal.Insert(prj, requestBase);
            return WriteXmlFile(settting, requestBase, prj);
            return WriteXmlFile(settting, isPredictRecord, requestBase, prj);
        }
        #region XML读写
        //
        private static bool WriteXmlFile(CalcModel.AnaSetting settting, IStation.CalcModel.AnaRequestBase requestBase, IStation.CalcModel.AnaPrj prj)
        private static bool WriteXmlFile(
            CalcModel.AnaSetting settting,
            bool isPredictRecord,//是否是用到水量预测
            IStation.CalcModel.AnaRequestBase requestBase,
            IStation.CalcModel.AnaPrj prj)
        {
            var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "History");
            if (!System.IO.Directory.Exists(root_folder))
@@ -72,10 +84,6 @@
            XmlElement rootNode = xmlDoc.CreateElement("root");
            xmlDoc.AppendChild(rootNode);
            // root ä¸‹çš„子节点
            //XmlElement toTalTick = xmlDoc.CreateElement("TotalTick");
            //toTalTick.InnerText = "10";
            //rootNode.AppendChild(toTalTick); //注意这里是 root.AppendChild
            #region ç‰ˆæœ¬ä¿¡æ¯
@@ -137,6 +145,15 @@
            var nodeCalcSpaceMinute = xmlDoc.CreateElement("CalcSpaceMinute");
            nodeCalcSpaceMinute.InnerText = prj.CalcSpaceMinute.ToString();
            nodeProject.AppendChild(nodeCalcSpaceMinute);
            var nodeMaxWaterLevelH = xmlDoc.CreateElement("MaxWaterLevelH");
            nodeMaxWaterLevelH.InnerText = prj.MaxWaterLevelH.ToString();
            nodeProject.AppendChild(nodeMaxWaterLevelH);
            var nodeMaxWaterLevelTime = xmlDoc.CreateElement("MaxWaterLevelTime");
            nodeMaxWaterLevelTime.InnerText = prj.MaxWaterLevelTime.ToString();
            nodeProject.AppendChild(nodeMaxWaterLevelTime);
            if (prj.EndTimeOpenPumpStatus != null)
            {
@@ -485,12 +502,18 @@
                nodeAnaRequest.AppendChild(node_MaxReservoirLevel);
                XmlNode node_MaxReservoirLevelTime = xmlDoc.CreateElement("MaxReservoirLevelTime");
                node_MaxReservoirLevelTime.InnerText = requestBase.MaxReservoirLevelTime == null ? "" : requestBase.MaxReservoirLevelTime;
                node_MaxReservoirLevelTime.InnerText = string.IsNullOrEmpty( requestBase.MaxReservoirLevelTime)  ? "" : requestBase.MaxReservoirLevelTime;
                nodeAnaRequest.AppendChild(node_MaxReservoirLevelTime);
                XmlNode node_ReservoirDropFlow = xmlDoc.CreateElement("SpaceFlowOut");
                node_ReservoirDropFlow.InnerText = requestBase.PerHourFlowOut == null ? "" : string.Join(",", requestBase.PerHourFlowOut);
                nodeAnaRequest.AppendChild(node_ReservoirDropFlow);
                XmlNode node_IsPredictRecord = xmlDoc.CreateElement("IsPredictRecord");
                node_IsPredictRecord.InnerText = isPredictRecord.ToString();
                nodeAnaRequest.AppendChild(node_IsPredictRecord);
                //XmlNode node_MaxReservoirLevel = xmlDoc.CreateElement("MaxReservoirLevel");
                //node_MaxReservoirLevel.InnerText = requestBase.MaxReservoirLevel == null ? "" :  requestBase.MaxReservoirLevel.ToString();
@@ -558,6 +581,19 @@
            if (nodeCalcSpaceMinute == null)
                return null;
            prj.CalcSpaceMinute = Convert.ToInt32(nodeCalcSpaceMinute.InnerText);
            //
            var nodeMaxWaterLevelH = nodeProjectInfo.SelectSingleNode("MaxWaterLevelH");
            if (nodeMaxWaterLevelH != null)
            {
                prj.MaxWaterLevelH = Convert.ToDouble(nodeMaxWaterLevelH.InnerText);
            }
            var nodeMaxWaterLevelTime = nodeProjectInfo.SelectSingleNode("MaxWaterLevelTime");
            if (nodeMaxWaterLevelTime != null)
            {
                prj.MaxWaterLevelTime = Convert.ToDateTime(nodeMaxWaterLevelTime.InnerText);
            }
            #region BlockTimes
@@ -726,6 +762,8 @@
                        requestBase.PerHourFlowOut.Add(Convert.ToDouble(s));
                    }
                }
            }
            return prj;