This commit is contained in:
tongfei
2023-11-06 16:56:23 +08:00
parent 78db8b7f24
commit d63f2320e0
14 changed files with 188 additions and 34 deletions

View File

@@ -1115,16 +1115,66 @@
明细ID 明细ID
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.SupplierId">
<summary>
供应商Id
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.OrgId">
<summary>
组织ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.StockId">
<summary>
收货仓库
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.StockCode">
<summary>
收货仓库编码(对应金蝶和单点)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.MaterialId"> <member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.MaterialId">
<summary> <summary>
物料ID 物料ID
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.FactoryPrice">
<summary>
出厂价(对应金蝶数据)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.AccruedQty">
<summary>
应入数量(对应金蝶的订单数量-对应物料)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.DeliveredQty">
<summary>
已交数量(对应金蝶的已交数量-对应物料),目前只有采购订单有
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.ReceiveQty"> <member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.ReceiveQty">
<summary> <summary>
收货数量 收货数量
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.RealityQty">
<summary>
实际入库数量(仓库人员现场入库的数量)上架动作
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.Remark">
<summary>
明细备注
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.CreateTime">
<summary>
创建时间erp那边的创建时间
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskRequest"> <member name="T:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskRequest">
<summary> <summary>
入库任务-修改请求对象 入库任务-修改请求对象

View File

@@ -1134,6 +1134,18 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Infrastructure.IBasicsRepositories.GetTransaction">
<summary>
获取事务 用来处理即时库存
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Infrastructure.IBasicsRepositories.CommitTransaction(System.Boolean,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction)">
<summary>
获取事务 用来处理即时库存
</summary>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Infrastructure.IBoxInventoryRepositories"> <member name="T:WMS.Web.Domain.Infrastructure.IBoxInventoryRepositories">
<summary> <summary>
箱库存-仓储接口 箱库存-仓储接口

View File

@@ -14,12 +14,52 @@ namespace WMS.Web.Core.Dto.InStockTask
/// </summary> /// </summary>
public override int Id { get; set; } = 0; public override int Id { get; set; } = 0;
/// <summary> /// <summary>
/// 供应商Id
/// </summary>
public int SupplierId { get; set; }
/// <summary>
/// 组织ID
/// </summary>
public int OrgId { get; set; }
/// <summary>
/// 收货仓库
/// </summary>
public int StockId { get; set; }
/// <summary>
/// 收货仓库编码(对应金蝶和单点)
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 物料ID /// 物料ID
/// </summary> /// </summary>
public int MaterialId { get; set; } public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 出厂价(对应金蝶数据)
/// </summary>
public decimal FactoryPrice { get; set; }
/// <summary>
/// 应入数量(对应金蝶的订单数量-对应物料)
/// </summary>
public decimal AccruedQty { get; set; }
/// <summary>
/// 已交数量(对应金蝶的已交数量-对应物料),目前只有采购订单有
/// </summary>
public decimal DeliveredQty { get; set; }
/// <summary>
/// 收货数量 /// 收货数量
/// </summary> /// </summary>
public decimal ReceiveQty { get; set; } public decimal ReceiveQty { get; set; }
/// <summary>
/// 实际入库数量(仓库人员现场入库的数量)上架动作
/// </summary>
public decimal RealityQty { get; set; }
/// <summary>
/// 明细备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 创建时间erp那边的创建时间
/// </summary>
public DateTime CreateTime { get; set; }
} }
} }

View File

@@ -54,12 +54,14 @@ namespace WMS.Web.Domain.Entitys
/// <summary> /// <summary>
/// 箱信息集合 /// 箱信息集合
/// </summary> /// </summary>
public List<InStockTaskBox> Boxs { get; set; } [NotMapped]
public virtual List<InStockTaskBox> Boxs { get; set; }
/// <summary> /// <summary>
/// 明细 /// 明细
/// </summary> /// </summary>
public List<InStockTaskDetails> Details { get; set; } [NotMapped]
public virtual List<InStockTaskDetails> Details { get; set; }
/// <summary> /// <summary>
/// 创建 /// 创建

View File

@@ -1,4 +1,5 @@
using System; using Microsoft.EntityFrameworkCore.Storage;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -37,5 +38,17 @@ namespace WMS.Web.Domain.Infrastructure
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task<List<UcStockResponse>> GetUcStockAsync(string systemCode,string name, int companyId); Task<List<UcStockResponse>> GetUcStockAsync(string systemCode,string name, int companyId);
/// <summary>
/// 获取事务 用来处理即时库存
/// </summary>
/// <returns></returns>
IDbContextTransaction GetTransaction();
/// <summary>
/// 获取事务 用来处理即时库存
/// </summary>
/// <returns></returns>
bool CommitTransaction(bool isRollback, IDbContextTransaction transaction);
} }
} }

View File

@@ -16,11 +16,24 @@ namespace WMS.Web.Domain.Mappers
{ {
public InStockMapper() public InStockMapper()
{ {
CreateMap<UpdateInStockTaskRequest, InStockTask>() CreateMap<UpdateInStockTaskRequest, InStockTask>();
.ForMember(x => x.Boxs, opt => opt.Ignore()) //.ForMember(x => x.Boxs, opt => opt.Ignore())
.ForMember(x => x.Details, opt => opt.Ignore()); //.ForMember(x => x.Details, opt => opt.Ignore());
CreateMap<UpdateInStockTaskDetailsRequest, InStockTaskDetails>(); CreateMap<UpdateInStockTaskDetailsRequest, InStockTaskDetails>();
//.ForMember(x => x.SupplierId, opt => opt.Ignore())
//.ForMember(x => x.OrgId, opt => opt.Ignore())
//.ForMember(x => x.StockId, opt => opt.Ignore())
//.ForMember(x => x.StockCode, opt => opt.Ignore())
//.ForMember(x => x.FactoryPrice, opt => opt.Ignore())
//.ForMember(x => x.AccruedQty, opt => opt.Ignore())
//.ForMember(x => x.DeliveredQty, opt => opt.Ignore())
//.ForMember(x => x.RealityQty, opt => opt.Ignore())
//.ForMember(x => x.Remark, opt => opt.Ignore())
//.ForMember(x => x.CreateTime, opt => opt.Ignore());
CreateMap<UpdateInStockTaskBoxRequest, InStockTaskBox>(); CreateMap<UpdateInStockTaskBoxRequest, InStockTaskBox>();
//CreateMap<InStockTask, InStockTask>().ReverseMap();
//CreateMap<InStockTaskDetails, InStockTaskDetails>().ReverseMap();
//CreateMap<InStockTaskBox, InStockTaskBox>().ReverseMap();

View File

@@ -22,15 +22,15 @@ namespace WMS.Web.Domain.Services
{ {
private readonly IMapper _mapper; private readonly IMapper _mapper;
private readonly ILoginService _loginService; private readonly ILoginService _loginService;
public readonly ITransactionRepositories _transactionRepositories; public readonly IBasicsRepositories _basicsRepositories;
private readonly IBackRecordRepositories _backRecordRepositories; private readonly IBackRecordRepositories _backRecordRepositories;
public BackRecordService(IMapper mapper, ILoginService loginService, public BackRecordService(IMapper mapper, ILoginService loginService,
ITransactionRepositories transactionRepositories, IBasicsRepositories basicsRepositories,
IBackRecordRepositories backRecordRepositories) IBackRecordRepositories backRecordRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
_transactionRepositories = transactionRepositories; _basicsRepositories = basicsRepositories;
_backRecordRepositories = backRecordRepositories; _backRecordRepositories = backRecordRepositories;
} }
@@ -42,7 +42,7 @@ namespace WMS.Web.Domain.Services
/// <returns></returns> /// <returns></returns>
public async Task<Result> BackShelf(SaveBackRecordRequest dto, LoginInDto loginInfo) public async Task<Result> BackShelf(SaveBackRecordRequest dto, LoginInDto loginInfo)
{ {
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false; bool isRollback = false;
bool isTransaction = false; bool isTransaction = false;
@@ -53,7 +53,7 @@ namespace WMS.Web.Domain.Services
entity = await _backRecordRepositories.Add(entity, isTransaction); entity = await _backRecordRepositories.Add(entity, isTransaction);
//提交事务 //提交事务
var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);

View File

@@ -27,17 +27,17 @@ namespace WMS.Web.Domain.Services
private readonly IMapper _mapper; private readonly IMapper _mapper;
private readonly ILoginService _loginService; private readonly ILoginService _loginService;
private readonly IBoxRepositories _boxRepositories; private readonly IBoxRepositories _boxRepositories;
public readonly ITransactionRepositories _transactionRepositories; private readonly IBasicsRepositories _basicsRepositories;
private readonly IInStockRepositories _inStockRepositories; private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories; private readonly IInStockTaskRepositories _inStockTaskRepositories;
public InStockService(IMapper mapper, ILoginService loginService, IBoxRepositories boxRepositories, public InStockService(IMapper mapper, ILoginService loginService, IBoxRepositories boxRepositories,
ITransactionRepositories transactionRepositories, IBasicsRepositories basicsRepositories,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories) IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
_boxRepositories = boxRepositories; _boxRepositories = boxRepositories;
_transactionRepositories = transactionRepositories; _basicsRepositories = basicsRepositories;
_inStockRepositories = inStockRepositories; _inStockRepositories = inStockRepositories;
_inStockTaskRepositories = inStockTaskRepositories; _inStockTaskRepositories = inStockTaskRepositories;
} }
@@ -64,14 +64,14 @@ namespace WMS.Web.Domain.Services
/// <returns></returns> /// <returns></returns>
public async Task<Result> Receive(UpdateInStockTaskRequest dto, LoginInDto loginInfo) public async Task<Result> Receive(UpdateInStockTaskRequest dto, LoginInDto loginInfo)
{ {
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false; bool isRollback = false;
bool isTransaction = false; bool isTransaction = false;
var result = await this.Update(dto, loginInfo.UserInfo.StaffId,true, isTransaction); var result = await this.Update(dto, loginInfo.UserInfo.StaffId,true, isTransaction);
if (!result.IsSuccess) isRollback = true; if (!result.IsSuccess) isRollback = true;
//提交事务 //提交事务
var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
@@ -86,7 +86,7 @@ namespace WMS.Web.Domain.Services
/// <returns></returns> /// <returns></returns>
public async Task<Result> Shelf(PurchaseShelfRequest instock, LoginInDto loginInfo) public async Task<Result> Shelf(PurchaseShelfRequest instock, LoginInDto loginInfo)
{ {
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false; bool isRollback = false;
bool isTransaction = false; bool isTransaction = false;
//1.添加入库单同步金蝶在save方法里面进行 //1.添加入库单同步金蝶在save方法里面进行
@@ -100,7 +100,7 @@ namespace WMS.Web.Domain.Services
} }
//提交事务 //提交事务
var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
@@ -180,10 +180,10 @@ namespace WMS.Web.Domain.Services
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
entity = _mapper.Map(dto, entity); entity = _mapper.Map(dto, entity);
//子集单独映射 ////子集单独映射
entity.Boxs = _mapper.ToMapList(dto.Boxs, entity.Boxs); //entity.Boxs = _mapper.ToMapList(dto.Boxs, entity.Boxs);
//子集单独映射 ////子集单独映射
entity.Details = _mapper.ToMapList(dto.Details, entity.Details); //entity.Details = _mapper.ToMapList(dto.Details, entity.Details);
if (isReceive) if (isReceive)
entity.Receive(staffId); entity.Receive(staffId);
else else

View File

@@ -22,17 +22,17 @@ namespace WMS.Web.Domain.Services
private readonly IMapper _mapper; private readonly IMapper _mapper;
private readonly IErpService _erpService; private readonly IErpService _erpService;
private readonly ILoginService _loginService; private readonly ILoginService _loginService;
private readonly ITransactionRepositories _transactionRepositories; private readonly IBasicsRepositories _basicsRepositories;
private readonly IInStockRepositories _inStockRepositories; private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories; private readonly IInStockTaskRepositories _inStockTaskRepositories;
public InStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService, public InStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
ITransactionRepositories transactionRepositories, IBasicsRepositories basicsRepositories,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories) IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_erpService = erpService; _erpService = erpService;
_loginService = loginService; _loginService = loginService;
_transactionRepositories = transactionRepositories; _basicsRepositories = basicsRepositories;
_inStockRepositories = inStockRepositories; _inStockRepositories = inStockRepositories;
_inStockTaskRepositories = inStockTaskRepositories; _inStockTaskRepositories = inStockTaskRepositories;
} }

View File

@@ -40,7 +40,6 @@ namespace WMS.Web.Domain.Services.Public
private readonly IMemoryCache _memoryCache; private readonly IMemoryCache _memoryCache;
private readonly IInStockTaskRepositories _inStockTaskRepositories; private readonly IInStockTaskRepositories _inStockTaskRepositories;
private readonly ISingleDataService _singleDataService; private readonly ISingleDataService _singleDataService;
public readonly ITransactionRepositories _transactionRepositories;
private readonly ILoginRepositories _loginRepositories; private readonly ILoginRepositories _loginRepositories;
private readonly IBasicsRepositories _basicsRepositories; private readonly IBasicsRepositories _basicsRepositories;
public ErpService( public ErpService(
@@ -50,7 +49,6 @@ namespace WMS.Web.Domain.Services.Public
ILogger<ErpService> logger, ILogger<ErpService> logger,
IMemoryCache memoryCache, IMemoryCache memoryCache,
IInStockTaskRepositories inStockTaskRepositories, IInStockTaskRepositories inStockTaskRepositories,
ITransactionRepositories transactionRepositories,
ISingleDataService singleDataService, ISingleDataService singleDataService,
ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories) ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories)
{ {
@@ -61,7 +59,6 @@ namespace WMS.Web.Domain.Services.Public
this._logger = logger; this._logger = logger;
this._memoryCache = memoryCache; this._memoryCache = memoryCache;
this._inStockTaskRepositories = inStockTaskRepositories; this._inStockTaskRepositories = inStockTaskRepositories;
this._transactionRepositories = transactionRepositories;
this._singleDataService = singleDataService; this._singleDataService = singleDataService;
this._loginRepositories = loginRepositories; this._loginRepositories = loginRepositories;
} }

View File

@@ -1,4 +1,5 @@
using AutoMapper; using AutoMapper;
using Microsoft.EntityFrameworkCore.Storage;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@@ -79,5 +80,32 @@ namespace WMS.Web.Repositories
return null; return null;
return result.Data.ToList(); 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;
}
} }
} }

View File

@@ -32,10 +32,9 @@ namespace Microsoft.Extensions.DependencyInjection
{ {
services.AddHttpContextAccessor(); services.AddHttpContextAccessor();
services.AddScoped<ILoginRepositories, LoginRepositories>(); services.AddScoped<ILoginRepositories, LoginRepositories>();
services.AddScoped<IBasicsRepositories, BasicsRepositories>(); //services.AddScoped<IBasicsRepositories, BasicsRepositories>();
services.AddScoped<IBoxRepositories, BoxRepositories>(); services.AddScoped<IBoxRepositories, BoxRepositories>();
services.AddTransient<IBasicsRepositories, BasicsRepositories>();
services.AddTransient<ITransactionRepositories, TransactionRepositories>();
services.AddTransient<IInStockRepositories, InStockRepositories>(); services.AddTransient<IInStockRepositories, InStockRepositories>();
services.AddTransient<IInStockTaskRepositories, InStockTaskRepositories>(); services.AddTransient<IInStockTaskRepositories, InStockTaskRepositories>();

View File

@@ -131,7 +131,8 @@ namespace WMS.Web.Repositories
.Include(s => s.Details) .Include(s => s.Details)
.FirstOrDefaultAsync(f => f.Id == id); .FirstOrDefaultAsync(f => f.Id == id);
return entity.Clone(); //return entity.Clone();
return entity;
} }
/// <summary> /// <summary>
@@ -339,14 +340,13 @@ namespace WMS.Web.Repositories
try try
{ {
var model = await _context.InStockTask var model = await _context.InStockTask
.AsNoTracking()
.Include(s=>s.Boxs) .Include(s=>s.Boxs)
.Include(s => s.Details) .Include(s => s.Details)
.FirstOrDefaultAsync(f => f.Id == entity.Id); .FirstOrDefaultAsync(f => f.Id == entity.Id);
if (model == null) if (model == null)
return null; return null;
_mapper.Map(entity, model); _mapper.Map(entity, model);
_mapper.ToMapList(entity.Boxs, model.Boxs);
_mapper.ToMapList(entity.Details, model.Details);
var result= await _context.SaveChangesAsync(); var result= await _context.SaveChangesAsync();
if (_transaction != null) if (_transaction != null)
_transaction.Commit(); _transaction.Commit();