using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using wms.dto;
using wms.dto.request.hj;
using wms.dto.request.hj.dto;
using wms.sqlsugar.model;
using wms.sqlsugar.model.hj;
using wms.util.Check;
using static wms.dto.request.hj.dto.ReportResponse;
namespace wms.sqlsugar
{
///
/// 创建仓储
///
///
public class RepositoryTask : SimpleClient where T :class, new()
{
public RepositoryTask()
{
//固定数据库用法
base.Context = SqlSugarHelper.Db.GetConnectionScopeWithAttr();
//动态库用法一般用于维护数据库连接字符串根据用法
//if (!SqlSugarHelper.Db.IsAnyConnection("用户读出来的数据库ConfigId"))
//{
// SqlSugarHelper.Db.AddConnection(new ConnectionConfig() { 数据库读出来信息 });
//}
//base.Context = SqlSugarHelper.Db.GetConnectionScope("用户读出来的数据库ConfigId");
}
public T InsertReturnEntity(T t)
{
return base.Context.Insertable(t).ExecuteReturnEntity();
}
public int InsertableSplitTable(T t)
{
return base.Context.Insertable(t).SplitTable().ExecuteCommand();
}
public int InsertableSplitTable(List t)
{
return base.Context.Insertable(t).SplitTable().ExecuteCommand();
}
//public int DelableSplitTable(List ids) where T:BaseModel
//{
// return base.Context.Deleteable(p=> ids.Contains(p.Id)).SplitTable().ExecuteCommand();
//}
///
/// 该方法默认不更新CreatedUserId,CreatedTime
///
///
///
public bool UpdateEntity(T entity)
{
return base.Context.Updateable(entity).IgnoreColumns(new string[] { "AddWho", "AddTime" }).ExecuteCommand() > 0;
}
public bool UpdateModelColumns(Expression> Columns, Expression> WhereExpression)
{
return base.Update(Columns, WhereExpression);
}
public T GetModelByExpression(Expression> WhereExpression)
{
return base.GetSingle(WhereExpression);
}
public List GetTunList(TunnelRequest request)
{
var list = base.Context.Queryable()
.WhereIF(!string.IsNullOrEmpty(request.WareHouse), p => p.Default2 == request.WareHouse)
.WhereIF(!string.IsNullOrEmpty(request.Tunnel), p => p.Default1 == request.Tunnel)
.ToList();
return list;
}
public bool UpdateTunStatu(long id, string statu, long userId)
{
return base.Context.Updateable().SetColumns(it => new hjSysConfig()
{
SContent = statu,
EditTime = DateTime.Now
}).Where(it => it.Id == id).ExecuteCommand() > 0;
}
}
}