Merge branch 'master' of https://codeup.aliyun.com/62ce7bca487c500c27f70a79/OPS/WMS-Api
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
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.ChangeBoxRecord;
|
||||
@@ -24,15 +25,17 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories;
|
||||
public readonly ITransactionRepositories _transactionRepositories;
|
||||
private readonly IMoveBoxRecordRepositories _moveBoxRecordRepositories;
|
||||
public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
|
||||
private readonly IBoxRepositories _boxRepositories;
|
||||
public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
|
||||
IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories,
|
||||
IMoveBoxRecordRepositories moveBoxRecordRepositories)
|
||||
IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
_changeBoxRecordRepositories = changeBoxRecordRepositories;
|
||||
_transactionRepositories = transactionRepositories;
|
||||
_moveBoxRecordRepositories = moveBoxRecordRepositories;
|
||||
_boxRepositories = boxRepositories;
|
||||
}
|
||||
/// <summary>
|
||||
/// 改箱保存
|
||||
@@ -40,10 +43,32 @@ namespace WMS.Web.Domain.Services
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="loginInfo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo)
|
||||
public async Task<Result> ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo)
|
||||
{
|
||||
var entity = _mapper.Map<ChangeBoxRecord>(dto);
|
||||
entity.Create(loginInfo.UserInfo.StaffId);
|
||||
List<Box> boxList = new List<Box>();
|
||||
var srcBox = await _boxRepositories.Get(dto.SrcBoxId);
|
||||
var destBox = await _boxRepositories.Get(dto.DestBoxId);
|
||||
if (srcBox == null) return Result.ReFailure(ResultCodes.BoxNoData);
|
||||
if (destBox == null) return Result.ReFailure(ResultCodes.BoxNoData);
|
||||
var l = dto.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList();
|
||||
//原箱移出
|
||||
var res = srcBox.Out(l);
|
||||
if (!res.IsSuccess) return res;
|
||||
//目标箱移入
|
||||
res = destBox.In(l);
|
||||
if (!res.IsSuccess) return res;
|
||||
|
||||
boxList.Add(srcBox);
|
||||
boxList.Add(destBox);
|
||||
|
||||
//var entity = _mapper.Map<ChangeBoxRecord>(dto);\
|
||||
List<ChangeBoxRecord> list = new List<ChangeBoxRecord>();
|
||||
foreach (var d in dto.Details)
|
||||
{
|
||||
ChangeBoxRecord entity = new ChangeBoxRecord();
|
||||
entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dto.SrcBoxId, dto.DestBoxId);
|
||||
list.Add(entity);
|
||||
}
|
||||
|
||||
//需要填写序列号
|
||||
//需要修改库存
|
||||
@@ -51,8 +76,12 @@ namespace WMS.Web.Domain.Services
|
||||
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
||||
bool isRollback = false;
|
||||
bool isSuccess = true;
|
||||
entity = await _changeBoxRecordRepositories.Add(entity, true);
|
||||
if (entity == null) isRollback = true;
|
||||
isSuccess = await _changeBoxRecordRepositories.AddRange(list, false);
|
||||
if (!isSuccess) isRollback = true;
|
||||
|
||||
isSuccess = await _boxRepositories.EditEntityList(boxList, false);
|
||||
if (!isSuccess) isRollback = true;
|
||||
|
||||
|
||||
//提交事务
|
||||
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
|
||||
|
||||
Reference in New Issue
Block a user