/// <summary> /// 根据指定条件查找部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns> public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran) { DepartmentSearcher querySearcher = null; MssqlQueryParser queryParser = new MssqlQueryParser(); PageDataTable pDataTable = new PageDataTable(); DataSet resultSet = null; StringBuilder query = new StringBuilder(); StringBuilder joinQuery = new StringBuilder(); StringBuilder conditionQuery = new StringBuilder(); StringBuilder sortQuery = new StringBuilder(); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; joinQuery.AppendLine(@"LEFT JOIN "); joinQuery.AppendLine(@" [Company] C ON(C.CompanyId = D.CompanyId) "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { conditionQuery.AppendLine(@"WHERE "); conditionQuery.AppendLine(@" " + queryParser.ConditionString); } if (!string.IsNullOrEmpty(queryParser.SortString)) { sortQuery.AppendLine(@"ORDER BY "); sortQuery.AppendLine(@" " + queryParser.SortString); } query.AppendLine(@"SELECT "); query.AppendLine(@" D.[DepartmentId] "); query.AppendLine(@" ,D.[DepartmentCode] "); query.AppendLine(@" ,D.[CompanyId] "); query.AppendLine(@" ,D.[Name] "); query.AppendLine(@" ,D.[RVersion] "); query.AppendLine(@" ,D.[Status] "); query.AppendLine(@" ,D.[CreaterId] "); query.AppendLine(@" ,D.[CreateTime] "); query.AppendLine(@" ,D.[UpdatorId] "); query.AppendLine(@" ,D.[UpdateTime] "); query.AppendLine(@"FROM "); query.AppendLine(@" [Department] D "); query.AppendLine(joinQuery.ToString()); query.AppendLine(conditionQuery.ToString()); query.AppendLine(sortQuery.ToString()); query.AppendLine(@"; "); if (tran != null) { DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction; if (pager != null) { resultSet = MssqlHelper.ExecuteDataSet(dbTran, CommandType.Text, query.ToString(), pager, "Department", queryParser.ParamCollection); } else { resultSet = MssqlHelper.ExecuteDataSet(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection); } } else { if (pager != null) { resultSet = MssqlHelper.ExecuteDataSet(this.CurrentConnectionString, CommandType.Text, query.ToString(), pager, "Department", queryParser.ParamCollection); } else { resultSet = MssqlHelper.ExecuteDataSet(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection); } } if (resultSet != null) { if (pager != null) { pDataTable.PageIndex = pager.CurrentPage; } pDataTable.TotalCount = this.Count(departmentSearcher, tran); pDataTable.RecordList = resultSet.Tables[0]; } return pDataTable; }
/// <summary> /// 查找指定条件的部门集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <returns>返回部门实体对象集合</returns> public IList<Department> FindList(DepartmentSearcher departmentSearcher) { PageList<Department> pageList = this.FindList(departmentSearcher, null, null); return pageList == null ? null : pageList.RecordList; }
/// <summary> /// 根据指定条件查找部门集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回一个DataTable对象</returns> public DataTable FindDataTable(DepartmentSearcher departmentSearcher, ICTransaction tran) { PageDataTable pageDataTable = this.FindDataTable(departmentSearcher, null, tran); return pageDataTable == null ? null : pageDataTable.RecordList; }
/// <summary> /// 根据指定条件查找部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns> public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager) { return this.FindDataTable(departmentSearcher, pager, null); }
/// <summary> /// 查询部门数量 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="tran">事务对象</param> /// <returns>返回查询到的数量</returns> public long Count(DepartmentSearcher departmentSearcher, ICTransaction tran) { DepartmentSearcher querySearcher = null; HibernateTransaction hTran = null; ISession session = null; HQLQueryParser queryParser = new HQLQueryParser(); StringBuilder query = new StringBuilder(); query.Append("SELECT "); query.Append(" COUNT(*) "); query.Append("FROM "); query.Append(" Department D "); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; query.Append("LEFT JOIN "); query.Append(" D.CurrCompany C "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { query.Append("WHERE "); query.Append(" " + queryParser.ConditionString); } if (tran != null) { hTran = (HibernateTransaction)tran; session = hTran.CurrentSession; } else { session = this.CurrentHibernateConfig.GetCurrentSession(); } long count = HibernateHelper.FindUniqueObjectByHQL<long>(session, query.ToString(), queryParser.ParamCollection); return count; }
/// <summary> /// 根据指定条件查找部门集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <returns>返回一个DataTable对象</returns> public DataTable FindDataTable(DepartmentSearcher departmentSearcher) { PageDataTable pageDataTable = this.FindDataTable(departmentSearcher, null, null); return pageDataTable == null ? null : pageDataTable.RecordList; }
/// <summary> /// 删除部门 /// </summary> /// <param name="departmentId">部门ID</param> /// <param name="tran">中间事务对象</param> public void Delete(string departmentId, ICTransaction tran) { DepartmentSearcher querySearcher = new DepartmentSearcher(); querySearcher.DepartmentId.Equal(departmentId); this.Delete(querySearcher, tran); }
/// <summary> /// 查找指定条件的部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns> public PageList<Department> FindList(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran) { PageList<Department> resultList = new PageList<Department>(); PageDataTable pageDataTable = this.FindDataTable(departmentSearcher, pager, tran); Department ele = null; if (pageDataTable != null) { resultList = new PageList<Department>(); resultList.PageIndex = pageDataTable.PageIndex; resultList.TotalCount = pageDataTable.TotalCount; if (pageDataTable.RecordList != null && pageDataTable.RecordList.Rows.Count > 0) { foreach (DataRow aRow in pageDataTable.RecordList.Rows) { ele = new Department(); if (!(aRow["DepartmentId"] is DBNull)) { ele.DepartmentId = aRow["DepartmentId"].ToString(); } if (!(aRow["CompanyId"] is DBNull)) { ele.CompanyId = aRow["CompanyId"].ToString(); } if (!(aRow["DepartmentCode"] is DBNull)) { ele.DepartmentCode = aRow["DepartmentCode"].ToString(); } if (!(aRow["CreaterId"] is DBNull)) { ele.CreaterId = aRow["CreaterId"].ToString(); } if (!(aRow["CreateTime"] is DBNull)) { ele.CreateTime = Convert.ToDateTime(aRow["CreateTime"]); } if (!(aRow["Name"] is DBNull)) { ele.Name = aRow["Name"].ToString(); } if (!(aRow["RVersion"] is DBNull)) { ele.RVersion = Convert.ToInt32(aRow["RVersion"]); } if (!(aRow["Status"] is DBNull)) { ele.Status = Convert.ToInt32(aRow["Status"]); } if (!(aRow["UpdateTime"] is DBNull)) { ele.UpdateTime = Convert.ToDateTime(aRow["UpdateTime"]); } if (!(aRow["UpdatorId"] is DBNull)) { ele.UpdatorId = aRow["UpdatorId"].ToString(); } resultList.RecordList.Add(ele); } } } return resultList; }
/// <summary> /// 查询部门数量 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <returns>返回查询到的数量</returns> public long Count(DepartmentSearcher departmentSearcher) { return this.Count(departmentSearcher, null); }
/// <summary> /// 查询部门数量 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回查询到的数量</returns> public long Count(DepartmentSearcher departmentSearcher, ICTransaction tran) { object count = 0; long result = 0; DepartmentSearcher querySearcher = null; MssqlQueryParser queryParser = new MssqlQueryParser(); StringBuilder query = new StringBuilder(); query.AppendLine(@"SELECT "); query.AppendLine(@" COUNT(D.DepartmentId) "); query.AppendLine(@"FROM "); query.AppendLine(@" Department D "); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; query.AppendLine(@"LEFT JOIN "); query.AppendLine(@" [Company] C ON(C.CompanyId = D.CompanyId) "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { query.AppendLine(@"WHERE "); query.AppendLine(@" " + queryParser.ConditionString); } if (tran != null) { DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction; count = MssqlHelper.ExecuteScalar(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection); } else { count = MssqlHelper.ExecuteScalar(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection); } return long.TryParse(count.ToString(), out result) ? result : 0; }
/// <summary> /// 查找指定条件的部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns> public PageList<Department> FindList(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran) { DepartmentSearcher querySearcher = null; HibernateTransaction hTran = null; ISession session = null; PageList<Department> pList = new PageList<Department>(); HQLQueryParser queryParser = new HQLQueryParser(); StringBuilder query = new StringBuilder(); query.Append("SELECT "); query.Append(" D "); query.Append("FROM "); query.Append(" Department D "); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; query.Append("LEFT JOIN "); query.Append(" D.CurrCompany C "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { query.Append("WHERE "); query.Append(" " + queryParser.ConditionString); } if (!string.IsNullOrEmpty(queryParser.SortString)) { query.Append("ORDER BY "); query.Append(" " + queryParser.SortString); } if (tran != null) { hTran = (HibernateTransaction)tran; session = hTran.CurrentSession; pList.TotalCount = this.Count(querySearcher, tran); } else { session = this.CurrentHibernateConfig.GetCurrentSession(); pList.TotalCount = this.Count(querySearcher); } if (pager != null) { pList.RecordList = HibernateHelper.FindObjectListByHQL<Department>(session, query.ToString(), queryParser.ParamCollection, pager); } else { pList.RecordList = HibernateHelper.FindObjectListByHQL<Department>(session, query.ToString(), queryParser.ParamCollection); } return pList; }
/// <summary> /// 根据指定条件查找部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns> public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran) { PageDataTable pDataTable = null; PageList<Department> departmentList = this.FindList(departmentSearcher, pager, tran); if (departmentList != null) { pDataTable.PageIndex = departmentList.PageIndex; pDataTable.TotalCount = departmentList.TotalCount; pDataTable.RecordList = new DataTable("Department"); pDataTable.RecordList.Columns.AddRange(new DataColumn[] { new DataColumn("DepartmentCode", typeof(String)), new DataColumn("DepartmentId", typeof(String)), new DataColumn("CompanyId", typeof(String)), new DataColumn("CreaterId", typeof(String)), new DataColumn("CreateTime", typeof(DateTime)), new DataColumn("Name", typeof(String)), new DataColumn("RVersion", typeof(Int32)), new DataColumn("Status", typeof(Int32)), new DataColumn("UpdateTime", typeof(DateTime)), new DataColumn("UpdatorId", typeof(String)) }); foreach (Department department in departmentList.RecordList) { pDataTable.RecordList.Rows.Add( department.DepartmentCode, department.DepartmentId, department.CurrCompany.CompanyId, department.CreaterId, department.CreateTime, department.Name, department.RVersion, department.Status, department.UpdateTime, department.UpdatorId ); } } return pDataTable; }
/// <summary> /// 根据指定条件删除部门 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="tran">中间事务对象</param> public void Delete(DepartmentSearcher departmentSearcher, ICTransaction tran) { DepartmentSearcher querySearcher = null; HibernateTransaction hTran = null; ISession session = null; HQLQueryParser queryParser = new HQLQueryParser(); StringBuilder query = new StringBuilder(); query.Append("DELETE FROM "); query.Append(" Department "); query.Append("WHERE "); query.Append(" DepartmentId IN ("); query.Append(" SELECT "); query.Append(" D.DepartmentId "); query.Append(" FROM "); query.Append(" Department D "); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; query.Append("LEFT JOIN "); query.Append(" D.CurrCompany C "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { query.Append("WHERE "); query.Append(" " + queryParser.ConditionString); } query.Append(")"); if (tran != null) { hTran = (HibernateTransaction)tran; session = hTran.CurrentSession; } else { session = this.CurrentHibernateConfig.GetCurrentSession(); } int effectCount = HibernateHelper.DeleteObjectByHQL(session, query.ToString(), queryParser.ParamCollection); }
/// <summary> /// 查找指定条件的部门集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回部门实体对象集合</returns> public IList<Department> FindList(DepartmentSearcher departmentSearcher, ICTransaction tran) { PageList<Department> pageList = this.FindList(departmentSearcher, null, tran); return pageList == null ? null : pageList.RecordList; }
/// <summary> /// 根据指定条件删除部门 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> public void Delete(DepartmentSearcher departmentSearcher) { this.Delete(departmentSearcher, null); }
/// <summary> /// 查找指定条件的部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns> public PageList<Department> FindList(DepartmentSearcher departmentSearcher, Pager pager) { return this.FindList(departmentSearcher, pager, null); }
/// <summary> /// 根据指定条件删除部门 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="tran">中间事务对象</param> public void Delete(DepartmentSearcher departmentSearcher, ICTransaction tran) { int effectCount = 0; DepartmentSearcher querySearcher = null; MssqlQueryParser queryParser = new MssqlQueryParser(); StringBuilder query = new StringBuilder(); query.AppendLine(@"DELETE FROM "); query.AppendLine(@" Department "); query.AppendLine(@"WHERE "); query.AppendLine(@" DepartmentId IN ("); query.AppendLine(@" SELECT "); query.AppendLine(@" D.DepartmentId "); query.AppendLine(@" FROM "); query.AppendLine(@" Department D "); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; query.AppendLine(@"LEFT JOIN "); query.AppendLine(@" Company C ON(C.CompanyId = D.CompanyId) "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { query.AppendLine(@"WHERE "); query.AppendLine(@" " + queryParser.ConditionString); } query.AppendLine(@"); "); try { if (tran != null) { DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction; effectCount = MssqlHelper.ExecuteNonQuery(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection); } else { effectCount = MssqlHelper.ExecuteNonQuery(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection); } } catch(SqlException sex) { if (sex.ErrorCode == (int)ResultCode.FKError) { throw new ResponseException((int)ResultCode.FKError, "DELETE Department"); } } }
/// <summary> /// 查找指定ID的部门 /// </summary> /// <param name="departmentId">部门ID</param> /// <param name="tran">中间事务对象</param> /// <returns>返回部门实体对象</returns> public Department FindSingle(string departmentId, ICTransaction tran) { DepartmentSearcher departmentSearcher = new DepartmentSearcher(); departmentSearcher.DepartmentId.Equal(departmentId); IList<Department> departmentList = this.FindList(departmentSearcher); return (departmentList == null || departmentList.Count == 0) ? null : departmentList[0]; }
/// <summary> /// 根据指定条件查找部门分页集合 /// </summary> /// <param name="departmentSearcher">部门查询对象</param> /// <param name="pager">分页对象</param> /// <param name="tran">中间事务对象</param> /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns> public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran) { DepartmentSearcher querySearcher = null; MysqlQueryParser queryParser = new MysqlQueryParser(); PageDataTable pDataTable = new PageDataTable(); DataSet resultSet = null; StringBuilder query = new StringBuilder(); StringBuilder joinQuery = new StringBuilder(); StringBuilder conditionQuery = new StringBuilder(); StringBuilder sortQuery = new StringBuilder(); if (departmentSearcher != null) { querySearcher = (DepartmentSearcher)departmentSearcher.Clone(); querySearcher.TableName = "D"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; joinQuery.AppendLine(@"LEFT JOIN "); joinQuery.AppendLine(@" `Company` C ON(C.CompanyId = D.CompanyId) "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { conditionQuery.AppendLine(@"WHERE "); conditionQuery.AppendLine(@" " + queryParser.ConditionString); } if (!string.IsNullOrEmpty(queryParser.SortString)) { sortQuery.AppendLine(@"ORDER BY "); sortQuery.AppendLine(@" " + queryParser.SortString); } query.AppendLine(@"SELECT "); query.AppendLine(@" D.`DepartmentId` "); query.AppendLine(@" ,D.`DepartmentCode` "); query.AppendLine(@" ,D.`CompanyId` "); query.AppendLine(@" ,D.`Name` "); query.AppendLine(@" ,D.`RVersion` "); query.AppendLine(@" ,D.`Status` "); query.AppendLine(@" ,D.`CreaterId` "); query.AppendLine(@" ,D.`CreateTime` "); query.AppendLine(@" ,D.`UpdatorId` "); query.AppendLine(@" ,D.`UpdateTime` "); query.AppendLine(@"FROM "); query.AppendLine(@" `Department` D "); query.AppendLine(joinQuery.ToString()); query.AppendLine(conditionQuery.ToString()); query.AppendLine(sortQuery.ToString()); if (pager != null && pager.PageSize != 0 && pager.StartRecord >= 0) { query.AppendLine(@" LIMIT " + pager.StartRecord.ToString() + "," + pager.PageSize + " "); } query.AppendLine(@"; "); if (tran != null) { resultSet = MySqlHelper.ExecuteDataset((MySqlConnection)tran.Connection, query.ToString(), (MySqlParameter[])queryParser.ParamCollection.ToArray().ToArray()); } else { resultSet = MySqlHelper.ExecuteDataset(this.CurrentConnectionString, query.ToString(), (MySqlParameter[])queryParser.ParamCollection.ToArray().ToArray()); } if (resultSet != null) { if (pager != null) { pDataTable.PageIndex = pager.CurrentPage; } pDataTable.TotalCount = this.Count(departmentSearcher, tran); pDataTable.RecordList = resultSet.Tables[0]; } return pDataTable; }