Ejemplo n.º 1
0
        private void toolDel_Click(object sender, EventArgs e)
        {
            //删除,判断部门是否已使用,在inv_evi 单据的 areaid 字段
            //删除
            if (!IsSaved) //编辑状态
            {
                if (textBox1.Text.ToString() == "")
                {
                    MessageBox.Show("请选择要删除的部门");
                }
                else
                {
                    string sSql = "select top 1 id from person where deptid='" + textBox1.Text.ToString() + "'";

                    int i = DbHelperSQL.ExecuteSql(sSql);
                    if (i > 0)
                    {
                        MessageBox.Show("部门已在person【人员】表中使用,不能删除!");
                    }
                    else
                    {
                        var atr = new Dept
                        {
                            id = textBox0.Text.ToInt(),

                            DeptID   = textBox1.Text.ToString(),
                            DeptName = textBox2.Text.ToString(),
                        };
                        atr.Delete();
                        MessageBox.Show("删除成功!");
                    }
                }
            }//编辑状态
            else
            {
                MessageBox.Show("编辑状态不允许删除");
            }
        }
Ejemplo n.º 2
0
        protected void cmdUpdate_Click(object sender, EventArgs e)
        {
            Message msg  = new Message(g_user_id, g_lang);
            Dept    dept = new Dept(g_user_id, g_lang);

            dept.dept_cd = txtDepartment.Text.ToUpper();

            //if (hdnUpdMode.Value == "3")
            //{
            //    DataSet ds = new DataSet();
            //    ds = management.GetUserListByManagement();
            //    if (ds.Tables[0].Rows.Count > 0)
            //    {
            //        lblMsg.Text = msg.GetMessage("ROLE_DEL_ERR");
            //        lblMsg.ForeColor = Color.Red;
            //        return;
            //    }
            //}

            //必須項目のチェック
            if (txtDeptName.Text == "")
            {
                lblMsg.Text      = msg.GetMessage("INPUT_MANDATORY_ERR") + "(" + flblDeptName.Text + ")";
                lblMsg.ForeColor = Color.Red;
                return;
            }

            ComLibrary com = new ComLibrary();

            // ロールマスタを更新
            // 画面から項目を編集
            dept.dept_cd     = txtDepartment.Text;
            dept.dept_desc   = txtDeptName.Text;
            dept.dept_desc2  = txtDeptDesc.Text;
            dept.chg_user_id = g_user_id;
            //role.chg_pgm = "MstRoleMnt";

            int rtn = 0;

            switch (hdnUpdMode.Value)
            {
            case "1":       // Insert
                rtn = dept.Insert();
                break;

            case "2":       // Update
                rtn = dept.Update();
                break;

            case "3":       // Delete
                rtn = dept.Delete();
                break;
            }
            if (rtn == ComConst.FAILED)
            {
                lblMsg.Text      = dept.strErr;
                lblMsg.ForeColor = Color.Red;
                return;
            }

            lblMsg.Text      = msg.GetMessage("NORMAL_UPDATE");
            lblMsg.ForeColor = Color.Blue;
            if (hdnUpdMode.Value == "3")
            {
                Clear_Screen(1);
            }
            hdnInputMode.Value = "0";
            Screen_Control(hdnUpdMode.Value);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 增量同步组织结构
        /// </summary>
        /// <returns></returns>
        public string AnsyIncrementOrgToGPM()
        {
            string access_token = getAccessToken();
            string url          = "https://oapi.dingtalk.com/department/list?access_token=" + access_token;

            try
            {
                StringBuilder   append         = new StringBuilder();
                string          str            = new HttpWebResponseUtility().HttpResponseGet(url);
                DepartMent_List departMentList = FormatToJson.ParseFromJson <DepartMent_List>(str);
                if (departMentList == null || departMentList.department == null || departMentList.department.Count == 0)
                {
                    return("钉钉获取部门出错。");
                }

                #region 获取钉钉组织结构,进行更新与新增
                //增加跟部门
                int  deptIdx     = 0;
                bool doSomeThing = false;
                //部门信息
                foreach (DepartMentDetailInfo deptMentInfo in departMentList.department)
                {
                    deptIdx++;
                    doSomeThing = false;
                    //增加部门,排除根目录
                    if (deptMentInfo.id != "1")
                    {
                        Dept dept = new Dept();
                        if (dept.IsExit(DeptAttr.No, deptMentInfo.id) == true)
                        {
                            if (dept.No == deptMentInfo.id && !dept.Name.Equals(deptMentInfo.name))
                            {
                                doSomeThing = true;
                                append.Append("\r\n部门名称发生变化:" + dept.Name + " --> " + deptMentInfo.name);
                            }
                            if (!dept.ParentNo.Equals(deptMentInfo.parentid))
                            {
                                doSomeThing = true;
                                append.Append("\r\n部门父级发生变化:" + dept.ParentNo + " --> " + deptMentInfo.parentid);
                            }
                            //有变化,更新
                            if (doSomeThing == true)
                            {
                                dept.No       = deptMentInfo.id;
                                dept.Name     = deptMentInfo.name;
                                dept.ParentNo = deptMentInfo.parentid;
                                dept.DirectUpdate();
                            }
                        }
                        else
                        {
                            //不存在则新增
                            dept.No       = deptMentInfo.id;
                            dept.Name     = deptMentInfo.name;
                            dept.ParentNo = deptMentInfo.parentid;
                            dept.DirectInsert();
                            append.Append("\r\n新增部门:" + deptMentInfo.id + " - " + deptMentInfo.name);
                        }
                    }
                    //部门人员
                    DepartMentUser_List userList = GenerDeptUser_List(access_token, deptMentInfo.id);
                    if (userList != null)
                    {
                        foreach (DepartMentUserInfo userInfo in userList.userlist)
                        {
                            Emp emp = new Emp();
                            emp.No = userInfo.userid;

                            DeptEmp deptEmp = new DeptEmp();
                            //如果账户存在则人员信息不添加,添加关联表
                            if (emp.RetrieveFromDBSources() > 0)
                            {
                                if (!emp.Name.Equals(userInfo.name))
                                {
                                    emp.Name = userInfo.name;
                                    emp.DirectUpdate();
                                    append.Append("\r\n人员名称发生变化:" + emp.Name + " --> " + userInfo.name);
                                }

                                deptEmp.MyPK = deptMentInfo.id + "_" + emp.No;
                                if (deptEmp.RetrieveFromDBSources() > 0)
                                {
                                    continue;
                                }

                                //增加人员归属部门
                                deptEmp.FK_Dept = deptMentInfo.id;
                                deptEmp.FK_Emp  = emp.No;
                                deptEmp.DirectInsert();
                                append.Append("\r\n增加人员归属部门:" + emp.Name + " - " + deptMentInfo.name);
                                continue;
                            }

                            //增加人员
                            emp.No      = userInfo.userid;
                            emp.Name    = userInfo.name;
                            emp.FK_Dept = deptMentInfo.id;
                            emp.Tel     = userInfo.mobile;
                            emp.Email   = userInfo.email;
                            //emp.Idx = DataType.IsNullOrEmpty(userInfo.order) == true ? 0 : Int32.Parse(userInfo.order);
                            emp.DirectInsert();
                            append.Append("\r\n增加人员:" + emp.Name + "  所属部门:" + deptMentInfo.name);

                            //增加人员与部门对应表
                            deptEmp.MyPK    = deptMentInfo.id + "_" + emp.No;
                            deptEmp.FK_Dept = deptMentInfo.id;
                            deptEmp.FK_Emp  = emp.No;
                            deptEmp.DirectInsert();
                        }
                    }
                }
                #endregion

                #region GPM组织结构,在钉钉不存在进行删除部门与人员关系表,人员表不进行删除,删除业务人员表WF_Emp
                Depts gpm_Depts = new Depts();
                gpm_Depts.RetrieveAllFromDBSource();
                foreach (Dept gpm_Dept in gpm_Depts)
                {
                    bool isHave = false;
                    foreach (DepartMentDetailInfo ding_Dept in departMentList.department)
                    {
                        if (gpm_Dept.No.Equals(ding_Dept.id))
                        {
                            isHave = true;
                            break;
                        }
                    }

                    //部门在钉钉不存在则进行删除:部门表、部门人员、部门人员岗位、部门职位、部门岗位
                    if (isHave == false)
                    {
                        //部门岗位
                        DeptStation deptStation  = new DeptStation();
                        int         iDeptStation = deptStation.Delete(DeptStationAttr.FK_Dept, gpm_Dept.No);

                        //部门人员岗位
                        DeptEmpStation deptEmpStation  = new DeptEmpStation();
                        int            iDeptEmpStation = deptEmpStation.Delete(DeptEmpStationAttr.FK_Dept, gpm_Dept.No);
                        //部门人员
                        DeptEmp deptEmp  = new DeptEmp();
                        int     iDeptEmp = deptEmp.Delete(DeptEmpAttr.FK_Dept, gpm_Dept.No);
                        //部门表
                        Dept dt = new Dept(gpm_Dept.No);
                        dt.Delete();
                        append.Append("\r\n删除部门:" + gpm_Dept.Name + " 部门全路径:" + gpm_Dept.NameOfPath);
                        append.Append("\r\n        部门岗位 " + iDeptStation + " 条记录");
                        append.Append("\r\n        部门人员岗位 " + iDeptEmpStation + " 条记录");
                        append.Append("\r\n        部门人员 " + iDeptEmp + " 条记录");
                    }
                    else
                    {
                        //组织结构人员
                        DeptEmps    deptEmps = new DeptEmps();
                        QueryObject obj      = new QueryObject(deptEmps);
                        obj.AddWhere(DeptEmpAttr.FK_Dept, gpm_Dept.No);
                        obj.addAnd();
                        obj.AddWhereNotIn(DeptEmpAttr.FK_Emp, "'admin'");
                        obj.DoQuery();

                        //部门下没有人员不需要处理
                        if (deptEmps == null || deptEmps.Count == 0)
                        {
                            continue;
                        }

                        //钉钉部门人员
                        DepartMentUser_List userList = GenerDeptUser_List(access_token, gpm_Dept.No);
                        //部门下没有人员,清除部门下的所有人员
                        if (userList == null || userList.userlist.Count == 0)
                        {
                            append.Append("\r\n删除部门下的人员,部门:" + gpm_Dept.Name + " 部门全路径:" + gpm_Dept.NameOfPath);
                            foreach (DeptEmp dt in deptEmps)
                            {
                                dt.Delete();
                                Emp ep = new Emp();
                                ep.No = dt.FK_Emp;
                                ep.RetrieveFromDBSources();
                                append.Append("\r\n        人员编号:" + dt.FK_Emp + " 姓名:" + ep.Name);
                            }
                            continue;
                        }

                        //判断部门下的人员是否存在
                        foreach (DeptEmp deptEmp in deptEmps)
                        {
                            isHave = false;
                            foreach (DepartMentUserInfo userInfo in userList.userlist)
                            {
                                if (deptEmp.FK_Emp.Equals(userInfo.userid))
                                {
                                    isHave = true;
                                    break;
                                }
                            }

                            //不存在,删除
                            if (isHave == false)
                            {
                                deptEmp.Delete();
                                Emp ep = new Emp();
                                ep.No = deptEmp.FK_Emp;
                                ep.RetrieveFromDBSources();
                                append.Append("\r\n删除部门下的人员,部门:" + gpm_Dept.Name + " 部门全路径:" + gpm_Dept.NameOfPath);
                                append.Append("\r\n        人员编号:" + deptEmp.FK_Emp + " 姓名:" + ep.Name);
                            }
                        }
                    }
                }
                //删除没包含在部门的人员

                #endregion

                #region 处理部门名称全程
                //OrgInit_NameOfPath nameOfPath = new OrgInit_NameOfPath();
                //if (nameOfPath.IsCanDo)
                //    nameOfPath.Do();
                #endregion
                return(append.ToString());
            }
            catch (Exception ex)
            {
                BP.DA.Log.DefaultLogWriteLineError(ex.Message);
            }
            return(null);
        }