public ActionResult Detail(string code) { //WebsocketService.SendMessage(); var model = new SmokeDetailModel(); model.DetectorInfo = SmokeDetectorServices.LoadSmokeDetail(code); if (model.DetectorInfo == null || (CurrUser.CompanySysNo > 0 && CurrUser.CompanySysNo != model.DetectorInfo.CompanySysNo)) { model.HasError = true; model.ErrorMessage = "设备信息不存在"; } else { ClientFilter cFilter = new ClientFilter { SmokeDetectorCode = code, PageIndex = 0, PageSize = int.MaxValue }; if (CurrUser != null && CurrUser.CompanySysNo > 0) { cFilter.CompanySysNo = CurrUser.CompanySysNo; } model.ClientList = ClientService.QueryClientList(cFilter).data; //model.LogList = SmokeDetectorServices.QueryDeviceNoticeList(code); } return(View(model)); }
public ActionResult QueryDeviceList(int pageIndex, UISmokeDetectorStatus?uiStatus) { QueryResult <QR_SmokeDetector> list = new QueryResult <QR_SmokeDetector>(); if (curentUser.UserType == UserType.Installer) { QF_SmokeDetector filter = new QF_SmokeDetector(); filter.InstallerSysNo = curentUser.ManagerSysNo.Value; filter.Status = uiStatus; filter.PageIndex = pageIndex; filter.PageSize = 10; filter.SortFields = "status desc,InstalledTime desc"; list = SmokeDetectorServices.QuerySmokeDetectorList(filter); } else { QF_UserDetector filter = new QF_UserDetector(); filter.PageIndex = pageIndex; filter.PageSize = 10; filter.ClientSysNo = curentUser.UserSysNo; filter.Status = uiStatus; list = SmokeDetectorServices.LoadUserSmokeDeletetorList(filter); } return(PartialView("~/Views/Smoke/_DeviceItem.cshtml", list.data)); }
public ActionResult AjaxQueryDeviceNoticeInfo() { QF_SmokeDetectorStatusLog filter = BuildQueryFilterEntity <QF_SmokeDetectorStatusLog>(); var resul = SmokeDetectorServices.QueryDeviceNoticeList(filter); return(AjaxGridJson(resul)); }
public ActionResult SendEmergencyMessage(string SerID) { if (string.IsNullOrEmpty(SerID)) { throw new BusinessException("请传入设备Code"); } var smoke = SmokeDetectorServices.LoadSmokeDetail(SerID); if (smoke == null || string.IsNullOrEmpty(smoke.AddressCode)) { throw new BusinessException("当前设备还未安装入网"); } DevicesWarningTemplateTemplate devicesWarningTemplate = new DevicesWarningTemplateTemplate { SerID = SerID, DeviceName = "烟感器报警", Type = "感应报警", WarningTime = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{smoke.AddressName}", // Url = "http://tfs-code2.chinacloudapp.cn/Smoke/Notice", MasterID = SerID, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = smoke.AddressName, }; if (smoke.InstallerSysNo.HasValue && smoke.InstallerSysNo < 0) { devicesWarningTemplate.Address = smoke.Position; devicesWarningTemplate.Memo = smoke.Position; } SendMessageService.SendMessage(devicesWarningTemplate, SerID); return(Json(new AjaxResult { Success = true })); }
public ActionResult AjaxQueryDeviceUserNoticeInfo() { QF_SmokeDetectorMessage filter = BuildQueryFilterEntity <QF_SmokeDetectorMessage>(); filter.MasterName = "SmokeDetector"; var resul = SmokeDetectorServices.QuerySmokeDetectorMessage(filter); return(AjaxGridJson(resul)); }
public ActionResult UpdateSmokeInfo(string code, string newDeviceID, string addressSysNo, string position) { if (addressSysNo == null) { throw new BusinessException("位置信息错误,请重新选择后再试。"); } int sysNo = int.Parse(addressSysNo); if (sysNo == 0) { throw new BusinessException("位置信息错误,请重新选择后再试。"); } Address address = AddressService.LoadAddress(sysNo); if (address == null) { throw new BusinessException("位置信息错误,请重新选择后再试。"); } if (string.IsNullOrWhiteSpace(newDeviceID)) { throw new BusinessException("请填写ONENET编号!。"); } SmokeDetector result = SmokeDetectorServices.LoadSmokeDetectorByDeviceID(newDeviceID); if (result != null && result.Code != code) { throw new BusinessException("已存在该ONENET编号!。"); } SmokeDetector smoke = SmokeDetectorServices.IsUniquenessCode(code); if (smoke != null) { //List<Address> addressList = AddressService.LoadSubsetAddressByAddressSysNo(smoke.CompanySysNo, sysNo); //if (addressList != null && addressList.Count > 0) //{ // throw new BusinessException("请选择详细地址!。"); //} smoke.DeviceId = newDeviceID; smoke.AddressCode = address.Code; smoke.AddressName = address.PathName; smoke.Position = position; SmokeDetectorServices.UpdateSmokeDetector(smoke); return(Json(new AjaxResult() { Success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new AjaxResult() { Success = false }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ExportSmokeDeviceList(string exportType) { QF_SmokeDetector filter = JsonConvert.DeserializeObject <QF_SmokeDetector>(this.Request["data"]); if (filter.CompanySysNo <= 0) { if (CurrUser.CompanySysNo > 0) { filter.CompanySysNo = CurrUser.CompanySysNo; } } // 1=导出当页,2=导出全部,默认导出当前页 if (exportType == "2") { filter.PageIndex = 0; filter.PageSize = 10000; } QueryResult <QR_SmokeDetector> result = SmokeDetectorServices.QuerySmokeDetectorList(filter); ExcelFileExporter <QR_SmokeDetector> exporter = new ExcelFileExporter <QR_SmokeDetector>(); List <ColumnSetting <QR_SmokeDetector> > columnSettings = new List <ColumnSetting <QR_SmokeDetector> >(); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "设备编号", PropertyName = "Code" }); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "设备状态", PropertyName = "UIStatusStr" }); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "位置", PropertyName = "PositionAddress" }); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "ONENET平台编号", PropertyName = "DeviceID" }); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "安装人员", PropertyName = "InstallerName" }); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "绑定客户", PropertyName = "ClientName" }); columnSettings.Add(new ColumnSetting <QR_SmokeDetector>() { ColumnName = "安装时间", PropertyName = "InDateStr" }); string fileName = exporter.Export(result.data, columnSettings, "烟感设备列表"); fileName = Url.Content(ExcelFileExporterHelper.GetExportFileUrl(fileName)); return(Content(fileName)); }
//public ActionResult InstallSmokedetectorList() //{ // return View(); //} public JsonResult QueryInstallList() { QF_SmokeDetector filter = JsonConvert.DeserializeObject <QF_SmokeDetector>(this.Request["data"]); filter.InstallerSysNo = curentUser.UserSysNo;// curentUser.UserSysNo; filter.PageSize = 7; filter.SortFields = "InstalledTime desc"; var result = SmokeDetectorServices.QuerySmokeDetectorList(filter); return(Json(new AjaxResult { Success = true, Data = result })); }
public ActionResult DeleteDetector(string code, bool isdelete) { SmokeDetector detector = SmokeDetectorServices.LoadSmokeDetail(code); if (detector == null) { throw new BusinessException(string.Format("编号为【{0}】的设备不存在", code)); } if (isdelete) { DeleteDeviceRequest send = new DeleteDeviceRequest() { DeviceID = detector.DeviceId }; DeleteDviceResponse sendRes = ONENETService.DeleteDevice(send); SmokeDetectorServices.DeleteSmokeDetector(detector, CurrUser); SmokeDetectorServices.DeleteClientSmokeDetectorBycode(code); return(Json(new AjaxResult() { Success = true }, JsonRequestBehavior.AllowGet)); } else { DeleteDeviceRequest send = new DeleteDeviceRequest() { DeviceID = detector.DeviceId }; DeleteDviceResponse sendRes = ONENETService.DeleteDevice(send); if (sendRes.IsSuccess) { //更新本地设备状态 SmokeDetectorServices.DeleteSmokeDetector(detector, CurrUser); SmokeDetectorServices.DeleteClientSmokeDetectorBycode(code); return(Json(new AjaxResult() { Success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new AjaxResult() { Success = false, Message = "删除失败,ONENET平台返回消息:" + sendRes.msg }, JsonRequestBehavior.AllowGet)); } } }
public ActionResult RelieveDetector(List <string> codes) { if (codes == null || codes.Count == 0) { return(Json(new AjaxResult() { Success = false, Message = "请选择设备!" })); } ; SmokeDetectorServices.DeleteClientSmokeDetector(codes, curentUser.UserSysNo); return(Json(new AjaxResult() { Success = true })); }
public ActionResult DeviceDetails(string code) { DateTime now = DateTime.Now; QF_SmokeDetectorStatusLog filter = new QF_SmokeDetectorStatusLog() { DeviceCode = code, PageIndex = 0, PageSize = 9999 }; QueryResult <SmokeDetectorStatusLog> list = SmokeDetectorServices.QueryDeviceNoticeList(filter); SmokeDetector info = SmokeDetectorServices.LoadSmokeDetail(code); info.MessageList = list.data; ViewBag.UserType = curentUser.UserType; return(View(info)); }
public JsonResult DeleteDetector(string code) { //if (curentUser.UserType != UserType.Installer) //{ // throw new BusinessException("您不是安装人员,不能删除当前设备"); //} SmokeDetector detector = SmokeDetectorServices.LoadSmokeDetail(code); if (detector == null) { throw new BusinessException(string.Format("编号为【{0}】的设备不存在", code)); } if (curentUser.UserType == UserType.Installer) { if (detector.InstallerSysNo != curentUser.ManagerSysNo) { throw new BusinessException("您没有安装过当前设备,无权删除"); } } else { if (detector.InstallerSysNo != -curentUser.UserSysNo) { throw new BusinessException("您没有安装过当前设备,无权删除"); } } DeleteDeviceRequest send = new DeleteDeviceRequest() { DeviceID = detector.DeviceId }; DeleteDviceResponse sendRes = ONENETService.DeleteDevice(send); CurrentUser current = new CurrentUser { UserSysNo = curentUser.UserSysNo, UserDisplayName = curentUser.UserDisplayName }; SmokeDetectorServices.DeleteSmokeDetector(detector, current); SmokeDetectorServices.DeleteClientSmokeDetectorBycode(code); return(Json(new AjaxResult() { Success = true }, JsonRequestBehavior.AllowGet)); }
public ActionResult DeviceList(UISmokeDetectorStatus?uiStatus) { ViewBag.status = uiStatus; DeviceListModel model = new DeviceListModel(); if (curentUser.UserType == UserType.Installer) { QF_SmokeDetector filter = new QF_SmokeDetector(); filter.InstallerSysNo = curentUser.ManagerSysNo.Value; filter.Status = uiStatus; filter.PageIndex = 0; filter.PageSize = 10; filter.SortFields = "InstalledTime desc"; var allsmks = SmokeDetectorServices.LoadSmokeDetectorsByInstaller(curentUser.ManagerSysNo.Value).Where(e => e.Status != SmokeDetectorStatus.Delete).ToList(); model.CountInfo = new SmokeDetectorCount { ALLSmokeCount = allsmks.Count, OfflineCount = (allsmks.Where(e => e.UIStatus == UISmokeDetectorStatus.OffLine) ?? new List <SmokeDetector>()).Count(), OnlineCount = (allsmks.Where(e => e.UIStatus == UISmokeDetectorStatus.Online) ?? new List <SmokeDetector>()).Count(), LowPowerCount = (allsmks.Where(e => e.UIStatus == UISmokeDetectorStatus.LowPowerWarning) ?? new List <SmokeDetector>()).Count(), WarningCount = (allsmks.Where(e => e.UIStatus == UISmokeDetectorStatus.FireWarning) ?? new List <SmokeDetector>()).Count(), }; //model.CountInfo.OnlineCount = model.CountInfo.ALLSmokeCount - model.CountInfo.OfflineCount; var result = SmokeDetectorServices.QuerySmokeDetectorList(filter); model.DeviceList = new QueryResult <QR_SmokeDetector>(); model.DeviceList = result; } else { QF_UserDetector filter = new QF_UserDetector(); filter.PageIndex = 0; filter.PageSize = 10; filter.Status = uiStatus; filter.ClientSysNo = curentUser.UserSysNo; model.CountInfo = SmokeDetectorServices.LoadUserSmokeDetectorCount(curentUser.UserSysNo); QueryResult <QR_SmokeDetector> list = SmokeDetectorServices.LoadUserSmokeDeletetorList(filter); model.DeviceList = new QueryResult <QR_SmokeDetector>(); model.DeviceList = list; } ViewBag.UserType = curentUser.UserType; return(View(model)); }
public ActionResult ScanDevicesQR(string serID) { if (string.IsNullOrEmpty(serID)) { throw new BusinessException("读取设备id失败,请重新扫描"); } var ClientSmokeDetectorList = ClientSmokeDetectorProcessor.LoadAllBindClientUser(serID); var temp = ClientSmokeDetectorList.Find(e => string.Equals(e.ClientSysNo, curentUser.UserSysNo)); if (temp != null) { throw new BusinessException("你已绑定过当前设备"); } if (ClientSmokeDetectorList.Count > 0) { throw new BusinessException($"设备已经绑定到“{ClientSmokeDetectorList.FirstOrDefault().Name}”,不能再次绑定"); } var smoke = SmokeDetectorServices.LoadSmokeDetail(serID); if (smoke == null || smoke.Status == SmokeDetectorStatus.Delete) { return(Json(new AjaxResult { Success = true, Code = 1, Message = "设备还未安装入网,请添加设备,如果您是公司用户,请绑定管理员!" })); //throw new BusinessException("设备还未安装入网"); } string addr = smoke.AddressName + smoke.Position; if (smoke.InstallerSysNo.HasValue && smoke.InstallerSysNo < 0) { addr = smoke.Position; } return(Json(new AjaxResult { Success = true, Data = addr })); }
public ActionResult _Modify(string code) { SmokeDetector detector = SmokeDetectorServices.LoadSmokeDetail(code) ?? new SmokeDetector(); return(PartialView("_Modify", detector)); }
public ActionResult CancelWarning(string code) { SmokeDetector detector = SmokeDetectorServices.LoadSmokeDetail(code); if (detector == null) { throw new BusinessException(string.Format("编号为【{0}】的设备不存在", code)); } if (detector.Status != SmokeDetectorStatus.Warning && detector.Status != SmokeDetectorStatus.TestWarning) { throw new BusinessException(string.Format("编号为【{0}】的设备不是报警状态", code)); } if (detector.Status == SmokeDetectorStatus.TestWarning) { //更新本地设备状态 SmokeDetectorStatusLog lastLog = SmokeDetectorServices.LoadSmokeDetectorStatusLogByDeviceCode(detector.Code); SmokeDetectorStatusLog statusLog = new SmokeDetectorStatusLog() { PreStatus = detector.Status.Value, Status = SmokeDetectorStatus.CancelWarning, BeginTime = DateTimeHelper.GetTimeZoneNow(), ReceivedJsonData = "", SmokeDetectorCode = detector.Code }; detector.Status = SmokeDetectorStatus.CancelWarning; if (lastLog != null && statusLog.BeginTime.HasValue && lastLog.BeginTime.HasValue) { statusLog.DurationSeconds = (int)(statusLog.BeginTime.Value - lastLog.BeginTime.Value).TotalSeconds; } //更新本地设备状态 SmokeDetectorServices.UpdateSmokeDetector(detector); //更新首页数据 (new MapDataService(detector.CompanySysNo)).DataChangeAsync(); //写设备状态更改日志 SmokeDetectorServices.InsertSmokeDetectorStatusLog(statusLog); return(Json(new AjaxResult() { Success = true }, JsonRequestBehavior.AllowGet)); } else { SendCmdRequest send = new SendCmdRequest() { Imei = detector.Code }; SendCmdResponse sendRes = ONENETService.SendCmd(send); if (sendRes.IsSuccess) { //更新本地设备状态 SmokeDetectorStatusLog lastLog = SmokeDetectorServices.LoadSmokeDetectorStatusLogByDeviceCode(detector.Code); SmokeDetectorStatusLog statusLog = new SmokeDetectorStatusLog() { PreStatus = detector.Status.Value, Status = SmokeDetectorStatus.CancelWarning, BeginTime = DateTimeHelper.GetTimeZoneNow(), ReceivedJsonData = "", SmokeDetectorCode = detector.Code }; detector.Status = SmokeDetectorStatus.CancelWarning; if (lastLog != null && statusLog.BeginTime.HasValue && lastLog.BeginTime.HasValue) { statusLog.DurationSeconds = (int)(statusLog.BeginTime.Value - lastLog.BeginTime.Value).TotalSeconds; } //更新本地设备状态 SmokeDetectorServices.UpdateSmokeDetector(detector); //更新首页数据 (new MapDataService(detector.CompanySysNo)).DataChangeAsync(); //写设备状态更改日志 SmokeDetectorServices.InsertSmokeDetectorStatusLog(statusLog); return(Json(new AjaxResult() { Success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new AjaxResult() { Success = false, Message = "取消失败!" }, JsonRequestBehavior.AllowGet)); } } }
public ActionResult AddDevices() { Client user = ClientService.LoadClient(curentUser.UserSysNo); UIAddDetectorModel model = new UIAddDetectorModel(); model.CompanyList = new List <Company>(); model.List = new List <AddDetectorModel>(); if (user == null) { UserMgr.Logout(); throw new BusinessException("登录超时,请退出公众号重新进入。"); } if (user != null && user.ManagerSysNo > 0 && curentUser.UserType == UserType.Installer) { //model.CompanyList = AddressService.LoadInstallerCompany(user.ManagerSysNo.GetValueOrDefault()); SystemUserService service = new SystemUserService(); SystemUser systemuser = service.LoadSystemUser(curentUser.ManagerSysNo.GetValueOrDefault(), ConstValue.ApplicationID); if (systemuser != null && systemuser.MasterSysNo > 0) { model.CompanyList.Add(new Company() { SysNo = systemuser.MasterSysNo.GetValueOrDefault() }); } SmokeDetector info = SmokeDetectorServices.LoadSmokeDetectorByInstaller(curentUser.ManagerSysNo.GetValueOrDefault()); if (info != null && !string.IsNullOrWhiteSpace(info.AddressCode)) { List <Address> list = AddressService.LoadAddressByAddressCode(info.AddressCode, info.CompanySysNo); string code = info.AddressCode; List <AddDetectorModel> modelList = new List <AddDetectorModel>(); string scode = code; for (var i = code.Length - 2; i >= 2; i = i - 2) { AddDetectorModel item = new AddDetectorModel(); string ncode = code.Substring(0, i); List <Address> list1 = list.Where(x => x.Code.StartsWith(ncode) && x.Code.Length == i + 2).ToList(); item.ItemList = list1; item.SelectCode = scode; scode = ncode; modelList.Add(item); if (ncode.Length == 2) { List <Address> list2 = list.Where(x => x.Code == ncode).ToList(); model.FirstAddress = list2[0]; } } if (code.Length == 2) { model.FirstAddress = list[0]; } modelList.Reverse(); model.List = modelList; model.SelectCompany = info.CompanySysNo; } } else { string sysNo = ConfigurationManager.AppSettings["DummyCompanySysNo"]; int conpanySysNo = 1; int.TryParse(sysNo, out conpanySysNo); model.CompanyList.Add(new Company() { SysNo = conpanySysNo }); } return(View(model)); }
public ActionResult AddSmokeDetector(SmokeDetector entity) { long deviceCode = 0; long.TryParse(entity.Code, out deviceCode); if (deviceCode <= 0) { return(Json(new AjaxResult() { Success = false, Message = "请扫描正确的设备二维码。" })); } //if (curentUser.UserType != UserType.Installer) //{ // return Json(new AjaxResult() { Success = false, Message = "您不是管理员,请绑定管理员账号。" }); //} //if ((entity.AddressSysNo == null || entity.AddressSysNo <= 0) && (entity.Memo == "" || entity.Memo == null)) //{ // return Json(new AjaxResult() { Success = false, Message = "请选择详细地址或者填写备注。" }); //} if ((!entity.AddressSysNo.HasValue || entity.AddressSysNo <= 0) && string.IsNullOrWhiteSpace(entity.Position)) { return(Json(new AjaxResult() { Success = false, Message = "请选择地址或填写设备具体位置。" })); } Address address = AddressDA.LoadAddress(entity.AddressSysNo.GetValueOrDefault()); if (address == null) { return(Json(new AjaxResult() { Success = false, Message = "位置信息错误,请重新选择后再试。" })); } entity.AddressCode = address.Code; entity.AddressName = address.PathName; if ((address.ParentSysNo == 0 || address.ParentSysNo == null) && (address.PathName == "" || address.PathName == null)) { entity.AddressName = address.Name; } entity.Status = SmokeDetectorStatus.Offline; if (curentUser.UserType == UserType.Installer) { entity.InstallerSysNo = curentUser.ManagerSysNo; } else { entity.InstallerSysNo = -curentUser.UserSysNo; } entity.InstallerName = HttpUtility.UrlDecode(curentUser.UserID); entity.InUserSysNo = curentUser.UserSysNo; entity.InUserName = HttpUtility.UrlDecode(curentUser.UserID); SmokeDetector smoke = SmokeDetectorServices.IsUniquenessCode(entity.Code); SystemUserService service = new SystemUserService(); SystemUser systemuser = service.LoadSystemUser(curentUser.ManagerSysNo.GetValueOrDefault(), ConstValue.ApplicationID); if (systemuser == null) { UserMgr.Logout(); return(Json(new AjaxResult() { Success = false, Message = "登录超时,请退出公众号重新进入。" })); } //if (smoke != null && smoke.CompanySysNo != systemuser.MasterSysNo) //{ // return Json(new AjaxResult() { Success = false, Message = "设备已安装,不能再安装。" }); //} //else if (smoke != null) { if (smoke.Status == SmokeDetectorStatus.Delete) { entity.Status = SmokeDetectorStatus.Offline; } else { entity.Status = smoke.Status; if (smoke.InstallerSysNo <= 0) { if (smoke.InstallerSysNo != -curentUser.UserSysNo) { return(Json(new AjaxResult() { Success = false, Message = "设备已安装,不能再安装。" })); } } else { if (!(smoke.CompanySysNo == systemuser.MasterSysNo && curentUser.UserType == UserType.Installer)) { return(Json(new AjaxResult() { Success = false, Message = "设备已安装,不能再安装。" })); } } }; CreateDeviceRequest reques = new CreateDeviceRequest() { IMei = entity.Code, IMsi = entity.Code, Desc = "测试设备", IsOnLine = 1, Observe = 1, Protocol = "LWM2M", Title = entity.Code, Tags = entity.Code + "," + entity.Code }; CreateDeviceResponse result = ONENETService.CreateDevice(reques); if (result.IsSuccess) { entity.DeviceId = result.DeviceId; } else { entity.DeviceId = smoke.DeviceId; } entity.SysNo = smoke.SysNo; SmokeDetectorServices.UpdateSmokeDetector(entity); if (curentUser.UserType != UserType.Installer) { Logger.WriteLog("Code:" + entity.Code); BindingDevicesApi(entity.Code); } return(Json(new AjaxResult() { Success = true, Message = "修改成功!" })); //} //else //{ // return Json(new AjaxResult() { Success = false, Message = "系统异常!" }); //} } else { CreateDeviceRequest reques = new CreateDeviceRequest() { IMei = entity.Code, IMsi = entity.Code, Desc = "测试设备", IsOnLine = 1, Observe = 1, Protocol = "LWM2M", Title = entity.Code, Tags = entity.Code + "," + entity.Code }; CreateDeviceResponse result = ONENETService.CreateDevice(reques); if (result.IsSuccess) { entity.DeviceId = result.DeviceId; } int i = SmokeDetectorServices.InsertSmokeDetector(entity); SmokeDetectorStatusLog statusLog = new SmokeDetectorStatusLog() { Status = entity.Status, BeginTime = DateTimeHelper.GetTimeZoneNow(), ReceivedJsonData = "", SmokeDetectorCode = entity.Code }; if (curentUser.UserType != UserType.Installer) { Logger.WriteLog("Code:" + entity.Code); BindingDevicesApi(entity.Code); } return(Json(new AjaxResult() { Success = true, Message = "添加成功!" })); } }
public ActionResult QuerySmoke() { //CreateDeviceRequest request = new CreateDeviceRequest() //{ // Desc = "创建测试设备描述", // IMei = "1354789845", // IMsi = "1354789845", // IsOnLine = 1, // LocationEle = 0, // LocationLat = 0, // LocationLon = 0, // Observe = 1, // Protocol = "LWM2M", // Tags = "1354789845,147890123331", // Title = "创建测试设备名称" //}; //CreateDeviceResponse create = ONENETService.CreateDevice(request); //if (create != null && !string.IsNullOrEmpty(create.DeviceId) && create.IsSuccess) //{ // UpdateDeviceRequest upRequest = new UpdateDeviceRequest() // { // Desc = "更新测试设备描述", // IMei = "1364789845", // IMsi = "1364789845", // IsOnLine = 1, // LocationEle = 1, // LocationLat = 2, // LocationLon = 3, // Observe = 1, // Protocol = "LWM2M", // Tags = "1364789845,1364789845", // Title = "更新测试设备名称", // DeviceID = create.DeviceId // }; // UpdateDeviceResponse upResponse = ONENETService.UpdateDevice(upRequest); // if (upResponse != null && !string.IsNullOrEmpty(upResponse.DeviceId) && upResponse.IsSuccess) // { // SendCmdRequest send = new SendCmdRequest() // { // StrCmd = "008013870005013D58FF", // DeviceID = create.DeviceId // }; // SendCmdResponse sendRes = ONENETService.SendCmd(send); // if (sendRes != null && !string.IsNullOrEmpty(sendRes.DeviceId) && sendRes.IsSuccess) // { // DeleteDeviceRequest delete = new DeleteDeviceRequest() // { // DeviceID = sendRes.DeviceId // }; // DeleteDviceResponse deleteRes = ONENETService.DeleteDevice(delete); // } // } //} QF_SmokeDetector filter = BuildQueryFilterEntity <QF_SmokeDetector>(); if (CurrUser.CompanySysNo > 0) { filter.CompanySysNo = CurrUser.CompanySysNo; } var result = SmokeDetectorServices.QuerySmokeDetectorList(filter); return(AjaxGridJson(result)); }
public ActionResult BindingDevicesApi(string serID) { if (string.IsNullOrEmpty(serID)) { throw new BusinessException("读取设备id失败,请重新扫描"); } var user = ClientService.LoadClient(curentUser.UserSysNo); if (user == null) { UserMgr.Logout(); throw new BusinessException("登录信息已过期,请退出重新进入公众号"); } var ClientSmokeDetectorList = ClientSmokeDetectorProcessor.LoadAllBindClientUser(serID); var temp = ClientSmokeDetectorList.Find(e => string.Equals(e.ClientSysNo, curentUser.UserSysNo)); if (temp != null) { throw new BusinessException("你已绑定过当前设备"); } if (ClientSmokeDetectorList.Count > 0) { throw new BusinessException($"设备已经绑定到“{ClientSmokeDetectorList.FirstOrDefault().Name}”,不能再次绑定"); } var smoke = SmokeDetectorServices.LoadSmokeDetail(serID); if (smoke == null || string.IsNullOrEmpty(smoke.AddressCode) || smoke.Status == SmokeDetectorStatus.Delete) { return(Json(new AjaxResult { Success = true, Code = 1, Message = "设备还未安装入网,请添加设备,如果您是公司用户,请绑定管理员!" })); // throw new BusinessException("设备还未安装入网"); } if (user != null) { ClientSmokeDetector clientSmokeDetector = new ClientSmokeDetector { ClientSysNo = user.SysNo, SmokeDetectorCode = serID, IsDefaultCellPhone = true, CellPhone = user.CellPhone, CellPhone2 = user.CellPhone2, CellPhone3 = user.CellPhone3 }; ClientSmokeDetectorProcessor.InsertClientSmokeDetector(clientSmokeDetector); List <MessageCenter.Entity.ReceiverInfo> receivers = new List <MessageCenter.Entity.ReceiverInfo> { new MessageCenter.Entity.ReceiverInfo { ReceiverNo = user.AppCustomerID, MsgType = MessageCenter.Entity.MsgType.WeiXin } }; var cellphone = clientSmokeDetector.CellPhone ?? clientSmokeDetector.CellPhone2 ?? clientSmokeDetector.CellPhone3 ?? null; if (!string.IsNullOrEmpty(cellphone)) { receivers.Add(new MessageCenter.Entity.ReceiverInfo { ReceiverNo = cellphone, MsgType = MessageCenter.Entity.MsgType.SMS }); } Task.Factory.StartNew(() => { WechatUserBindDevicesTemplate wechatUserBind = new WechatUserBindDevicesTemplate { Title = $"尊敬的{HttpUtility.UrlDecode(curentUser.UserID)}用户", SerID = serID, BindResult = "绑定成功", BindTimeStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{smoke.AddressName}", // Url = $"http://tfs-code2.chinacloudapp.cn//Smoke/Notice?code= {serID}", MasterID = serID, DateStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = smoke.AddressName, }; if (smoke.InstallerSysNo.HasValue && smoke.InstallerSysNo < 0) { wechatUserBind.Address = smoke.Position; wechatUserBind.Memo = smoke.Position; } SendMessageService.SendMessageOnce(wechatUserBind, receivers); }); } return(Json(new AjaxResult { Success = true })); }
public ActionResult SmokeList(int sysno) { var list = SmokeDetectorServices.LoadSmokeDetectorsByClientSysNo(sysno); return(PartialView("~/views/client/_smokeList.cshtml", list)); }
public HttpResponseMessage SyncDeviceStatus() { Stream reqstream = HttpContext.Current.Request.InputStream; reqstream.Seek(0, System.IO.SeekOrigin.Begin); string body = new StreamReader(reqstream).ReadToEnd(); Logger.WriteLog("API接收数据:" + body); List <SyncDeviceStatusRequest> list = JsonConvert.DeserializeObject <List <SyncDeviceStatusRequest> >(body); SyncDeviceStatusResponse response = new SyncDeviceStatusResponse(); if (list == null || list.Count <= 0) { response.IsSuccess = false; response.Message = "参数错误。"; } else { SyncDeviceStatusRequest request = null; foreach (var item in list) { if (SMOKE_STATUS_CODE.Contains(item.Status)) { request = item; break; } } if (request == null) { response.IsSuccess = false; response.Message = "参数错误。"; } else { SmokeDetector detecor = SmokeDetectorServices.LoadSmokeDetailByDeviceID(request.DeviceID); if (detecor == null) { response.Message = "设备不存在。"; } else { SmokeDetectorStatus status = MatchDeviceStatus(request.Status); if (detecor.Status != status)//两次设备状态不一致 { SmokeDetectorStatusLog lastLog = SmokeDetectorServices.LoadSmokeDetectorStatusLogByDeviceCode(detecor.Code); #region 更新设备状态,写状态变更日志 DateTime dt; DateTime.TryParse(request.CDatetime, out dt); SmokeDetectorStatusLog statusLog = new SmokeDetectorStatusLog() { PreStatus = detecor.Status.Value, Status = status, BeginTime = dt == DateTime.MinValue ? DateTimeHelper.GetTimeZoneNow() : dt, ReceivedJsonData = body, SmokeDetectorCode = detecor.Code }; detecor.Status = status; if (lastLog != null && statusLog.BeginTime.HasValue && lastLog.BeginTime.HasValue) { statusLog.DurationSeconds = (int)(statusLog.BeginTime.Value - lastLog.BeginTime.Value).TotalSeconds; } using (var trans = TransactionManager.Create()) { SmokeDetectorServices.InsertSmokeDetectorStatusLog(statusLog); SmokeDetectorServices.UpdateSmokeDetector(detecor); trans.Complete(); } #endregion #region 更新首页地图数据缓存 (new MapDataService(detecor.CompanySysNo)).DataChangeAsync(); #endregion #region 发送消息 if (detecor.Status == SmokeDetectorStatus.Warning || detecor.Status == SmokeDetectorStatus.TestWarning) { Task.Factory.StartNew(() =>//火灾报警 { DevicesWarningTemplateTemplate devicesWarningTemplate = new DevicesWarningTemplateTemplate { SerID = detecor.Code, DeviceName = "烟感设备报警", Type = "火灾报警", WarningTime = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{detecor.AddressName}", MasterID = detecor.Code, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = detecor.AddressName }; if (detecor.InstallerSysNo.HasValue && detecor.InstallerSysNo < 0) { devicesWarningTemplate.Address = detecor.Position; devicesWarningTemplate.Memo = detecor.Position; } SendMessageService.SendMessage(devicesWarningTemplate, detecor.Code); }); } else if (detecor.Status == SmokeDetectorStatus.Lost || detecor.Status == SmokeDetectorStatus.Offline || detecor.Status == SmokeDetectorStatus.OutNet) { Task.Factory.StartNew(() =>//离线报警 { DevicesOfflineTemplateTemplate devicesOfflintTemplate = new DevicesOfflineTemplateTemplate { SerID = detecor.Code, DeviceName = "烟感设备离线", DeviceAddress = $"此设备地址为{detecor.AddressName}", OffLineTimeStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = "请尽快处理!", MasterID = detecor.Code, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = detecor.AddressName }; if (detecor.InstallerSysNo.HasValue && detecor.InstallerSysNo < 0) { devicesOfflintTemplate.Address = detecor.Position; devicesOfflintTemplate.Memo = detecor.Position; } SendMessageService.SendMessage(devicesOfflintTemplate, detecor.Code); }); } else if (detecor.Status == SmokeDetectorStatus.LowPower) { Task.Factory.StartNew(() =>//低电压报警 { DevicesWarningTemplateTemplate devicesWarningTemplate = new DevicesWarningTemplateTemplate { SerID = detecor.Code, DeviceName = "烟感设备电量过低", Type = "低电量报警", WarningTime = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"), Memo = $"此设备地址为{detecor.AddressName}", MasterID = detecor.Code, DateStr = DateTimeHelper.GetTimeZoneNow().ToString("yyyy-MM-dd HH:mm:ss"),//短信通知时间 Address = detecor.AddressName }; if (detecor.InstallerSysNo.HasValue && detecor.InstallerSysNo < 0) { devicesWarningTemplate.Address = detecor.Position; devicesWarningTemplate.Memo = detecor.Position; } SendMessageService.SendMessage(devicesWarningTemplate, detecor.Code); }); } #endregion } response.IsSuccess = true; } } } string result = JsonConvert.SerializeObject(response); return(new HttpResponseMessage() { Content = new StringContent(result, Encoding.UTF8, "application/json") }); }