Files
WMS-Api/src/WMS.Web.Repositories/BasicsRepositories.cs
2024-03-18 11:52:15 +08:00

175 lines
6.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}