public ActionResult EditTemperatureAlarmRuleEditPartially(TemperatureAlarmRuleEditModel model)
 {
     if (ModelState.IsValid)
     {
         model.EditUserID = base.UserIDForLog;
         var result = TemperatureAlarmRuleBLL.EditTemperatureAlarmRuleEdit(model);
         base.DoLog(OperationTypeEnum.Edit, result, "ID:" + model.ID);
         return(Json(result));
     }
     else
     {
         return(PartialView("_EditTemperatureAlarmRuleEditPartially", model));
     }
 }
Exemple #2
0
        public static OperationResult EditTemperatureAlarmRuleEdit(TemperatureAlarmRuleEditModel model)
        {
            //获取有效的报警配置详细数据,安装位置为空的表示没设置
            var effectiveDetails = (from item in model.TemperatureAlarmRuleDetails where !string.IsNullOrWhiteSpace(item.InstallationPosition) select item).ToList();
            //规则基础数据1+时段数据1+删除明细数据1+有效明细数据n
            int count = 3 + effectiveDetails.Count;

            string[]         sqls  = new string[count];
            SqlParameter[][] paras = new SqlParameter[count][];

            #region 新增温度报警规则
            sqls[0] = @"UPDATE dbo.TemperatureAlarmRules 
SET Name=@Name,AffiliatedStrucID=@AffiliatedStrucID,EditTime=GETDATE(),Description=@Description,EditUserID=@EditUserID WHERE ID=@ID";


            paras[0]    = new SqlParameter[5];
            paras[0][0] = new SqlParameter()
            {
                ParameterName = "@Name",
                SqlDbType     = SqlDbType.NVarChar,
                Value         = model.Name.Trim()
            };
            paras[0][1] = new SqlParameter()
            {
                ParameterName = "@AffiliatedStrucID",
                SqlDbType     = SqlDbType.Int,
                Value         = model.AffiliatedStrucID
            };
            paras[0][2] = new SqlParameter()
            {
                ParameterName = "@EditUserID",
                SqlDbType     = SqlDbType.Int,
                Value         = model.EditUserID
            };
            paras[0][3] = new SqlParameter()
            {
                ParameterName = "@Description",
                SqlDbType     = SqlDbType.NVarChar,
                Value         = string.IsNullOrWhiteSpace(model.Description) ? (object)DBNull.Value : model.Description
            };
            paras[0][4] = new SqlParameter()
            {
                ParameterName = "@ID",
                SqlDbType     = SqlDbType.Int,
                Value         = model.ID
            };
            #endregion

            #region  除后新增报警规则时段数据
            sqls[1]     = @"
DELETE FROM TemperatureAlarmRuleTimePeriods WHERE TemperatureAlarmRuleID=@TemperatureAlarmRuleID
INSERT INTO dbo.TemperatureAlarmRuleTimePeriods
        ( TemperatureAlarmRuleID ,
          StartTime ,
          EndTime
        )
VALUES  ( @TemperatureAlarmRuleID , -- TemperatureAlarmRuleID - int
          @StartTime , -- StartTime - time
          @EndTime  -- EndTime - time
        ) ";
            paras[1]    = new SqlParameter[3];
            paras[1][0] = new SqlParameter()
            {
                ParameterName = "@TemperatureAlarmRuleID",
                SqlDbType     = SqlDbType.Int,
                Value         = model.ID
            };
            paras[1][1] = new SqlParameter()
            {
                ParameterName = "@StartTime",
                SqlDbType     = SqlDbType.Time,
                Value         = model.StartTime
            };
            paras[1][2] = new SqlParameter()
            {
                ParameterName = "@EndTime",
                SqlDbType     = SqlDbType.Time,
                Value         = model.EndTime
            };


            #endregion

            #region  除后新增报警规则的明细
            sqls[2] = "DELETE FROM dbo.TemperatureAlarmRuleDetails WHERE TemperatureAlarmRuleID=" + model.ID + "";
            for (int i = 0; i < effectiveDetails.Count; i++)
            {
                var item  = effectiveDetails[i];
                int index = i + 3;//开始是第4️条语句
                sqls[index]     = @"INSERT INTO dbo.TemperatureAlarmRuleDetails
        ( TemperatureAlarmRuleID ,
          SensorCode ,
          InstallationPosition ,
          LowestTemperature ,
          HighestTemperature,
          Enabled
        )
VALUES  ( @TemperatureAlarmRuleID , -- TemperatureAlarmRuleID - int
          @SensorCode , -- SensorCode - int
          @InstallationPosition, -- InstallationPosition - nvarchar(50)
          @LowestTemperature , -- LowestTemperature - float
          @HighestTemperature,  -- HighestTemperature - float
          @Enabled
        )";
                paras[index]    = new SqlParameter[6];
                paras[index][0] = new SqlParameter {
                    ParameterName = "@TemperatureAlarmRuleID", SqlDbType = SqlDbType.Int, Value = model.ID
                };


                paras[index][1] = new SqlParameter()
                {
                    ParameterName = "@SensorCode",
                    SqlDbType     = SqlDbType.Int,
                    Value         = item.SensorCode
                };
                paras[index][2] = new SqlParameter()
                {
                    ParameterName = "@InstallationPosition",
                    SqlDbType     = SqlDbType.NVarChar,
                    Value         = item.InstallationPosition.Trim()
                };
                paras[index][3] = new SqlParameter()
                {
                    ParameterName = "@LowestTemperature",
                    SqlDbType     = SqlDbType.Float,
                    Value         = item.LowestTemperature
                };
                paras[index][4] = new SqlParameter()
                {
                    ParameterName = "@HighestTemperature",
                    SqlDbType     = SqlDbType.Float,
                    Value         = item.HighestTemperature
                };
                paras[index][5] = new SqlParameter()
                {
                    ParameterName = "@Enabled",
                    SqlDbType     = SqlDbType.Bit,
                    Value         = item.Enabled
                };
            }
            #endregion


            bool result = MSSQLHelper.ExecuteTransaction(CommandType.Text, sqls, paras);
            return(new OperationResult()
            {
                Success = result,
                Message = result ? PromptInformation.OperationSuccess : PromptInformation.DBError
            });
        }
Exemple #3
0
        public static SelectResult <TemperatureAlarmRuleEditModel> GetTemperatureAlarmRuleByID(int id)
        {
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@ID", SqlDbType.Int),
            };

            paras[0].Value = id;
            string sql  = @"SELECT tar.ID,tar.Name,tar.[Description],tar.AffiliatedStrucID,struc.StrucName AS AffiliatedStrucName,
CAST(tarp.StartTime AS CHAR(8)) AS StartTime,CAST(tarp.EndTime AS CHAR(8)) AS EndTime,
tard.SensorCode,tard.InstallationPosition,tard.LowestTemperature,tard.HighestTemperature,tard.[Enabled],s.SensorName
FROM dbo.TemperatureAlarmRules tar
INNER JOIN dbo.TemperatureAlarmRuleDetails tard ON tar.ID=tard.TemperatureAlarmRuleID
INNER JOIN dbo.TemperatureAlarmRuleTimePeriods tarp ON tar.ID=tarp.TemperatureAlarmRuleID
INNER JOIN dbo.Structures struc ON tar.AffiliatedStrucID=struc.ID
INNER JOIN dbo.SensorList s ON s.SensorCode=tard.SensorCode
WHERE tar.ID=@ID
ORDER BY tard.SensorCode ASC";
            var    list = ConvertToList <TemperatureAlarmRuleEditFlatModel> .Convert(MSSQLHelper.ExecuteDataTable(CommandType.Text, sql, paras.ToArray()));


            TemperatureAlarmRuleEditModel data = null;
            string msg = string.Empty;

            if (list == null)
            {
                msg = PromptInformation.DBError;
            }
            else if (list.Count == 0)
            {
                msg = PromptInformation.NotExists;
            }
            else
            {
                var result = from item in list
                             group item by new { item.ID, item.Name, item.Description, item.AffiliatedStrucID, item.AffiliatedStrucName, item.StartTime, item.EndTime } into groupedResult
                    select new TemperatureAlarmRuleEditModel
                {
                    ID                          = groupedResult.Key.ID,
                    Name                        = groupedResult.Key.Name,
                    Description                 = groupedResult.Key.Description,
                    AffiliatedStrucID           = groupedResult.Key.AffiliatedStrucID,
                    AffiliatedStrucName         = groupedResult.Key.AffiliatedStrucName,
                    StartTime                   = groupedResult.Key.StartTime,
                    EndTime                     = groupedResult.Key.EndTime,
                    TemperatureAlarmRuleDetails = (from subItem in list
                                                   where subItem.ID == groupedResult.Key.ID
                                                   select new TemperatureAlarmRuleDetailModel
                    {
                        Enabled = subItem.Enabled,
                        SensorCode = subItem.SensorCode,
                        SensorName = subItem.SensorName,
                        HighestTemperature = subItem.HighestTemperature,
                        LowestTemperature = subItem.LowestTemperature,
                        InstallationPosition = subItem.InstallationPosition
                    }).ToList()
                };
                data = result.FirstOrDefault();
            }
            return(new SelectResult <TemperatureAlarmRuleEditModel>()
            {
                DataResult = data,
                Message = msg
            });
        }