diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2
index d9b4bd5c..596f520b 100644
Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index e52b42f5..3d3589af 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -1115,16 +1115,66 @@
明细ID
+
+
+ 供应商Id
+
+
+
+
+ 组织ID
+
+
+
+
+ 收货仓库
+
+
+
+
+ 收货仓库编码(对应金蝶和单点)
+
+
物料ID
+
+
+ 出厂价(对应金蝶数据)
+
+
+
+
+ 应入数量(对应金蝶的订单数量-对应物料)
+
+
+
+
+ 已交数量(对应金蝶的已交数量-对应物料),目前只有采购订单有
+
+
收货数量
+
+
+ 实际入库数量(仓库人员现场入库的数量)上架动作
+
+
+
+
+ 明细备注
+
+
+
+
+ 创建时间(erp那边的创建时间)
+
+
入库任务-修改请求对象
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 925140bc..8c702984 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -1134,6 +1134,18 @@
+
+
+ 获取事务 用来处理即时库存
+
+
+
+
+
+ 获取事务 用来处理即时库存
+
+
+
箱库存-仓储接口
diff --git a/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs b/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs
index 63e859f9..f8ce406c 100644
--- a/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs
+++ b/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs
@@ -14,12 +14,52 @@ namespace WMS.Web.Core.Dto.InStockTask
///
public override int Id { get; set; } = 0;
///
+ /// 供应商Id
+ ///
+ public int SupplierId { get; set; }
+ ///
+ /// 组织ID
+ ///
+ public int OrgId { get; set; }
+ ///
+ /// 收货仓库
+ ///
+ public int StockId { get; set; }
+ ///
+ /// 收货仓库编码(对应金蝶和单点)
+ ///
+ public string StockCode { get; set; }
+ ///
/// 物料ID
///
public int MaterialId { get; set; }
///
+ /// 出厂价(对应金蝶数据)
+ ///
+ public decimal FactoryPrice { get; set; }
+ ///
+ /// 应入数量(对应金蝶的订单数量-对应物料)
+ ///
+ public decimal AccruedQty { get; set; }
+ ///
+ /// 已交数量(对应金蝶的已交数量-对应物料),目前只有采购订单有
+ ///
+ public decimal DeliveredQty { get; set; }
+ ///
/// 收货数量
///
public decimal ReceiveQty { get; set; }
+ ///
+ /// 实际入库数量(仓库人员现场入库的数量)上架动作
+ ///
+ public decimal RealityQty { get; set; }
+ ///
+ /// 明细备注
+ ///
+ public string Remark { get; set; }
+ ///
+ /// 创建时间(erp那边的创建时间)
+ ///
+ public DateTime CreateTime { get; set; }
}
}
diff --git a/src/WMS.Web.Domain/Entitys/InstockTask.cs b/src/WMS.Web.Domain/Entitys/InstockTask.cs
index d37fcdb0..a17dfd11 100644
--- a/src/WMS.Web.Domain/Entitys/InstockTask.cs
+++ b/src/WMS.Web.Domain/Entitys/InstockTask.cs
@@ -54,12 +54,14 @@ namespace WMS.Web.Domain.Entitys
///
/// 箱信息集合
///
- public List Boxs { get; set; }
+ [NotMapped]
+ public virtual List Boxs { get; set; }
///
/// 明细
///
- public List Details { get; set; }
+ [NotMapped]
+ public virtual List Details { get; set; }
///
/// 创建
diff --git a/src/WMS.Web.Domain/Infrastructure/IBasicsRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBasicsRepositories.cs
index 6aa79d15..9e93c5c7 100644
--- a/src/WMS.Web.Domain/Infrastructure/IBasicsRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IBasicsRepositories.cs
@@ -1,4 +1,5 @@
-using System;
+using Microsoft.EntityFrameworkCore.Storage;
+using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
@@ -37,5 +38,17 @@ namespace WMS.Web.Domain.Infrastructure
///
///
Task> GetUcStockAsync(string systemCode,string name, int companyId);
+
+ ///
+ /// 获取事务 用来处理即时库存
+ ///
+ ///
+ IDbContextTransaction GetTransaction();
+
+ ///
+ /// 获取事务 用来处理即时库存
+ ///
+ ///
+ bool CommitTransaction(bool isRollback, IDbContextTransaction transaction);
}
}
diff --git a/src/WMS.Web.Domain/Mappers/InStockMapper.cs b/src/WMS.Web.Domain/Mappers/InStockMapper.cs
index b0eebe08..5729a2a1 100644
--- a/src/WMS.Web.Domain/Mappers/InStockMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/InStockMapper.cs
@@ -16,11 +16,24 @@ namespace WMS.Web.Domain.Mappers
{
public InStockMapper()
{
- CreateMap()
- .ForMember(x => x.Boxs, opt => opt.Ignore())
- .ForMember(x => x.Details, opt => opt.Ignore());
+ CreateMap();
+ //.ForMember(x => x.Boxs, opt => opt.Ignore())
+ //.ForMember(x => x.Details, opt => opt.Ignore());
CreateMap();
+ //.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();
+ //CreateMap().ReverseMap();
+ //CreateMap().ReverseMap();
+ //CreateMap().ReverseMap();
diff --git a/src/WMS.Web.Domain/Services/BackRecordService.cs b/src/WMS.Web.Domain/Services/BackRecordService.cs
index 3c8321e7..15d9d50b 100644
--- a/src/WMS.Web.Domain/Services/BackRecordService.cs
+++ b/src/WMS.Web.Domain/Services/BackRecordService.cs
@@ -22,15 +22,15 @@ namespace WMS.Web.Domain.Services
{
private readonly IMapper _mapper;
private readonly ILoginService _loginService;
- public readonly ITransactionRepositories _transactionRepositories;
+ public readonly IBasicsRepositories _basicsRepositories;
private readonly IBackRecordRepositories _backRecordRepositories;
public BackRecordService(IMapper mapper, ILoginService loginService,
- ITransactionRepositories transactionRepositories,
+ IBasicsRepositories basicsRepositories,
IBackRecordRepositories backRecordRepositories)
{
_mapper = mapper;
_loginService = loginService;
- _transactionRepositories = transactionRepositories;
+ _basicsRepositories = basicsRepositories;
_backRecordRepositories = backRecordRepositories;
}
@@ -42,7 +42,7 @@ namespace WMS.Web.Domain.Services
///
public async Task BackShelf(SaveBackRecordRequest dto, LoginInDto loginInfo)
{
- IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
+ IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false;
bool isTransaction = false;
@@ -53,7 +53,7 @@ namespace WMS.Web.Domain.Services
entity = await _backRecordRepositories.Add(entity, isTransaction);
//提交事务
- var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
+ var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index 8b46e41a..de8383b8 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -27,17 +27,17 @@ namespace WMS.Web.Domain.Services
private readonly IMapper _mapper;
private readonly ILoginService _loginService;
private readonly IBoxRepositories _boxRepositories;
- public readonly ITransactionRepositories _transactionRepositories;
+ private readonly IBasicsRepositories _basicsRepositories;
private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories;
public InStockService(IMapper mapper, ILoginService loginService, IBoxRepositories boxRepositories,
- ITransactionRepositories transactionRepositories,
+ IBasicsRepositories basicsRepositories,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{
_mapper = mapper;
_loginService = loginService;
_boxRepositories = boxRepositories;
- _transactionRepositories = transactionRepositories;
+ _basicsRepositories = basicsRepositories;
_inStockRepositories = inStockRepositories;
_inStockTaskRepositories = inStockTaskRepositories;
}
@@ -64,14 +64,14 @@ namespace WMS.Web.Domain.Services
///
public async Task Receive(UpdateInStockTaskRequest dto, LoginInDto loginInfo)
{
- IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
+ IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false;
bool isTransaction = false;
var result = await this.Update(dto, loginInfo.UserInfo.StaffId,true, isTransaction);
if (!result.IsSuccess) isRollback = true;
//提交事务
- var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
+ var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
@@ -86,7 +86,7 @@ namespace WMS.Web.Domain.Services
///
public async Task Shelf(PurchaseShelfRequest instock, LoginInDto loginInfo)
{
- IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
+ IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false;
bool isTransaction = false;
//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)
return Result.ReFailure(ResultCodes.DateWriteError);
@@ -180,10 +180,10 @@ namespace WMS.Web.Domain.Services
return Result.ReFailure(ResultCodes.DateWriteError);
entity = _mapper.Map(dto, entity);
- //子集单独映射
- entity.Boxs = _mapper.ToMapList(dto.Boxs, entity.Boxs);
- //子集单独映射
- entity.Details = _mapper.ToMapList(dto.Details, entity.Details);
+ ////子集单独映射
+ //entity.Boxs = _mapper.ToMapList(dto.Boxs, entity.Boxs);
+ ////子集单独映射
+ //entity.Details = _mapper.ToMapList(dto.Details, entity.Details);
if (isReceive)
entity.Receive(staffId);
else
diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs
index 5881d71c..660cedca 100644
--- a/src/WMS.Web.Domain/Services/InStockTaskService.cs
+++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs
@@ -22,17 +22,17 @@ namespace WMS.Web.Domain.Services
private readonly IMapper _mapper;
private readonly IErpService _erpService;
private readonly ILoginService _loginService;
- private readonly ITransactionRepositories _transactionRepositories;
+ private readonly IBasicsRepositories _basicsRepositories;
private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories;
public InStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
- ITransactionRepositories transactionRepositories,
+ IBasicsRepositories basicsRepositories,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{
_mapper = mapper;
_erpService = erpService;
_loginService = loginService;
- _transactionRepositories = transactionRepositories;
+ _basicsRepositories = basicsRepositories;
_inStockRepositories = inStockRepositories;
_inStockTaskRepositories = inStockTaskRepositories;
}
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 4e789263..2a979042 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -40,7 +40,6 @@ namespace WMS.Web.Domain.Services.Public
private readonly IMemoryCache _memoryCache;
private readonly IInStockTaskRepositories _inStockTaskRepositories;
private readonly ISingleDataService _singleDataService;
- public readonly ITransactionRepositories _transactionRepositories;
private readonly ILoginRepositories _loginRepositories;
private readonly IBasicsRepositories _basicsRepositories;
public ErpService(
@@ -50,7 +49,6 @@ namespace WMS.Web.Domain.Services.Public
ILogger logger,
IMemoryCache memoryCache,
IInStockTaskRepositories inStockTaskRepositories,
- ITransactionRepositories transactionRepositories,
ISingleDataService singleDataService,
ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories)
{
@@ -61,7 +59,6 @@ namespace WMS.Web.Domain.Services.Public
this._logger = logger;
this._memoryCache = memoryCache;
this._inStockTaskRepositories = inStockTaskRepositories;
- this._transactionRepositories = transactionRepositories;
this._singleDataService = singleDataService;
this._loginRepositories = loginRepositories;
}
diff --git a/src/WMS.Web.Repositories/BasicsRepositories.cs b/src/WMS.Web.Repositories/BasicsRepositories.cs
index b3b04df5..e3b8c2b9 100644
--- a/src/WMS.Web.Repositories/BasicsRepositories.cs
+++ b/src/WMS.Web.Repositories/BasicsRepositories.cs
@@ -1,4 +1,5 @@
using AutoMapper;
+using Microsoft.EntityFrameworkCore.Storage;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -79,5 +80,32 @@ namespace WMS.Web.Repositories
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;
+ }
}
}
diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs
index 3c56a965..a4847dce 100644
--- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs
+++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs
@@ -32,10 +32,9 @@ namespace Microsoft.Extensions.DependencyInjection
{
services.AddHttpContextAccessor();
services.AddScoped();
- services.AddScoped();
+ //services.AddScoped();
services.AddScoped();
-
- services.AddTransient();
+ services.AddTransient();
services.AddTransient();
services.AddTransient();
diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs
index a5e1533d..1bb18876 100644
--- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs
+++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs
@@ -131,7 +131,8 @@ namespace WMS.Web.Repositories
.Include(s => s.Details)
.FirstOrDefaultAsync(f => f.Id == id);
- return entity.Clone();
+ //return entity.Clone();
+ return entity;
}
///
@@ -339,14 +340,13 @@ namespace WMS.Web.Repositories
try
{
var model = await _context.InStockTask
+ .AsNoTracking()
.Include(s=>s.Boxs)
.Include(s => s.Details)
.FirstOrDefaultAsync(f => f.Id == entity.Id);
if (model == null)
return null;
_mapper.Map(entity, model);
- _mapper.ToMapList(entity.Boxs, model.Boxs);
- _mapper.ToMapList(entity.Details, model.Details);
var result= await _context.SaveChangesAsync();
if (_transaction != null)
_transaction.Commit();