调整出库操作
This commit is contained in:
@@ -53,13 +53,13 @@ namespace WMS.Web.Api.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存
|
/// 保存(出库)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("Save")]
|
[Route("Save")]
|
||||||
public async Task<Result> Save(List<SaveOutStockRequest> dto)
|
public async Task<Result> Save(SaveOutStockRequest dto)
|
||||||
{
|
{
|
||||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
|
|||||||
@@ -190,7 +190,7 @@
|
|||||||
<param name="dto"></param>
|
<param name="dto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Api.Controllers.OutStockController.Save(System.Collections.Generic.List{WMS.Web.Core.Dto.OutStock.SaveOutStockRequest})">
|
<member name="M:WMS.Web.Api.Controllers.OutStockController.Save(WMS.Web.Core.Dto.OutStock.SaveOutStockRequest)">
|
||||||
<summary>
|
<summary>
|
||||||
保存
|
保存
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -2305,42 +2305,17 @@
|
|||||||
出库单保存
|
出库单保存
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.SourceBillNo">
|
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.TaskId">
|
||||||
<summary>
|
<summary>
|
||||||
来源单号
|
出库任务单Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.SaleBillNo">
|
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.MaterialId">
|
||||||
<summary>
|
|
||||||
销售订单号
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.DeliveryOrgId">
|
|
||||||
<summary>
|
|
||||||
发货组织
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.ReceiptCustomerId">
|
|
||||||
<summary>
|
|
||||||
收货客户
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.MaterialId">
|
|
||||||
<summary>
|
<summary>
|
||||||
物料Id
|
物料Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.StockId">
|
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.Qty">
|
||||||
<summary>
|
|
||||||
仓库ID
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.SubStockId">
|
|
||||||
<summary>
|
|
||||||
仓位ID
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockRequest.Qty">
|
|
||||||
<summary>
|
<summary>
|
||||||
出库数量
|
出库数量
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -655,6 +655,11 @@
|
|||||||
主键 订单编号
|
主键 订单编号
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStock.TaskId">
|
||||||
|
<summary>
|
||||||
|
任务单ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStock.BillNo">
|
<member name="P:WMS.Web.Domain.Entitys.OutStock.BillNo">
|
||||||
<summary>
|
<summary>
|
||||||
单据编号
|
单据编号
|
||||||
@@ -690,7 +695,7 @@
|
|||||||
明细
|
明细
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Entitys.OutStock.Create(System.Int32)">
|
<member name="M:WMS.Web.Domain.Entitys.OutStock.Create(System.Int32,System.Int32,WMS.Web.Domain.Values.OrderType)">
|
||||||
<summary>
|
<summary>
|
||||||
创建
|
创建
|
||||||
</summary>
|
</summary>
|
||||||
@@ -924,11 +929,6 @@
|
|||||||
物料ID
|
物料ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStock.UnitId">
|
|
||||||
<summary>
|
|
||||||
单位ID
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStock.StockId">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStock.StockId">
|
||||||
<summary>
|
<summary>
|
||||||
仓库ID
|
仓库ID
|
||||||
@@ -1983,7 +1983,7 @@
|
|||||||
出库服务
|
出库服务
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.OutStockService.Save(System.Collections.Generic.List{WMS.Web.Core.Dto.OutStock.SaveOutStockRequest},WMS.Web.Core.Dto.Login.LoginInDto)">
|
<member name="M:WMS.Web.Domain.Services.OutStockService.Save(WMS.Web.Core.Dto.OutStock.SaveOutStockRequest,WMS.Web.Core.Dto.Login.LoginInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
出库单
|
出库单
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -11,40 +11,21 @@ namespace WMS.Web.Core.Dto.OutStock
|
|||||||
public class SaveOutStockRequest
|
public class SaveOutStockRequest
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 来源单号
|
/// 出库任务单Id
|
||||||
///</summary>
|
///</summary>
|
||||||
[Required(ErrorMessage = "来源单号不能为空")]
|
[Required(ErrorMessage = "出库单不能为空")]
|
||||||
public string SourceBillNo { get; set; }
|
public int TaskId { get; set; }
|
||||||
/// <summary>
|
public List<SaveOutStockDetailsRequest> Details { get; set; } = new List<SaveOutStockDetailsRequest>();
|
||||||
/// 销售订单号
|
|
||||||
///</summary>
|
}
|
||||||
[Required(ErrorMessage = "销售订单号不能为空")]
|
public class SaveOutStockDetailsRequest
|
||||||
public string SaleBillNo { get; set; }
|
{
|
||||||
/// <summary>
|
|
||||||
/// 发货组织
|
|
||||||
///</summary>
|
|
||||||
[Required(ErrorMessage = "发货组织不能为空")]
|
|
||||||
public int DeliveryOrgId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 收货客户
|
|
||||||
///</summary>
|
|
||||||
[Required(ErrorMessage = "收货客户不能为空")]
|
|
||||||
public int ReceiptCustomerId { get; set; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 物料Id
|
/// 物料Id
|
||||||
///</summary>
|
///</summary>
|
||||||
[Required(ErrorMessage = "物料不能为空")]
|
[Required(ErrorMessage = "物料不能为空")]
|
||||||
public int MaterialId { get; set; }
|
public int MaterialId { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 仓库ID
|
|
||||||
///</summary>
|
|
||||||
[Required(ErrorMessage = "仓库不能为空")]
|
|
||||||
public int StockId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 仓位ID
|
|
||||||
///</summary>
|
|
||||||
public int? SubStockId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 出库数量
|
/// 出库数量
|
||||||
///</summary>
|
///</summary>
|
||||||
[Required(ErrorMessage = "出库数量不能为空")]
|
[Required(ErrorMessage = "出库数量不能为空")]
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
[Column("Id")]
|
[Column("Id")]
|
||||||
public override int Id { get; set; }
|
public override int Id { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 任务单ID
|
||||||
|
/// </summary>
|
||||||
|
[Column("TaskId")]
|
||||||
|
public int TaskId { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// 单据编号
|
/// 单据编号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column("BillNo")]
|
[Column("BillNo")]
|
||||||
@@ -59,12 +64,15 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// 创建
|
/// 创建
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="creatorId"></param>
|
/// <param name="creatorId"></param>
|
||||||
public void Create(int creatorId)
|
public void Create(int creatorId,int taskId, OrderType type)
|
||||||
{
|
{
|
||||||
|
this.TaskId = taskId;
|
||||||
|
this.Type = type;
|
||||||
this.CreatorId = creatorId;
|
this.CreatorId = creatorId;
|
||||||
this.CreateTime = DateTime.Now;
|
this.CreateTime = DateTime.Now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成单据号
|
/// 生成单据号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace WMS.Web.Domain.IService
|
|||||||
public interface IOutStockService
|
public interface IOutStockService
|
||||||
{
|
{
|
||||||
//出库单保存
|
//出库单保存
|
||||||
Task<Result> Save(List<SaveOutStockRequest> dto, LoginInDto loginInfo);
|
Task<Result> Save(SaveOutStockRequest dto, LoginInDto loginInfo);
|
||||||
// 同步金蝶
|
// 同步金蝶
|
||||||
Task<Result> Sync(OperateRequest dto);
|
Task<Result> Sync(OperateRequest dto);
|
||||||
//出库任务作废
|
//出库任务作废
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ namespace WMS.Web.Domain.Infrastructure
|
|||||||
{
|
{
|
||||||
// 新增
|
// 新增
|
||||||
Task<OutStock> Add(OutStock entity, bool isTransaction = true);
|
Task<OutStock> Add(OutStock entity, bool isTransaction = true);
|
||||||
|
//编辑
|
||||||
|
Task<OutStock> Edit(OutStock entity, bool isTransaction = true);
|
||||||
|
//根据任务单Id搜索
|
||||||
|
Task<OutStock> GetByTaskId(int taskId);
|
||||||
// 获取列表
|
// 获取列表
|
||||||
Task<(List<OutStockQueryInfoResponse> list, int total)> GetListAsync(OutStockQueryRequest dto);
|
Task<(List<OutStockQueryInfoResponse> list, int total)> GetListAsync(OutStockQueryRequest dto);
|
||||||
/// 查询实体集合
|
/// 查询实体集合
|
||||||
|
|||||||
@@ -20,5 +20,7 @@ namespace WMS.Web.Domain.Infrastructure
|
|||||||
|
|
||||||
/// 删除实体集合
|
/// 删除实体集合
|
||||||
Task<bool> DeleteEntityList(List<int> ids, bool isTransaction = true);
|
Task<bool> DeleteEntityList(List<int> ids, bool isTransaction = true);
|
||||||
|
//获取实体
|
||||||
|
Task<OutStockTask> Get(int id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,11 @@ namespace WMS.Web.Domain.Mappers
|
|||||||
public OutStockMapper()
|
public OutStockMapper()
|
||||||
{
|
{
|
||||||
CreateMap<SaveOutStockRequest, OutStockDetails>();
|
CreateMap<SaveOutStockRequest, OutStockDetails>();
|
||||||
|
|
||||||
|
CreateMap<OutStockTaskDetails, OutStockDetails>()
|
||||||
|
.ForMember(x => x.Id, ops => ops.Ignore())
|
||||||
|
.ForMember(x => x.Fid, ops => ops.Ignore())
|
||||||
|
.ForMember(x => x.Qty, ops => ops.Ignore());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,11 +44,28 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
/// <param name="loginInfo"></param>
|
/// <param name="loginInfo"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result> Save(List<SaveOutStockRequest> dto, LoginInDto loginInfo)
|
public async Task<Result> Save(SaveOutStockRequest dto, LoginInDto loginInfo)
|
||||||
{
|
{
|
||||||
OutStock entity = new OutStock();
|
var outStockTask = await _outStockTaskRepositories.Get(dto.TaskId);
|
||||||
entity.Details = _mapper.Map<List<OutStockDetails>>(dto);
|
OutStock entity = await _outStockRepositories.GetByTaskId(dto.TaskId);
|
||||||
entity.Create(loginInfo.UserInfo.StaffId);
|
|
||||||
|
if (entity == null)
|
||||||
|
entity = new OutStock();
|
||||||
|
entity.Create(loginInfo.UserInfo.StaffId, outStockTask.Id, outStockTask.Type);
|
||||||
|
foreach (var d in dto.Details)
|
||||||
|
{
|
||||||
|
//任务单明细
|
||||||
|
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId);
|
||||||
|
if (tDetail == null) continue;
|
||||||
|
//出库单明细
|
||||||
|
OutStockDetails outd = entity.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId);
|
||||||
|
if (outd == null)
|
||||||
|
{
|
||||||
|
outd = _mapper.Map<OutStockDetails>(tDetail);
|
||||||
|
entity.Details.Add(outd);
|
||||||
|
}
|
||||||
|
outd.Qty = outd.Qty + d.Qty;
|
||||||
|
}
|
||||||
|
|
||||||
//需要填写序列号
|
//需要填写序列号
|
||||||
//需要修改库存
|
//需要修改库存
|
||||||
@@ -57,7 +74,11 @@ namespace WMS.Web.Domain.Services
|
|||||||
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
||||||
bool isRollback = false;
|
bool isRollback = false;
|
||||||
bool isSuccess = true;
|
bool isSuccess = true;
|
||||||
|
if (entity.Id > 0)
|
||||||
|
entity = await _outStockRepositories.Edit(entity, false);
|
||||||
|
else
|
||||||
entity = await _outStockRepositories.Add(entity, false);
|
entity = await _outStockRepositories.Add(entity, false);
|
||||||
|
|
||||||
if (entity == null) isRollback = true;
|
if (entity == null) isRollback = true;
|
||||||
|
|
||||||
//提交事务
|
//提交事务
|
||||||
|
|||||||
@@ -185,5 +185,53 @@ namespace WMS.Web.Repositories
|
|||||||
|
|
||||||
return res.Clone();
|
return res.Clone();
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 编辑
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<OutStock> Edit(OutStock entity, bool isTransaction = true)
|
||||||
|
{
|
||||||
|
IDbContextTransaction _transaction = null;
|
||||||
|
if (isTransaction)
|
||||||
|
_transaction = _context.Database.BeginTransaction();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var res = await _context.OutStock
|
||||||
|
.Include(s => s.Details)
|
||||||
|
.FirstOrDefaultAsync(f => f.Id == entity.Id);
|
||||||
|
if (res == null) return null;
|
||||||
|
|
||||||
|
_mapper.Map(entity, res);
|
||||||
|
_mapper.ToMapList(entity.Details, res.Details);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
|
if (_transaction != null)
|
||||||
|
_transaction.Commit();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
if (_transaction != null)
|
||||||
|
_transaction.Rollback();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据任务单Id获取
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="taskId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<OutStock> GetByTaskId(int taskId)
|
||||||
|
{
|
||||||
|
var res = await _context.OutStock
|
||||||
|
.Include(s => s.Details)
|
||||||
|
.FirstOrDefaultAsync(f => taskId == f.TaskId);
|
||||||
|
|
||||||
|
return res.Clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -140,6 +140,20 @@ namespace WMS.Web.Repositories
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据Id获取实体
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<OutStockTask> Get(int id)
|
||||||
|
{
|
||||||
|
var res = await _context.OutStockTask
|
||||||
|
.Include(s => s.Details)
|
||||||
|
.FirstOrDefaultAsync(f => id == f.Id);
|
||||||
|
|
||||||
|
return res.Clone();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据单据头id获取数据
|
/// 根据单据头id获取数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user