Beispiel #1
0
        /// <summary>
        /// 对设施采集设备编码进行更新
        /// </summary>
        /// <param name="fas">设施采集设备</param>
        /// <param name="strCode1">编码1</param>
        /// <param name="strCode2">编码2</param>
        /// <param name="strCode3">编码3</param>
        private static void AquireCollectCode(FacilitySensorDeviceUnit fas, string strCode1, string strCode2,
                                              string strCode3)
        {
            var list = FacilitySensorDeviceUnit.FindAllByFacilityIdAndCollectDeviceId(fas.FacilityID,
                                                                                      fas.SensorDeviceUnitID); //根据设施Id和采集设备Id查找设施采集设备

            if (list.Count > 0)
            {
                if (!list[0].Code1.EqualIgnoreCase())
                {
                    fas.Code1 = list[0].Code1; //编码1不动
                }
                else
                {
                    fas.Code1 = "";
                }
                //if (!list[0].Code2.EqualIgnoreCase())
                //{
                //    fas.Code2 = list[0].Code2;//编码2不动
                //}
                //else
                //{
                //    fas.Code2 = "";
                //}
                //if (!list[0].Code3.EqualIgnoreCase())
                //{
                //    fas.Code3 = list[0].Code3;//编码3不动
                //}
                //else
                //{
                //    fas.Code3 = "";
                //}
            }
            else
            {
                if (!strCode1.IsNullOrWhiteSpace())
                {
                    fas.Code1 = FacilitySensorDeviceUnit.GetCode1(fas.FacilityID);
                }
                if (!strCode2.IsNullOrWhiteSpace())
                {
                    fas.Code2 = FacilitySensorDeviceUnit.GetCode2(fas.FacilityID);
                }
                if (!strCode3.IsNullOrWhiteSpace())
                {
                    fas.Code3 = FacilitySensorDeviceUnit.GetCode3(fas.FacilityID);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            // if (this.lstFarm.SelectedItems.Count == 0) return;

            if (this.txtName.Text.Trim().Equals(""))
            {
                MessageBox.Show("名称不能为空,请输入");
                this.txtName.Focus();
                return;
            }

            //if (this.txtCode1.Text.Trim().Equals(""))
            //{
            //    MessageBox.Show("编码1不能为空,请输入");
            //    this.txtName.Focus();
            //    return;
            //}
            //if (this.txtCode2.Text.Trim().Equals(""))
            //{
            //    MessageBox.Show("编码2不能为空,请输入");
            //    this.txtName.Focus();
            //    return;
            //}
            //if (this.txtCode3.Text.Trim().Equals(""))
            //{
            //    MessageBox.Show("编码3不能为空,请输入");
            //    this.txtName.Focus();
            //    return;
            //}
            //if (this.txtCompanySerialNum.Text.Trim().Equals(""))
            //{
            //    MessageBox.Show("公司不能为空,请输入");
            //    this.txtName.Focus();
            //    return;
            //}
            //List<Facility> facilityList = (from item in this.lstFacility.Items.Cast<ListViewItem>() where item.Checked select item.Tag as Facility).ToList();//设施列表

            if (this.farmId != 0)
            {
                try
                {
                    #region 更新基地

                    var farm = Farm.FindByID(this.farmId);
                    if (farm == null)
                    {
                        farm       = new Farm();
                        farm.Code1 = this.txtCode1.Text;
                    }

                    farm.Code1            = this.txtCode1.Text.Trim();
                    farm.Code2            = this.txtCode2.Text.Trim();
                    farm.Code3            = this.txtCode3.Text.Trim();
                    farm.Name             = this.txtName.Text.Trim();
                    farm.CompanySerialnum = this.txtCompanySerialNum.Text.Trim();
                    farm.Address          = this.txtAddress.Text.Trim();
                    //PhotoUrl = this.pbPhotoUrl.Text,
                    farm.Lotitude      = this.txtLotitude.Text;
                    farm.Latitude      = this.txtLatitude.Text;
                    farm.Area          = Convert.ToInt32(this.txtArea.Text.Trim());
                    farm.ContactMan    = this.txtContactMan.Text.Trim();
                    farm.ContactPhone  = this.txtContactPhone.Text.Trim();
                    farm.ContactMobile = this.txtContactMobile.Text.Trim();
                    //Status = Convert.ToBoolean(this.cbStatus.SelectedValue),
                    farm.Status = this.rbtOnlineStatus.Checked;
                    //CreateTime = this.dtCreateTime.Value,
                    farm.UpdateTime = Convert.ToDateTime(DateTime.Now.ToString("G"));
                    farm.APIKey     = this.txtAPIKey.Text;
                    //Upload = Convert.ToBoolean(this.cbUpLoad.SelectedValue),
                    //Upload=this.rbtUpLoad.Checked,
                    //Version = Convert.ToInt32(this.txtVersion.Text),
                    ////Introduce = this.lstIntroduce.Text,
                    farm.Remark = this.txtPwd.Text;

                    farm.Save();
                    this.farmId = farm.ID;

                    #endregion 更新基地

                    //MessageBox.Show("更新成功");
                }
                catch (Exception ex)
                {
                    XTrace.WriteException(ex);
                    MessageBox.Show("更新失败");
                    return;
                }
            }
            else
            {
                try
                {
                    // 保存
                    var farm = new Farm();

                    farm.Code1            = this.txtCode1.Text.Trim();
                    farm.Code2            = this.txtCode2.Text.Trim();
                    farm.Code3            = this.txtCode3.Text.Trim();
                    farm.Name             = this.txtName.Text.Trim();
                    farm.CompanySerialnum = this.txtCompanySerialNum.Text.Trim();
                    farm.Address          = this.txtAddress.Text.Trim();
                    //PhotoUrl = this.pbPhotoUrl.Text,
                    farm.Lotitude      = this.txtLotitude.Text;
                    farm.Latitude      = this.txtLatitude.Text;
                    farm.Area          = Convert.ToInt32(this.txtArea.Text.Trim());
                    farm.ContactMan    = this.txtContactMan.Text.Trim();
                    farm.ContactPhone  = this.txtContactPhone.Text.Trim();
                    farm.ContactMobile = this.txtContactMobile.Text.Trim();
                    //Status = Convert.ToBoolean(this.cbStatus.SelectedValue),
                    farm.Status = this.rbtOnlineStatus.Checked;
                    //CreateTime = this.dtCreateTime.Value,
                    farm.UpdateTime = Convert.ToDateTime(DateTime.Now.ToString("G"));
                    farm.APIKey     = this.txtAPIKey.Text;
                    //Upload = Convert.ToBoolean(this.cbUpLoad.SelectedValue),
                    //Upload=this.rbtUpLoad.Checked,
                    //Version = Convert.ToInt32(this.txtVersion.Text),
                    ////Introduce = this.lstIntroduce.Text,
                    farm.Remark = this.txtPwd.Text;

                    farm.Save();
                    this.farmId = farm.ID;
                    //this.InitFacilityListView();
                    //MessageBox.Show("保存成功");
                }
                catch (Exception ex)
                {
                    XTrace.WriteException(ex);
                    MessageBox.Show("新增失败");
                    return;
                }
            }

            try
            {
                var facilityListChecked   = new List <Facility>();
                var facilityListUnchecked = new List <Facility>();
                foreach (ListViewItem item in this.lstFacility.Items)
                {
                    if (item.Checked == false)
                    {
                        var facility = item.Tag as Facility; //设施
                        facilityListUnchecked.Add(facility);
                    }
                    else
                    {
                        //facilityListChecked = (from i in this.lstFacility.Items.Cast<ListViewItem>() where i.Checked select i.Tag as Facility).ToList();//显示数据
                        foreach (ListViewItem lvi in lstFacility.Items)
                        {
                            if (lvi.Checked)
                            {
                                facilityListChecked.Add(lvi.Tag as Facility);
                            }
                        }
                    }
                }

                var farm = Farm.FindByID(farmId);

                //未选中的设施不能删除,只删除编码
                foreach (var item in facilityListUnchecked)
                {
                    if (item.FarmID == this.farmId)
                    {
                        item.Code1  = "";
                        item.FarmID = 0;
                        item.Update();
                        //删除映射关系
                        item.FacilitySensorDeviceUnits.Delete(true);
                        item.FacilityControlDeviceUnits.Delete(true);
                        item.FacilityCameras.Delete(true);
                    }
                }

                //更新基地设施
                foreach (var item in facilityListChecked)
                {
                    #region 更新设施

                    //Facility fac = new Facility();
                    //fac.ID = item.ID;
                    //fac.FarmID = this.farmId;
                    var fac = Facility.FindByID(item.ID);
                    fac.FarmID = farm.ID;
                    if (this.txtCode1.Text.IsNullOrWhiteSpace())
                    {
                        fac.Code1 = "";
                    }
                    else if (!this.txtCode1.Text.IsNullOrWhiteSpace() && !(fac.Code1 + "").StartsWith(farm.Code1))
                    {
                        fac.Code1 = fac.GetCode1();
                    }
                    fac.Update();

                    #endregion 更新设施

                    #region 设施下的采集设备的更新

                    IEnumerable <FacilitySensorDeviceUnit> facilitySensorDeviceUnits =
                        FacilitySensorDeviceUnit.FindAllByFacilityID(fac.ID).ToList().OrderBy(fas => fas.ID);
                    if (facilitySensorDeviceUnits.Count() > 0)
                    {
                        foreach (var fas in facilitySensorDeviceUnits)
                        {
                            if (fac.Code1.IsNullOrWhiteSpace())
                            {
                                fas.Code1 = "";
                            }
                            else if (!fac.Code1.IsNullOrWhiteSpace() && !(fas.Code1 + "").StartsWith(fac.Code1))
                            {
                                //XTrace.WriteLine("-->" + fas.Code1 + " -- " + fas.GetCode1());
                                fas.Code1 = fas.GetCode1();
                                //XTrace.WriteLine("<--" + fas.Code1);
                            }
                            fas.Save();
                        }
                    }

                    #endregion 设施下的采集设备的更新

                    #region 设施下的控制设备的更新

                    IEnumerable <FacilityControlDeviceUnit> facilityControlDeviceUnits =
                        FacilityControlDeviceUnit.FindAllByFacilityID(fac.ID).ToList().OrderBy(fas => fas.ID);
                    if (facilityControlDeviceUnits.Count() > 0)
                    {
                        foreach (var fas in facilityControlDeviceUnits)
                        {
                            if (fac.Code1.IsNullOrWhiteSpace())
                            {
                                fas.Code1 = "";
                            }
                            else if (!fac.Code1.IsNullOrWhiteSpace() && !(fas.Code1 + "").StartsWith(fac.Code1))
                            {
                                fas.Code1 = fas.GetCode1();
                            }
                            fas.Update();
                        }
                    }

                    #endregion 设施下的控制设备的更新

                    #region 设施下的摄像机设备的更新

                    IEnumerable <FacilityCamera> facilityCameras =
                        FacilityCamera.FindAllByFacilityID(fac.ID).ToList().OrderBy(fas => fas.ID);
                    if (facilityCameras.Count() > 0)
                    {
                        foreach (var fas in facilityCameras)
                        {
                            if (fac.Code1.IsNullOrWhiteSpace())
                            {
                                fas.Code1 = "";
                            }
                            else if (!fac.Code1.IsNullOrWhiteSpace() && !(fas.Code1 + "").StartsWith(fac.Code1))
                            {
                                fas.Code1 = fas.GetCode1();
                            }
                            fas.Update();
                        }
                    }

                    #endregion 设施下的摄像机设备的更新
                }

                this.InitFacilityListView();
                this.InitList();
                MessageBox.Show("操作成功");
            }
            catch (Exception ex)
            {
                XTrace.WriteException(ex);
                MessageBox.Show("更新设备编码失败");
                return;
            }
            this.farmId = 0;
        }
Beispiel #3
0
        private void advTreeData_DragDrop(object sender, DragEventArgs e)
        {
            //var item = e.Data.GetData(e.Data.GetFormats()[0]);
            if (status)
            {
                var location = this.advTreeData.PointToClient(new Point(e.X, e.Y));
                var node     = this.advTreeData.GetNodeAt(location.X, location.Y);

                if (node != null && node.Tag.Equals(parent))
                {
                    #region 采集设备
                    if (parent.Equals("SensorDeviceUnit"))
                    {
                        var device  = SensorDeviceUnit.FindByID(dragId);
                        var faciliy = node.Parent.Tag as Facility;
                        if (MessageBox.Show("确定要将该设备移动到该设施下吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            var dbList = FacilitySensorDeviceUnit.FindAllByFacilityIdAndCollectDeviceId(faciliy.ID,
                                                                                                        device.ID);

                            if (dbList == null || dbList.Count == 0)
                            {
                                var fas = new FacilitySensorDeviceUnit()
                                {
                                    FacilityID         = faciliy.ID,
                                    SensorDeviceUnitID = device.ID
                                };
                                fas.Code1 = fas.GetCode1();
                                int i = fas.Insert();
                                if (i != 0)
                                {
                                    FacilitySensorDeviceUnit.DeleteByFacilityAndSensorDeviceunit(facId, device.ID);//删除原有关系
                                }
                            }
                            else
                            {
                                var fas = dbList[0];
                                if (!(fas.Code1 + "").StartsWith(faciliy.Code1))
                                {
                                    fas.Code1 = fas.GetCode1();
                                    fas.Update();
                                }
                            }
                        }
                    }
                    #endregion

                    #region 控制设备
                    if (parent.Equals("ControlDeviceUnit"))
                    {
                        var device  = ControlDeviceUnit.FindByID(dragId);
                        var faciliy = node.Parent.Tag as Facility;
                        if (MessageBox.Show("确定要将该设备移动到该设施下吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            var dbList = FacilityControlDeviceUnit.FindAllByFacilityIdAndControlDeviceGroupNum(faciliy.ID,
                                                                                                               device.GroupNum);

                            if (dbList == null || dbList.Count == 0)
                            {
                                var fas = new FacilityControlDeviceUnit()
                                {
                                    FacilityID = faciliy.ID,
                                    ControlDeviceUnitGroupNum = device.GroupNum
                                };
                                fas.Code1 = fas.GetCode1();
                                int i = fas.Insert();
                                if (i != 0)
                                {
                                    FacilityControlDeviceUnit.DeleteByFacilityAndControlDeviceunGroupNum(facId, device.GroupNum);//删除原有关系
                                }
                            }
                            else
                            {
                                var fas = dbList[0];
                                if (!(fas.Code1 + "").StartsWith(faciliy.Code1))
                                {
                                    fas.Code1 = fas.GetCode1();
                                    fas.Update();
                                }
                            }
                            InitData();
                        }
                    }
                    #endregion

                    #region 视频设备
                    if (parent.Equals("Camera"))
                    {
                        var device  = Camera.FindByID(dragId);
                        var faciliy = node.Parent.Tag as Facility;
                        if (MessageBox.Show("确定要将该设备移动到该设施下吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            var dbList = FacilityCamera.FindAllByFacilityIdAndCameraId(faciliy.ID,
                                                                                       device.ID);

                            if (dbList == null || dbList.Count == 0)
                            {
                                var fas = new FacilityCamera()
                                {
                                    FacilityID = faciliy.ID,
                                    CameraID   = device.ID
                                };
                                fas.Code1 = fas.GetCode1();
                                int i = fas.Insert();
                                if (i != 0)
                                {
                                    FacilityCamera.GetDeviceByFacilityIdAndCameraId(facId, device.ID);//删除原有关系
                                }
                            }
                            else
                            {
                                var fas = dbList[0];
                                if (!(fas.Code1 + "").StartsWith(faciliy.Code1))
                                {
                                    fas.Code1 = fas.GetCode1();
                                    fas.Update();
                                }
                            }
                            InitData();
                        }
                    }
                    #endregion
                }
            }
            else
            {
                return;
            }
            InitData();
        }
Beispiel #4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            #region 判断条件

            if (this.txtName.Text.IsNullOrWhiteSpace())
            {
                MessageBox.Show("名称不能为空,请输入");
                this.txtName.Focus();
                return;
            }

            #endregion 判断条件

            var facility = new Facility();

            if (this.facilityId != 0)
            {
                #region 更新

                facility      = Facility.FindByID(this.facilityId);
                facility.Name = this.txtName.Text;
                facility.FacilityTypeSerialnum = this.cbFacilityType.SelectedValue.ToString();
                facility.FarmID = Convert.ToInt32(this.cbFarm.SelectedValue);
                //facility.Code1 = facility.GetCode1();
                //facility.Code2 = this.txtCode2.Text;
                //facility.Code3 = this.txtCode3.Text;
                facility.ContactPhone = this.txtContactPhone.Text;
                //facility.CreateTime = this.dtCreateTime.Value;
                facility.UpdateTime = DateTime.Now;
                //facility.Upload = this.rbtUpLoad.Checked;
                //facility.Version = Convert.ToInt32(this.txtVersion.Text);
                facility.Status        = this.rbtOnlineStatus.Checked;
                facility.Address       = this.txtAddress.Text;
                facility.Introduce     = this.txtIntroduce.Text;
                facility.ContactMan    = this.txtContactMan.Text;
                facility.ContactMobile = this.txtContactMobile.Text;
                //facility.Remark = this.txtRemark.Text;
                //facility.PhotoUrl = this.pbPhotoUrl.Text;
                try
                {
                    // Facility.Update(facility);
                    facility.Update();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("更新失败" + ex.Message);
                }

                #endregion 更新
            }
            else
            {
                #region 保存设施

                facility.Name   = this.txtName.Text;
                facility.FarmID = Convert.ToInt32(this.cbFarm.SelectedValue);
                if (!(facility.Code1 + "").StartsWith(facility.Farm.Code1 + ""))
                {
                    facility.Code1 = facility.GetCode1();
                }
                //if (!facility.Farm.Code2.IsNullOrWhiteSpace())
                //{
                //    //facility.Code2 = facility.Farm.Code2 + "G00" + facility.ID;
                //    facility.Code1 = Facility.GetCode2(facility.Farm.ID);
                //}
                //if (!facility.Farm.Code3.IsNullOrWhiteSpace())
                //{
                //    //facility.Code3 = facility.Farm.Code3 + "G00" + facility.ID;
                //    facility.Code1 = Facility.GetCode3(facility.Farm.ID);
                //}
                facility.FacilityTypeSerialnum = this.cbFacilityType.SelectedValue.ToString();
                facility.FarmID       = Convert.ToInt32(this.cbFarm.SelectedValue);
                facility.ContactPhone = this.txtContactPhone.Text;
                facility.CreateTime   = DateTime.Now;
                facility.UpdateTime   = DateTime.Now;
                //facility.Upload = Convert.ToBoolean(this.cbUpLoad.SelectedValue);
                //facility.Upload = this.rbtUpLoad.Checked;
                //facility.Version = Convert.ToInt32(this.txtVersion.Text);
                //facility.Status = Convert.ToBoolean(this.cbStatus.SelectedValue);
                facility.Status        = this.rbtOnlineStatus.Checked;
                facility.Address       = this.txtAddress.Text;
                facility.Introduce     = this.txtIntroduce.Text;
                facility.ContactMan    = this.txtContactMan.Text;
                facility.ContactMobile = this.txtContactMobile.Text;
                //facility.Remark = this.txtRemark.Text;
                //facility.PhotoUrl = this.pbPhotoUrl.Text;

                #endregion 保存设施

                try
                {
                    //Facility.Save(facility);
                    facility.Insert();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("新增失败" + ex);
                }
            }

            #region 获取所有选中的设备

            //List<SensorDeviceUnit> sensorDeviceUnitList = (from item in this.listView2.Items.Cast<ListViewItem>() where item.Checked select item.Tag as SensorDeviceUnit).ToList();
            var sensorDeviceUnitListChecked = new List <SensorDeviceUnit>();
            var sensorDeviceUnitListUncheck = new List <SensorDeviceUnit>();
            foreach (ListViewItem item in this.listView2.Items)
            {
                if (item.Checked == false)
                {
                    var sensorDeviceUnit = item.Tag as SensorDeviceUnit; //未选中的采集设备
                    sensorDeviceUnitListUncheck.Add(sensorDeviceUnit);
                }
                else
                {
                    sensorDeviceUnitListChecked =
                        (from i in this.listView2.Items.Cast <ListViewItem>()
                         where i.Checked
                         select i.Tag as SensorDeviceUnit).ToList();    //选中的采集设备
                }
            }

            //List<FacilityControlDeviceUnit> facilityControlDeviceUnitList = (from item in this.listView3.Items.Cast<ListViewItem>() where item.Checked select item.Tag as FacilityControlDeviceUnit).ToList();//控制设备
            var controlDeviceUnitListChecked   = new List <ControlDeviceUnit>();
            var controlDeviceUnitListUnchecked = new List <ControlDeviceUnit>();
            foreach (ListViewItem item in this.listView3.Items)
            {
                if (item.Checked == false)
                {
                    var controlDeviceUnit = item.Tag as ControlDeviceUnit; //未选中的控制设备
                    controlDeviceUnitListUnchecked.Add(controlDeviceUnit);
                }
                else
                {
                    controlDeviceUnitListChecked =
                        (from i in this.listView3.Items.Cast <ListViewItem>()
                         where i.Checked
                         select i.Tag as ControlDeviceUnit).ToList();    //选中的控制设备
                }
            }

            //List<FacilityCamera> facilityCameraList = (from item in this.listView4.Items.Cast<ListViewItem>() where item.Checked select item.Tag as FacilityCamera).ToList();//摄像机设备

            var cameraListChecked   = new List <Camera>();
            var cameraListUnchecked = new List <Camera>();
            foreach (ListViewItem item in this.listView4.Items)
            {
                if (item.Checked == false)
                {
                    var camera = item.Tag as Camera; //未选中的摄像机设备
                    cameraListUnchecked.Add(camera);
                }
                else
                {
                    cameraListChecked =
                        (from i in this.listView4.Items.Cast <ListViewItem>() where i.Checked select i.Tag as Camera)
                        .ToList();     //选中的摄像机设备
                }
            }

            #endregion 获取所有选中的设备

            #region 更新采集设备

            foreach (var sensorDevice in sensorDeviceUnitListChecked)
            {
                var dbList = FacilitySensorDeviceUnit.FindAllByFacilityIdAndCollectDeviceId(this.facilityId,
                                                                                            sensorDevice.ID);

                if (dbList == null || dbList.Count == 0)
                {
                    var fas = new FacilitySensorDeviceUnit()
                    {
                        FacilityID         = this.facilityId,
                        SensorDeviceUnitID = sensorDevice.ID
                    };
                    fas.Code1 = fas.GetCode1();
                    fas.Insert();
                }
                else
                {
                    var fas = dbList[0];
                    if (!(fas.Code1 + "").StartsWith(facility.Code1))
                    {
                        fas.Code1 = fas.GetCode1();
                        fas.Update();
                    }
                }
            }
            foreach (var sensorDevice in sensorDeviceUnitListUncheck)
            {
                FacilitySensorDeviceUnit.DeleteByFacilityAndSensorDeviceunit(this.facilityId, sensorDevice.ID);
            }
            this.InitCollectDeviceListView();

            #endregion 更新采集设备

            #region 更新控制设备

            foreach (var controlDevice in controlDeviceUnitListChecked)
            {
                var dbList = FacilityControlDeviceUnit.FindAllByFacilityIdAndControlDeviceGroupNum(this.facilityId,
                                                                                                   controlDevice.GroupNum);

                if (dbList == null || dbList.Count == 0)
                {
                    var fac = new FacilityControlDeviceUnit()
                    {
                        FacilityID = this.facilityId,
                        ControlDeviceUnitGroupNum = controlDevice.GroupNum,
                        Name = controlDevice.Name.ToString().Substring(0, controlDevice.Name.ToString().IndexOf("-"))
                    };
                    fac.Code1 = fac.GetCode1();
                    fac.Insert();
                }
                else
                {
                    var fac = dbList[0];
                    if (!(fac.Code1 + "").StartsWith(facility.Code1))
                    {
                        fac.Code1 = fac.GetCode1();
                        fac.Update();
                    }
                }
            }

            foreach (var controlDevice in controlDeviceUnitListUnchecked)
            {
                FacilityControlDeviceUnit.DeleteByFacilityAndControlDeviceunGroupNum(this.facilityId,
                                                                                     controlDevice.GroupNum);
            }
            this.InitControlDeviceListView();

            #endregion 更新控制设备

            #region 更新摄像机设备

            foreach (var facilityCamera in cameraListChecked)
            {
                var dbList = FacilityCamera.FindAllByFacilityIdAndCameraId(this.facilityId, facilityCamera.ID);

                if (dbList == null || dbList.Count == 0)
                {
                    var fac = new FacilityCamera()
                    {
                        FacilityID = this.facilityId,
                        CameraID   = facilityCamera.ID
                    };
                    fac.Code1 = fac.GetCode1();
                    fac.Save();
                }
                else
                {
                    var fac = dbList[0];
                    if (!(fac.Code1 + "").StartsWith(facility.Code1))
                    {
                        fac.Code1 = fac.GetCode1();
                        fac.Update();
                    }
                }
            }
            foreach (var camera in cameraListUnchecked)
            {
                FacilityCamera.DeleteByFacilityAndCamera(this.facilityId, camera.ID);
            }
            this.InitCameraDeviceListView();

            #endregion 更新摄像机设备

            this.InitFacilityListView();

            MessageBox.Show("更新成功");
        }
Beispiel #5
0
        /// <summary>
        /// 加载树结构
        /// </summary>
        private void InitTreeView()
        {
            this.treeView1.Nodes.Clear();

            // 获取所有的设施列表
            List <Facility> facilityList = Facility.FindAll();

            if (facilityList.Count > 0 && facilityList.Any())
            {
                var firstNode = new TreeNode(facilityList[0].FarmName)
                {
                    Tag = "FisrtPag"
                };
                this.treeView1.Nodes.Add(firstNode);

                foreach (var facility in facilityList)
                {
                    var allnode = new TreeNode(facility.Name)
                    {
                        ImageIndex = 0, Tag = facility
                    };

                    //采集设备
                    var collectnode = new TreeNode("采集设备")
                    {
                        ImageIndex = 1, Tag = "SensorDeviceUnit"
                    };
                    List <FacilitySensorDeviceUnit> sensorDeviceUnitList =
                        FacilitySensorDeviceUnit.FindAllByFacilityID(facility.ID);
                    if (sensorDeviceUnitList == null)
                    {
                        return;
                    }

                    foreach (var sensorDeviceUnit in sensorDeviceUnitList)
                    {
                        var treeNode =
                            new TreeNode(SensorDeviceUnit.FindByID(sensorDeviceUnit.SensorDeviceUnitID).Name.ToString());
                        treeNode.Tag = sensorDeviceUnit;
                        collectnode.Nodes.Add(treeNode);
                    }
                    allnode.Nodes.Add(collectnode);

                    //控制设备
                    var controlnode = new TreeNode("控制设备")
                    {
                        ImageIndex = 1, Tag = "ControlDeviceUnit"
                    };
                    List <FacilityControlDeviceUnit> controlDeviceUnitList =
                        FacilityControlDeviceUnit.FindAllByFacilityID(facility.ID);
                    if (controlDeviceUnitList == null)
                    {
                        return;
                    }
                    foreach (var controlDeviceUnit in controlDeviceUnitList)
                    {
                        var treeNode =
                            new TreeNode(
                                ControlDeviceUnit.FindByGroupNum(controlDeviceUnit.ControlDeviceUnitGroupNum)[0].Name
                                .ToString());
                        treeNode.Tag = controlDeviceUnit;
                        controlnode.Nodes.Add(treeNode);
                    }
                    allnode.Nodes.Add(controlnode);

                    ////摄像机设备
                    //var cameranode = new TreeNode("摄像机设备") { ImageIndex = 1, Tag = "facilityCamera" };
                    //List<FacilityCamera> cameraList = FacilityCamera.FindAllByFacilityID(facility.ID);
                    //if (cameraList == null)
                    //{
                    //    return;
                    //}

                    //foreach (FacilityCamera facilityCamera in cameraList)
                    //{
                    //    var treeNode = new TreeNode(facilityCamera.CameraName);
                    //    treeNode.Tag = facilityCamera;
                    //    cameranode.Nodes.Add(treeNode);
                    //}
                    //allnode.Nodes.Add(cameranode);

                    ////展示设备
                    //var showDevicenode = new TreeNode("显示设备") { ImageIndex = 1, Tag = "showDevice" };
                    //List<ShowDevice> showDeviceList = ShowDevice.FindAll();
                    //if (showDeviceList == null)
                    //{
                    //    return;
                    //}

                    //foreach (ShowDevice showDevice in showDeviceList)
                    //{
                    //    var treeNode = new TreeNode(showDevice.Name);
                    //    treeNode.Tag = showDevice;
                    //    showDevicenode.Nodes.Add(treeNode);
                    //}
                    //allnode.Nodes.Add(showDevicenode);
                    this.treeView1.Nodes.Add(allnode);
                }

                this.treeView1.ExpandAll();
            }
        }
Beispiel #6
0
        /// <summary>
        /// 查询数据
        /// </summary>
        /// <param name="id">
        /// </param>
        private void SearchDataInfo(int id, string tag)
        {
            this.listView1.Items.Clear();

            if (tag.EqualIgnoreCase("SensorDeviceUnit"))
            {
                string data;
                var    fs = FacilitySensorDeviceUnit.FindByID(id);
                if (fs.SensorDeviceUnit.Sensor.Code.EqualIgnoreCase("collect-weather-YuXueGanZhi"))
                {
                    data = fs.SensorDeviceUnit.ProcessedValue == 1 ? "有" : "无";
                }
                else
                {
                    data = fs.SensorDeviceUnit.ProcessedValue.ToString();
                }

                var strings = new[]
                {
                    fs.Code1, fs.SensorDeviceUnit.Name, data, fs.SensorDeviceUnit.Sensor.Unit,
                    fs.SensorDeviceUnit.UpdateTime.ToString()
                };
                var listViewItem = new ListViewItem(strings);
                this.listView1.Items.Add(listViewItem);
            }
            else if (tag.EqualIgnoreCase("ControlDeviceUnit"))
            {
                string data;
                var    controlList = ControlDeviceUnit.FindByGroupNum(id);
                if (controlList.Count > 0)
                {
                    controlList.ForEach(c =>
                    {
                        data        = c.ProcessedValue;
                        var strings = new[]
                        { c.FacilityControlDeviceUnits[0].Code1, c.Name, data, "", c.UpdateTime.ToString() };
                        var listViewItem = new ListViewItem(strings);
                        this.listView1.Items.Add(listViewItem);
                    });
                }
            }

            var    fsList = FacilitySensorDeviceUnit.FindAllByFacilityID(id);
            var    fcList = FacilityControlDeviceUnit.FindAllByFacilityID(id);
            string data1;

            if (fsList.Count > 0)
            {
                fsList.ForEach(
                    fs =>
                {
                    if (fs.SensorDeviceUnit.Sensor.Code.EqualIgnoreCase("collect-weather-YuXueGanZhi"))
                    {
                        data1 = fs.SensorDeviceUnit.ProcessedValue == 1 ? "有" : "无";
                    }
                    else
                    {
                        data1 = fs.SensorDeviceUnit.ProcessedValue.ToString();
                    }

                    var strings = new[]
                    {
                        fs.Code1, fs.SensorDeviceUnit.Name, data1, fs.SensorDeviceUnit.Sensor.Unit,
                        fs.SensorDeviceUnit.UpdateTime.ToString()
                    };
                    var listViewItem = new ListViewItem(strings);
                    this.listView1.Items.Add(listViewItem);
                });
            }
            if (fcList.Count > 0)
            {
                fcList.ForEach(fc =>
                {
                    var controls = ControlDeviceUnit.FindByGroupNum(fc.ControlDeviceUnitGroupNum);
                    controls.ForEach(control =>
                    {
                        data1            = control.ProcessedValue;
                        var strings      = new[] { fc.Code1, control.Name, data1, "", control.UpdateTime.ToString() };
                        var listViewItem = new ListViewItem(strings);
                        this.listView1.Items.Add(listViewItem);
                    });
                });
            }
        }
Beispiel #7
0
        /// <summary>
        /// 同步采集设备
        /// </summary>
        /// <returns></returns>
        private bool SyncCollectDevices()
        {
            //System.Threading.Thread.Sleep(50);
            var syncResult = false;

            //采集设备
            var collectDevices =
                FacilitySensorDeviceUnit.FindAllWithCache()
                .ToList()
                .Where(c => c.Code1.Substring(13, 1).EqualIgnoreCase("C"));
            var facilitySensorDeviceUnits = collectDevices as FacilitySensorDeviceUnit[] ?? collectDevices.ToArray();

            if (facilitySensorDeviceUnits.Any())
            {
                //逐个上传设备数据
                facilitySensorDeviceUnits.ToList().ForEach(cd =>
                {
                    var code = cd.Code1;
                    var dev  = cd.SensorDeviceUnit;

                    #region 构建DeviceModel

                    var deviceModel = new DeviceModel
                    {
                        Serialnum           = code,
                        Name                = dev.Name,
                        DeviceTypeSerialnum = dev.Sensor.DeviceTypeSerialnum,
                        FacilitySerialnum   = cd.Facility.Code1,
                        ProcessedValue      = dev.ProcessedValue,
                        ShowValue           = dev.ShowValue,
                        Unit                = dev.Sensor.Unit,
                        Max        = dev.Sensor.ExperienceMax,
                        Min        = dev.Sensor.ExperienceMin,
                        UpdateTime = dev.UpdateTime
                    };

                    #endregion 构建DeviceModel

                    var entity = AwEntityHelper.GetEntity(cd.Facility.Farm.Code1);
#if DEBUG
                    var sw = new Stopwatch();
                    sw.Start();
#endif
                    try
                    {
                        var trans          = ApiTransportHelper.GetTransport();
                        var responseResult = _deviceApi.QueryDevice(entity, trans, deviceModel.Serialnum);
                        if (responseResult.Data != null) //判断远程数据库中是否已经存在该设备
                        {
                            var entity1 = AwEntityHelper.GetEntity(cd.Facility.Farm.Code1);
                            var result  = _deviceApi.UpdateDevice(entity1, trans, deviceModel); //设备单个上传
                            trans.Dispose();
                            LogHelper.Debug("更新设备{0}:{1}", deviceModel.Serialnum,
                                            result ? "成功" : "失败");
                            syncResult = result;
                        }
                        else
                        {
                            var entity1 = AwEntityHelper.GetEntity(cd.Facility.Farm.Code1);
                            var result  = _deviceApi.AddDevice(entity1, trans, deviceModel); //设备单个上传
                            trans.Dispose();
                            LogHelper.Debug("添加设备{0}:{1}", deviceModel.Serialnum,
                                            result ? "成功" : "失败");
                            syncResult = result;
                        }
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Fatal(ex.ToString());
                    }
#if DEBUG
                    sw.Stop();
                    var apiAccesslog = new ApiAccessLog
                    {
                        ApiName    = "同步采集设备",
                        Result     = syncResult,
                        CreateTime = DateTime.Now,
                        CostTime   = Convert.ToInt32(sw.ElapsedMilliseconds)
                    };
                    apiAccesslog.Save();
                    LogHelper.Debug("同步采集设备耗时" + sw.ElapsedMilliseconds.ToString() + "ms");
#endif
                });
            }
            //return syncResult;
            return(true);
        }