duheng
2024-07-25 713d5218ee2b47c0c92f75c19c49bb7e883cd214
DAL/IStation.DAL.Project/DAL/AnaProject.cs
@@ -9,7 +9,7 @@
    /// <summary>
    /// 数据库访问基类
    /// </summary> 
    public partial class AnaProject
    public partial class AnaProject
    {
        /// <summary>
@@ -17,7 +17,7 @@
        /// </summary>
        public AnaProject()
        {
        }
@@ -57,24 +57,44 @@
        /// </summary>
        public long Insert(IStation.CalcModel.AnaPrj result_prj, IStation.CalcModel.AnaRequest ana_request)
        {
            RefreshSameTime(result_prj.StartTime, result_prj.EndTime);
            IStation.Entity.AnaProjectEntity entity = new Entity.AnaProjectEntity();
            entity.PrjID = result_prj.ID;
            entity.PrjName = result_prj.Name;
            entity.StartTime = result_prj.StartTime;
            entity.EndTime = result_prj.EndTime;
            entity.CreateTime = DateTime.Now;
            if(ana_request.TotalFlowIn != null)
            entity.UseStatus = 0;
            if (ana_request.TotalFlowIn != null)
            {
                entity.TotalFlowIn = ana_request.TotalFlowIn.ToString();
            }
            if (ana_request.SpaceFlowOut != null)
            if (ana_request.PerHourFlowOut != null)
            {
                entity.TotalFlowOut = string.Join(",", ana_request.SpaceFlowOut) ;
                entity.TotalFlowOut = string.Join(",", ana_request.PerHourFlowOut);
            }
            if(ana_request.MaxReservoirLevel != null)
            if (ana_request.MaxReservoirLevel != null)
            {
                entity.LevelRequest = string.Format("{0}@{1}", ana_request.MaxReservoirLevel, ana_request.MaxReservoirLevelTime);
            }
            ana_request.StartReservoirLevel = ana_request.StartReservoirLevel;
            entity.CalcOptType = (int)ana_request.CalcOptType;
            if (ana_request.IsKnownStartOpenPump && ana_request.StartOpenPumpIndexArray != null)
            {
                entity.StartOpenPumpIndexs = string.Join(",", ana_request.StartOpenPumpIndexArray);
            }
            if (result_prj.EndTimeOpenPumpStatus != null)
            {
                entity.EndOpenPumpIndexs = string.Join(",", result_prj.EndTimeOpenPumpStatus);
            }
            entity.StartReservoirLevel = ana_request.StartReservoirLevel.ToString();
            if (result_prj.BlockTimes != null && result_prj.BlockTimes.Count > 0)
            {
                entity.EndReservoirLevel = result_prj.BlockTimes.Last().ReservoirEndHeight.ToString();
            }
            SnowFlakeSingle.WorkId = 1;
@@ -89,18 +109,21 @@
        /// </summary>
        public long Insert(IStation.CalcModel.AnaPrj result_prj, IStation.CalcModel.AnaRequestBase ana_request)
        {
            RefreshSameTime(result_prj.StartTime, result_prj.EndTime);
            IStation.Entity.AnaProjectEntity entity = new Entity.AnaProjectEntity();
            entity.PrjID = result_prj.ID;
            entity.StartTime = result_prj.StartTime;
            entity.EndTime = result_prj.EndTime;
            entity.CreateTime = DateTime.Now;
            if(ana_request.TotalFlowIn != null)
            entity.UseStatus = 1;
            if (ana_request.TotalFlowIn != null)
            {
                entity.TotalFlowIn =  ana_request.TotalFlowIn.ToString();
                entity.TotalFlowIn = ana_request.TotalFlowIn.ToString();
            }
            if (ana_request.SpaceFlowOut != null)
            if (ana_request.PerHourFlowOut != null)
            {
                entity.TotalFlowOut = string.Join(",", ana_request.SpaceFlowOut);
                entity.TotalFlowOut = string.Join(",", ana_request.PerHourFlowOut);
            }
            if (ana_request.MaxReservoirLevel != null)
            {
@@ -112,10 +135,11 @@
            {
                entity.StartOpenPumpIndexs = string.Join(",", ana_request.StartOpenPumpIndexArray);
            }
            if (result_prj.EndTimeOpenPumpStaus != null) {
                entity.EndOpenPumpIndexs = string.Join(",", result_prj.EndTimeOpenPumpStaus);
            if (result_prj.EndTimeOpenPumpStatus != null)
            {
                entity.EndOpenPumpIndexs = string.Join(",", result_prj.EndTimeOpenPumpStatus);
            }
            entity.StartReservoirLevel =   ana_request.StartReservoirLevel.ToString();
            entity.StartReservoirLevel = ana_request.StartReservoirLevel.ToString();
            if (result_prj.BlockTimes != null && result_prj.BlockTimes.Count > 0)
            {
                entity.EndReservoirLevel = result_prj.BlockTimes.Last().ReservoirEndHeight.ToString();
@@ -127,6 +151,69 @@
            {
                return db.Insertable(entity).ExecuteReturnSnowflakeId();
            }
        }
        private void RefreshSameTime(DateTime startTime, DateTime endTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                //db.Updateable<Entity.AnaProjectEntity>(updateObj).UpdateColumns(it => new { it.Name, it.CreateTime }).ExecuteCommand();
                var list = db.Queryable<Entity.AnaProjectEntity>().Where(x => x.StartTime == startTime && x.EndTime == endTime).ToList();
                if (list == null || list.Count == 0)
                    return;
                foreach (var m in list)
                {
                    if (m.UseStatus == 1)
                    {
                        m.UseStatus = 0;
                        db.Updateable<Entity.AnaProjectEntity>(m).UpdateColumns(x => x.UseStatus ).ExecuteCommand();
                    }
                }
            }
        }
        //确认方案
        public string  SetConfirmStatusByID(string PrjID)
        {
            using (ISqlSugarClient db = Connection)
            {
                var f_p = db.Queryable<Entity.AnaProjectEntity>().Where(x => x.PrjID == PrjID).First();
                if (f_p == null)
                    return "未找到对应项目";
                var startTime = f_p.StartTime.Date;
                var all = db.Queryable<Entity.AnaProjectEntity>().Where(x => x.StartTime >= startTime && x.StartTime <= startTime.AddDays(1)).ToList();
                if(all == null || all.Count == 0)
                {
                    return "未找到对应项目 StartTime = " + f_p.StartTime.Date;
                }
                //IStation.LogHelper.Info("Count" + all.Count);
                foreach(var m in all)
                {
                    if (m.ID == f_p.ID)
                    {
                        //IStation.LogHelper.Info("id  set 1 :" + m.ID);
                        m.UseStatus = 1;
                        db.Updateable<Entity.AnaProjectEntity>(m).UpdateColumns(x => x.UseStatus).ExecuteCommand();
                    }
                    else
                    {
                        if (m.UseStatus == 1)
                        {//设置为失效
                            //IStation.LogHelper.Info("id set 0:" + m.ID);
                            m.UseStatus = 0;
                            db.Updateable<Entity.AnaProjectEntity>(m).UpdateColumns(x => x.UseStatus).ExecuteCommand();
                        }
                    }
                }
            }
            return null;
        }
        #endregion
@@ -156,7 +243,108 @@
                return db.Queryable<Entity.AnaProjectEntity>().Single(x => x.PrjID == prj_id);
            }
        }
        /// <summary>
        /// 完整时间(带小时)
        /// </summary>
        public List<Entity.AnaProjectEntity> GetByEndTimeH相同(DateTime endTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.EndTime == endTime && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 完整时间(带小时)
        /// </summary>
        public List<Entity.AnaProjectEntity> GetByEndTimeH大于(DateTime endTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.EndTime >= endTime && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 日期(不带小时)
        /// </summary>
        public List<Entity.AnaProjectEntity> GetByEndDay(DateTime endTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                var end_day = endTime.Date;
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.EndTime>= endTime && x.StartTime <= endTime.AddDays(1) && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 日期(不带小时)
        /// </summary>
        /// <param name="startTime"></param>
        /// <returns></returns>
        public List<Entity.AnaProjectEntity> GetByStartDay(DateTime startTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                var start_day = startTime.Date;
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.StartTime >= start_day && x.StartTime <= start_day.AddDays(1) && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 日期(不带小时)
        /// </summary>
        /// <param name="startTime"></param>
        /// <returns></returns>
        public List<Entity.AnaProjectEntity> GetByCreateDay(DateTime startTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                var start_day = startTime.Date;
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.CreateTime >= start_day && x.CreateTime <= start_day.AddDays(1) && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 日期(不带小时)
        /// </summary>
        /// <param name="startTime"></param>
        /// <returns></returns>
        public List<Entity.AnaProjectEntity> GetAllByCreateDay(DateTime startTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                var start_day = startTime.Date;
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.CreateTime >= start_day && x.CreateTime <= start_day.AddDays(1)).ToList();
            }
        }
        /// <summary>
        /// 完整时间( 带小时)
        /// </summary>
        /// <param name="startTime"></param>
        /// <returns></returns>
        public List<Entity.AnaProjectEntity> GetByStartTimeH(DateTime startTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.StartTime  == startTime && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 完整时间( 带小时)
        /// </summary>
        /// <param name="startTime"></param>
        /// <returns></returns>
        public List<Entity.AnaProjectEntity> GetByTimeRangeH(DateTime startTime,DateTime endTime)
        {
            using (ISqlSugarClient db = Connection)
            {
                return db.Queryable<Entity.AnaProjectEntity>().Where(x => x.StartTime == startTime && x.EndTime == endTime && x.UseStatus == 1).ToList();
            }
        }
        /// <summary>
        /// 最后一条记录
        /// </summary>
        /// <returns></returns>
        public Entity.AnaProjectEntity GetLastRecord()
        {
            using (ISqlSugarClient db = Connection)
@@ -165,6 +353,8 @@
            }
        }
        #endregion