Beispiel #1
0
        /// <summary>
        /// 部门创建
        /// </summary>
        /// <returns></returns>
        public static OapiDepartmentCreateResponse CreateDep(OapiDepartmentCreateRequest deptinfo)
        {
            DefaultDingTalkClient        client   = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/create");
            OapiDepartmentCreateResponse response = client.Execute(deptinfo, AccessToken);

            return(response);
        }
        /// <summary>
        /// 创建部门
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="department">部门信息</param>
        /// <returns></returns>
        public static bool CreateDepartment(string accessToken, DepartmentInfo department)
        {
            try
            {
                IDingTalkClient             client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/create");
                OapiDepartmentCreateRequest request = new OapiDepartmentCreateRequest();
                request.Parentid         = department.Parentid;
                request.CreateDeptGroup  = department.CreateDeptGroup;
                request.Order            = department.Order;
                request.Name             = department.Name;
                request.OuterDept        = department.OuterDept;
                request.OuterPermitDepts = department.OuterPermitDepts;
                request.OuterPermitUsers = department.OuterPermitUsers;
                OapiDepartmentCreateResponse response = client.Execute(request, accessToken);

                if (response != null)
                {
                    if (response.Errcode == 0)
                    {
                        return(true);
                    }
                    else
                    {
                        throw new Exception(response.ErrMsg);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(false);
        }
Beispiel #3
0
 /// <summary>
 /// 执行创建和更新部门
 /// </summary>
 /// <param name="dt"></param>
 /// <param name="deptlist"></param>
 public static void CreateUpdateDep(DataTable dt, List <OapiDepartmentListResponse.DepartmentDomain> deptlist)
 {
     for (int i = 0; i < dt.Rows.Count; i++)
     {
         long   DDID       = Convert.ToInt32(dt.Rows[i]["DDID"]);        //部门ID
         string Parentid   = Convert.ToString(dt.Rows[i]["ParentOUID"]); //父级部门ID
         string Name       = Convert.ToString(dt.Rows[i]["OUName"]);     //部门名称
         string Order      = Convert.ToString(dt.Rows[i]["OrderIndex"]); //排序
         int    OUID       = Convert.ToInt32(dt.Rows[i]["OUID"]);        //部门ID
         string ddParentid = GETParentID(Parentid);
         if (deptlist != null)
         {
             List <OapiDepartmentListResponse.DepartmentDomain> newlist = deptlist.Where(x => x.Id == DDID).ToList();
             if (newlist != null)//存在执行更新
             {
                 OapiDepartmentUpdateRequest DeptInfo = new OapiDepartmentUpdateRequest();
                 DeptInfo.Id       = DDID;
                 DeptInfo.Parentid = ddParentid;
                 DeptInfo.Name     = Name;
                 DeptInfo.Order    = Order;
                 OapiDepartmentUpdateResponse response = UpdateDep(DeptInfo);
                 if (response.Errcode == 0)
                 {
                     Res("执行更新部门成功:部门名称->" + Name + ",部门ID->" + OUID + "");
                 }
                 else
                 {
                     Res("执行更新部门失败:部门名称->" + Name + ",部门ID->" + OUID + ",原因:" + response.Errmsg + "");
                 }
             }
         }
         else//不存在执行创建
         {
             OapiDepartmentCreateRequest DeptInfo = new OapiDepartmentCreateRequest();
             DeptInfo.Parentid = ddParentid;
             DeptInfo.Name     = Name;
             DeptInfo.Order    = Order;
             OapiDepartmentCreateResponse response = CreateDep(DeptInfo);
             if (response.Errcode == 0)
             {
                 Res("执行创建部门成功:部门名称->" + Name + ",部门ID->" + OUID + "");
                 BPM2DD(OUID, response.Id);
             }
             else
             {
                 Res("执行创建部门失败:部门名称->" + Name + ",部门ID->" + OUID + ",原因:" + response.Errmsg + "");
             }
         }
     }
 }
Beispiel #4
0
        /// <summary>
        /// 创建部门
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="name">部门名称,长度限制为1~64个字符,不允许包含字符‘-’‘,’以及‘,’</param>
        /// <param name="parentId">父部门id,根部门id为1</param>
        /// <param name="order">在父部门中的排序值,order值小的排序靠前</param>
        /// <param name="createDeptGroup">是否创建一个关联此部门的企业群,默认为false</param>
        /// <param name="deptHiding">是否隐藏部门, true表示隐藏 false表示显示</param>
        /// <param name="deptPermits">可以查看指定隐藏部门的其他部门列表,如果部门隐藏,则此值生效,取值为其他的部门id组成的字符串,使用“|”符号进行分割。总数不能超过200</param>
        /// <param name="userPermits">可以查看指定隐藏部门的其他人员列表,如果部门隐藏,则此值生效,取值为其他的人员userid组成的的字符串,使用“|”符号进行分割。总数不能超过200</param>
        /// <param name="outerDept">限制本部门成员查看通讯录,限制开启后,本部门成员只能看到限定范围内的通讯录。true表示限制开启</param>
        /// <param name="outerPermitDepts">outerDept为true时,可以配置额外可见部门,值为部门id组成的的字符串,使用“|”符号进行分割。总数不能超过200</param>
        /// <param name="outerPermitUsers">outerDept为true时,可以配置额外可见人员,值为userid组成的的字符串,使用“|”符号进行分割。总数不能超过200</param>
        /// <param name="outerDeptOnlySelf">outerDept为true时,可以配置该字段,为true时,表示只能看到所在部门及下级部门通讯录</param>
        /// <param name="sourceIdentifier">部门标识字段,开发者可用该字段来唯一标识一个部门,并与钉钉外部通讯录里的部门做映射</param>
        /// <returns></returns>
        public OapiDepartmentCreateResponse Create(string accessToken, string name, string parentId, string order = "", bool createDeptGroup = false, bool deptHiding = false, string deptPermits = "", string userPermits = "", bool outerDept = false, string outerPermitDepts = "", string outerPermitUsers = "", bool outerDeptOnlySelf = false, string sourceIdentifier = "")
        {
            IDingTalkClient             client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/create");
            OapiDepartmentCreateRequest request = new OapiDepartmentCreateRequest();

            request.Parentid          = parentId;
            request.Order             = order;
            request.CreateDeptGroup   = createDeptGroup;
            request.Name              = name;
            request.DeptHiding        = deptHiding;
            request.DeptPermits       = deptPermits;
            request.UserPermits       = userPermits;
            request.OuterDept         = outerDept;
            request.OuterPermitDepts  = outerPermitDepts;
            request.OuterPermitUsers  = outerPermitUsers;
            request.OuterDeptOnlySelf = outerDeptOnlySelf;
            request.SourceIdentifier  = sourceIdentifier;
            OapiDepartmentCreateResponse response = client.Execute(request, accessToken);

            return(response);
        }