using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Text; using QMFrameWork.Data; using QMAPP.Entity.Sys; namespace QMAPP.DAL.Sys { /// <summary> /// 数据任务计划数据层对象 /// 创建者:韩磊 /// 创建日期:2014.12.18 /// </summary> public class DataTaskPlanDAL:BaseDAL { #region 获取数据任务计划 /// <summary> /// 获取数据任务计划 /// </summary> /// <param name="task">条件</param> /// <returns>任务信息</returns> public DataTaskPlan Get(DataTaskPlan task) { try { using (IDataSession session = AppDataFactory.CreateMainSession()) { task = session.Get<DataTaskPlan>(task); } return task; } catch (Exception ex) { throw; } } #endregion #region 获取数据任务计划列表 /// <summary> /// 获取数据任务计划列表 /// </summary> /// <param name="condition">条件</param> /// <param name="page">数据页</param> /// <returns>数据页</returns> public DataPage GetList(DataTaskPlan condition, DataPage page) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); List<DataParameter> parameters = new List<DataParameter>(); try { //构成查询语句 sqlBuilder.Append(" SELECT PLANID, "); sqlBuilder.Append(" PLANNAME,TASKID,PERIOD ,PLANSTARTDATE , PLANENDDATE , ISUSE , REMARK"); sqlBuilder.Append(" ,PERIODTYPE,EXECUTEDAY,ONCETIME,INTERVAL ,IINTERVALTYPE , DAYSTARTTIME,DAYENDTIME"); sqlBuilder.Append(" FROM T_QM_DATATASKPLAN "); //分页关键字段及排序 page.KeyName = "PLANID"; if (string.IsNullOrEmpty(page.SortExpression)) { page.SortExpression = "PLANID DESC"; } using (IDataSession session = AppDataFactory.CreateMainSession()) { page = session.GetDataPage<DataTaskPlan>(sqlBuilder.ToString(), parameters.ToArray(), page); } return page; } catch (Exception ex) { throw; } } #endregion #region 插入执行日志 /// <summary> /// 插入执行日志 /// </summary> /// <param name="log">执行日志</param> public void InsertExecuteLog(DataTaskLog log) { try { using (IDataSession session = AppDataFactory.CreateMainSession()) { session.Insert<DataTaskLog>(log); } } catch (Exception ex) { throw ex; } } #endregion #region 获取执行日志列表 /// <summary> /// 获取执行日志列表 /// </summary> /// <param name="page">数据页</param> /// <param name="log">日志</param> /// <returns>数据页</returns> public DataPage GetLogList(DataTaskLog log, DataPage page) { string sql = ""; List<DataParameter> parameters = new List<DataParameter>(); try { //构成查询语句 sql = this.GetQuerySql(log, parameters); //分页关键字段及排序 page.KeyName = "PID"; if(string.IsNullOrEmpty(page.SortExpression)==true) page.SortExpression = "LASTEXECUTETIME DESC"; using (IDataSession session = AppDataFactory.CreateMainSession()) { sql = this.ChangeSqlByDB(sql, session); page = session.GetDataPage<DataTaskLog>(sql, parameters.ToArray(), page); } return page; } catch (Exception ex) { throw; } } #endregion #region 获取导出的数据 /// <summary> /// 获取导出的数据 /// </summary> /// <param name="user">查询条件</param> /// <returns>数据</returns> public DataTable GetExportLogData(DataTaskLog log) { DataTable dt = null; string sql = null; List<DataParameter> parameters = new List<DataParameter>(); try { //构成查询语句 sql = this.GetQuerySql(log, parameters); //sql += " ORDER BY LASTEXECUTETIME DESC"; using (IDataSession session = AppDataFactory.CreateMainSession()) { sql = this.ChangeSqlByDB(sql, session); dt = session.GetTable(sql, parameters.ToArray()); dt.TableName = "T_QM_DATATASKLOG"; } return dt; } catch (Exception ex) { throw; } } #endregion #region 获取查询语句 /// <summary> /// 获取查询语句 /// </summary> /// <param name="user">查询条件</param> /// <param name="parameters">参数</param> /// <returns>查询语句</returns> private string GetQuerySql(DataTaskLog log, List<DataParameter> parameters) { string sql = ""; try { //构成查询语句 sql = "SELECT * FROM T_QM_DATATASKLOG WHERE PLANID = @PLANID"; parameters.Add(new DataParameter("PLANID", log.PLANID)); if (string.IsNullOrEmpty(log.StartTime) == false) { sql += " AND LASTEXECUTETIME >= @STARTTIME"; parameters.Add(new DataParameter("STARTTIME", DateTime.Parse(log.StartTime))); } if (string.IsNullOrEmpty(log.EndTime) == false) { sql += " AND LASTEXECUTETIME >= @ENDTIME"; parameters.Add(new DataParameter("ENDTIME", DateTime.Parse(log.EndTime).AddDays(1).AddSeconds(-1))); } return sql; } catch (Exception ex) { throw ex; } } #endregion } }