예제 #1
0
 public AuditTrail(Guid transactionId, DateTime timestamp, string applicationId, AuditOperation operation, string user, string origin, string objectId, object @object, IEnumerable <string> namesOfPropertiesToIgnore = null)
 {
     Id            = Guid.NewGuid();
     TransactionId = transactionId;
     Timestamp     = timestamp;
     ApplicationId = !string.IsNullOrWhiteSpace(applicationId)
         ? applicationId
         : throw new ArgumentNullException(nameof(applicationId));
     Operation = operation.ToString();
     User      = !string.IsNullOrWhiteSpace(user)
         ? user
         : throw new ArgumentNullException(nameof(user));
     Origin         = origin;
     ObjectAssembly = @object?.GetType().FullName
                      ?? throw new ArgumentNullException(nameof(@object));
     ObjectId = !string.IsNullOrWhiteSpace(objectId)
         ? objectId
         : throw new ArgumentNullException(nameof(objectId));
     ObjectSerial = operation == AuditOperation.Create || operation == AuditOperation.Update
         ? JsonConvert.SerializeObject(@object, @object.GetType(), new GeneralJsonSerializerSettings().IgnoreProperties(@object.GetType(), namesOfPropertiesToIgnore))
         : string.Empty;
 }
예제 #2
0
        protected virtual void InnerHandIn(AuditOperation auditOperation, AuditAction action)
        {
            string op = auditOperation.ToString();
            string tmpnextStateCode = IsEndAudit ? "EndFlow" : NextStateCode; //EndFlow

            SubmitFlag AuditSubmitFlag = op.ToUpper() == "ADD" ? SubmitFlag.New : SubmitFlag.Approval;
            #region beyond
            switch (auditOperation)
            {
                case AuditOperation.Add:
                    AuditSubmitFlag = SubmitFlag.New;
                    break;
                case AuditOperation.Update:
                    AuditSubmitFlag = SubmitFlag.Approval;
                    break;
                case AuditOperation.Cancel:
                    AuditSubmitFlag = SubmitFlag.Cancel;
                    break;
                default:
                    break;

            }
            AuditSubmitData.DictCounterUser = this.DictCounterUser;
            if (AuditSubmitFlag == SubmitFlag.New)
            {
                AuditSubmitData.XML = XmlObject;
            }


            #endregion

            AuditSubmitData.FormID = AuditEntity.FormID;
            AuditSubmitData.ModelCode = AuditEntity.ModelCode;
            AuditSubmitData.ApprovalUser = new UserInfo();
            AuditSubmitData.ApprovalUser.CompanyID = AuditEntity.CreateCompanyID;

            AuditSubmitData.ApprovalUser.DepartmentID = AuditEntity.CreateDepartmentID;
            AuditSubmitData.ApprovalUser.PostID = AuditEntity.CreatePostID;
            AuditSubmitData.ApprovalUser.UserID = AuditEntity.CreateUserID;
            AuditSubmitData.ApprovalUser.UserName = AuditEntity.CreateUserName;
            AuditSubmitData.ApprovalContent = AuditRemark;
            AuditSubmitData.NextStateCode = tmpnextStateCode;
            AuditSubmitData.NextApprovalUser = new UserInfo();
            AuditSubmitData.NextApprovalUser.CompanyID = NextCompanyID;
            AuditSubmitData.NextApprovalUser.DepartmentID = NextDepartmentID;
            AuditSubmitData.NextApprovalUser.PostID = NextPostID;
            AuditSubmitData.NextApprovalUser.UserID = NextUserID;
            AuditSubmitData.NextApprovalUser.UserName = NextUserName;
            AuditSubmitData.SubmitFlag = AuditSubmitFlag;
            //AuditSubmitData.XML = XmlObject;

            AuditSubmitData.FlowSelectType = IsFixedFlow ? FlowSelectType.FixedFlow : FlowSelectType.FreeFlow;

            if (!IsFixedFlow && ckbIsEndAudit.IsChecked.Value != true && action != AuditAction.Fail)
            {
                if (string.IsNullOrEmpty(this.txtAuditId.Text))
                {
                    //ComfirmWindow.ConfirmationBox("","请选择下一审核人" , Utility.GetResourceStr("CONFIRMBUTTON"));
                    DataResult dataResult = new DataResult();
                    dataResult.FlowResult = FlowResult.FAIL;
                    dataResult.Err = "请选择下一审核人";
                    //AuditEventArgs args = new AuditEventArgs(AuditEventArgs.AuditResult.Error, dataResult);
                    //args.StartDate = this.AuditEntity.StartDate;
                    //args.EndDate = System.DateTime.Now;
                    this.DoAuditResult(dataResult);
                    //this.CloseProcess();
                    return;
                }
                else if (this.txtAuditId.Text == SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID)
                {
                    DataResult dataResult = new DataResult();
                    dataResult.FlowResult = FlowResult.FAIL;
                    dataResult.Err = "不能提交给自己";
                    //AuditEventArgs args = new AuditEventArgs(AuditEventArgs.AuditResult.Error, dataResult);
                    //args.StartDate = this.AuditEntity.StartDate;
                    //args.EndDate = System.DateTime.Now;
                    this.DoAuditResult(dataResult);
                    //this.CloseProcess();
                    return;
                }
            }

            if (AuditSubmitData.FlowType == null)
                AuditSubmitData.FlowType = FlowType.Approval;

            if (AuditSubmitFlag == SubmitFlag.Approval)
            {
                AuditSubmitData.ApprovalUser.CompanyID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                AuditSubmitData.ApprovalUser.DepartmentID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                AuditSubmitData.ApprovalUser.PostID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
                AuditSubmitData.ApprovalUser.UserID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                AuditSubmitData.ApprovalUser.UserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
            }
            //提交人(只帮别人提单的时候起作用,区分单据所属人)
            AuditSubmitData.SumbitCompanyID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
            AuditSubmitData.SumbitDeparmentID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
            AuditSubmitData.SumbitPostID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
            AuditSubmitData.SumbitUserID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
            AuditSubmitData.SumbitUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
            //end /提交人(只帮别人提单的时候起作用,区分单据所属人)
            AuditSubmitData.ApprovalResult = (ApprovalResult)((int)action);// SMTWFTest.WcfFlowService.ApprovalResult.Pass;
            AuditService.SubimtFlowAsync(AuditSubmitData);
            RetSubmit = false;
            // beyond 记录日志
            //submitStartTime = DateTime.Now;
        }
예제 #3
0
        protected virtual void InnerHandInOld(AuditOperation auditOperation, AuditAction action)
        {
            string op = auditOperation.ToString();
            string tmpnextStateCode = IsEndAudit ? "EndFlow" : NextStateCode; //EndFlow

            SubmitFlag AuditSubmitFlag = op.ToUpper() == "ADD" ? SubmitFlag.New : SubmitFlag.Approval;

            AuditSubmitData.FormID = AuditEntity.FormID;
            AuditSubmitData.ModelCode = AuditEntity.ModelCode;
            AuditSubmitData.ApprovalUser = new UserInfo();
            AuditSubmitData.ApprovalUser.CompanyID = AuditEntity.CreateCompanyID;

            AuditSubmitData.ApprovalUser.DepartmentID = AuditEntity.CreateDepartmentID;
            AuditSubmitData.ApprovalUser.PostID = AuditEntity.CreatePostID;
            AuditSubmitData.ApprovalUser.UserID = AuditEntity.CreateUserID;
            AuditSubmitData.ApprovalUser.UserName = AuditEntity.CreateUserName;
            AuditSubmitData.ApprovalContent = AuditRemark;
            AuditSubmitData.NextStateCode = tmpnextStateCode;
            AuditSubmitData.NextApprovalUser = new UserInfo();
            AuditSubmitData.NextApprovalUser.CompanyID = NextCompanyID;
            AuditSubmitData.NextApprovalUser.DepartmentID = NextDepartmentID;
            AuditSubmitData.NextApprovalUser.PostID = NextPostID;
            AuditSubmitData.NextApprovalUser.UserID = NextUserID;
            AuditSubmitData.NextApprovalUser.UserName = NextUserName;
            AuditSubmitData.SubmitFlag = AuditSubmitFlag;
            AuditSubmitData.XML = XmlObject;
            AuditSubmitData.FlowSelectType = IsFixedFlow ? FlowSelectType.FixedFlow : FlowSelectType.FreeFlow;

            if (AuditSubmitData.FlowType == null)
                AuditSubmitData.FlowType = FlowType.Approval;

            if (AuditSubmitFlag == SubmitFlag.Approval)
            {
                AuditSubmitData.ApprovalUser.CompanyID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                AuditSubmitData.ApprovalUser.DepartmentID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                AuditSubmitData.ApprovalUser.PostID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
                AuditSubmitData.ApprovalUser.UserID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                AuditSubmitData.ApprovalUser.UserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
            }
            //提交人(只帮别人提单的时候起作用,区分单据所属人)
            AuditSubmitData.SumbitCompanyID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
            AuditSubmitData.SumbitDeparmentID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
            AuditSubmitData.SumbitPostID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
            AuditSubmitData.SumbitUserID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
            AuditSubmitData.SumbitUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
            //end /提交人(只帮别人提单的时候起作用,区分单据所属人)

            AuditSubmitData.ApprovalResult = (ApprovalResult)((int)action);// SMTWFTest.WcfFlowService.ApprovalResult.Pass;
            AuditService.SubimtFlowAsync(AuditSubmitData);
        }
예제 #4
0
        protected void HandIn(AuditOperation auditOperation, AuditAction action)
        {
            try
            {
                CanAudit(false);
                #region 参数信息
                /*
           FormID	string	业务表单ID	必填
           FlowGUID	string	待审批流程GUID	Status为Add时不填, Status为Update时必填
           ModelCode	string	模块代码	必填
           CompanyID	string	公司代码	必填
           PostID	string	岗位ID	必填
           CreateUserID	string	创建用户ID	必填
           CreateUserName	string	创建用户名称	必填
           NextStateCode	string	自定义流程代码	可选
           AppUserId	string	下一步骤人ID	必填
           AppUserName	string	下一步骤人名称	必填
           Content	string	审批意见内容	Status为Add时不填
           Status为Update时必填
           AppOpt	string	审批意见(0-不同意,1-同意)	Status为Add时不填
           Status为Update时必填 Status	string	操作标志:Add-增加,Update-审批]	必填

            */
                #endregion

                currAuditOperation = auditOperation;
                curAuditAction = action;

                currentAction = action;
                AuditRemark = this.txRemark.Text;

                string op = auditOperation.ToString();

                if (string.IsNullOrEmpty(AuditRemark))
                {
                    if (auditOperation == AuditOperation.Update)
                    {
                        AuditRemark = action == AuditAction.Fail ? Utility.GetResourceStr("AUDITNOPASS") : Utility.GetResourceStr("AUDITPASS");
                    }
                    else
                    {
                        AuditRemark = Utility.GetResourceStr("SUBMITAUDIT");
                    }
                }
                // 审核前的事件
                if (!OnAuditing(auditOperation, action))
                {
                    return;
                }
                if (!AuditCheck())
                {
                    return;
                }
                this.AuditEntity.StartDate = System.DateTime.Now;
                InnerHandIn(auditOperation, action);
                // ShowKPI(auditOperation, action);
            }
            catch
            {
                CanAudit(true);
            }
        }