175 lines
6.5 KiB
C#
175 lines
6.5 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// 基础数据
|
||
/// </summary>
|
||
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;
|
||
}
|
||
/// <summary>
|
||
/// 获取所有人员
|
||
/// </summary>
|
||
/// <param name="CompanyId"></param>
|
||
/// <returns></returns>
|
||
public async Task<List<SysStaffResponse>> GetStaffListAsync(int CompanyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<ResultList<SysStaffResponse>, SingleDataRequest>
|
||
(new SingleDataRequest(CompanyId),
|
||
SysConfigAction.GetStaffByCompany);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data.ToList();
|
||
}
|
||
|
||
public async Task<List<UcStockResponse>> GetSubUcStockAsync(int stockId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<ResultList<UcStockResponse>, SubStockRequest>
|
||
(new SubStockRequest(stockId),
|
||
SysConfigAction.GetChildWarehouseByPid);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data.ToList();
|
||
}
|
||
|
||
public async Task<List<UcSubStockResponse>> GetSubUcStockAsync(string systemCode, string name, int companyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<ResultList<UcSubStockResponse>, SystemCodeRequest>
|
||
(new SystemCodeRequest(systemCode, name, companyId),
|
||
SysConfigAction.GetWmsSubWarehouseBySystemCodeAndNameAndCompany);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data.ToList();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取仓位详情:根据仓位ID和公司ID
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="companyId"></param>
|
||
/// <returns></returns>
|
||
public async Task<UcSubStockResponse> GetSubUcStockAsync(int id, int companyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<Result<UcSubStockResponse>, IdRequest>
|
||
(new IdRequest(id, companyId),
|
||
SysConfigAction.GetWmsSubWarehouseByIdAndCompany);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取仓位集合:根据仓位ID集合和公司ID
|
||
/// </summary>
|
||
/// <param name="ids"></param>
|
||
/// <param name="companyId"></param>
|
||
/// <returns></returns>
|
||
public async Task<List<UcSubStockResponse>> GetSubUcStockAsync(List<int> ids, int companyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<ResultList<UcSubStockResponse>, IdsRequest>
|
||
(new IdsRequest(ids, companyId),
|
||
SysConfigAction.GetWmsSubWarehouseByIdsAndCompany);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data.ToList();
|
||
}
|
||
/// <summary>
|
||
/// 获取仓位详情:根据仓位编码和公司ID
|
||
/// </summary>
|
||
/// <param name="code"></param>
|
||
/// <param name="companyId"></param>
|
||
/// <returns></returns>
|
||
public async Task<UcSubStockResponse> GetSubUcStockAsync(string code, int companyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<Result<UcSubStockResponse>, CodeRequest>
|
||
(new CodeRequest(code, companyId),
|
||
SysConfigAction.GetWmsSubWarehouseByCodeAndCompany);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data;
|
||
}
|
||
/// <summary>
|
||
/// 获取仓位集合:根据仓位编码集合和公司ID
|
||
/// </summary>
|
||
/// <param name="codes"></param>
|
||
/// <param name="companyId"></param>
|
||
/// <returns></returns>
|
||
public async Task<List<UcSubStockResponse>> GetSubUcStockAsync(List<string> codes, int companyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<ResultList<UcSubStockResponse>, CodesRequest>
|
||
(new CodesRequest(codes, companyId),
|
||
SysConfigAction.GetWmsSubWarehouseByCodesAndCompany);
|
||
if (!result.Success)
|
||
return null;
|
||
return result.Data.ToList();
|
||
}
|
||
public async Task<List<UcStockResponse>> GetUcStockAsync(string systemCode, string name, int companyId)
|
||
{
|
||
var result = await _singleDataService.GetSysConfigData<ResultList<UcStockResponse>, 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;
|
||
}
|
||
|
||
|
||
}
|
||
}
|