Beispiel #1
0
        /// <summary>
        /// 发送审批请求
        /// </summary>
        /// <param name="items"></param>
        /// <returns></returns>
        public string SendApprove(List <ApproveItem> items)
        {
            DefaultDingTalkClient            client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
            OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest();

            request.AgentId     = long.Parse(_oper.AgentID);
            request.ProcessCode = ProcessCode;
            List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>();

            items.ForEach(p =>
            {
                OapiProcessinstanceCreateRequest.FormComponentValueVoDomain vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                vo.Name     = p.Name;
                vo.Value    = p.Value;
                vo.ExtValue = p.ExtValue;
                formComponentValues.Add(vo);
            });

            request.FormComponentValues_ = formComponentValues;
            request.OriginatorUserId     = User.DdId;
            request.DeptId = JsonHelper.JsonToList <long>(User.DeptId).First();

            OapiProcessinstanceCreateResponse response = client.Execute(request, _oper.AccessToken);

            if (response.Errcode == 0)
            {
                return(response.ProcessInstanceId);
            }
            return("");
        }
Beispiel #2
0
        private void btn_Faqi_Click(object sender, EventArgs e)
        {
            //DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
            //OapiGettokenRequest request = new OapiGettokenRequest();
            //request.Appkey = "ding4pmpx3dj9azo1k7s";
            //request.Appsecret = "TYETGgC7XXsFB8hfwIg_hSB537kCJQX71O3wcrrqDYY1Gn6xwc3zBWJmfLlxp1Yc";
            //request.SetHttpMethod("GET");
            //OapiGettokenResponse response = client.Execute(request);

            //var bb = response.AccessToken;
            //MessageBox.Show(bb);

            DefaultDingTalkClient            client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
            OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest();

            request.AgentId     = 41605932L;
            request.ProcessCode = "PROC-BY6LI83V-4R8T1CHNUX58O0Z6C55M3-DTQJJGEJ-1";
            List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>();

            OapiProcessinstanceCreateRequest.FormComponentValueVoDomain vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
            vo.Name  = "武汉梓金山科技有限公司";
            vo.Value = "test";
            formComponentValues.Add(vo);
            request.FormComponentValues = "formComponentValues";
            request.Approvers           = "userid1,userid2";
            request.OriginatorUserId    = "userid1";
            request.DeptId     = -1L;
            request.CcList     = "userid1,userid2";
            request.CcPosition = "START_FINISH";
            string accessToken = AccessToken();

            OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken);

            MessageBox.Show(response.Body);



            //IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
            //SmartworkBpmsProcessinstanceCreateRequest req = new SmartworkBpmsProcessinstanceCreateRequest();
            //req.AgentId = 41605932L;
            //req.ProcessCode = "PROC-EF6YJL35P2-SCKICSB7P750S0YISYKV3-17IBLGZI-1";
            //req.OriginatorUserId = "manager432";
            //req.DeptId = 100L;
            //req.Approvers = "zhangsan,lisi";
            //req.CcList = "zhangsan,lisi";
            //req.CcPosition = "START";
            //List<SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain> list2 = new List<SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain>();
            //SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain obj3 = new SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain();
            //list2.Add(obj3);
            //obj3.Name = "请假类型";
            //obj3.Value = "事假";
            //obj3.ExtValue = "总天数:1";
            //req.FormComponentValues_ = list2;
            //SmartworkBpmsProcessinstanceCreateResponse rsp = client.Execute(req, accessToken);
            //MessageBox.Show(rsp.Body);
        }
Beispiel #3
0
        /// <summary>
        /// 发送审批实列
        /// </summary>
        /// <param name="kSCustomer">客诉</param>
        /// <param name="Token"></param>
        /// <param name="DbContext"></param>
        /// <returns></returns>
        public static OapiProcessinstanceCreateResponse SendTemplate(KS_Customer kSCustomer, int DepCode, string Userid, string Token, YiFang_CustomerComplaintEntities DbContext)
        {
            DefaultDingTalkClient            client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
            OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest();

            request.AgentId          = Allocation.AgentId;
            request.ProcessCode      = Allocation.ProcessCode;
            request.DeptId           = DepCode;
            request.OriginatorUserId = Userid;
            List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>();
            //客诉门店
            var Person = DbContext.OR_Person.FirstOrDefault(p => p.Id == kSCustomer.IdPerson);
            //一方督导
            var PersonSupervision = DbContext.OR_Person.FirstOrDefault(p => p.Id == kSCustomer.IdPersonSupervision);
            //异常归类
            var Abnormal = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == kSCustomer.AbnormalId)?.Name;
            //客诉小类名称
            var customername = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == kSCustomer.SubclassId).Name;
            //所属大区
            //var regionid = DbContext.AC_SysUsers.FirstOrDefault(k => k.UserName == Person.LoginName).ST_Store.FirstOrDefault().RegionId;
            var regionid   = 1;
            var RegionName = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == regionid)?.Name;;

            switch (kSCustomer.StateId)
            {
            case 1:
                #region 创建客诉类型为原物料的审批
                OapiProcessinstanceCreateRequest.FormComponentValueVoDomain from1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain()
                {
                    Name = "客诉类型", Value = customername
                };
                formComponentValues.Add(from1);
                var from2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from2.Name  = "客诉内容";
                from2.Value = kSCustomer.Remark + "";
                formComponentValues.Add(from2);
                var from3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from3.Name  = "客诉单号";
                from3.Value = kSCustomer.Id + "";
                formComponentValues.Add(from3);
                var from4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from4.Name  = "提交时间";
                from4.Value = kSCustomer.CreateTime + "";
                formComponentValues.Add(from4);
                var from5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from5.Name  = "异常产品";
                from5.Value = kSCustomer.ProductIdNames + "";
                formComponentValues.Add(from5);
                var from6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from6.Name  = "异常数量";
                from6.Value = kSCustomer.Number + "";
                formComponentValues.Add(from6);
                var from7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from7.Name  = "异常归类";
                from7.Value = Abnormal + "";
                formComponentValues.Add(from7);
                var from8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from8.Name  = "到货日期";
                from8.Value = kSCustomer.DeliveryDate + "";
                formComponentValues.Add(from8);
                var from9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from9.Name  = "生产批次";
                from9.Value = kSCustomer.ProductionBatch + "";
                formComponentValues.Add(from9);
                var from10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from10.Name  = "一言为订订单号";
                from10.Value = kSCustomer.OrderNumber + "";
                formComponentValues.Add(from10);
                var from11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from11.Name  = "一芳督导";
                from11.Value = PersonSupervision?.Name + "";
                formComponentValues.Add(from11);
                var from12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from12.Name  = "客诉门店";
                from12.Value = Person?.Id + "";
                formComponentValues.Add(from12);
                var from13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from13.Name  = "门店联系人";
                from13.Value = kSCustomer.StoreContact + "";
                formComponentValues.Add(from13);
                var from14 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from14.Name  = "详情";
                from14.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + "";
                formComponentValues.Add(from14);
                var from15 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                from15.Name  = "所属大区";
                from15.Value = RegionName;
                formComponentValues.Add(from15);
                #endregion
                break;

            case 2:
                #region 创建客诉类型为设备报修的审批
                var Repair1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair1.Name  = "客诉类型";
                Repair1.Value = customername;
                formComponentValues.Add(Repair1);
                var Repair2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair2.Name  = "客诉内容";
                Repair2.Value = kSCustomer.Remark + "";
                formComponentValues.Add(Repair2);
                var Repair3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair3.Name  = "客诉单号";
                Repair3.Value = kSCustomer.Id + "";
                formComponentValues.Add(Repair3);
                var Repair4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair4.Name  = "提交时间";
                Repair4.Value = "" + kSCustomer.CreateTime;
                formComponentValues.Add(Repair4);
                var Repair5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair5.Name  = "异常产品";
                Repair5.Value = "" + kSCustomer.ProductIdNames;
                formComponentValues.Add(Repair5);
                var Repair6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair6.Name  = "门店联系人";
                Repair6.Value = "" + kSCustomer.StoreContact;
                formComponentValues.Add(Repair6);
                var Repair7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair7.Name  = "门店联系人电话";
                Repair7.Value = "" + kSCustomer.StoreTel;
                formComponentValues.Add(Repair7);
                var Repair8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair8.Name  = "门店地址";
                Repair8.Value = "" + kSCustomer.StoreAddress;
                formComponentValues.Add(Repair8);
                var Repair9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair9.Name  = "一芳督导";
                Repair9.Value = "" + PersonSupervision?.Name;
                formComponentValues.Add(Repair9);
                var Repair10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair10.Name  = "详情";
                Repair10.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + "";
                formComponentValues.Add(Repair10);
                var Repair11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Repair11.Name  = "所属大区";
                Repair11.Value = RegionName;
                formComponentValues.Add(Repair11);
                #endregion
                break;

            case 3:
                #region 创建客诉类型为运营反馈的审批
                var Operate1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate1.Name  = "客诉类型";
                Operate1.Value = customername;
                formComponentValues.Add(Operate1);
                var Operate2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate2.Name  = "客诉内容";
                Operate2.Value = "" + kSCustomer.Remark;
                formComponentValues.Add(Operate2);
                var Operate3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate3.Name  = "客诉单号";
                Operate3.Value = "" + kSCustomer.Id;
                formComponentValues.Add(Operate3);
                var Operate4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate4.Name  = "提交时间";
                Operate4.Value = "" + kSCustomer.CreateTime;
                formComponentValues.Add(Operate4);
                var Operate5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate5.Name  = "异常产品";
                Operate5.Value = "" + kSCustomer.ProductIdNames;
                formComponentValues.Add(Operate5);
                var Operate6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate6.Name  = "联系人";
                Operate6.Value = "" + kSCustomer.StoreContact;
                formComponentValues.Add(Operate6);
                var Operate7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate7.Name  = "联系电话";
                Operate7.Value = "" + kSCustomer.StoreTel;
                formComponentValues.Add(Operate7);
                var Operate8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate8.Name  = "邮箱";
                Operate8.Value = "" + kSCustomer.StoreEmail;
                formComponentValues.Add(Operate8);
                var Operate9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate9.Name  = "客诉门店";
                Operate9.Value = "" + kSCustomer.Id;
                formComponentValues.Add(Operate9);
                var Operate10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate10.Name  = "门店联系人";
                Operate10.Value = "" + Person?.Name;
                formComponentValues.Add(Operate10);
                var Operate11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate11.Name  = "门店联系人电话";
                Operate11.Value = "" + Person?.PsnMobilePhone;
                formComponentValues.Add(Operate11);
                var Operate12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate12.Name  = "详情";
                Operate12.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + "";
                formComponentValues.Add(Operate12);
                var Operate13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Operate13.Name  = "所属大区";
                Operate13.Value = RegionName;
                formComponentValues.Add(Operate13);
                #endregion
                break;

            case 4:
                #region 创建客诉类型为其他反馈的审批
                var Other1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other1.Name  = "客诉类型";
                Other1.Value = customername;
                formComponentValues.Add(Other1);
                var Other2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other2.Name  = "客诉内容";
                Other2.Value = "" + kSCustomer.Remark;
                formComponentValues.Add(Other2);
                var Other3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other3.Name  = "客诉单号";
                Other3.Value = "" + kSCustomer.Id;
                formComponentValues.Add(Other3);
                var Other4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other4.Name  = "提交时间";
                Other4.Value = "" + kSCustomer.CreateTime;
                formComponentValues.Add(Other4);
                var Other5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other5.Name  = "联系人";
                Other5.Value = "" + kSCustomer.StoreContact;
                formComponentValues.Add(Other5);
                var Other6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other6.Name  = "联系电话";
                Other6.Value = "" + kSCustomer.StoreTel;
                formComponentValues.Add(Other6);
                var Other7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other7.Name  = "邮箱";
                Other7.Value = "" + kSCustomer.StoreEmail;
                formComponentValues.Add(Other7);
                var Other8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other8.Name  = "一芳督导";
                Other8.Value = "" + PersonSupervision?.Name;
                formComponentValues.Add(Other8);
                var Other9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other9.Name  = "客诉门店";
                Other9.Value = "" + Person?.Id;
                formComponentValues.Add(Other9);
                var Other10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other10.Name  = "门店联系电话";
                Other10.Value = "" + Person?.PsnMobilePhone;
                formComponentValues.Add(Other10);
                var Other11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other11.Name  = "门店联系人";
                Other11.Value = "" + Person?.Name;
                formComponentValues.Add(Other11);
                var Other12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other12.Name  = "详情";
                Other12.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + "";
                formComponentValues.Add(Other12);
                var Other13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();
                Other13.Name  = "所属大区";
                Other13.Value = RegionName;
                formComponentValues.Add(Other13);
                #endregion
                break;
            }
            //生成图片至钉钉
            //获取当前访问ip信息
            string url         = HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""); //服务器协议+域名+端口
            var    attachments = DbContext.BA_Attachment.Where(k => k.SourceId == kSCustomer.Id && k.CodeBusinessType == "KS01").Select(k => "\"" + url + k.FileAccess + "\"").ToList();
            if (attachments.Count() > 0)
            {
                formComponentValues.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain()
                {
                    Name = "图片", Value = $"[{string.Join(",", attachments)}]"
                });
            }

            request.FormComponentValues_ = formComponentValues;
            OapiProcessinstanceCreateResponse response = client.Execute(request, Token);
            return(response);
        }
Beispiel #4
0
        /// <summary>
        /// 发起审批实例
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="processinstance">审批示例表单</param>
        /// <param name="form"></param>
        /// <returns></returns>
        public static string Create(string accessToken, Processinstance processinstance)
        {
            try
            {
                DefaultDingTalkClient            client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
                OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest();
                //request.AgentId = 41605932L;                              //企业应用标识(ISV调用必须设置)
                request.ProcessCode = processinstance.ProcessCode;          //审批流的唯一码,process_code就在审批流编辑的页面URL中:"PROC-BY6LI83V-4R8T1CHNUX58O0Z6C55M3-DTQJJGEJ-1"
                List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>();
                OapiProcessinstanceCreateRequest.FormComponentValueVoDomain        vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain();

                foreach (FormComponentValue item  in processinstance.FormComponentValues)
                {
                    switch (item.FieldType)
                    {
                    case FormField.singletext:
                    case FormField.multipletext:
                        vo.Name  = item.Name;
                        vo.Value = item.Value.ToString();
                        formComponentValues.Add(vo);
                        break;

                    case FormField.image:
                        vo.Name  = item.Name;
                        vo.Value = item.Value.ToString();
                        formComponentValues.Add(vo);
                        break;

                    case FormField.attach:
                        vo.Name  = item.Name;
                        vo.Value = item.Value.ToString();
                        formComponentValues.Add(vo);
                        break;

                    case FormField.detail:
                        vo.Name = item.Name;
                        var data = item.Value.ToString();
                        formComponentValues.Add(vo);
                        break;
                    }
                }

                request.FormComponentValues_ = formComponentValues;
                request.Approvers            = processinstance.Approvers;           //审批人userid列表,最大列表长度:20。多个审批人用逗号分隔,按传入的顺序依次审批
                request.OriginatorUserId     = processinstance.OriginatorUserId;    //审批实例发起人的userid
                request.DeptId     = processinstance.OriginatorDeptId;              //发起人所在的部门,如果发起人属于根部门,传-1
                request.CcList     = Utils.List2String(processinstance.CcUserids);  //(可选)抄送人userid列表,最大列表长度:20。多个抄送人用逗号分隔
                request.CcPosition = processinstance.CcPosition;                    //(可选)抄送时间,分为(START, FINISH, START_FINISH)
                OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken);
                if (response.Errcode == 0)
                {
                    return(response.ProcessInstanceId);
                }
                else
                {
                    throw new Exception(response.Errcode.ToString());
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }