/// <summary> /// 宇视更新未注册设备列表 /// </summary> /// <param name="xml"></param> public void UpdateUnRegisterDevice(string xml, string servIp, int regionId, out int total) { try { XmlDocument videoXml = new XmlDocument(); videoXml.LoadXml(xml); XmlNode resNode = videoXml.SelectSingleNode("ResList"); //资源总数 total = Convert.ToInt32(((XmlElement)resNode).GetAttribute("count")); XmlNodeList itemList = resNode.ChildNodes; foreach (XmlNode item in itemList) { ServTempDeviceModel model = new ServTempDeviceModel(); XmlElement resCode = (XmlElement)item.SelectSingleNode("ResCode"); model.device_code = resCode.InnerText; XmlElement resName = (XmlElement)item.SelectSingleNode("ResName"); model.device_name = resName.InnerText; XmlElement ResType = (XmlElement)item.SelectSingleNode("ResType"); string resType = ResType.InnerText; if (resType == "1001") { XmlElement resSubType = (XmlElement)item.SelectSingleNode("ResSubType"); model.device_type = Convert.ToInt32(resSubType.InnerText); } else if (resType == "14") { model.device_type = 5; } model.subsystem_id = (int)SubSystem.视频子系统; model.create_time = DateTime.Now; ConvertChinese convertchinese = new ConvertChinese(); model.search_code = convertchinese.GetHeadOfChs(model.device_name); model.ext1 = servIp; //判断该条数据是否在未注册设备表 int num = servTempDeviceDAL.GetTempDeviceByCode(model.device_code); int deviceNum = 0; //判断该条数据是否在已注册设备表中已存在 ServDeviceInfoModel deviceModel = servDeviceInfoDAL.GetEntity(model.device_code); if (deviceModel != null) { deviceNum = 1; } //在设备临时表和已注册的设备列表中都不存在则往临时表中写入数据 if (model.device_type == 5)//监视器 { if (deviceNum == 0 && num == 0) { //直接添加到已注册设备列表中 ServDeviceInfoModel deviceInfo = new ServDeviceInfoModel(); deviceInfo.device_name = model.device_name; deviceInfo.device_code = model.device_code; deviceInfo.device_type = 5; deviceInfo.device_status = Convert.ToInt32(((XmlElement)item.SelectSingleNode("ResStatus")).InnerText); deviceInfo.subsystem_id = model.subsystem_id; deviceInfo.is_parts = -2; deviceInfo.register_time = DateTime.Now; deviceInfo.create_time = DateTime.Now; deviceInfo.search_code = convertchinese.GetHeadOfChs(deviceInfo.device_name); deviceInfo.region_id = regionId; deviceInfo.local_longitude = ""; deviceInfo.local_latitude = ""; deviceInfo.cover_range = 0; deviceInfo.update_status_time = DateTime.Now; deviceInfo.camera_towards = 0; deviceInfo.visual_range = 0; deviceInfo.asset_code = ""; deviceInfo.org_id = 0; deviceInfo.guarantee_time = DateTime.Now; deviceInfo.asset_status = 1; deviceInfo.manager_id = 0; deviceInfo.is_inbuilding = 0; deviceInfo.room_id = 0; deviceInfo.area_id = 0; int deId = servDeviceInfoDAL.AddEntity(deviceInfo); } } else { if (deviceNum == 0 && num == 0) { servTempDeviceDAL.AddEntity(model); } } } } catch (Exception ex) { throw ex; } }
public bool UpdateEntity(int id, ServTempDeviceModel newentity) { throw new NotImplementedException(); }
/// <summary> /// 增加一条数据 /// </summary> /// <param name="entity"></param> public int AddEntity(ServTempDeviceModel entity) { int id = (int)mapContext.Insert("InsertTempDevice", entity); return(id); }
/// <summary> /// 更新一条数据 /// </summary> /// <param name="model"></param> public int UpdateTempDeviceById(ServTempDeviceModel model) { int result = mapContext.Update("UpdateTempDevice", model); return(result); }
/// <summary> /// 处理丛文设备数据 /// </summary> /// <returns></returns> private bool HandleCowinDeviceData(object message, string mark) { try { List <DeviceModel> deviceList = JsonHelper.StringToObject <List <DeviceModel> >(message.ToString()); ServTempDeviceDAL tempDeviceDal = new ServTempDeviceDAL(); ServDeviceInfoDAL deviceInfoDal = new ServDeviceInfoDAL(); ConvertChinese convert = new ConvertChinese(); List <BaseDeviceTypeModel> typeList = null; try { typeList = baseMapConfigBLL.GetAllBaseDeviceTypeModel(); } catch (Exception ex) { Log4NetHelp.Error("获取基本设备类型失败!" + ex.Message); } for (int i = 0; i < deviceList.Count; i++) { //int tempNum = tempDeviceDal.GetTempDeviceByCode(deviceList[i].deviceCode); ServTempDeviceModel tempDevice = tempDeviceDal.GetTempDeviceByDeviceCode(deviceList[i].deviceCode); ServDeviceInfoModel deviceInfo = deviceInfoDal.GetDeviceByDeviceCode(deviceList[i].deviceCode); if (tempDevice == null && deviceInfo == null) { ServTempDeviceModel model = new ServTempDeviceModel(); var type = typeList.Where(n => n.type_name == deviceList[i].typeName).FirstOrDefault(); model.device_type = type == null ? 0 : type.id; model.create_time = DateTime.Now; model.device_code = deviceList[i].deviceCode; model.device_name = deviceList[i].deviceName; model.search_code = convert.GetHeadOfChs(deviceList[i].deviceName); model.subsystem_id = deviceList[i].subsystemId; model.ext1 = deviceList[i].serverIp; try { int res = tempDeviceDal.AddEntity(model); if (res == 0) { Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 插入临时表失败!"); } else { Log4NetHelp.Info("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 插入临时表成功!"); } } catch (Exception ex) { Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 插入临时表失败!" + ex.Message); } } else if (tempDevice != null) { Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 在临时设备表已存在!"); } else if (deviceInfo != null) { Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 在设备表已存在!"); } } return(true); } catch (Exception ex) { Log4NetHelp.Error("标识为:" + mark + "驱动同步丛文设备数据失败!" + ex.Message); return(false); } }