Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        /// <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);
                        }
                    }
                }
            }
        }