예제 #1
0
파일: Signing.cs 프로젝트: sanxchen/MntApp
        /// <summary>
        /// 同意表单
        /// </summary>
        /// <param name="formNo"></param>
        /// <param name="item"></param>
        /// <param name="empNo"></param>
        /// <returns></returns>
        public bool Agree(string formNo, int item, string empNo)
        {
            //首先确认是否有权限签核;
            if (this.GetSignDataList(empNo).All(c => c.FormNo != formNo))
            {
                return(false);
            }

            var formType = new BaseServices <Form>().LoadEntities(c => c.FormNo == formNo).First().FormType;

            //是否需要结案
            var func = formType.IsColsed ? FormExtend.SetFormFinish(formType) : new Func <string, string, int, bool>((f, e, i) => true);

            string nextEmpNo;
            string addsignEmpNo;
            bool   result = _signing.Agree(formNo, item, empNo, out nextEmpNo, out addsignEmpNo, func);


            if (!result)
            {
                return(false);
            }
            //有邮件发送
            var emailForm = new BpmBll(formNo, empNo);

            //var emailForm = new EmailForm(formNo, empNo);

            if (string.IsNullOrEmpty(nextEmpNo))
            {
                emailForm.Finlish();
            }
            else if (!string.IsNullOrEmpty(addsignEmpNo))
            {
                //是加签的
                emailForm.AddSignerAfter(nextEmpNo, (int)FormSign.DirectEnum.After);
            }
            else
            {
                var signers = new List <string> {
                    nextEmpNo
                };

                //正常下一位签核人
                emailForm.NoticeSigner(signers);
                emailForm.NoticeReplace(signers);
            }


            return(TemplateBll.SendBpm(emailForm));
        }
예제 #2
0
파일: Signing.cs 프로젝트: sanxchen/MntApp
        /// <summary>
        /// 转签表单,转签表单号,转签记录,转签至工号,转签理由,转签人
        /// </summary>
        /// <param name="formNo">转签表单号</param>
        /// <param name="item">转签记录</param>
        /// <param name="redirectempno">转签至工号</param>
        /// <param name="reason">转签理由</param>
        /// <param name="empNo">转签人</param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool IsRedirectSign(string formNo, int item, string redirectempno, string reason, string empNo, out string msg)
        {
            if (!_signing.IsRedirectSign(formNo, item, redirectempno, reason, empNo, out msg))
            {
                return(false);
            }

            //发送邮件
            var emailForm = new BpmBll(formNo, empNo);

            emailForm.RedirectSigner(redirectempno);

            TemplateBll.SendBpm(emailForm);



            return(true);
        }
예제 #3
0
파일: Signing.cs 프로젝트: sanxchen/MntApp
        /// <summary>
        /// 加签
        /// </summary>
        /// <param name="formNo">表单号</param>
        /// <param name="item">记录号</param>
        /// <param name="addempno">加签至工号</param>
        /// <param name="reason">理由</param>
        /// <param name="direction">方向,前,平,后</param>
        /// <param name="empNo">加签人</param>
        /// <returns></returns>
        public bool AddSign(string formNo, int item, string addempno, string reason, int direction, string empNo, out string msg)
        {
            msg = "加签失败";
            lock (new object())
            {
                if (!
                    new BaseServices <Form>().LoadEntities(c => c.FormNo.Equals(formNo))
                    .First()
                    .FormType.IsAdd)
                {
                    msg = "此表单不充许加签";
                    return(false);
                }

                bool result;

                switch (direction)
                {
                case -1:
                    result = _signing.IsAddSignBefore(formNo, item, addempno, reason, empNo);
                    break;

                case 0:
                    result = _signing.IsAddSignParallel(formNo, item, addempno, reason, empNo);
                    break;

                default:
                    result = _signing.IsAddSignAfter(formNo, item, addempno, reason, empNo);
                    break;
                }

                if (!result)
                {
                    return(false);
                }

                var emailForm = new BpmBll(formNo, empNo);
                emailForm.AddSigner(addempno, direction);
                TemplateBll.SendBpm(emailForm);

                msg = "加签成功";
                return(true);
            }
        }
예제 #4
0
파일: Signing.cs 프로젝트: sanxchen/MntApp
        /// <summary>
        /// 否决表单
        /// </summary>
        /// <param name="formNo"></param>
        /// <param name="item"></param>
        /// <param name="empNo"></param>
        /// <returns></returns>
        public bool Reject(string formNo, int item, string empNo)
        {
            //首先确认是否有权限签核;
            if (this.GetSignDataList(empNo).All(c => c.FormNo != formNo))
            {
                return(false);
            }

            var result = _signing.Reject(formNo, item, empNo);

            if (result)
            {
                var emailForm = new BpmBll(formNo, empNo);
                emailForm.Reject();

                TemplateBll.SendBpm(emailForm);
            }

            return(result);
        }