diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 8cf9e004..0d637015 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index 89fa332c..36c17606 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -522,11 +522,11 @@ namespace WMS.Web.Api.Controllers /// [HttpGet] [Route("GetMaterial")] - public async Task> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false, [FromQuery] int? serialStatus = 0) + public async Task>> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false, [FromQuery] int? serialStatus = 0) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) - return Result.ReFailure(ResultCodes.Token_Invalid_Error); + return Result>.ReFailure(ResultCodes.Token_Invalid_Error); _logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode} 是否Ops:{IsOps} 查询状态 {serialStatus}"); var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0); @@ -544,12 +544,12 @@ namespace WMS.Web.Api.Controllers */ if (serialStatus == 1 || serialStatus == 2) { - if (res.IsActivate == true && res.IsDelete != true) - return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); + if (res[0].IsActivate == true && res[0].IsDelete != true) + return Result>.ReFailure(ResultCodes.SerialNumbersIsShelf); } - _logger.LogInformation($"请求序列号信息结果:{res.MaterialNumber}"); - return Result.ReSuccess(res); + _logger.LogInformation($"请求序列号信息结果:{res[0].MaterialNumber}"); + return Result>.ReSuccess(res); } /// diff --git a/src/WMS.Web.Domain/IService/ISerialNumberService.cs b/src/WMS.Web.Domain/IService/ISerialNumberService.cs index e4e71340..a31018dc 100644 --- a/src/WMS.Web.Domain/IService/ISerialNumberService.cs +++ b/src/WMS.Web.Domain/IService/ISerialNumberService.cs @@ -42,6 +42,6 @@ namespace WMS.Web.Domain.IService /// /// /// - Task> GetBarCodeSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0); + Task>> GetBarCodeSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0); } } diff --git a/src/WMS.Web.Domain/IService/Public/IOpsService.cs b/src/WMS.Web.Domain/IService/Public/IOpsService.cs index aa5e45ac..b0cf0648 100644 --- a/src/WMS.Web.Domain/IService/Public/IOpsService.cs +++ b/src/WMS.Web.Domain/IService/Public/IOpsService.cs @@ -13,6 +13,6 @@ namespace WMS.Web.Domain.IService.Public public interface IOpsService { Task> GetBox(OpsBoxRequest request); - Task> GetSerialNumbers(SerialNumbersWmsRequest request); + Task>> GetSerialNumbers(SerialNumbersWmsRequest request); } } diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs index 888f685a..39a8ee15 100644 --- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs @@ -21,7 +21,7 @@ namespace WMS.Web.Domain.Infrastructure /// Task AddRange(List entitys, bool isTransaction = true); //根据序列号模糊搜索信息 - Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0); + Task> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0); //根据序列号搜索信息 Task Get(string serialNumber); /// 查询实体集合 diff --git a/src/WMS.Web.Domain/Services/Public/OpsService.cs b/src/WMS.Web.Domain/Services/Public/OpsService.cs index 663eeca0..ed2f80eb 100644 --- a/src/WMS.Web.Domain/Services/Public/OpsService.cs +++ b/src/WMS.Web.Domain/Services/Public/OpsService.cs @@ -60,13 +60,13 @@ namespace WMS.Web.Domain.Services.Public /// /// /// - public async Task> GetSerialNumbers(SerialNumbersWmsRequest request) + public async Task>> GetSerialNumbers(SerialNumbersWmsRequest request) { string endStr = "api/WmsBox/GetSerialNumber"; Dictionary dicHeaders = new Dictionary(); //dicHeaders.Add("Authorization", "Bearer " + token); //_httpClientService.BuildHttpClient(contentHeaders); - var res = await _httpClientService.PostAsync>(_option.Url + endStr, JsonConvert.SerializeObject(request), dicHeaders); + var res = await _httpClientService.PostAsync>>(_option.Url + endStr, JsonConvert.SerializeObject(request), dicHeaders); return res; } diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 5e8eb0c7..4d690e4e 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -579,39 +579,42 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task> GetBarCodeSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0) + public async Task>> GetBarCodeSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0) { //外层方法没有调到数据是null 如果这里查询到序列码 var list = await _serialNumbersRepositories.GetEntityList(new List() { serialNumber }); if (list.FirstOrDefault(f => f.SerialNumber.Equals(serialNumber)) != null) - return Result.ReFailure(ResultCodes.MateriaNoData); + return Result>.ReFailure(ResultCodes.MateriaNoData); //进入供应链系统调数据 _logger.LogInformation($"拉取供应链系统条码->{serialNumber}"); var res = await _opsService.GetSerialNumbers(new Core.Dto.SerialNumbers.SerialNumbersWmsRequest() { SerialNumber = serialNumber }); if (!res.IsSuccess) - return Result.ReFailure(ResultCodes.MateriaNoData); + return Result>.ReFailure(ResultCodes.MateriaNoData); _logger.LogInformation($"拉取供应链系统条码结果:->{JsonConvert.SerializeObject(res)}"); //插入序列码信息 - SerialNumbers entity = new SerialNumbers(res.Data.SerialNumber, res.Data.MaterialNumber - , 0, 0, res.Data.Creator, res.Data.CreateTime, null,res.Data.IsTwo, res.Data.TwoSerialNumber,res.Data.IsNotCount); - var isSuccess = await _serialNumbersRepositories.AddRange(new List() { entity }); - if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); - - var res_s = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus); - if (res_s == null) return Result.ReFailure(ResultCodes.MateriaNoData); - /* - 以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功; - 不存在的序列号提示:产品信息不存在 - 非采购上架 改箱 (非激活的或者(激活被冻结)) 1 - 出库回退上架 (激活被冻结) 2 - */ - if (serialStatus == 1 || serialStatus == 2) + for (int j = 0; j < res.Data.Count; j++) { - if (res_s.IsActivate == true && res_s.IsDelete != true) - return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); + SerialNumbers entity = new SerialNumbers(res.Data[j].SerialNumber, res.Data[j].MaterialNumber + , 0, 0, res.Data[j].Creator, res.Data[j].CreateTime, null, res.Data[j].IsTwo, res.Data[j].TwoSerialNumber, res.Data[j].IsNotCount); + var isSuccess = await _serialNumbersRepositories.AddRange(new List() { entity }); + if (!isSuccess) return Result>.ReFailure(ResultCodes.DateWriteError); } - return Result.ReSuccess(res_s); + var res_s = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus); + if (res_s == null) return Result>.ReFailure(ResultCodes.MateriaNoData); + /* + 以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功; + 不存在的序列号提示:产品信息不存在 + 非采购上架 改箱 (非激活的或者(激活被冻结)) 1 + 出库回退上架 (激活被冻结) 2 + */ + if (serialStatus == 1 || serialStatus == 2) + { + if (res_s[0].IsActivate == true && res_s[0].IsDelete != true) + return Result>.ReFailure(ResultCodes.SerialNumbersIsShelf); + } + + return Result>.ReSuccess(res_s); } } } diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index 23fbf2b0..3a6ea47e 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -258,12 +258,16 @@ namespace WMS.Web.Repositories /// /// /// - public async Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0) + public async Task> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0) { + List response2 = new List(); MaterialResponse response = new MaterialResponse(); var materials_result = await _erpService.BillQueryForMaterial(); if (!materials_result.IsSuccess) - return response; + { + response2.Add(response); + return response2; + } var materials = materials_result.Data.ToList(); var m = materials.Where(f => (f.Specifications.Equals(serialNumber) || f.MaterialNumber.Equals(serialNumber))); @@ -275,7 +279,8 @@ namespace WMS.Web.Repositories response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, material.MaterialNumber); response.MaterialNumber = material.MaterialNumber; response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, material.MaterialNumber); - return response; + response2.Add(response); + return response2; } var res = _context.SerialNumbers .GroupJoin(_context.BoxInventory.Include(x => x.Details), serial => serial.BoxId, boxInventory => boxInventory.BoxId, (serial, boxInventory) => new { serial, boxInventory }) @@ -325,8 +330,8 @@ namespace WMS.Web.Repositories response.IsNotCount = "0"; } response.IsNotCount = entity.serial.IsNotCount; - - return response; + response2.Add(response); + return response2; } /// @@ -334,12 +339,16 @@ namespace WMS.Web.Repositories /// /// /// - private async Task GetSerialNumber_Ops(string serialNumber, int serialStatus = 0) + private async Task> GetSerialNumber_Ops(string serialNumber, int serialStatus = 0) { + List response2 = new List(); MaterialResponse response = new MaterialResponse(); var materials_result = await _erpService.BillQueryForMaterial(); if (!materials_result.IsSuccess) - return response; + { + response2.Add(response); + return response2; + } var materials = materials_result.Data.ToList(); var res = _context.SerialNumbers_Ops @@ -373,8 +382,8 @@ namespace WMS.Web.Repositories //if (entity.boxInventory != null) // response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false; - - return response; + response2.Add(response); + return response2; } /// /// 老ops条码批量修改