Esempio n. 1
0
        private void DeleteRows(List <DataGridViewRow> rows)
        {
            if (rows.Count == 0)
            {
                return;
            }
            if (MessageBox.Show("确定删除超级密码?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                List <Maticsoft.Model.SMT_SUPER_PWD> pwds = new List <Maticsoft.Model.SMT_SUPER_PWD>();
                foreach (var item in rows)
                {
                    List <Maticsoft.Model.SMT_SUPER_PWD> models = (List <Maticsoft.Model.SMT_SUPER_PWD>)item.Tag;
                    pwds.AddRange(models);
                }
                CtrlWaiting waiting = new CtrlWaiting(() =>
                {
                    try
                    {
                        Maticsoft.BLL.SMT_SUPER_PWD pwdbll = new Maticsoft.BLL.SMT_SUPER_PWD();
                        foreach (var item in pwds)
                        {
                            pwdbll.Delete(item.ID);
                        }

                        Maticsoft.BLL.SMT_SUPER_PWD pwdBll = new Maticsoft.BLL.SMT_SUPER_PWD();
                        var models = pwdbll.GetModelList("");
                        try
                        {
                            UploadPrivate.UploadPwds(models);
                        }
                        catch (Exception ex)
                        {
                            WinInfoHelper.ShowInfoWindow(this, "上传密码发生异常:" + ex.Message);
                            log.Error("上传密码发生异常:", ex);
                        }


                        this.Invoke(new Action(() =>
                        {
                            foreach (var item in rows)
                            {
                                dgvData.Rows.Remove(item);
                            }
                        }));
                    }
                    catch (Exception ex)
                    {
                        WinInfoHelper.ShowInfoWindow(this, "删除超级密码异常:" + ex.Message);
                        log.Error("删除超级密码异常:", ex);
                    }
                });
                waiting.Show(this);
            }
        }
Esempio n. 2
0
        private void doDelete(List <Maticsoft.Model.SMT_STAFF_FACEDEV> list, bool research, params DataGridViewRow[] rows)
        {
            if (DialogResult.Cancel == MessageBox.Show("确定删除选择" + list.Count + "项的授权?", "确认", MessageBoxButtons.OKCancel))
            {
                return;
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                string errMsg = "";
                try
                {
                    var sdfs = UploadPrivate.DeleteFace(list, out errMsg);
                    if (sdfs != null && sdfs.Count > 0)
                    {
                        foreach (var item in sdfs)
                        {
                            Maticsoft.BLL.SMT_STAFF_FACEDEV bll = new Maticsoft.BLL.SMT_STAFF_FACEDEV();
                            bll.Delete(item.STAFF_ID, item.FACEDEV_ID);
                        }
                        if (research)
                        {
                            DoSearch(null, null, null);
                        }
                        else if (rows != null)
                        {
                            this.Invoke(new Action(() =>
                            {
                                try
                                {
                                    foreach (var item in rows)
                                    {
                                        dgvStaffs.Rows.Remove(item);
                                    }
                                }
                                catch (Exception)
                                {
                                }
                            }));
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "删除存在异常:" + ex.Message + "," + errMsg);
                }
            });

            waiting.Show(this);
        }
Esempio n. 3
0
        private void DoRemoteOpen()
        {
            var doors = GetSelectDoors();

            if (doors.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择门禁!");
                return;
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                UploadPrivate.RemoteOpenDoors(doors);
            });

            waiting.Show(this);
        }
Esempio n. 4
0
        private void biCheckState_Click(object sender, EventArgs e)
        {
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    UploadPrivate.CheckFaceState();
                }
                catch (Exception)
                {}
                finally
                {
                    DoSearch(null, null, null);
                }
            });

            waiting.Show(this);
        }
Esempio n. 5
0
        private void DoUpload(List <Maticsoft.Model.SMT_SUPER_PWD> pwds)
        {
            if (pwds.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "未选择任何可上传密码!");
                return;
            }

            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    UploadPrivate.UploadPwds(pwds);
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "上传密码发生异常:" + ex.Message);
                    log.Error("上传密码发生异常1:", ex);
                }
            });

            waiting.Show(this);
        }
Esempio n. 6
0
        private void biUploadSelect_Click(object sender, EventArgs e)
        {
            List <Maticsoft.Model.SMT_CTRLR_TASK> tasks = GetTasks(false);

            if (tasks.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "没有选择定时任务待上传!");
                return;
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    UploadPrivate.UploadTimeTasks(tasks);
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "上传定时任务发生异常:" + ex.Message);
                    log.Error("上传定时任务发生异常:", ex);
                }
            });

            waiting.Show(this);
        }
Esempio n. 7
0
        private void tsmiRemoteOpen_Click(object sender, EventArgs e)
        {
            if (_rightClick == null || _rightClick.Door == null || !(_rightClick.Door is Maticsoft.Model.SMT_DOOR_INFO))
            {
                return;
            }
            var door  = (Maticsoft.Model.SMT_DOOR_INFO)_rightClick.Door;
            var doors = new List <Maticsoft.Model.SMT_DOOR_INFO>()
            {
                door
            };

            if (doors.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择门禁!");
                return;
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                UploadPrivate.RemoteOpenDoors(doors);
            });

            waiting.Show(this);
        }
Esempio n. 8
0
        private void DoUpload(List <Maticsoft.Model.SMT_STAFF_FACEDEV> list, bool bforce, bool bcancel, params DataGridViewRow[] rows)
        {
            List <Maticsoft.Model.SMT_STAFF_FACEDEV> addmodels    = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
            List <Maticsoft.Model.SMT_STAFF_FACEDEV> updatemodels = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
            List <Maticsoft.Model.SMT_STAFF_FACEDEV> deletemodels = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();

            foreach (var item in list)
            {
                if (bcancel && item.IS_UPLOAD)
                {
                    deletemodels.Add(item);
                }
                else
                {
                    if (item.IS_UPLOAD)
                    {
                        updatemodels.Add(item);
                    }
                    else
                    {
                        addmodels.Add(item);
                    }
                }
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                string errMsg = "";
                bool ret      = false;
                List <Maticsoft.Model.SMT_STAFF_FACEDEV> dels = null;
                if (bcancel && deletemodels.Count > 0)
                {
                    dels = UploadPrivate.DeleteFace(deletemodels, out errMsg);
                    if (!string.IsNullOrWhiteSpace(errMsg))
                    {
                        WinInfoHelper.ShowInfoWindow(this, "权限删除存在异常:" + errMsg);
                    }
                }
                else
                {
                    SmartAccess.Common.Datas.UploadPrivate.CancelObject cancelObject = new UploadPrivate.CancelObject();
                    if (bforce)
                    {
                        ret = UploadPrivate.UploadFace(cancelObject, list, null, out errMsg);
                    }
                    else
                    {
                        ret = UploadPrivate.UploadFace(cancelObject, addmodels, updatemodels, out errMsg);
                    }
                    if (!ret || !string.IsNullOrWhiteSpace(errMsg))
                    {
                        WinInfoHelper.ShowInfoWindow(this, "权限上传存在异常:" + errMsg);
                    }
                }

                if (rows != null && rows.Length > 0)
                {
                    this.Invoke(new Action(() =>
                    {
                        foreach (var row in rows)
                        {
                            Maticsoft.Model.SMT_STAFF_FACEDEV item = (Maticsoft.Model.SMT_STAFF_FACEDEV)row.Tag;
                            string state = "";
                            if (item.IS_FORBIDDEN)
                            {
                                state = "已禁用";
                            }
                            else if (item.IS_UPLOAD)
                            {
                                state = "已上传";
                            }
                            else
                            {
                                if (item.PHOTO == null || item.PHOTO.Length == 0)
                                {
                                    state = "未上传(无照片)";
                                }
                                else
                                {
                                    state = "未上传";
                                }
                            }
                            row.Cells[4].Value = state;
                            row.Cells[8].Value = item.IS_UPLOAD ? "重上传" : "上传";
                        }
                    }));
                }
                else
                {
                    DoSearch(null, null, null);
                }
            });

            waiting.Show(this);
        }
Esempio n. 9
0
        private void DoSave(bool isupload = false)
        {
            if (dgvSelected.Rows.Count == 0)
            {
                if (_inprivateStaffInfos.Count == 0)
                {
                    WinInfoHelper.ShowInfoWindow(this, "请至少选一个授权的人员!");
                    return;
                }
            }
            var hasPrivates = _inprivateStaffInfos.ToList();
            List <Maticsoft.Model.SMT_STAFF_INFO> staffInfos = new List <Maticsoft.Model.SMT_STAFF_INFO>();

            foreach (DataGridViewRow item in dgvSelected.Rows)
            {
                staffInfos.Add((Maticsoft.Model.SMT_STAFF_INFO)item.Tag);
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                Maticsoft.BLL.SMT_STAFF_FACEDEV sfbll = new Maticsoft.BLL.SMT_STAFF_FACEDEV();
                List <Maticsoft.Model.SMT_STAFF_FACEDEV> addmodels    = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
                List <Maticsoft.Model.SMT_STAFF_FACEDEV> updatemodels = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
                List <Maticsoft.Model.SMT_STAFF_FACEDEV> deletemodels = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
                try
                {
                    foreach (var staff in staffInfos)
                    {
                        foreach (var dev in _selectDevices)
                        {
                            var model = sfbll.GetModel(staff.ID, dev.ID);
                            if (model == null)
                            {
                                model                  = new Maticsoft.Model.SMT_STAFF_FACEDEV();
                                model.ADD_TIME         = DateTime.Now;
                                model.END_VALID_TIME   = dtpEnd.Value.Date + new TimeSpan(23, 59, 59);
                                model.FACEDEV_ID       = dev.ID;
                                model.IS_UPLOAD        = false;
                                model.STAFF_DEV_ID     = Guid.NewGuid().ToString("N");
                                model.STAFF_ID         = staff.ID;
                                model.START_VALID_TIME = dtpStart.Value.Date;
                                model.UPLOAD_TIME      = DateTime.Now;
                                sfbll.Add(model);
                            }
                            else
                            {
                                hasPrivates.RemoveAll(m => m.ID == model.STAFF_ID);

                                model.START_VALID_TIME = dtpStart.Value.Date;
                                model.END_VALID_TIME   = dtpEnd.Value.Date + new TimeSpan(23, 59, 59);
                                if (string.IsNullOrWhiteSpace(model.STAFF_DEV_ID))
                                {
                                    model.STAFF_DEV_ID = Guid.NewGuid().ToString("N");
                                }
                                sfbll.Update(model);
                            }
                            model.STAFF_INFO      = staff;
                            model.FACERECG_DEVICE = dev;
                            if (!model.IS_UPLOAD)
                            {
                                addmodels.Add(model);
                            }
                        }
                    }
                    foreach (var item in hasPrivates)
                    {
                        foreach (var dev in _selectDevices)
                        {
                            var model = sfbll.GetModel(item.ID, dev.ID);
                            if (model != null)
                            {
                                deletemodels.Add(model);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                    log.Error("保存异常:", ex);
                    return;
                }
                if (deletemodels.Count > 0)
                {
                    string errMsg = "";
                    var delre     = UploadPrivate.DeleteFace(deletemodels, out errMsg);
                    if (delre != null && delre.Count > 0)
                    {
                        foreach (var item in delre)
                        {
                            sfbll.Delete(item.STAFF_ID, item.FACEDEV_ID);
                        }
                    }
                }
                if (isupload)
                {
                    string errMsg = "";
                    SmartAccess.Common.Datas.UploadPrivate.CancelObject cancelObject = new UploadPrivate.CancelObject();
                    bool ret = UploadPrivate.UploadFace(cancelObject, addmodels, updatemodels, out errMsg);
                    if (!ret || !string.IsNullOrWhiteSpace(errMsg))
                    {
                        WinInfoHelper.ShowInfoWindow(this, "保存成功,部分权限上传异常:" + errMsg);
                    }
                }
                this.Invoke(new Action(() =>
                {
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }));
            });

            waiting.Show(this);
        }
Esempio n. 10
0
        private void biDelete_Click(object sender, EventArgs e)
        {
            if (dgvData.SelectedRows.Count > 0)
            {
                if (MessageBox.Show("确定删除选择任务?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
                {
                    return;
                }
                List <Maticsoft.Model.SMT_CTRLR_TASK> tasks = new List <Maticsoft.Model.SMT_CTRLR_TASK>();
                List <DataGridViewRow> rows = new List <DataGridViewRow>();
                foreach (DataGridViewRow item in dgvData.SelectedRows)
                {
                    tasks.Add((Maticsoft.Model.SMT_CTRLR_TASK)item.Tag);
                    rows.Add(item);
                }
                List <Maticsoft.Model.SMT_CTRLR_TASK> alltasks = new List <Maticsoft.Model.SMT_CTRLR_TASK>();
                foreach (DataGridViewRow item in dgvData.Rows)
                {
                    if (tasks.Contains((Maticsoft.Model.SMT_CTRLR_TASK)item.Tag))
                    {
                        continue;
                    }
                    alltasks.Add((Maticsoft.Model.SMT_CTRLR_TASK)item.Tag);
                }
                CtrlWaiting waiting = new CtrlWaiting(() =>
                {
                    try
                    {
                        try
                        {
                            UploadPrivate.DeleteTimeTasks(tasks);
                            if (alltasks.Count > 0)
                            {
                                UploadPrivate.UploadTimeTasks(alltasks);
                            }
                        }
                        catch (Exception ex)
                        {
                            WinInfoHelper.ShowInfoWindow(this, "删除控制器定时任务发生异常:" + ex.Message);
                            log.Error("上传定时任务发生异常:", ex);
                            return;
                        }

                        Maticsoft.BLL.SMT_CTRLR_TASK taskBll = new Maticsoft.BLL.SMT_CTRLR_TASK();
                        string ids = "";
                        foreach (var item in tasks)
                        {
                            ids += item.ID + ",";
                        }
                        ids = ids.TrimEnd(',');
                        taskBll.DeleteList(ids);
                        this.Invoke(new Action(() =>
                        {
                            foreach (var item in rows)
                            {
                                dgvData.Rows.Remove(item);
                            }
                        }));
                    }
                    catch (Exception ex)
                    {
                        log.Error("删除任务异常:", ex);
                        WinInfoHelper.ShowInfoWindow(this, "删除任务异常!" + ex.Message);
                    }
                });
                waiting.Show(this);
            }
        }
Esempio n. 11
0
        private void DoSaveDoors(List <Maticsoft.Model.SMT_DOOR_INFO> doors, bool upload = false)
        {
            if (dtpStart.Value.Date > dtpEnd.Value.Date)
            {
                WinInfoHelper.ShowInfoWindow(this, "起始时间不能小于结束时间!");
                return;
            }
            int          timenum = 0;
            ComboBoxItem cbi     = (ComboBoxItem)cbTimeNum.SelectedItem;

            if (cbi.Tag is Maticsoft.Model.SMT_TIMESCALE_INFO)
            {
                Maticsoft.Model.SMT_TIMESCALE_INFO tsInfo = (Maticsoft.Model.SMT_TIMESCALE_INFO)cbi.Tag;
                timenum = tsInfo.TIME_NO;
            }
            else
            {
                timenum = 1;
            }

            CtrlWaiting ctrlWaiting = new CtrlWaiting("正在保存...", () =>
            {
                try
                {
                    Maticsoft.BLL.SMT_STAFF_DOOR sdBLL = new Maticsoft.BLL.SMT_STAFF_DOOR();
                    var sdList = sdBLL.GetModelList("STAFF_ID=" + staffInfo.ID);
                    List <Maticsoft.Model.SMT_DOOR_INFO> tempDoors = new List <Maticsoft.Model.SMT_DOOR_INFO>();
                    tempDoors.AddRange(doors);
                    foreach (var item in sdList)
                    {
                        var sc = doors.Find(m => m.ID == item.DOOR_ID);
                        if (sc == null)                                //权限删除
                        {
                            sdBLL.Delete(item.STAFF_ID, item.DOOR_ID); //删除权限
                        }
                        else
                        {
                            item.TIME_NUM  = timenum;
                            item.IS_UPLOAD = false;
                            sdBLL.Update(item);
                            tempDoors.Remove(sc);
                        }
                    }
                    foreach (var item in tempDoors) //添加的权限
                    {
                        Maticsoft.Model.SMT_STAFF_DOOR newSd = new Maticsoft.Model.SMT_STAFF_DOOR();
                        newSd.ADD_TIME    = DateTime.Now;
                        newSd.DOOR_ID     = item.ID;
                        newSd.IS_UPLOAD   = false;
                        newSd.UPLOAD_TIME = DateTime.Now;
                        newSd.STAFF_ID    = staffInfo.ID;
                        newSd.TIME_NUM    = timenum;

                        sdBLL.Add(newSd);
                    }
                    if (staffInfo.VALID_STARTTIME != dtpStart.Value || staffInfo.VALID_ENDTIME != dtpEnd.Value)
                    {
                        Maticsoft.BLL.SMT_STAFF_INFO staffBll = new Maticsoft.BLL.SMT_STAFF_INFO();
                        staffInfo.VALID_STARTTIME             = dtpStart.Value.Date;
                        staffInfo.VALID_ENDTIME = dtpEnd.Value.Date + new TimeSpan(23, 59, 59);
                        staffBll.Update(staffInfo);
                    }

                    if (upload)
                    {
                        string errMsg;
                        bool ret = UploadPrivate.Upload(staffInfo, out errMsg);
                        if (ret && errMsg != "")
                        {
                            WinInfoHelper.ShowInfoWindow(this, "上传权限存在异常:" + errMsg);
                            log.Warn("上传权限存在异常:" + errMsg);
                            return;
                        }
                        else if (!ret)
                        {
                            return;
                        }
                        else
                        {
                            WinInfoHelper.ShowInfoWindow(null, "上传权限结束!");
                        }
                    }
                    this.Invoke(new Action(() =>
                    {
                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }));
                }
                catch (System.Exception ex)
                {
                    log.Error("保存异常:", ex);
                    WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                }
            });

            ctrlWaiting.Show(this);
        }
Esempio n. 12
0
        private void DoSave(bool isupload = false)
        {
            if (dgvSelected.Rows.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "请至少选一个待复制的人员!");
                return;
            }
            List <Maticsoft.Model.SMT_STAFF_INFO> staffInfos = new List <Maticsoft.Model.SMT_STAFF_INFO>();

            foreach (DataGridViewRow item in dgvSelected.Rows)
            {
                staffInfos.Add((Maticsoft.Model.SMT_STAFF_INFO)item.Tag);
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                Maticsoft.BLL.SMT_STAFF_DOOR sdbll = new Maticsoft.BLL.SMT_STAFF_DOOR();
                try
                {
                    foreach (var item in staffInfos)
                    {
                        var olddoors = sdbll.GetModelList("STAFF_ID=" + item.ID);
                        var notexist = olddoors.FindAll(m =>
                        {
                            return(!_staffDoors.Exists(n => n.DOOR_ID == m.DOOR_ID));
                        });
                        foreach (var old in notexist)
                        {
                            sdbll.Delete(old.STAFF_ID, old.DOOR_ID);
                            olddoors.Remove(old);
                        }
                        notexist = _staffDoors.FindAll(m =>
                        {
                            return(!olddoors.Exists(n => n.DOOR_ID == m.DOOR_ID));
                        });
                        foreach (var newdoor in notexist)
                        {
                            sdbll.Add(new Maticsoft.Model.SMT_STAFF_DOOR()
                            {
                                ADD_TIME    = DateTime.Now,
                                IS_UPLOAD   = false,
                                STAFF_ID    = item.ID,
                                UPLOAD_TIME = DateTime.Now,
                                DOOR_ID     = newdoor.DOOR_ID,
                                TIME_NUM    = newdoor.TIME_NUM
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                    log.Error("保存异常:", ex);
                    return;
                }
                if (isupload)
                {
                    string errMsg = "";
                    bool ret      = UploadPrivate.Upload(staffInfos, out errMsg);
                    if (!ret || !string.IsNullOrWhiteSpace(errMsg))
                    {
                        WinInfoHelper.ShowInfoWindow(this, "保存成功,部分权限上传异常:" + errMsg);
                    }
                }
                this.Invoke(new Action(() =>
                {
                    this.Close();
                }));
            });

            waiting.Show(this);
        }
Esempio n. 13
0
        private void DoSave(bool isupload = false)
        {
            if (dgvSelected.Rows.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "请至少选一个人员!");
                return;
            }
            if (cbIsValidValid.Checked &&
                (
                    (dtValidStart.LockUpdateChecked && dtValidStart.IsEmpty) ||
                    (dtValidEnd.LockUpdateChecked && dtValidEnd.IsEmpty)
                )
                )
            {
                WinInfoHelper.ShowInfoWindow(this, "请设置选择有效的开始或结束时间!");
                return;
            }
            bool isvaliddatechanged = false;

            if (cbIsValidValid.Checked &&
                (
                    (dtValidStart.LockUpdateChecked && !dtValidStart.IsEmpty) || (dtValidEnd.LockUpdateChecked && !dtValidEnd.IsEmpty)
                )
                )
            {
                isvaliddatechanged = true;
            }
            if (isvaliddatechanged)
            {
                if (cbIsValidValid.Checked && dtValidStart.LockUpdateChecked && dtValidEnd.LockUpdateChecked && dtValidStart.Value > dtValidEnd.Value)
                {
                    WinInfoHelper.ShowInfoWindow(this, "结束时间不能小于开始时间!");
                    return;
                }
            }
            if (!isvaliddatechanged && !cbisForbidden.Checked)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择要修改的信息!");
                return;
            }

            List <Maticsoft.Model.SMT_STAFF_INFO> staffInfos = new List <Maticsoft.Model.SMT_STAFF_INFO>();

            foreach (DataGridViewRow item in dgvSelected.Rows)
            {
                staffInfos.Add((Maticsoft.Model.SMT_STAFF_INFO)item.Tag);
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                Maticsoft.BLL.SMT_STAFF_INFO staffBll = new Maticsoft.BLL.SMT_STAFF_INFO();
                try
                {
                    foreach (var item in staffInfos)
                    {
                        if (isvaliddatechanged)
                        {
                            if (dtValidStart.LockUpdateChecked && !dtValidStart.IsEmpty)
                            {
                                item.VALID_STARTTIME = dtValidStart.Value.Date;
                            }
                            if (dtValidEnd.LockUpdateChecked && !dtValidEnd.IsEmpty)
                            {
                                item.VALID_ENDTIME = dtValidEnd.Value.Date + new TimeSpan(23, 59, 59);
                            }
                        }
                        if (cbisForbidden.Checked)
                        {
                            item.IS_FORBIDDEN = !cbNormal.Checked;
                        }
                        staffBll.Update(item);
                    }
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                    log.Error("保存异常:", ex);
                    return;
                }
                if (isupload)
                {
                    string errMsg = "";
                    bool ret      = UploadPrivate.Upload(staffInfos, out errMsg);
                    if (!ret || !string.IsNullOrWhiteSpace(errMsg))
                    {
                        WinInfoHelper.ShowInfoWindow(this, "保存成功,部分权限上传异常:" + errMsg);
                    }
                }
                this.Invoke(new Action(() =>
                {
                    this.Close();
                }));
            });

            waiting.Show(this);
        }
Esempio n. 14
0
        private void DoSave(bool upload)
        {
            try
            {
                if (!CheckInput())
                {
                    return;
                }
                Maticsoft.Model.SMT_CONTROLLER_INFO ctrlInfo = new Maticsoft.Model.SMT_CONTROLLER_INFO();
                if (_ctrlr != null)
                {
                    ctrlInfo.MAC            = _ctrlr.MAC;
                    ctrlInfo.ID             = _ctrlr.ID;
                    ctrlInfo.MASK           = _ctrlr.MASK;
                    ctrlInfo.ORG_ID         = _ctrlr.ORG_ID;
                    ctrlInfo.ORDER_VALUE    = _ctrlr.ORDER_VALUE;
                    ctrlInfo.CTRLR_MODEL    = _ctrlr.CTRLR_MODEL;
                    ctrlInfo.DRIVER_DATE    = _ctrlr.DRIVER_DATE;
                    ctrlInfo.DRIVER_VERSION = _ctrlr.DRIVER_VERSION;
                    ctrlInfo.GATEWAY        = _ctrlr.GATEWAY;
                }
                else
                {
                    ctrlInfo.ID = -1;
                }
                ctrlInfo.SN_NO     = tbCtrlrSn.Text.Trim();
                ctrlInfo.IS_ENABLE = cbCtrlrEnable.Checked;
                string name = tbCtrlName.Text.Trim();
                if (name == "")
                {
                    name = ctrlInfo.SN_NO;
                }
                ctrlInfo.NAME       = name;
                ctrlInfo.IP         = ipCtrlr.Value;
                ctrlInfo.PORT       = iiPort.Value;
                ctrlInfo.CTRLR_DESC = tbDesc.Text.Trim();
                ctrlInfo.CTRLR_TYPE = (int)_lastType;
                ctrlInfo.AREA_ID    = -1;
                if (cboTreeArea.SelectedNode != null && cboTreeArea.SelectedNode.Tag is Maticsoft.Model.SMT_CONTROLLER_ZONE)
                {
                    var area = cboTreeArea.SelectedNode.Tag as Maticsoft.Model.SMT_CONTROLLER_ZONE;
                    ctrlInfo.AREA_ID   = area.ID;
                    ctrlInfo.AREA_NAME = area.ZONE_NAME;
                }

                List <DoorNameAttriData>             doorNameDatas   = doorNameAttriGroup.GetDatas();
                List <DoorReaderAttriData>           doorReaderDatas = doorReaderAttriGroup.GetDatas();
                List <Maticsoft.Model.SMT_DOOR_INFO> doors           = new List <Maticsoft.Model.SMT_DOOR_INFO>();
                foreach (var item in doorNameDatas)
                {
                    Maticsoft.Model.SMT_DOOR_INFO door = new Maticsoft.Model.SMT_DOOR_INFO();
                    door.CTRL_ID          = ctrlInfo.ID;
                    door.CTRL_DELAY_TIME  = item.doorSecond;
                    door.CTRL_DOOR_INDEX  = item.doorNo;
                    door.CTRL_STYLE       = item.doorCtrlType;
                    door.IS_ALLOW_VISITOR = item.visitor;
                    if (_ctrlr != null)
                    {
                        var old = _ctrlr.DOOR_INFOS.Find(m => m.CTRL_DOOR_INDEX == item.doorNo);
                        if (old != null)
                        {
                            door.ID        = old.ID;
                            door.DOOR_DESC = old.DOOR_DESC;
                        }
                    }
                    else
                    {
                        door.ID        = -1;
                        door.DOOR_DESC = "";
                    }
                    door.DOOR_NAME = item.doorName;
                    DoorReaderAttriData reader1 = doorReaderDatas.Find(m => m.doorNo == item.doorNo && m.isEnter1);
                    DoorReaderAttriData reader2 = doorReaderDatas.Find(m => m.doorNo == item.doorNo && !m.isEnter1);
                    door.IS_ATTENDANCE1 = reader1 == null ? false : reader1.isAttend;
                    door.IS_ATTENDANCE2 = reader2 == null ? false : reader2.isAttend;
                    door.IS_ENABLE      = item.doorEnable;
                    door.IS_ENTER1      = reader1 == null ? false : reader1.isEnter;
                    door.IS_ENTER2      = reader2 == null ? false : reader2.isEnter;
                    doors.Add(door);
                }
                CtrlWaiting ctrlWaiting = new CtrlWaiting(() =>
                {
                    try
                    {
                        Maticsoft.BLL.SMT_CONTROLLER_INFO ctrlBll = new Maticsoft.BLL.SMT_CONTROLLER_INFO();
                        var exists = ctrlBll.GetModelList("SN_NO='" + ctrlInfo.SN_NO + "'");

                        if (ctrlInfo.ID != -1)
                        {
                            if (exists.Count > 0)
                            {
                                if (exists[0].ID != ctrlInfo.ID)
                                {
                                    WinInfoHelper.ShowInfoWindow(this, "已存在控制器序列号:" + ctrlInfo.SN_NO);
                                    return;
                                }
                            }
                            ctrlBll.Update(ctrlInfo);
                            ctrlInfo.DOOR_INFOS = _ctrlr.DOOR_INFOS;
                            _ctrlr = ctrlInfo;
                        }
                        else
                        {
                            if (exists.Count > 0)
                            {
                                WinInfoHelper.ShowInfoWindow(this, "已存在控制器序列号:" + ctrlInfo.SN_NO);
                                return;
                            }
                            ctrlInfo.ID = ctrlBll.Add(ctrlInfo);
                            _ctrlr      = ctrlInfo;
                        }

                        if (_lastType != ControllerDoorType.Elevator)//非电梯控制器
                        {
                            Maticsoft.BLL.SMT_DOOR_INFO doorBll = new Maticsoft.BLL.SMT_DOOR_INFO();

                            foreach (var item in doors)
                            {
                                var edoors = doorBll.GetModelList("CTRL_ID=" + ctrlInfo.ID + " and " + " CTRL_DOOR_INDEX=" + item.CTRL_DOOR_INDEX);
                                if (edoors.Count > 0)
                                {
                                    item.ID = edoors[0].ID;
                                    doorBll.Update(item);
                                }
                                else
                                {
                                    item.CTRL_ID = ctrlInfo.ID;
                                    item.ID      = doorBll.Add(item);
                                }
                            }
                            _ctrlr.DOOR_INFOS = doors;

                            if (upload)
                            {
                                string errMsg = null;
                                if (UploadPrivate.UploadByCtrlr(_ctrlr, out errMsg, doors, true))
                                {
                                    if (errMsg != "")
                                    {
                                        WinInfoHelper.ShowInfoWindow(this, "设置控制器" + (_ctrlr.IS_ENABLE ? "启用" : "禁用") + "异常:" + errMsg);
                                        return;
                                    }
                                }
                                else
                                {
                                    WinInfoHelper.ShowInfoWindow(this, "设置控制器" + (_ctrlr.IS_ENABLE ? "启用" : "禁用") + "异常:" + errMsg);
                                    return;
                                }
                                Controller c = ControllerHelper.ToController(_ctrlr);
                                //设置门控制方式
                                foreach (var item in doors)
                                {
                                    using (IAccessCore access = new WGAccess())
                                    {
                                        bool ret = access.SetDoorControlStyle(c, (int)item.CTRL_DOOR_INDEX, (DoorControlStyle)item.CTRL_STYLE, item.CTRL_DELAY_TIME);
                                        if (!ret)
                                        {
                                            WinInfoHelper.ShowInfoWindow(this, "上传门控制方式失败!");
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                        this.Invoke(new Action(() =>
                        {
                            this.DialogResult = DialogResult.OK;
                            this.Close();
                        }));
                    }
                    catch (Exception ex)
                    {
                        log.Error("保存异常:" + ex.Message, ex);
                        WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                    }
                });
                ctrlWaiting.Show(this);
            }
            catch (Exception ex)
            {
                WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                log.Error("保存异常:" + ex.Message, ex);
            }
        }
Esempio n. 15
0
        private void DoApply(bool upload = false, bool isclose = false)
        {
            List <Maticsoft.Model.SMT_ALARM_SETTING> settings = new List <Maticsoft.Model.SMT_ALARM_SETTING>();

            foreach (DataGridViewRow item in dgvData.Rows)
            {
                Maticsoft.Model.SMT_ALARM_SETTING alarmSetting = (Maticsoft.Model.SMT_ALARM_SETTING)item.Tag;
                alarmSetting.CTRL_FORCE_PWD        = tbForcePwd.Text.Trim();
                alarmSetting.ENABLE_FORCE_PWD      = (bool)selectRow.Cells[2].Value;
                alarmSetting.ENABLE_CLOSED_TIMEOUT = (bool)selectRow.Cells[3].Value;
                alarmSetting.ENABLE_FORCE_ACCESS   = (bool)selectRow.Cells[4].Value;
                alarmSetting.ENABLE_FORCE_CLOSE    = (bool)selectRow.Cells[5].Value;
                alarmSetting.ENABLE_INVALID_CARD   = (bool)selectRow.Cells[6].Value;
                alarmSetting.ENABLE_FIRE           = (bool)selectRow.Cells[7].Value;
                alarmSetting.ENABLE_STEAL          = (bool)selectRow.Cells[8].Value;
                alarmSetting.ENABLE_FORCE_CARD     = (bool)selectRow.Cells[9].Value;
                if (iUnClosedTimeOut.ValueObject == null)
                {
                    alarmSetting.NOT_CLOSED_TIMEOUT = 25;
                }
                else
                {
                    alarmSetting.NOT_CLOSED_TIMEOUT = iUnClosedTimeOut.Value;
                }
                settings.Add(alarmSetting);
            }
            Maticsoft.Model.SMT_ALARM_SETTING selectSetting = null;
            if (selectRow != null)
            {
                selectSetting = (Maticsoft.Model.SMT_ALARM_SETTING)selectRow.Tag;
            }
            List <Maticsoft.Model.SMT_ALARM_CONNECT> conns = new List <Maticsoft.Model.SMT_ALARM_CONNECT>();

            if (selectSetting != null)
            {
                for (int i = 0; i < ports.Count; i++)
                {
                    Maticsoft.Model.SMT_ALARM_CONNECT conn = ports[i].AlarmConnect;
                    if (conn != null)
                    {
                        conn.OUT_PORT = i + 1;
                        conn.CTRL_ID  = selectSetting.CTRL_ID;
                        conns.Add(conn);
                    }
                }
            }


            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    Maticsoft.BLL.SMT_ALARM_SETTING settingBll = new Maticsoft.BLL.SMT_ALARM_SETTING();
                    foreach (var item in settings)
                    {
                        settingBll.Update(item);
                    }
                    if (selectSetting != null)
                    {
                        Maticsoft.DBUtility.DbHelperSQL.ExecuteSql("delete from SMT_ALARM_CONNECT where CTRL_ID=" + selectSetting.CTRL_ID);
                        Maticsoft.BLL.SMT_ALARM_CONNECT connBll = new Maticsoft.BLL.SMT_ALARM_CONNECT();
                        foreach (var item in conns)
                        {
                            item.ID = connBll.Add(item);
                        }
                    }
                    if (upload)
                    {
                        //上传
                        UploadPrivate.UploadAlarmSetting(settings);
                    }
                    WinInfoHelper.ShowInfoWindow(this, "保存成功!");
                    if (isclose)
                    {
                        this.BeginInvoke(new Action(() =>
                        {
                            this.Close();
                        }));
                    }
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "保存报警设置异常!" + ex.Message);
                    log.Error("保存报警设置异常:", ex);
                }
            });

            waiting.Show(this);
        }
        private void DoSaveDevices(List <Maticsoft.Model.SMT_FACERECG_DEVICE> devices, bool upload = false)
        {
            if (dtpStart.Value.Date > dtpEnd.Value.Date)
            {
                WinInfoHelper.ShowInfoWindow(this, "起始时间不能小于结束时间!");
                return;
            }

            CtrlWaiting ctrlWaiting = new CtrlWaiting("正在保存...", () =>
            {
                try
                {
                    Maticsoft.BLL.SMT_STAFF_FACEDEV sfBLL = new Maticsoft.BLL.SMT_STAFF_FACEDEV();
                    var sfList = sfBLL.GetModelList("STAFF_ID=" + _staffInfo.ID);
                    List <Maticsoft.Model.SMT_FACERECG_DEVICE> tempDevs = new List <Maticsoft.Model.SMT_FACERECG_DEVICE>();
                    tempDevs.AddRange(devices);
                    List <Maticsoft.Model.SMT_STAFF_FACEDEV> addPrivates    = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
                    List <Maticsoft.Model.SMT_STAFF_FACEDEV> updatePrivates = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
                    List <Maticsoft.Model.SMT_STAFF_FACEDEV> delPrivates    = new List <Maticsoft.Model.SMT_STAFF_FACEDEV>();
                    foreach (var item in sfList)
                    {
                        var sc = devices.Find(m => m.ID == item.FACEDEV_ID);
                        if (sc == null)//不存在,则权限删除
                        {
                            delPrivates.Add(item);
                            // sfBLL.Delete(item.STAFF_ID, item.FACEDEV_ID);//删除权限
                        }
                        else
                        {
                            item.START_VALID_TIME = dtpStart.Value.Date;
                            item.END_VALID_TIME   = dtpEnd.Value.Date + new TimeSpan(23, 59, 59);
                            if (_staffInfo.VALID_STARTTIME.Date > item.START_VALID_TIME.Date)
                            {
                                item.START_VALID_TIME = _staffInfo.VALID_STARTTIME.Date;
                            }
                            if (_staffInfo.VALID_ENDTIME.Date < item.END_VALID_TIME.Date)
                            {
                                item.END_VALID_TIME = _staffInfo.VALID_ENDTIME.Date + new TimeSpan(23, 59, 59);
                            }
                            sfBLL.Update(item);
                            tempDevs.Remove(sc);
                            if (!item.IS_UPLOAD)
                            {
                                addPrivates.Add(item);
                            }
                            else
                            {
                                if (_imageChanged)
                                {
                                    addPrivates.Add(item);
                                }
                                else
                                {
                                    updatePrivates.Add(item);
                                }
                            }
                        }
                    }
                    foreach (var item in tempDevs)//添加的权限
                    {
                        Maticsoft.Model.SMT_STAFF_FACEDEV newSd = new Maticsoft.Model.SMT_STAFF_FACEDEV();
                        newSd.ADD_TIME         = DateTime.Now;
                        newSd.FACEDEV_ID       = item.ID;
                        newSd.IS_UPLOAD        = false;
                        newSd.UPLOAD_TIME      = DateTime.Now;
                        newSd.STAFF_ID         = _staffInfo.ID;
                        newSd.STAFF_DEV_ID     = Guid.NewGuid().ToString("N");
                        newSd.START_VALID_TIME = dtpStart.Value.Date;
                        newSd.END_VALID_TIME   = dtpEnd.Value.Date + new TimeSpan(23, 59, 59);
                        if (_staffInfo.VALID_STARTTIME.Date > newSd.START_VALID_TIME.Date)
                        {
                            newSd.START_VALID_TIME = _staffInfo.VALID_STARTTIME.Date;
                        }
                        if (_staffInfo.VALID_ENDTIME.Date < newSd.END_VALID_TIME.Date)
                        {
                            newSd.END_VALID_TIME = _staffInfo.VALID_ENDTIME.Date + new TimeSpan(23, 59, 59);
                        }
                        sfBLL.Add(newSd);
                        addPrivates.Add(newSd);
                    }
                    if (upload)
                    {
                        string errMsg;
                        if (delPrivates.Count > 0)
                        {
                            var delResults = UploadPrivate.DeleteFace(delPrivates, out errMsg);
                            if (delResults != null && delResults.Count > 0)
                            {
                                foreach (var item in delResults)
                                {
                                    Maticsoft.BLL.SMT_STAFF_FACEDEV bll = new Maticsoft.BLL.SMT_STAFF_FACEDEV();
                                    bll.Delete(item.STAFF_ID, item.FACEDEV_ID);
                                }
                            }
                        }
                        errMsg = "";
                        if (addPrivates.Count > 0 || updatePrivates.Count > 0)
                        {
                            SmartAccess.Common.Datas.UploadPrivate.CancelObject cancelObject = new UploadPrivate.CancelObject();
                            bool ret = UploadPrivate.UploadFace(cancelObject, addPrivates, updatePrivates, out errMsg);
                            if (ret && errMsg != "")
                            {
                                WinInfoHelper.ShowInfoWindow(this, "上传权限存在异常:" + errMsg);
                                log.Warn("上传权限存在异常:" + errMsg);
                                return;
                            }
                        }
                        WinInfoHelper.ShowInfoWindow(null, "上传权限结束!");
                    }
                    this.Invoke(new Action(() =>
                    {
                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }));
                }
                catch (System.Exception ex)
                {
                    log.Error("保存异常:", ex);
                    WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                }
            });

            ctrlWaiting.Show(this);
        }