/// <summary> /// 生成全文数据对象 /// </summary> /// <returns></returns> public override AppCommonInfo ToAppCommonInfo(string content) { AppCommonInfo commonInfo = new AppCommonInfo(); if (Data is IBusinessObject) { IBusinessObject wob = Data as IBusinessObject; //commonInfo.ResourceID = wob.ID; commonInfo.Subject = wob.Subject; } if (DeluxePrincipal.IsAuthenticated) { commonInfo.Creator = DeluxeIdentity.CurrentUser; commonInfo.TopOU = DeluxeIdentity.CurrentUser.TopOU; commonInfo.Department = DeluxeIdentity.CurrentUser.TopOU; } commonInfo.Content = content; if (WfClientContext.Current.OriginalActivity != null) { commonInfo.ResourceID = WfClientContext.Current.OriginalActivity.Process.SearchID; commonInfo.TopOU = WfClientContext.Current.User.TopOU; commonInfo.Department = WfClientContext.Current.User.Parent; commonInfo.ApplicationName = WfClientContext.Current.OriginalActivity.Process.Descriptor.ApplicationName; commonInfo.ProgramName = WfClientContext.Current.OriginalActivity.Process.Descriptor.ProgramName; //commonInfo.Url = string.Format("{0}?resourceID={1}", // WfClientContext.Current.EntryUri.ToString(), // commonInfo.ResourceID); commonInfo.Url = string.Format("{0}?resourceID={1}&processID={2}", WfClientContext.Current.EntryUri.ToString(), WfClientContext.Current.OriginalActivity.Process.ResourceID, WfClientContext.Current.OriginalActivity.Process.ID); if (WfClientContext.Current.OriginalActivity.Process.OwnerDepartment != null) { commonInfo.DraftDepartmentName = WfClientContext.Current.OriginalActivity.Process.OwnerDepartment.GetDepartmentDescription(); } commonInfo.Content += " " + commonInfo.DraftDepartmentName; commonInfo.SyncProcessStatus(WfClientContext.Current.OriginalActivity.Process.ApprovalRootProcess); } return(commonInfo); }
public void AppCommonInfoAdapterTest() { AppCommonInfoAdapter.Instance.ClearAll(); AppCommonInfo info = new AppCommonInfo(); info.ResourceID = "resource1"; info.Subject = "测试"; info.CreateTime = DateTime.Now; IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object; info.Creator = user; AppCommonInfoAdapter.Instance.Update(info); AppCommonInfo commonInfo = AppCommonInfoAdapter.Instance.Load("resource1"); AppCommonInfoCollection coll = AppCommonInfoAdapter.Instance.Load(builder => builder.AppendItem("RESOURCE_ID", "resource1")); Assert.AreEqual(commonInfo.ResourceID, coll[0].ResourceID); }
private static string GetProcessUrl(IWfProcess process) { string result = string.Empty; if (process.CurrentActivity != null) { UserTaskCollection tasks = UserTaskAdapter.Instance.LoadUserTasks( builder => builder.AppendItem("ACTIVITY_ID", process.CurrentActivity.ID)); if (tasks.Count > 0) { result = tasks[0].NormalizedUrl; } } if (result.IsNullOrEmpty()) { string infoID = process.ResourceID; if (AppCommonInfoAdapter.Instance.Exists(infoID) == false) { infoID = process.ID; } if (AppCommonInfoAdapter.Instance.Exists(infoID)) { AppCommonInfo commonInfo = AppCommonInfoAdapter.Instance.Load(infoID); NameValueCollection uriParams = UriHelper.GetUriParamsCollection(commonInfo.Url); uriParams["processID"] = process.ID; result = UriHelper.CombineUrlParams(commonInfo.Url, uriParams); } } if (result.IsNotEmpty()) { result = UserTask.GetNormalizedUrl(process.Descriptor.ApplicationName, process.Descriptor.ProgramName, result); } return(result); }
/// <summary> /// 从AppCommonInfo中获取,先查ProcessID,再查ResourceID /// </summary> /// <param name="process"></param> /// <returns></returns> private static string GetUrlFromAppCommonInfo(IWfProcess process) { string result = string.Empty; string infoID = process.ResourceID; if (AppCommonInfoAdapter.Instance.Exists(infoID) == false) { infoID = process.ID; } if (AppCommonInfoAdapter.Instance.Exists(infoID)) { AppCommonInfo commonInfo = AppCommonInfoAdapter.Instance.Load(infoID); result = commonInfo.Url; } return(result); }
/// <summary> /// 表单分页查询 /// </summary> /// <param name="startRowIndex"></param> /// <param name="maximumRows"></param> /// <param name="where"></param> /// <param name="orderBy"></param> /// <param name="totalCount"></param> /// <returns></returns> public AppCommonInfoCollection GetFormQueryWithCount(int startRowIndex, int maximumRows, string where, string orderBy, ref int totalCount) { if (string.IsNullOrEmpty(where)) where = "1 = 1"; if (string.IsNullOrEmpty(orderBy)) orderBy = "CREATE_TIME DESC"; if (RolesDefineConfig.GetConfig().IsCurrentUserInRoles("ProcessAdmin") == false) { ConnectiveSqlClauseCollection cscc = WfAclAdapter.Instance.GetAclQueryConditionsByUser(string.Empty); string resourceIDList = string.Format("SELECT RESOURCE_ID FROM WF.ACL WHERE {0}", cscc.ToSqlString(TSqlBuilder.Instance)); where = string.Format("{0} AND ACI.RESOURCE_ID IN ({1})", where, resourceIDList); } //LDM 加上ACI.PROGRAM_NAME as [PROGRAM_NAME1], //兼容远洋地产的查询(表单工作程序里没有对 APPLICATIONFORM_INFO 表插入数据行) string strSelect = @" ACI.APPLICATION_NAME,ACI.[PROGRAM_NAME] as [PROGRAM_NAME_MCS],ACI.RESOURCE_ID,ACI.[SUBJECT],ACI.[EMERGENCY]," + " ACI.URL,ACI.CREATOR_ID, ACI.CREATOR_NAME,ACI.CREATE_TIME,ACI.DRAFT_DEPARTMENT_NAME"; string strfrom = @" WF.APPLICATIONS_COMMON_INFO as ACI (nolock)"; QueryCondition qc = new QueryCondition( startRowIndex, maximumRows, strSelect, strfrom, orderBy, where ); CommonAdapter commonAdapter = new CommonAdapter(ConnectionDefine.SearchConnectionName); DataSet ds = commonAdapter.SplitPageQuery(qc, totalCount < 0); AppCommonInfoCollection FormQueryEntitys = new AppCommonInfoCollection(); foreach (DataRow row in ds.Tables[0].Rows) { AppCommonInfo entity = new AppCommonInfo(); ORMapping.DataRowToObject(row, entity); FormQueryEntitys.Add(entity); } if (ds.Tables.Count > 1) totalCount = (int)ds.Tables[1].Rows[0][0]; HttpContext.Current.Items["UserFormQueryEntityCount"] = totalCount; //当页码超出索引的,返回最大页 if (FormQueryEntitys.Count == 0 && totalCount > 0) { int newStartRowIndex = (totalCount - 1) / maximumRows * maximumRows; totalCount = -1; FormQueryEntitys = GetFormQueryWithCount(newStartRowIndex, maximumRows, where, orderBy, ref totalCount); } return FormQueryEntitys; }
/// <summary> /// 表单分页查询 /// </summary> /// <param name="startRowIndex"></param> /// <param name="maximumRows"></param> /// <param name="where"></param> /// <param name="orderBy"></param> /// <param name="totalCount"></param> /// <returns></returns> public AppCommonInfoCollection GetFormQueryWithCount(int startRowIndex, int maximumRows, string where, string orderBy, ref int totalCount) { if (string.IsNullOrEmpty(where)) { where = "1 = 1"; } if (string.IsNullOrEmpty(orderBy)) { orderBy = "CREATE_TIME DESC"; } if (RolesDefineConfig.GetConfig().IsCurrentUserInRoles("ProcessAdmin") == false) { ConnectiveSqlClauseCollection cscc = WfAclAdapter.Instance.GetAclQueryConditionsByUser(string.Empty); string resourceIDList = string.Format("SELECT RESOURCE_ID FROM WF.ACL WHERE {0}", cscc.ToSqlString(TSqlBuilder.Instance)); where = string.Format("{0} AND ACI.RESOURCE_ID IN ({1})", where, resourceIDList); } //LDM 加上ACI.PROGRAM_NAME as [PROGRAM_NAME1], //兼容远洋地产的查询(表单工作程序里没有对 APPLICATIONFORM_INFO 表插入数据行) string strSelect = @" ACI.APPLICATION_NAME,ACI.[PROGRAM_NAME] as [PROGRAM_NAME_MCS],ACI.RESOURCE_ID,ACI.[SUBJECT],ACI.[EMERGENCY]," + " ACI.URL,ACI.CREATOR_ID, ACI.CREATOR_NAME,ACI.CREATE_TIME,ACI.DRAFT_DEPARTMENT_NAME"; string strfrom = @" WF.APPLICATIONS_COMMON_INFO as ACI (nolock)"; QueryCondition qc = new QueryCondition( startRowIndex, maximumRows, strSelect, strfrom, orderBy, where ); CommonAdapter commonAdapter = new CommonAdapter(ConnectionDefine.SearchConnectionName); DataSet ds = commonAdapter.SplitPageQuery(qc, totalCount < 0); AppCommonInfoCollection FormQueryEntitys = new AppCommonInfoCollection(); foreach (DataRow row in ds.Tables[0].Rows) { AppCommonInfo entity = new AppCommonInfo(); ORMapping.DataRowToObject(row, entity); FormQueryEntitys.Add(entity); } if (ds.Tables.Count > 1) { totalCount = (int)ds.Tables[1].Rows[0][0]; } HttpContext.Current.Items["UserFormQueryEntityCount"] = totalCount; //当页码超出索引的,返回最大页 if (FormQueryEntitys.Count == 0 && totalCount > 0) { int newStartRowIndex = (totalCount - 1) / maximumRows * maximumRows; totalCount = -1; FormQueryEntitys = GetFormQueryWithCount(newStartRowIndex, maximumRows, where, orderBy, ref totalCount); } return(FormQueryEntitys); }