using Learun.DataBase.Repository;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.Text;
namespace Learun.Application.Extention.TaskScheduling
{
///
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创 建:超级管理员
/// 日 期:2019-01-09 16:07
/// 描 述:任务进程
///
public class TSProcessService : RepositoryFactory
{
#region 获取数据
///
/// 获取页面显示列表数据
///
/// 查询参数
///
public IEnumerable GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append(@"
SELECT
t.F_Id,
t.F_SchemeInfoId,
t.F_SchemeId,
t.F_BeginTime,
t.F_EndType,
t.F_EndTime,
t.F_State,
t.F_CreateDate,
s.F_Name
FROM
LR_TS_Process t
LEFT JOIN
LR_TS_SchemeInfo s ON s.F_Id = t.F_SchemeInfoId
");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
DateTime startTime = DateTime.Now, endTime = DateTime.Now;
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
{
startTime = queryParam["StartTime"].ToDate();
endTime = queryParam["EndTime"].ToDate();
strSql.Append(" AND ( t.F_CreateDate >= @startTime AND t.F_CreateDate <= @endTime ) ");
}
string keyword = "";
if (!queryParam["keyword"].IsEmpty())
{
keyword = "%" + queryParam["keyword"].ToString() + "%";
strSql.Append(" AND ( s.F_Name like @keyword ) ");
}
return this.BaseRepository().FindList(strSql.ToString(), new { startTime, endTime, keyword }, pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetList() {
try
{
var strSql = new StringBuilder();
strSql.Append(@"
SELECT
t.F_Id,
t.F_SchemeInfoId,
t.F_SchemeId,
t.F_BeginTime,
t.F_EndType,
t.F_EndTime,
t.F_State,
t.F_CreateDate
FROM
LR_TS_Process t
");
strSql.Append(" WHERE 1=1 ");
DateTime nowTime = DateTime.Now;
strSql.Append(" AND ( t.F_EndTime >= @nowTime OR t.F_EndType = 1 ) AND (t.F_State = 1 OR t.F_State = 2)");
return this.BaseRepository().FindList(strSql.ToString(), new { nowTime });
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取LR_TS_Process表实体数据
/// 主键
///
///
public TSProcessEntity GetProcessEntity(string keyValue)
{
try
{
return this.BaseRepository().FindEntity(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
#region 提交数据
///
/// 删除实体数据
/// 主键
///
///
public void DeleteEntity(string keyValue)
{
try
{
this.BaseRepository().Delete(t => t.F_Id == keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 保存实体数据(新增、修改)
/// 主键
///
///
public void SaveEntity(string keyValue, TSProcessEntity entity)
{
var db = this.BaseRepository().BeginTrans();
try
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
db.Update(entity);
}
else
{
var entityTmp = db.FindEntity("SELECT * FROM LR_TS_Process Where F_SchemeInfoId = @schemeId AND F_State != 10 ", new { schemeId = entity.F_SchemeInfoId });
if (entityTmp == null) {
db.ExecuteBySql("delete FROM LR_TS_Process Where F_SchemeInfoId = @schemeId AND F_State != 10 ", new { schemeId = entity.F_SchemeInfoId });
}
entity.Create();
db.Insert(entity);
}
db.Commit();
}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
}
}