Example #1
0
 private void biAddSubDept_Click(object sender, EventArgs e)
 {
     Maticsoft.Model.SMT_ORG_INFO orgInfo = GetSelectOrg();
     if (orgInfo == null)
     {
         WinInfoHelper.ShowInfoWindow(this, "请选择一个节点!");
         return;
     }
     else
     {
         FrmAddOrModifyDept frmDept = new FrmAddOrModifyDept(orgInfo.ID);
         if (frmDept.ShowDialog(this) == DialogResult.OK)
         {
             var node = DeptDataHelper.CreateNode(frmDept.OrgInfo, null);
             if (this.deptTree.Tree.SelectedNode == null)
             {
                 this.deptTree.Tree.Nodes.Add(node);
             }
             else
             {
                 this.deptTree.Tree.SelectedNode.Nodes.Add(node);
                 this.deptTree.Tree.SelectedNode.Expand();
             }
         }
     }
 }
Example #2
0
        private void AttendanceInfo_Load(object sender, EventArgs e)
        {
            dtpStart.Value = DateTime.Now.Date.AddDays(-7);
            dtpEnd.Value   = DateTime.Now.Date;
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                var depts = DeptDataHelper.GetDepts(false);
                this.Invoke(new Action(() =>
                {
                    var deptNodes = DeptDataHelper.ToTree(depts);
                    Node deptNone = new Node("--无--");
                    deptNodes.Insert(0, deptNone);

                    cboDeptTree.Nodes.AddRange(deptNodes.ToArray());
                    cboDeptTree.SelectedNode = deptNone;

                    foreach (Node item in cboDeptTree.Nodes)
                    {
                        item.Expand();
                    }
                }));
            });

            waiting.Show(this);
        }
Example #3
0
        private void cbTreeDept_SelectionChanged(object sender, DevComponents.AdvTree.AdvTreeNodeEventArgs e)
        {
            Maticsoft.Model.SMT_ORG_INFO orgInfo = e.Node.Tag as Maticsoft.Model.SMT_ORG_INFO;
            if (orgInfo == null)
            {
                orgInfo    = new Maticsoft.Model.SMT_ORG_INFO();
                orgInfo.ID = -1;
            }
            if (orgInfo != null)
            {
                CtrlWaiting waiting = new CtrlWaiting(() =>
                {
                    try
                    {
                        Maticsoft.BLL.SMT_STAFF_INFO staffBll = new Maticsoft.BLL.SMT_STAFF_INFO();
                        string strWhere = "";
                        List <Maticsoft.Model.SMT_STAFF_INFO> staffInfos = null;
                        if (orgInfo.ID == -1)
                        {
                            strWhere  += "ORG_ID=-1 or ORG_ID is null";
                            staffInfos = staffBll.GetModelList("(" + strWhere + ") and IS_DELETE=0");
                        }
                        else
                        {
                            // Maticsoft.BLL.SMT_ORG_INFO orgBll = new Maticsoft.BLL.SMT_ORG_INFO();
                            // var orgS = orgBll.GetModelList("PAR_ID=" + orgInfo.ID);
                            // foreach (var org in orgS)
                            // {
                            //var subInfos = staffBll.GetModelList("ORG_ID=" + org.ID + " and IS_DELETE=0");
                            staffInfos = staffBll.GetModelListByParOrgId(orgInfo.ID);
                            //  }
                        }
                        var depts = DeptDataHelper.GetDepts(false);
                        foreach (var item in staffInfos)
                        {
                            var dept = depts.Find(m => m.ID == item.ORG_ID);
                            if (dept != null)
                            {
                                item.ORG_NAME = dept.ORG_NAME;
                                item.ORG_CODE = dept.ORG_CODE;
                            }
                        }

                        this.Invoke(new Action(() =>
                        {
                            DoShowInfos(staffInfos);
                        }));
                    }
                    catch (Exception ex)
                    {
                        log.Error("获取人员异常:", ex);
                        WinInfoHelper.ShowInfoWindow(this, "获取人员异常:" + ex.Message);
                    }
                });
                waiting.Show(this);
            }
        }
Example #4
0
        private void biDeleteCurrent_Click(object sender, EventArgs e)
        {
            var orgInfo = GetSelectOrg();

            if (orgInfo == null)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择一个节点!");
                return;
            }
            else
            {
                if (MessageBox.Show("确定删除当前部门(不包括下级部门)?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    // List<Maticsoft.Model.SMT_ORG_INFO> depts = GetSelectWithSubDepts();
                    CtrlWaiting waiting = new CtrlWaiting("删除部门...", () =>
                    {
                        try
                        {
                            decimal parId = orgInfo.PAR_ID;
                            Maticsoft.DBUtility.DbHelperSQL.ExecuteSql("update SMT_ORG_INFO set PAR_ID=" + parId + " where PAR_ID=" + orgInfo.ID);
                            DeptDataHelper.DeleteDepts(new List <Maticsoft.Model.SMT_ORG_INFO> {
                                orgInfo
                            });
                            this.Invoke(new Action(() =>
                            {
                                List <DevComponents.AdvTree.Node> nodes = new List <DevComponents.AdvTree.Node>();
                                foreach (DevComponents.AdvTree.Node item in this.deptTree.Tree.SelectedNode.Nodes)
                                {
                                    nodes.Add(item);
                                }
                                this.deptTree.Tree.SelectedNode.Nodes.Clear();
                                DevComponents.AdvTree.Node parent = this.deptTree.Tree.SelectedNode.Parent;
                                this.deptTree.Tree.SelectedNode.Remove();
                                if (parent == null)
                                {
                                    this.deptTree.Tree.Nodes.AddRange(nodes.ToArray());
                                }
                                else
                                {
                                    parent.Nodes.AddRange(nodes.ToArray());
                                }
                            }));
                        }
                        catch (System.Exception ex)
                        {
                            log.Error("删除部门错误:", ex);
                            WinInfoHelper.ShowInfoWindow(this, "删除部门异常:" + ex.Message);
                        }
                    });
                    waiting.Show(this);
                }
            }
        }
Example #5
0
        private void biOutput_Click(object sender, EventArgs e)
        {
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                var datas = DeptDataHelper.GetDepts(true);
                if (datas.Count == 0)
                {
                    WinInfoHelper.ShowInfoWindow(this, "没有部门可以导出!");
                    return;
                }
                DataTable dt = new DataTable("部门模板");
                dt.Columns.AddRange(new DataColumn[] {
                    new DataColumn("部门编码"),
                    new DataColumn("上级部门编码"),
                    new DataColumn("部门名称"),
                    new DataColumn("排序")
                });
                var g = datas.GroupBy(m => m.PAR_ID);
                foreach (var item in g)
                {
                    var list = item.ToList();
                    var f    = datas.Find(m => m.ID == list[0].PAR_ID);
                    if (f != null)
                    {
                        foreach (var l in list)
                        {
                            l.PAR_ORG_CODE = f.ORG_CODE;
                        }
                    }
                }
                foreach (var item in datas)
                {
                    var row = dt.NewRow();
                    row[0]  = item.ORG_CODE;
                    row[1]  = item.PAR_ORG_CODE;
                    row[2]  = item.ORG_NAME;
                    row[3]  = item.ORDER_VALUE;
                    dt.Rows.Add(row);
                }
                this.Invoke(new Action(() =>
                {
                    ExportHelper.ExportEx(dt, "所有部门", "所有部门");
                }));
            });

            waiting.Show(this);
        }
Example #6
0
        private void LoadTree(int minseconds = 0)
        {
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                var depts = DeptDataHelper.GetDepts(true);
                this.Invoke(new Action(() =>
                {
                    try
                    {
                        deptAdvTree.Nodes.Clear();
                        var nodes = DeptDataHelper.ToTree(depts);
                        deptAdvTree.Nodes.AddRange(nodes.ToArray());
                        foreach (DevComponents.AdvTree.Node item in deptAdvTree.Nodes)
                        {
                            item.Expand();
                        }
                        _isLoaded = true;
                        if (_visibleId >= 0)
                        {
                            var node = FindNode(_visibleId);

                            if (node != null)
                            {
                                deptAdvTree.SelectedNode = node;
                                if (node.Parent != null)
                                {
                                    node.Parent.Expand();
                                    node.EnsureVisible();
                                }
                            }
                        }

                        if (TreeLoaded != null)
                        {
                            TreeLoaded.BeginInvoke(this, new EventArgs(), null, null);
                        }
                    }
                    catch (Exception ex)
                    {
                        WinInfoHelper.ShowInfoWindow(this, "加载树异常:" + ex.Message);
                    }
                }));
            });

            waiting.Show(this, minseconds);
        }
Example #7
0
 private void FrmMoveDept_Load(object sender, EventArgs e)
 {
     try
     {
         var depts = DeptDataHelper.GetDepts();
         var nodes = DeptDataHelper.ToTree(depts);
         comDeptTree.Nodes.AddRange(nodes.ToArray());
         foreach (DevComponents.AdvTree.Node item in comDeptTree.Nodes)
         {
             item.Expand();
         }
     }
     catch (Exception ex)
     {
         log.Error("加载异常:", ex);
         WinInfoHelper.ShowInfoWindow(this, "加载异常!");
         return;
     }
 }
Example #8
0
        private void biDeleteDept_Click(object sender, EventArgs e)
        {
            var orgInfos = GetSelectOrgs();

            if (orgInfos.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择一个节点!");
                return;
            }
            else
            {
                if (MessageBox.Show("确定删除当前部门及其子部门?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    List <Maticsoft.Model.SMT_ORG_INFO> depts = GetSelectWithSubDepts();
                    CtrlWaiting waiting = new CtrlWaiting("删除部门...", () =>
                    {
                        try
                        {
                            DeptDataHelper.DeleteDepts(depts);
                            this.Invoke(new Action(() =>
                            {
                                List <DevComponents.AdvTree.Node> nodes = new List <DevComponents.AdvTree.Node>();
                                foreach (DevComponents.AdvTree.Node item in this.deptTree.Tree.SelectedNodes)
                                {
                                    nodes.Add(item);
                                }
                                foreach (var item in nodes)
                                {
                                    item.Remove();
                                }
                            }));
                        }
                        catch (System.Exception ex)
                        {
                            log.Error("删除部门错误:", ex);
                            WinInfoHelper.ShowInfoWindow(this, "删除部门异常:" + ex.Message);
                        }
                    });
                    waiting.Show(this);
                }
            }
        }
Example #9
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            var node = comDeptTree.SelectedNode;

            if (node == null)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择要移至的部门!");
                return;
            }
            Maticsoft.Model.SMT_ORG_INFO dept = (Maticsoft.Model.SMT_ORG_INFO)node.Tag;
            if (dept.ID == _info.PAR_ID || dept.ID == _info.ID)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择不同的上级部门!");
                return;
            }
            decimal parId = _info.PAR_ID;

            _info.PAR_ID = dept.ID;
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    DeptDataHelper.UpdateDept(_info);
                    this.DialogResult = DialogResult.OK;
                    this.BeginInvoke(new Action(() =>
                    {
                        this.Close();
                    }));
                }
                catch (Exception ex)
                {
                    log.Error("移动部门异常:", ex);
                    _info.PAR_ID = parId;
                    WinInfoHelper.ShowInfoWindow(this, "移动部门异常:" + ex.Message);
                }
            });

            waiting.Show(this);
        }
Example #10
0
        private void LoadDeptsTree()
        {
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    var depts = DeptDataHelper.GetDepts(false);
                    this.Invoke(new Action(() =>
                    {
                        try
                        {
                            this.cbTreeDept.Nodes.Clear();
                            var nodes = DeptDataHelper.ToTree(depts);
                            DevComponents.AdvTree.Node node = new DevComponents.AdvTree.Node("未知部门");
                            nodes.Insert(0, node);
                            this.cbTreeDept.Nodes.AddRange(nodes.ToArray());
                            foreach (DevComponents.AdvTree.Node item in this.cbTreeDept.Nodes)
                            {
                                item.Expand();
                            }
                        }
                        catch (Exception ex)
                        {
                            WinInfoHelper.ShowInfoWindow(this, "加载部门异常:" + ex.Message);
                            log.Error("加载部门异常1:", ex);
                        }
                    }));
                }
                catch (Exception exx)
                {
                    WinInfoHelper.ShowInfoWindow(this, "加载部门异常:" + exx.Message);
                    log.Error("加载部门异常2:", exx);
                }
            });

            waiting.Show(this, 300);
        }
Example #11
0
        private void Init()
        {
            dtpStart.Value = DateTime.Now.Date;
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                var depts = DeptDataHelper.GetDepts(false);
                var doors = DoorDataHelper.GetDoors();
                var areas = AreaDataHelper.GetAreas();

                this.Invoke(new Action(() =>
                {
                    var deptNodes = DeptDataHelper.ToTree(depts);
                    Node deptNone = new Node("--无--");
                    deptNodes.Insert(0, deptNone);

                    cboDeptTree.Nodes.AddRange(deptNodes.ToArray());
                    cboDeptTree.SelectedNode = deptNone;

                    foreach (Node item in cboDeptTree.Nodes)
                    {
                        item.Expand();
                    }

                    var doorNodes = DoorDataHelper.ToTree(areas, doors);

                    cboDoorTree.Nodes.AddRange(doorNodes.ToArray());

                    foreach (Node item in cboDoorTree.Nodes)
                    {
                        item.ExpandAll();
                    }
                }));
            });

            waiting.Show(this, 300);
        }
Example #12
0
        private void Init()
        {
            dtpStart.Value = DateTime.Now.Date;
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                Maticsoft.BLL.SMT_FACERECG_DEVICE faceBll = new Maticsoft.BLL.SMT_FACERECG_DEVICE();
                var depts    = DeptDataHelper.GetDepts(false);
                var facedevs = faceBll.GetModelList("");
                var areas    = AreaDataHelper.GetAreas();

                this.Invoke(new Action(() =>
                {
                    var deptNodes = DeptDataHelper.ToTree(depts);
                    Node deptNone = new Node("--无--");
                    deptNodes.Insert(0, deptNone);

                    cboDeptTree.Nodes.AddRange(deptNodes.ToArray());
                    cboDeptTree.SelectedNode = deptNone;

                    foreach (Node item in cboDeptTree.Nodes)
                    {
                        item.Expand();
                    }

                    var devNodes = FaceRecgHelper.ToFaceTree(facedevs, areas);
                    cboFaceTree.Nodes.AddRange(devNodes.ToArray());

                    foreach (Node item in cboFaceTree.Nodes)
                    {
                        item.ExpandAll();
                    }
                }));
            });

            waiting.Show(this, 300);
        }
Example #13
0
        private void DoAddDept(Maticsoft.Model.SMT_ORG_INFO orgInfo)
        {
            decimal parId = -1;

            if (orgInfo != null)
            {
                parId = orgInfo.PAR_ID;
            }
            FrmAddOrModifyDept frmDept = new FrmAddOrModifyDept(parId);

            if (frmDept.ShowDialog(this) == DialogResult.OK)
            {
                var node = DeptDataHelper.CreateNode(frmDept.OrgInfo, null);
                if (this.deptTree.Tree.SelectedNode == null || this.deptTree.Tree.SelectedNode.Parent == null)
                {
                    this.deptTree.Tree.Nodes.Add(node);
                }
                else
                {
                    this.deptTree.Tree.SelectedNode.Parent.Nodes.Add(node);
                    this.deptTree.Tree.SelectedNode.Parent.Expand();
                }
            }
        }
Example #14
0
        private void DoLoadReadPrivates()
        {
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    Maticsoft.BLL.SMT_STAFF_FACEDEV sfBll         = new Maticsoft.BLL.SMT_STAFF_FACEDEV();
                    List <Maticsoft.Model.SMT_STAFF_FACEDEV> list = sfBll.GetModelList("FACEDEV_ID in (" + string.Join(",", _selectDeviceIds) + ")");
                    var g = list.GroupBy(m => m.STAFF_ID);
                    foreach (var item in g)
                    {
                        if (item.Count() == _selectDeviceIds.Count)
                        {
                            _inprivateStaffIds.Add(item.Key);
                        }
                    }
                    if (_inprivateStaffIds.Count > 0)
                    {
                        Maticsoft.BLL.SMT_STAFF_INFO staffBll = new Maticsoft.BLL.SMT_STAFF_INFO();
                        _inprivateStaffInfos = staffBll.GetSimpleModelList("ID in (" + string.Join(",", _inprivateStaffIds.ToArray()) + ")");
                        if (_inprivateStaffInfos.Count > 0)
                        {
                            var depts = DeptDataHelper.GetDepts(false);
                            foreach (var item in _inprivateStaffInfos)
                            {
                                var dept = depts.Find(m => m.ID == item.ORG_ID);
                                if (dept != null)
                                {
                                    item.ORG_NAME = dept.ORG_NAME;
                                    item.ORG_CODE = dept.ORG_CODE;
                                }
                            }
                            this.Invoke(new Action(() =>
                            {
                                foreach (var item in _inprivateStaffInfos)
                                {
                                    DataGridViewRow row = new DataGridViewRow();
                                    row.CreateCells(dgvStaffs,
                                                    item.STAFF_NO,
                                                    item.REAL_NAME,
                                                    item.ORG_NAME + "[" + item.ORG_CODE + "]",
                                                    item.VALID_ENDTIME.ToString("yyyy-MM-dd")
                                                    );
                                    row.Tag = item;
                                    dgvSelected.Rows.Add(row);
                                    if (_selectMaxDate == null)
                                    {
                                        _selectMaxDate = item.VALID_ENDTIME;
                                    }
                                    else
                                    {
                                        if (item.VALID_ENDTIME > _selectMaxDate)
                                        {
                                            _selectMaxDate = item.VALID_ENDTIME;
                                        }
                                    }
                                }
                                if (_selectMaxDate != null)
                                {
                                    dtpEnd.Value = (DateTime)_selectMaxDate;
                                }
                            }));
                        }
                    }
                }
                catch (Exception ex)
                {
                    log.Error("加载已授权人员异常:" + ex.Message, ex);
                    WinInfoHelper.ShowInfoWindow(this, "加载已授权人员异常:" + ex.Message);
                }
            });

            waiting.Show(this);
        }
Example #15
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(tbDeptNo.Text))
            {
                WinInfoHelper.ShowInfoWindow(this, "部门编码不能为空!");
                tbDeptNo.Focus();
                return;
            }
            if (string.IsNullOrWhiteSpace(tbDeptName.Text))
            {
                WinInfoHelper.ShowInfoWindow(this, "部门名称不能为空!");
                tbDeptName.Focus();
                return;
            }
            Maticsoft.Model.SMT_ORG_INFO info = new Maticsoft.Model.SMT_ORG_INFO();
            info.ORG_CODE    = tbDeptNo.Text.Trim();
            info.ORG_NAME    = tbDeptName.Text.Trim();
            info.ORDER_VALUE = iOrder.Value;
            Maticsoft.BLL.SMT_ORG_INFO bll = new Maticsoft.BLL.SMT_ORG_INFO();
            CtrlWaiting ctrlWaiting        = new CtrlWaiting(() =>
            {
                bool ret = false;
                try
                {
                    var exitscode = bll.GetModelList("ORG_CODE='" + info.ORG_CODE + "'");

                    if (_orgInfo == null)
                    {
                        if (exitscode.Count > 0)
                        {
                            WinInfoHelper.ShowInfoWindow(this, "部门编码已存在!");
                            return;
                        }
                        // info.ORDER_VALUE = 100;
                        info.PAR_ID = _parId;
                        DeptDataHelper.AddDept(info);
                        _orgInfo = info;
                        ret      = true;
                    }
                    else
                    {
                        if (exitscode.Count > 0)
                        {
                            if (!exitscode.Exists(m => m.ID == _orgInfo.ID))
                            {
                                WinInfoHelper.ShowInfoWindow(this, "部门编码已存在!");
                                return;
                            }
                        }

                        info.ID     = _orgInfo.ID;
                        info.PAR_ID = _orgInfo.PAR_ID;
                        //info.ORDER_VALUE = _orgInfo.ORDER_VALUE;
                        if (bll.Update(info))
                        {
                            _orgInfo.ORG_CODE = info.ORG_CODE;
                            _orgInfo.ORG_NAME = info.ORG_NAME;
                            ret = true;
                        }
                        else
                        {
                            WinInfoHelper.ShowInfoWindow(this, "更新部门失败,可能部门已被删除!");
                        }
                    }
                    if (ret)
                    {
                        this.BeginInvoke(new Action(() =>
                        {
                            this.DialogResult = DialogResult.OK;
                            this.Close();
                        }));
                    }
                }
                catch (Exception ex)
                {
                    log.Error("添加或保修改部门:", ex);
                    WinInfoHelper.ShowInfoWindow(this, "添加或修改部门失败:" + ex.Message);
                }
            });

            ctrlWaiting.Show(this);
        }
Example #16
0
        private void Init()
        {
            if (_userInfo != null)
            {
                this.Text = "编辑用户";
                if (_userInfo.USER_NAME == "admin")
                {
                    tbUserName.ReadOnly = true;
                    cboRole.Enabled     = false;
                }
                tbUserName.Text  = _userInfo.USER_NAME;
                tbPwd.Text       = _userInfo.PASS_WORD;
                tbRealName.Text  = _userInfo.REAL_NAME;
                cbEnable.Checked = _userInfo.IS_ENABLE;
                tbTel.Text       = _userInfo.TELEPHONE;
                tbAddress.Text   = _userInfo.ADDRESS;
                tbEmail.Text     = _userInfo.EMAIL;
                tbQQ.Text        = _userInfo.QQ;
            }
            else
            {
                this.Text = "新建用户";
            }
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    var depts = DeptDataHelper.GetDepts(true);
                    this.Invoke(new Action(() =>
                    {
                        var nodes = DeptDataHelper.ToTree(depts);
                        cbtDept.Nodes.AddRange(nodes.ToArray());
                        foreach (DevComponents.AdvTree.Node item in cbtDept.Nodes)
                        {
                            item.ExpandAll();
                        }
                        if (_userInfo != null && _userInfo.ORG_ID != null)
                        {
                            decimal id = (decimal)_userInfo.ORG_ID;
                            if (id >= 0)
                            {
                                var node = FindNode(id);

                                if (node != null)
                                {
                                    cbtDept.SelectedNode = node;
                                }
                            }
                        }
                    }));
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "加载部门异常!" + ex.Message);
                    log.Error("加载部门异常:", ex);
                }
            });

            waiting.Show(this, 300);

            CtrlWaiting waiting1 = new CtrlWaiting(() =>
            {
                try
                {
                    Maticsoft.BLL.SMT_ROLE_INFO roleBll = new Maticsoft.BLL.SMT_ROLE_INFO();
                    var models = roleBll.GetModelList("");
                    this.Invoke(new Action(() =>
                    {
                        foreach (var item in models)
                        {
                            ComboItem cbi = new ComboItem(item.ROLE_NAME);
                            cbi.Tag       = item;
                            cboRole.Items.Add(cbi);
                            if (_userInfo != null && _userInfo.ROLE_ID != null && _userInfo.ROLE_ID == item.ID)
                            {
                                cboRole.SelectedItem = cbi;
                            }
                        }
                    }));
                }
                catch (Exception ex)
                {
                    WinInfoHelper.ShowInfoWindow(this, "加载角色异常!" + ex.Message);
                    log.Error("加载角色异常:", ex);
                }
            });

            waiting1.Show(this, 300);
        }
Example #17
0
        private void biInput_Click(object sender, EventArgs e)
        {
            //WinInfoHelper.ShowInfoWindow(this, "建设中,敬请期待!");
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    bool iscancel;
                    List <Maticsoft.Model.SMT_ORG_INFO> orgs = new List <Maticsoft.Model.SMT_ORG_INFO>();
                    ImportHelper2.ImportEx(out iscancel, 2, 1, 4, new ImportDataHandle((o, ise, row, error) =>
                    {
                        if (ise)
                        {
                            WinInfoHelper.ShowInfoWindow(this, "导入中发生行值错误,行号:" + row + " 错误:" + error);
                            return;
                        }
                        Maticsoft.Model.SMT_ORG_INFO org = new Maticsoft.Model.SMT_ORG_INFO();
                        org.ORG_CODE = o[0];
                        int ord      = 100;
                        int.TryParse(o[3], out ord);
                        org.ORDER_VALUE  = ord;
                        org.ORG_NAME     = o[2];
                        org.PAR_ORG_CODE = o[1];
                        org.PAR_ID       = -1;
                        orgs.Add(org);
                    }));
                    if (!iscancel)
                    {
                        if (orgs.Count == 0)
                        {
                            WinInfoHelper.ShowInfoWindow(this, "导入部门个数为0!");
                            return;
                        }
                        foreach (var item in orgs)
                        {
                            if (string.IsNullOrWhiteSpace(item.ORG_CODE) || string.IsNullOrWhiteSpace(item.ORG_NAME))
                            {
                                WinInfoHelper.ShowInfoWindow(this, "导入失败,存在部门编码或者名称为空!编码:" + item.ORG_CODE + ",名称:" + item.ORG_NAME + ",行号:" + orgs.IndexOf(item));
                                return;
                            }
                        }

                        foreach (var item in orgs)
                        {
                            var dept = DeptDataHelper.GetDeptByCode(item.ORG_CODE);
                            if (dept == null)
                            {
                                item.ID = DeptDataHelper.AddDept(item);//添加
                            }
                            else
                            {
                                item.ID     = dept.ID;
                                item.PAR_ID = dept.PAR_ID;
                                DeptDataHelper.UpdateDept(item);//更新
                            }
                        }
                        foreach (var item in orgs)
                        {
                            if (string.IsNullOrWhiteSpace(item.PAR_ORG_CODE))
                            {
                                continue;
                            }
                            var f = orgs.Find(m => m.ORG_CODE == item.PAR_ORG_CODE);
                            if (f == null)
                            {
                                f = DeptDataHelper.GetDeptByCode(item.PAR_ORG_CODE);
                            }
                            if (f == null)
                            {
                                if (item.PAR_ID == -1)
                                {
                                    continue;
                                }
                                item.PAR_ID = -1;
                            }
                            else
                            {
                                if (item.PAR_ID == f.ID)
                                {
                                    continue;
                                }
                                item.PAR_ID = f.ID;
                            }
                            DeptDataHelper.UpdateDept(item);
                        }
                        WinInfoHelper.ShowInfoWindow(this, "导入结束!");
                        this.Invoke(new Action(() =>
                        {
                            biRefreshDept_Click(sender, e);
                        }));
                    }
                }
                catch (Exception ex)
                {
                    log.Error("导入异常:", ex);
                    WinInfoHelper.ShowInfoWindow(this, "导入异常:" + ex.Message);
                }
            });

            waiting.Show(this);
        }