增加重置箱接口

This commit is contained in:
18942506660
2024-05-15 15:17:02 +08:00
parent 5d31f820e0
commit e4dea40c01
8 changed files with 174 additions and 5 deletions

View File

@@ -0,0 +1,92 @@
using AutoMapper;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using WMS.Web.Domain.Infrastructure;
using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.IService;
using WMS.Web.Domain.Options;
using System.Threading.Tasks;
using System;
using WMS.Web.Core.Dto.OutStock;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Values;
using Newtonsoft.Json;
using WMS.Web.Core.Dto;
using System.Linq;
using System.Collections.Generic;
using WMS.Web.Repositories;
using Microsoft.EntityFrameworkCore.Storage;
namespace WMS.Web.Api.Controllers
{
/// <summary>
/// 条码系统重置箱信息
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class BarCodeController : ControllerBase
{
private readonly IMapper _mapper;
private readonly ILoginService _loginService;
private readonly IBoxRepositories _boxRepositories;
private readonly IInStockTaskBoxRepositories _inStockTaskBoxRepositories;
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
private IBasicsRepositories _transactionRepositories;
private readonly ILogger<TakeStockController> _logger;
public BarCodeController(IMapper mapper, ILoginService loginService,
IBoxRepositories boxRepositories, IInStockTaskBoxRepositories inStockTaskBoxRepositories,
ILogger<TakeStockController> logger, ISerialNumbersRepositories serialNumbersRepositorie,
IBasicsRepositories transactionRepositories)
{
_mapper = mapper;
_loginService = loginService;
_boxRepositories = boxRepositories;
_inStockTaskBoxRepositories = inStockTaskBoxRepositories;
_serialNumbersRepositories = serialNumbersRepositorie;
_transactionRepositories = transactionRepositories;
_logger = logger;
}
/// <summary>
/// 导出
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost]
[Route("Restart")]
public async Task<Result<List<string>>> Restart([FromBody] OperateStrRequest dto)
{
_logger.LogInformation($"重置箱信息:{JsonConvert.SerializeObject(dto)}");
var boxs = await _boxRepositories.GetEntityListByNos(dto.Ids);
var boxIds = boxs.Select(s => s.Id).ToList();
//查出已经入库的箱子
var inStockList = await _inStockTaskBoxRepositories.GetListBy(boxIds);
//已经入库的箱子
var inBoxBillNo = inStockList.Select(s => s.BoxBillNo).ToList();
//找到需要删除的箱子
var deleteBoxIds = boxs.Where(w => !inBoxBillNo.Contains(w.BoxBillNo)).Select(s => s.Id).ToList();
if (deleteBoxIds.Count() == 0) return Result<List<string>>.ReSuccess(inBoxBillNo);
var deleteBoxBillNos = boxs.Where(w => deleteBoxIds.Contains(w.Id)).Select(s => s.BoxBillNo).ToList();
_logger.LogInformation($"重置的箱号:{JsonConvert.SerializeObject(deleteBoxBillNos)}");
//执行数据库
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
bool res_Rollback = false;
//删除序列号
var isSuccess = await _serialNumbersRepositories.DeleteEntityList(deleteBoxIds, false);
if (!isSuccess) res_Rollback = true;
if (!res_Rollback)
{
//删除箱信息
isSuccess = await _boxRepositories.DeleteEntityList(deleteBoxIds, false);
if (!isSuccess) res_Rollback = true;
}
isSuccess = _transactionRepositories.CommitTransaction(res_Rollback, _transaction);
if (!isSuccess) return Result<List<string>>.ReFailure(ResultCodes.DateWriteError);
return Result<List<string>>.ReSuccess(inBoxBillNo);
}
}
}

View File

@@ -37,6 +37,18 @@
<param name="dto"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Api.Controllers.BarCodeController">
<summary>
条码系统重置箱信息
</summary>
</member>
<member name="M:WMS.Web.Api.Controllers.BarCodeController.Restart(WMS.Web.Core.Dto.OperateStrRequest)">
<summary>
导出
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Api.Controllers.BoxMarkController">
<summary>
箱唛-接口