using Microsoft.Data.SqlClient;
|
using Model.ModelDto.ArchivingDto;
|
using Model.ModelVm.SysVm;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using WMS.DAL;
|
using WMS.Entity.ArchiveEntry;
|
using WMS.Entity.Context;
|
using WMS.Entity.SysEntity;
|
using WMS.IBLL.ILogServer;
|
using WMS.IBLL.ISysServer;
|
|
namespace WMS.BLL.SysServer
|
{
|
public class ArchivingServer:DbHelper<ArchivingLog>, IArchivingServer
|
{
|
private static readonly SqlSugarScope Db = DataContext.Db;
|
public ArchivingServer() : base(Db)
|
{
|
}
|
private readonly IOperationSysServer _operation; //操作日志
|
/// <summary>
|
/// 获取数据归档操作日志
|
/// </summary>
|
/// <param name="page"></param>
|
/// <param name="limit"></param>
|
/// <param name="count"></param>
|
/// <returns></returns>
|
public List<ArchivingLogDto> GetArchivingLogList(int page, int limit, out int count)
|
{
|
try
|
{
|
var item = Expressionable.Create<ArchivingLog>()
|
.And(it => it.IsDel == "0")
|
.ToExpression();//注意 这一句 不能少
|
var total = 0;
|
var list = GetAllWhereAsync(item)
|
.LeftJoin<SysUserInfor>((it, users) => it.CreateUser == users.Id)
|
.Select((it, users) => new ArchivingLogDto()
|
{
|
Id = it.Id,
|
Status = it.Status,
|
Demo = it.Demo,
|
CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
CreateUserName = users.RealName,
|
})
|
.OrderByDescending(it => it.CreateTime)
|
.ToOffsetPage(page, limit, ref total);
|
|
count = total;
|
return list.OrderByDescending(m => m.CreateTime).ToList();
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
/// <summary>
|
/// 数据归档
|
/// </summary>
|
/// <param name="TimeStr"></param>
|
/// <param name="userId"></param>
|
public void DataArchive(string TimeStr,int userId)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(TimeStr))
|
{
|
throw new Exception("请选择30天前日期进行操作");
|
}
|
if (Convert.ToDateTime(TimeStr) > DateTime.Now.AddDays(-30))
|
{
|
throw new Exception("请选择30天前日期进行操作");
|
}
|
string insertSql = $@"EXEC DataArchiving '{TimeStr}';";
|
//执行数据归档存储过程-插入
|
Db.Ado.SqlQuery<int>(insertSql).FirstOrDefault();
|
|
string deleteSql = $@"EXEC DataArchivingDelete;";
|
//执行数据归档存储过程-删除
|
Db.Ado.SqlQuery<int>(deleteSql).FirstOrDefault();
|
|
ArchivingLog log = new ArchivingLog();
|
log.Status = "0";
|
log.Demo = $"成功进行了数据归档操作";
|
log.CreateUser = userId;
|
//插入归档日志
|
Db.Insertable(log).ExecuteCommand();
|
//记录操作日志
|
_operation.InsertOperation("系统设置", "数据归档", "", "处理", $"将{TimeStr}之前的数据进行数据归档", userId);
|
}
|
catch (Exception e)
|
{
|
ArchivingLog log = new ArchivingLog();
|
log.Status = "1";
|
log.Demo = $"归档数据操作失败:{e.Message}";
|
log.CreateUser = userId;
|
//插入归档日志
|
Db.Insertable(log).ExecuteCommand();
|
throw new Exception(e.Message);
|
}
|
}
|
}
|
}
|