/// <summary>
 /// 更新应急联动配置
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public BasicResponse UpdateSysEmergencyLinkage(SysEmergencyLinkageUpdateRequest request)
 {
     _sysEmergencyLinkageCacheService.UpdateSysEmergencyLinkageCache(new Sys.Safety.Request.EmergencyLinkageConfigCacheUpdateRequest {
         SysEmergencyLinkageInfo = request.SysEmergencyLinkageInfo
     });
     return(new BasicResponse());
 }
예제 #2
0
        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(this.txtreason.Text.Trim()))
                {
                    XtraMessageBox.Show("应急联动强制结束必须填写结束原因!");
                    return;
                }

                //强制结束应急联动1.更新呼叫控制 2.更新应急联动状态 3.更新应急联动运行记录
                if (selectSysEmergencyLinkageInfo.EmergencyLinkageState != 0)
                {
                    var masterid = selectSysEmergencyLinkageInfo.Type == 1 ? selectSysEmergencyLinkageInfo.Id : selectSysEmergencyLinkageInfo.MasterModelId;

                    //解除广播控制
                    BCallInfoGetByMasterIDRequest b_defExistsRequest = new BCallInfoGetByMasterIDRequest();
                    b_defExistsRequest.MasterId = masterid;
                    b_defExistsRequest.CallType = 1;
                    var bcallinfo = bCallService.GetBCallInfoByMasterID(b_defExistsRequest).Data.FirstOrDefault();
                    if (bcallinfo != null)
                    {
                        bcallinfo.CallType = 2;
                        bCallService.UpdateCall(new B_CallUpdateRequest {
                            CallInfo = bcallinfo
                        });
                    }

                    //解除人员定位控制
                    RCallInfoGetByMasterIDRequest rcallgetRequest = new RCallInfoGetByMasterIDRequest();
                    rcallgetRequest.MasterId      = masterid;
                    rcallgetRequest.CallType      = 1;
                    rcallgetRequest.IsQueryByType = false;
                    rcallgetRequest.Type          = 0;
                    var rcallinfo = rCallService.GetRCallInfoByMasterID(rcallgetRequest).Data;
                    if (rcallinfo.Count > 0)
                    {
                        rcallinfo.ForEach(o =>
                        {
                            o.CallType = 2;
                            rCallService.UpdateCall(new R_CallUpdateRequest {
                                CallInfo = o
                            });
                        });
                    }

                    //2.更新配置缓存
                    selectSysEmergencyLinkageInfo.EmergencyLinkageState = 0;
                    selectSysEmergencyLinkageInfo.IsForceEnd            = true;
                    selectSysEmergencyLinkageInfo.EndTime = DateTime.Now;
                    var delaytime = Convert.ToInt32(this.spinEdit1.Text);
                    //延迟时间数据库存秒
                    selectSysEmergencyLinkageInfo.DelayTime = delaytime * 60;

                    SysEmergencyLinkageUpdateRequest upddateRequest = new SysEmergencyLinkageUpdateRequest();
                    upddateRequest.SysEmergencyLinkageInfo = selectSysEmergencyLinkageInfo;
                    sysEmergencyLinkageService.UpdateSysEmergencyLinkage(upddateRequest);
                    //3.更新运行记录
                    var emergencyLinkHistory = emergencyLinkHistoryService.GetEmergencyLinkHistoryByEmergency(new EmergencyLinkHistoryGetByEmergencyRequest {
                        EmergencyId = selectSysEmergencyLinkageInfo.Id
                    }).Data;
                    if (emergencyLinkHistory != null && !string.IsNullOrEmpty(emergencyLinkHistory.Id))
                    {
                        emergencyLinkHistory.EndTime    = DateTime.Now;
                        emergencyLinkHistory.IsForceEnd = 1;
                        emergencyLinkHistory.By1        = this.txtreason.Text;

                        ClientItem _ClientItem = Basic.Framework.Data.PlatRuntime.Items[KeyConst.ClientItemKey] as ClientItem;
                        if (_ClientItem != null)
                        {
                            emergencyLinkHistory.EndPerson = _ClientItem.UserID;
                        }
                        emergencyLinkHistoryService.UpdateEmergencyLinkHistory(new EmergencyLinkHistoryUpdateRequest {
                            EmergencyLinkHistoryInfo = emergencyLinkHistory
                        });
                    }
                }

                this.Close();
            }
            catch (Exception ex)
            {
                LogHelper.Error("应急联动强制结束失败:" + ex.Message);
            }
        }
        BasicResponse ISysEmergencyLinkageService.UpdateSysEmergencyLinkage(SysEmergencyLinkageUpdateRequest request)
        {
            var responseStr = HttpClientHelper.Post(Webapi + "/v1/SysEmergencyLinkage/UpdateSysEmergencyLinkage?token=" + Token, JSONHelper.ToJSONString(request));

            return(JSONHelper.ParseJSONString <BasicResponse>(responseStr));
        }