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)); } }
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 }); }
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 }); }