diff --git a/src/WMS.Web.Api/Controllers/SerialNumberController.cs b/src/WMS.Web.Api/Controllers/SerialNumberController.cs new file mode 100644 index 00000000..05d33b8a --- /dev/null +++ b/src/WMS.Web.Api/Controllers/SerialNumberController.cs @@ -0,0 +1,50 @@ +using AutoMapper; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using WMS.Web.Core.Dto.SerialNumbers; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Values; + +namespace WMS.Web.Api.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class SerialNumberController : ControllerBase + { + private readonly IMapper _mapper; + private readonly ILoginService _loginService; + private readonly ISerialNumbersRepositories _serialNumbersRepositories; + public SerialNumberController(IMapper mapper, ILoginService loginService, ISerialNumbersRepositories serialNumbersRepositories) + { + _mapper = mapper; + _loginService = loginService; + _serialNumbersRepositories = serialNumbersRepositories; + } + + /// + /// 获取序列号信息 + /// + /// 序列号 + /// + [HttpGet] + [Route("Get/{serialNumber}")] + public async Task> Get([FromRoute] string serialNumber) + { + //var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + //if (loginInfo == null || loginInfo.UserInfo == null) + // return Result.ReFailure(ResultCodes.Token_Invalid_Error); + if (string.IsNullOrEmpty(serialNumber)) + return Result.ReFailure(ResultCodes.SerialNumbersNoData); + + var serial = await _serialNumbersRepositories.Get(serialNumber); + if (serial == null)return Result.ReFailure(ResultCodes.SerialNumbersNoData); + return Result.ReSuccess(serial); + } + } +} diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 18297c0d..9b767d07 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -430,6 +430,13 @@ + + + 获取序列号信息 + + 序列号 + + 系统配置 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 33b3daaa..7e18e7bc 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -4241,6 +4241,66 @@ 每页条数 不传默认每页10 条 + + + 序列号信息 + + + + + 序列号 + + + + + 物料名称 + + + + + 物料编码 + + + + + 物料规格型号 + + + + + 完成装箱时间 + + + + + 出库单对应销售订单号 + + + + + 出库时间 + + + + + 生产单号 + + + + + 采购单号 + + + + + 入库时间 + + + + + 收货客户 + + ID请求对象 diff --git a/src/WMS.Web.Core/Dto/SerialNumbers/SerialNumbersResponse.cs b/src/WMS.Web.Core/Dto/SerialNumbers/SerialNumbersResponse.cs new file mode 100644 index 00000000..31e3044f --- /dev/null +++ b/src/WMS.Web.Core/Dto/SerialNumbers/SerialNumbersResponse.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.SerialNumbers +{ + /// + /// 序列号信息 + /// + public class SerialNumbersResponse + { + /// + /// 序列号 + /// + public string SerialNumber { get; set; } + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + /// + /// 完成装箱时间 + /// + public DateTime? CompleteCartonTime { get; set; } + /// + /// 出库单对应销售订单号 + /// + public string SalBillNo { get; set; } + /// + /// 出库时间 + /// + public string OutStockTime { get; set; } + /// + /// 生产单号 + /// + public string ProduceBillNo { get; set; } + /// + /// 采购单号 + /// + public string PurchaseBillNo { get; set; } + /// + /// 入库时间 + /// + public string InStockTime { get; set; } + /// + /// 收货客户 + /// + public string Customer { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs index 42ac023b..d9e44233 100644 --- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.SerialNumbers; using WMS.Web.Domain.Entitys; namespace WMS.Web.Domain.Infrastructure @@ -21,6 +22,8 @@ namespace WMS.Web.Domain.Infrastructure Task AddRange(List entitys, bool isTransaction = true); //根据序列号模糊搜索信息 Task GetSerialNumber(string serialNumber); + //根据序列号搜索信息 + Task Get(string serialNumber); /// 查询实体集合 Task> GetEntityList(List serialNumbers); /// 根据箱Id查询集合 diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index e06cb916..2213e828 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -66,6 +66,6 @@ namespace WMS.Web.Domain.Values public static ValueTuple InventoryInOutDetailsWriteError = (800014, "写入物料收发明细失败!"); public static ValueTuple InventoryDetailsWriteError = (800014, "写入即时库存明细失败!"); - + public static ValueTuple SerialNumbersNoData = (610000, "序列号不存在"); } } diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index 2d169fdc..da0a01e4 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.SerialNumbers; using WMS.Web.Core.Help; using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; @@ -91,6 +92,42 @@ namespace WMS.Web.Repositories } return true; } + /// + /// 根据序列号搜索信息 + /// + /// + /// + public async Task Get(string serialNumber) + { + var materials_result = await _erpService.BillQueryForMaterial(); + if (!materials_result.IsSuccess) + return null; + var materials = materials_result.Data.ToList(); + + var customer_result = await _erpService.BillQueryForCustomer(); + if (!customer_result.IsSuccess) + return null; + var customers = customer_result.Data.ToList(); + + var s = await _context.SerialNumbers + .FirstOrDefaultAsync(f => serialNumber.Equals(f.SerialNumber)); + if (s == null) return null; + SerialNumbersResponse respone = new SerialNumbersResponse() + { + MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId), + MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId), + Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId), + CompleteCartonTime = s.CompleteCartonTime, + InStockTime = s.InStockTime.DateToStringSeconds(), + OutStockTime = s.OutStockTime.DateToStringSeconds(), + PurchaseBillNo = s.PurchaseBillNo, + SalBillNo = s.SalBillNo, + Customer = _erpBasicDataExtendService.GetCustomerName(customers, s.CustomerId), + SerialNumber = s.SerialNumber + }; + return respone; + } + /// /// 根据序列号查询 ///