private void UpdateAlarm(AlarmRecordUpdateProperitesRequest AlarmRecordRequest) { List <Jc_BInfo> alarmInfos = new List <Jc_BInfo>(); string alarmDate = AlarmRecordRequest.AlarmInfo.Stime.ToString("yyyyMM"); alarmInfos.Add(AlarmRecordRequest.AlarmInfo); var alarmModels = ObjectConverter.CopyList <Jc_BInfo, Jc_BModel>(alarmInfos); List <string> updateItems = GetUpdateColumns(AlarmRecordRequest.UpdateItems); updateItems.Add("ID"); string[] updateColumns = updateItems.ToArray(); if (updateColumns.Length > 0) { if (_Repository.BulkUpdate("KJ_DataAlarm" + alarmDate, alarmModels, BuildDataColumn(updateColumns), "ID")) { //更新缓存 var updateRequest = new AlarmCacheUpdatePropertiesRequest { AlarmKey = AlarmRecordRequest.AlarmInfo.ID, UpdateItems = AlarmRecordRequest.UpdateItems }; _alarmCacheService.UpdateAlarmInfoProperties(updateRequest); } } }
/// <summary> /// 结束设备报警 /// </summary> /// <returns></returns> private bool EndDeviceAlarm() { AlarmRecordGetDateIdRequest alarmgetByIdrequest = new AlarmRecordGetDateIdRequest { Id = _alarmId, AlarmDate = _stime }; var response = alarmRecordService.GetDateAlarmRecordById(alarmgetByIdrequest); if (response != null && response.IsSuccess && response.Data != null) { Jc_BInfo alarmInfo = response.Data; ClientItem _ClientItem = Basic.Framework.Data.PlatRuntime.Items[KeyConst.ClientItemKey] as ClientItem; if (_ClientItem != null) { alarmInfo.Bz1 = _ClientItem.UserName; } //alarmInfo.Etime = DateTime.Now; alarmInfo.Bz2 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); alarmInfo.Remark = reasonEdit.Text; alarmInfo.Cs = measureEdit.Text; Dictionary <string, object> updateItems = new Dictionary <string, object>(); updateItems.Add("Bz1", alarmInfo.Bz1); updateItems.Add("Bz2", alarmInfo.Bz2); updateItems.Add("Remark", alarmInfo.Remark); updateItems.Add("Cs", alarmInfo.Cs); AlarmRecordUpdateProperitesRequest updateRequest = new AlarmRecordUpdateProperitesRequest() { AlarmInfo = alarmInfo, UpdateItems = updateItems }; var updateResponse = alarmRecordService.UpdateAlarmInfoProperties(updateRequest); if (updateResponse != null && updateResponse.IsSuccess) { return(updateResponse.Data); } } return(false); }
public BasicResponse <bool> UpdateAlarmInfoProperties(AlarmRecordUpdateProperitesRequest AlarmRecordRequest) { BasicResponse <bool> resultResponse = new BasicResponse <bool>(); try { List <Jc_BInfo> alarmInfos = new List <Jc_BInfo>(); string alarmDate = AlarmRecordRequest.AlarmInfo.Stime.ToString("yyyyMM"); alarmInfos.Add(AlarmRecordRequest.AlarmInfo); var alarmModels = ObjectConverter.CopyList <Jc_BInfo, Jc_BModel>(alarmInfos); List <string> updateItems = GetUpdateColumns(AlarmRecordRequest.UpdateItems); updateItems.Add("ID"); string[] updateColumns = updateItems.ToArray(); if (updateColumns.Length > 0) { if (_Repository.BulkUpdate("KJ_DataAlarm" + alarmDate, alarmModels, BuildDataColumn(updateColumns), "ID")) { resultResponse.Data = true; //更新缓存 var updateRequest = new AlarmCacheUpdatePropertiesRequest { AlarmKey = AlarmRecordRequest.AlarmInfo.ID, UpdateItems = AlarmRecordRequest.UpdateItems }; _alarmCacheService.UpdateAlarmInfoProperties(updateRequest); return(resultResponse); } } resultResponse.Data = false; return(resultResponse); } catch (Exception ex) { LogHelper.Error("更新报警信息失败:" + "\r\n" + ex.Message); resultResponse.Data = false; return(resultResponse); } }
/// <summary> /// 定时,处理馈电记录,每2秒处理一次 /// </summary> private void CheckAlarmFeeding() { //控制口不为空,并且upflag=0 为主控,控制量取断电失败和复电失败 Jc_KdInfo kdInfo; DataTable dtpointcur = new DataTable(); DataTable dtcontrolcur = new DataTable(); DateTime etime = Convert.ToDateTime(DateTime.Now.ToShortDateString()); DateTime stime = Convert.ToDateTime(DateTime.Now.AddDays(-1.0f).ToShortDateString()); DateTime dtimecur = new DateTime(); string kzklst = ""; string oldkdid = "", tempkdid = "", Curkdid = "";; int feedingtime = 60;//关于复电失败的只计算60秒以内的。 byte upflag = 0; for (; stime <= etime; stime = stime.AddDays(1.0f)) { dtpointcur = _Repository.GetAlarmFeedingList("KJ_DataAlarm" + stime.ToString("yyyyMM"), stime.ToString(), stime.AddDays(1.0f).ToShortDateString()); if (dtpointcur != null)//找到当天控制口未空,并且upflag=0的记录 { for (int i = 0; i < dtpointcur.Rows.Count; i++) { dtimecur = DateTime.Parse(dtpointcur.Rows[i]["etime"].ToString()); kzklst = dtpointcur.Rows[i]["kzk"].ToString().Replace("|", "','"); oldkdid = dtpointcur.Rows[i]["kdid"].ToString(); upflag = 0; if (dtimecur.Year == 1900) { dtcontrolcur = _Repository.GetAlarmFeedingControlList("KJ_DataAlarm" + stime.ToString("yyyyMM"), dtpointcur.Rows[i]["stime"].ToString(), "", kzklst, false); } else { dtcontrolcur = _Repository.GetAlarmFeedingControlList("KJ_DataAlarm" + stime.ToString("yyyyMM"), dtpointcur.Rows[i]["stime"].ToString(), dtpointcur.Rows[i]["etime"].ToString(), kzklst); if ((DateTime.Now - dtimecur).TotalSeconds >= feedingtime) { upflag = 1; } } Curkdid = oldkdid; for (int j = 0; j < dtcontrolcur.Rows.Count; j++) { tempkdid = dtcontrolcur.Rows[j]["id"].ToString(); if (!Curkdid.Contains(tempkdid)) { if (Curkdid == "") { Curkdid = tempkdid; } else { Curkdid += "," + tempkdid; } ///更新馈电信息表 kdInfo = GetNewJCKDInfo(dtpointcur.Rows[i]["id"].ToString(), tempkdid, DateTime.Now); addJCKDRecordToDB(kdInfo); } } //以主控的ID,更新kdid和upflag if (Curkdid != oldkdid || upflag == 1) { Jc_BInfo alarmInfo = new Jc_BInfo(); alarmInfo.Upflag = upflag.ToString(); alarmInfo.Kdid = Curkdid; alarmInfo.ID = dtpointcur.Rows[i]["id"].ToString(); alarmInfo.Stime = (DateTime)(dtpointcur.Rows[i]["stime"]); Dictionary <string, object> updateItems = new Dictionary <string, object>(); updateItems.Add("Upflag", alarmInfo.Upflag); updateItems.Add("Kdid", alarmInfo.Kdid); AlarmRecordUpdateProperitesRequest updateRequest = new AlarmRecordUpdateProperitesRequest() { AlarmInfo = alarmInfo, UpdateItems = updateItems }; UpdateAlarm(updateRequest); } } } } }