using AutoMapper;
using Microsoft.EntityFrameworkCore.Storage;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto.SingleData;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Infrastructure;
using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Values;
using WMS.Web.Domain.Values.Single;
using WMS.Web.Repositories.Configuration;
namespace WMS.Web.Repositories
{
///
/// 基础数据
///
public class BasicsRepositories : IBasicsRepositories
{
private readonly IMapper _mapper;
private readonly IServiceProvider _serviceProvider;
private RepositoryDbContext _context;
private readonly ILoginRepositories _loginService;
private readonly ISingleDataService _singleDataService;
public BasicsRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider,
ILoginRepositories loginService, ISingleDataService singleDataService)
{
_context = context;
_mapper = mapper;
_serviceProvider = serviceProvider;
_loginService = loginService;
_singleDataService = singleDataService;
}
///
/// 获取所有人员
///
///
///
public async Task> GetStaffListAsync(int CompanyId)
{
var result = await _singleDataService.GetSysConfigData, SingleDataRequest>
(new SingleDataRequest(CompanyId),
SysConfigAction.GetStaffByCompany);
if (!result.Success)
return null;
return result.Data.ToList();
}
public async Task> GetSubUcStockAsync(int stockId)
{
var result = await _singleDataService.GetSysConfigData, SubStockRequest>
(new SubStockRequest(stockId),
SysConfigAction.GetChildWarehouseByPid);
if (!result.Success)
return null;
return result.Data.ToList();
}
public async Task> GetSubUcStockAsync(string systemCode, string name, int companyId)
{
var result = await _singleDataService.GetSysConfigData, SystemCodeRequest>
(new SystemCodeRequest(systemCode, name, companyId),
SysConfigAction.GetWmsSubWarehouseBySystemCodeAndNameAndCompany);
if (!result.Success)
return null;
return result.Data.ToList();
}
///
/// 获取仓位详情:根据仓位ID和公司ID
///
///
///
///
public async Task GetSubUcStockAsync(int id, int companyId)
{
var result = await _singleDataService.GetSysConfigData, IdRequest>
(new IdRequest(id, companyId),
SysConfigAction.GetWmsSubWarehouseByIdAndCompany);
if (!result.Success)
return null;
return result.Data;
}
///
/// 获取仓位集合:根据仓位ID集合和公司ID
///
///
///
///
public async Task> GetSubUcStockAsync(List ids, int companyId)
{
var result = await _singleDataService.GetSysConfigData, IdsRequest>
(new IdsRequest(ids, companyId),
SysConfigAction.GetWmsSubWarehouseByIdsAndCompany);
if (!result.Success)
return null;
return result.Data.ToList();
}
///
/// 获取仓位详情:根据仓位编码和公司ID
///
///
///
///
public async Task GetSubUcStockAsync(string code, int companyId)
{
var result = await _singleDataService.GetSysConfigData, CodeRequest>
(new CodeRequest(code, companyId),
SysConfigAction.GetWmsSubWarehouseByCodeAndCompany);
if (!result.Success)
return null;
return result.Data;
}
///
/// 获取仓位集合:根据仓位编码集合和公司ID
///
///
///
///
public async Task> GetSubUcStockAsync(List codes, int companyId)
{
var result = await _singleDataService.GetSysConfigData, CodesRequest>
(new CodesRequest(codes, companyId),
SysConfigAction.GetWmsSubWarehouseByCodesAndCompany);
if (!result.Success)
return null;
return result.Data.ToList();
}
public async Task> GetUcStockAsync(string systemCode, string name, int companyId)
{
var result = await _singleDataService.GetSysConfigData, SystemCodeRequest>
(new SystemCodeRequest(systemCode,name, companyId),
SysConfigAction.GetWmsWarehouseBySystemCodeAndNameAndCompany);
if (!result.Success)
return null;
return result.Data.ToList();
}
public IDbContextTransaction GetTransaction()
{
return _context.Database.BeginTransaction();
}
public bool CommitTransaction(bool isRollback, IDbContextTransaction transaction)
{
try
{
if (transaction == null)
return true;
if (isRollback)
{
transaction.Rollback();
return false;
}
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
return false;
}
return true;
}
}
}