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; }
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; }
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); }
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); } }