diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index d9a4086f..fb8a2235 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -32,14 +32,17 @@ namespace WMS.Web.Api.Controllers private readonly IBoxRepositories _boxRepositories; private readonly IErpService _erpService; private readonly ISingleDataService _singleDataService; + private readonly ISerialNumbersRepositories _serialNumbersRepositories; public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, - IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService) + IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService, + ISerialNumbersRepositories serialNumbersRepositories) { _loginService = loginService; _basicsRepositories = basicsRepositories; _boxRepositories = boxRepositories; _erpService = erpService; _singleDataService = singleDataService; + _serialNumbersRepositories = serialNumbersRepositories; } /// @@ -254,5 +257,23 @@ namespace WMS.Web.Api.Controllers return ResultList.ReSuccess(res); } + + /// + /// 根据序列号搜索信息-PDA + /// + /// 必填 + /// + [HttpGet] + [Route("GetSerialNumber/{serialNumber}")] + public async Task> GetSerialNumbers([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); + + var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber); + + return Result.ReSuccess(res); + } } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index f48ca27e..a6143f36 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -366,6 +366,13 @@ 必填 + + + 根据序列号搜索信息-PDA + + 必填 + + 盘点单 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 10091524..4bb85e65 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -2665,17 +2665,17 @@ 明细 - + 序列号 - + 序列号生成时间 - + 序列号生成用户 @@ -3120,6 +3120,36 @@ 每页条数 不传默认每页10 条 + + + 序列号信息 + + + + + 序列号 + + + + + 物料ID + + + + + 物料名称 + + + + + 物料编码 + + + + + 物料规格型号 + + 名称请求对象 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 5adfb75d..587af63c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1087,6 +1087,16 @@ 创建时间(老ops过来) + + + 出库单号 + + + + + 入库单号/采购单号 + + wms盘点单 @@ -1589,6 +1599,12 @@ + + 查询实体集合 + + + 修改实体集合 + 批量添加 diff --git a/src/WMS.Web.Core/Dto/OpsBoxResponse.cs b/src/WMS.Web.Core/Dto/OpsBoxResponse.cs index 6b61d1e2..106d7d77 100644 --- a/src/WMS.Web.Core/Dto/OpsBoxResponse.cs +++ b/src/WMS.Web.Core/Dto/OpsBoxResponse.cs @@ -51,7 +51,7 @@ namespace WMS.Web.Core.Dto [JsonProperty("BoxReturnDetails")] public List Details { get; set; } = new List(); } - public class SerialNumbersResponse + public class OpsSerialNumbersResponse { /// /// 序列号 @@ -85,6 +85,6 @@ namespace WMS.Web.Core.Dto /// 序列号集 /// [JsonProperty("SerialNumbers")] - public List SerialNumbers { get; set; } = new List(); + public List SerialNumbers { get; set; } = new List(); } } diff --git a/src/WMS.Web.Core/Dto/SerialNumbersResponse.cs b/src/WMS.Web.Core/Dto/SerialNumbersResponse.cs new file mode 100644 index 00000000..b16a76af --- /dev/null +++ b/src/WMS.Web.Core/Dto/SerialNumbersResponse.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto +{ + /// + /// 序列号信息 + /// + public class SerialNumbersResponse + { + /// + /// 序列号 + /// + public string SerialNumber { get; set; } + /// + /// 物料ID + /// + public int MaterialId { get; set; } + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs index ea55eecf..cedf8169 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs @@ -58,5 +58,15 @@ namespace WMS.Web.Domain.Entitys /// [Column("CreateTime")] public DateTime CreateTime { get; set; } = DateTime.Now; + /// + /// 出库单号 + /// + [Column("OutStockBillNo")] + public string OutStockBillNo { get; set; } + /// + /// 入库单号/采购单号 + /// + [Column("InStockBillNo")] + public string InStockBillNo { get; set; } } } diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs index 201841ca..7ede98ee 100644 --- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Domain.Entitys; namespace WMS.Web.Domain.Infrastructure @@ -18,5 +19,11 @@ namespace WMS.Web.Domain.Infrastructure /// /// Task AddRange(List entitys, bool isTransaction = true); + //根据序列号模糊搜索信息 + Task GetSerialNumber(string serialNumber); + /// 查询实体集合 + Task> GetEntityList(List serialNumbers); + /// 修改实体集合 + Task EditEntityList(List entitys, bool isTransaction = true); } } diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index b9c5cf21..a0e97928 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -1,11 +1,17 @@ using AutoMapper; +using Microsoft.EntityFrameworkCore; 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; +using WMS.Web.Core.Help; using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Mappers; using WMS.Web.Repositories.Configuration; namespace WMS.Web.Repositories @@ -13,17 +19,22 @@ namespace WMS.Web.Repositories /// /// 序列号 /// - public class SerialNumbersRepositories: ISerialNumbersRepositories + public class SerialNumbersRepositories : ISerialNumbersRepositories { private readonly IMapper _mapper; private readonly IServiceProvider _serviceProvider; private readonly RepositoryDbContext _context; + private readonly IErpService _erpService; + private readonly IErpBasicDataExtendService _erpBasicDataExtendService; - public SerialNumbersRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider) + public SerialNumbersRepositories(RepositoryDbContext context, IMapper mapper, + IServiceProvider serviceProvider, IErpService erpService, IErpBasicDataExtendService erpBasicDataExtendService) { _context = context; _mapper = mapper; _serviceProvider = serviceProvider; + _erpService = erpService; + _erpBasicDataExtendService = erpBasicDataExtendService; } public async Task AddRange(List entitys, bool isTransaction = true) @@ -49,5 +60,72 @@ namespace WMS.Web.Repositories return false; } } + /// + /// 批量修改 + /// + /// + /// + /// + public async Task EditEntityList(List entitys, bool isTransaction = true) + { + IDbContextTransaction _transaction = null; + if (isTransaction) + _transaction = _context.Database.BeginTransaction(); + try + { + List list = entitys.Select(s => s.Id).ToList(); + + var res = await _context.SerialNumbers + .Where(f => list.Contains(f.Id)).ToListAsync(); + + _mapper.ToMapList(entitys, res); + + await _context.SaveChangesAsync(); + if (_transaction != null) + _transaction.Commit(); + } + catch (Exception ex) + { + if (_transaction != null) + _transaction.Rollback(); + return false; + } + return true; + } + /// + /// 根据序列号查询 + /// + /// + /// + public async Task> GetEntityList(List serialNumbers) + { + var res = await _context.SerialNumbers + .Where(f => serialNumbers.Contains(f.SerialNumber)) + .ToListAsync(); + + return res.Clone(); + } + + /// + /// 根据序列号 + /// + /// + /// + public async Task GetSerialNumber(string serialNumber) + { + SerialNumbersResponse response = new SerialNumbersResponse(); + var materials_result = await _erpService.BillQueryForMaterial(); + if (!materials_result.IsSuccess) + return response; + var materials = materials_result.Data.ToList(); + + var entity = await _context.SerialNumbers.FirstOrDefaultAsync(w => serialNumber.Equals(w.SerialNumber)); + response.SerialNumber = entity.SerialNumber; + response.MaterialId = entity.MaterialId; + response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.MaterialId); + response.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, entity.MaterialId); + response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.MaterialId); + return new SerialNumbersResponse(); + } } }