diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 0d637015..06879f9e 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 36c17606..2a3aaea1 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,14 +544,61 @@ namespace WMS.Web.Api.Controllers */ if (serialStatus == 1 || serialStatus == 2) { - if (res[0].IsActivate == true && res[0].IsDelete != true) - return Result>.ReFailure(ResultCodes.SerialNumbersIsShelf); + if (res.IsActivate == true && res.IsDelete != true) + return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); } - _logger.LogInformation($"请求序列号信息结果:{res[0].MaterialNumber}"); - return Result>.ReSuccess(res); + _logger.LogInformation($"请求序列号信息结果:{res.MaterialNumber}"); + return Result.ReSuccess(res); } + + ///// + ///// 根据序列号或规格型号,物料编码搜索物料信息-PDA + ///// + ///// 序列号或规格型号或物料编码 + ///// 组织编码 + ///// 是否需要支持老ops条码查询 + ///// + ///// 盘点 改箱 所有的序列号 0或者不传 + ///// 非采购上架 (非激活的或者(激活被冻结)) 1 + ///// 出库回退上架 (激活被冻结) 2 + ///// 入库回退下架 (激活非冻结) 3 + ///// 出库 (激活非冻结) 3 + ///// + ///// + //[HttpGet] + //[Route("GetMaterial")] + //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); + + // _logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode} 是否Ops:{IsOps} 查询状态 {serialStatus}"); + // var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0); + // //if (res == null) return Result.ReFailure(ResultCodes.MateriaNoData); + // if (res == null) + // { + // //没有搜索到数据 则去同步供应链系统 + // return await _serialNumberService.GetBarCodeSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0); + // } + // /* + // 以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功; + // 不存在的序列号提示:产品信息不存在 + // 非采购上架 改箱 (非激活的或者(激活被冻结)) 1 + // 出库回退上架 (激活被冻结) 2 + // */ + // if (serialStatus == 1 || serialStatus == 2) + // { + // if (res[0].IsActivate == true && res[0].IsDelete != true) + // return Result>.ReFailure(ResultCodes.SerialNumbersIsShelf); + // } + + // _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 a31018dc..fb790710 100644 --- a/src/WMS.Web.Domain/IService/ISerialNumberService.cs +++ b/src/WMS.Web.Domain/IService/ISerialNumberService.cs @@ -42,6 +42,8 @@ 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); + 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 b0cf0648..7ada38fc 100644 --- a/src/WMS.Web.Domain/IService/Public/IOpsService.cs +++ b/src/WMS.Web.Domain/IService/Public/IOpsService.cs @@ -13,6 +13,7 @@ namespace WMS.Web.Domain.IService.Public public interface IOpsService { Task> GetBox(OpsBoxRequest request); - Task>> GetSerialNumbers(SerialNumbersWmsRequest 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 39a8ee15..061b3a8c 100644 --- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs @@ -20,8 +20,12 @@ 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> 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 ed2f80eb..19383d34 100644 --- a/src/WMS.Web.Domain/Services/Public/OpsService.cs +++ b/src/WMS.Web.Domain/Services/Public/OpsService.cs @@ -54,22 +54,39 @@ namespace WMS.Web.Domain.Services.Public var list = JsonConvert.DeserializeObject>(res.data.date); return list; } + /// /// 获取序列码 /// /// /// /// - 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; } + ///// + ///// 获取序列码 + ///// + ///// + ///// + ///// + //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); + // return res; + //} + private async Task GetToken() { OpsLogin login = new OpsLogin() diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 4d690e4e..94960172 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -14,6 +14,7 @@ using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.Values; +using WMS.Web.Domain.Values.Erp; using WMS.Web.Domain.Values.Single; namespace WMS.Web.Domain.Services @@ -570,6 +571,7 @@ namespace WMS.Web.Domain.Services if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReSuccess(); } + /// /// 获取供应链系统序列码 /// @@ -579,29 +581,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)}"); //插入序列码信息 - for (int j = 0; j < res.Data.Count; j++) + if (res.Data.IsTwo > 1) { - 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); - } - var res_s = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus); - if (res_s == null) return Result>.ReFailure(ResultCodes.MateriaNoData); + string[]serial= res.Data.TwoSerialNumber.Split(','); + for(int j=0;j() { 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); /* 以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功; 不存在的序列号提示:产品信息不存在 @@ -610,11 +625,126 @@ namespace WMS.Web.Domain.Services */ if (serialStatus == 1 || serialStatus == 2) { - if (res_s[0].IsActivate == true && res_s[0].IsDelete != true) - return Result>.ReFailure(ResultCodes.SerialNumbersIsShelf); + if (res_s.IsActivate == true && res_s.IsDelete != true) + return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); } - - return Result>.ReSuccess(res_s); + return Result.ReSuccess(res_s); + } + else + { + + + 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) + { + if (res_s.IsActivate == true && res_s.IsDelete != true) + return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); + } + return Result.ReSuccess(res_s); + } } + + + ///// + ///// 获取供应链系统序列码 + ///// + ///// + ///// + ///// + ///// + ///// + ///// + //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); + // //进入供应链系统调数据 + // _logger.LogInformation($"拉取供应链系统条码->{serialNumber}"); + // var res = await _opsService.GetSerialNumbers(new Core.Dto.SerialNumbers.SerialNumbersWmsRequest() { SerialNumber = serialNumber }); + // if (!res.IsSuccess) + // 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) + // { + // if (res_s.IsActivate == true && res_s.IsDelete != true) + // return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); + // } + // return Result.ReSuccess(res_s); + //} + ///// + ///// 获取供应链系统序列码 + ///// + ///// + ///// + ///// + ///// + ///// + ///// + //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); + // //进入供应链系统调数据 + // _logger.LogInformation($"拉取供应链系统条码->{serialNumber}"); + // var res = await _opsService.GetSerialNumbers(new Core.Dto.SerialNumbers.SerialNumbersWmsRequest() { SerialNumber = serialNumber }); + // if (!res.IsSuccess) + // return Result>.ReFailure(ResultCodes.MateriaNoData); + + // _logger.LogInformation($"拉取供应链系统条码结果:->{JsonConvert.SerializeObject(res)}"); + // //插入序列码信息 + // for (int j = 0; j < res.Data.Count; j++) + // { + // 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); + // } + // 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 3a6ea47e..058a6f21 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -253,21 +253,18 @@ 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) - { - response2.Add(response); - return response2; - } + return response; var materials = materials_result.Data.ToList(); var m = materials.Where(f => (f.Specifications.Equals(serialNumber) || f.MaterialNumber.Equals(serialNumber))); @@ -279,8 +276,7 @@ namespace WMS.Web.Repositories response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, material.MaterialNumber); response.MaterialNumber = material.MaterialNumber; response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, material.MaterialNumber); - response2.Add(response); - return response2; + return response; } var res = _context.SerialNumbers .GroupJoin(_context.BoxInventory.Include(x => x.Details), serial => serial.BoxId, boxInventory => boxInventory.BoxId, (serial, boxInventory) => new { serial, boxInventory }) @@ -319,19 +315,19 @@ 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; response.IsTwo = entity.serial.IsTwo; - if(entity.serial.TwoSerialNumber!=null) - { - response.TwoSerialNumber=entity.serial.TwoSerialNumber.Replace(entity.serial.SerialNumber,"").Replace(",",""); - response.IsNotCount = entity.serial.IsNotCount; + if (entity.serial.TwoSerialNumber != null) + { + response.TwoSerialNumber = entity.serial.TwoSerialNumber.Replace(entity.serial.SerialNumber, "").Replace(",", ""); + response.IsNotCount = entity.serial.IsNotCount; } else { response.TwoSerialNumber = ""; response.IsNotCount = "0"; } - response.IsNotCount = entity.serial.IsNotCount; - response2.Add(response); - return response2; + response.IsNotCount = entity.serial.IsNotCount; + + return response; } /// @@ -339,16 +335,12 @@ 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) - { - response2.Add(response); - return response2; - } + return response; var materials = materials_result.Data.ToList(); var res = _context.SerialNumbers_Ops @@ -382,9 +374,142 @@ 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; - response2.Add(response); - return response2; + + return response; } + + ///// + ///// 根据序列号 + ///// + ///// + ///// + //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) + // { + // response2.Add(response); + // return response2; + // } + // var materials = materials_result.Data.ToList(); + + // var m = materials.Where(f => (f.Specifications.Equals(serialNumber) || f.MaterialNumber.Equals(serialNumber))); + // if (!string.IsNullOrEmpty(orgCode)) + // m = m.Where(w => w.OrgCode.Equals(orgCode)); + // var material = m.FirstOrDefault(); + // if (material != null) + // { + // response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, material.MaterialNumber); + // response.MaterialNumber = material.MaterialNumber; + // response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, material.MaterialNumber); + // 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 }) + // .SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory }) + // .GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box }) + // .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box }) + // .Where(w => serialNumber.Equals(w.serial.SerialNumber)); + // //0:所有 1 非激活的或者(激活被冻结) 2 激活被冻结 3 激活非冻结 + // //因为要 1和2的情况 要区分提示 所以条件扩大 然后根据具体的情况提示 + // //if (serialStatus == 1) + // // res = res.Where(w => w.serial.IsActivate != true || (w.serial.IsActivate == true && w.serial.IsDelete == true)); + // if (serialStatus == 2) + // res = res.Where(w => w.serial.IsActivate == true); + // else if (serialStatus == 3) + // res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete != true); + + // var entity = await res.FirstOrDefaultAsync(); + // if (entity == null || entity.serial == null) + // { + // if (IsOps) + // return await GetSerialNumber_Ops(serialNumber, serialStatus); + // else + // return null; + // } + // response.IsOldOps = false; + // response.BoxId = entity.serial.BoxId; + // response.BoxBillNo = entity?.box?.BoxBillNo ?? ""; + // response.SubStockCode = entity?.boxInventory?.SubStockCode ?? ""; + // response.StockCode = entity?.boxInventory?.StockCode ?? ""; + // response.SerialNumber = entity.serial.SerialNumber; + // response.IsDelete = entity.serial.IsDelete ?? false; + // response.IsActivate = entity.serial.IsActivate ?? false; + // response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber); + // response.MaterialNumber = entity.serial.MaterialNumber; + // response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber); + // if (entity.boxInventory != null) + // response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false; + // response.IsTwo = entity.serial.IsTwo; + // if(entity.serial.TwoSerialNumber!=null) + // { + // response.TwoSerialNumber=entity.serial.TwoSerialNumber.Replace(entity.serial.SerialNumber,"").Replace(",",""); + // response.IsNotCount = entity.serial.IsNotCount; + // } + // else + // { + // response.TwoSerialNumber = ""; + // response.IsNotCount = "0"; + // } + // response.IsNotCount = entity.serial.IsNotCount; + // response2.Add(response); + // return response2; + //} + + ///// + ///// 查询老ops序列码 + ///// + ///// + ///// + //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) + // { + // response2.Add(response); + // return response2; + // } + // var materials = materials_result.Data.ToList(); + + // var res = _context.SerialNumbers_Ops + // .GroupJoin(_context.BoxInventory.Include(x => x.Details), serial => serial.BoxId, boxInventory => boxInventory.BoxId, (serial, boxInventory) => new { serial, boxInventory }) + // .SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory }) + // .GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box }) + // .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box }) + // .Where(w => serialNumber.Equals(w.serial.SerialNumber)); + // //0:所有 1 非激活的或者(激活被冻结) 2 激活被冻结 3 激活非冻结 + // //因为要 1和2的情况 要区分提示 所以条件扩大 然后根据具体的情况提示 + // //if (serialStatus == 1) + // // res = res.Where(w => w.serial.IsActivate != true || (w.serial.IsActivate == true && w.serial.IsDelete == true)); + // if (serialStatus == 2) + // res = res.Where(w => w.serial.IsActivate == true); + // else if (serialStatus == 3) + // res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete != true); + // var entity = await res.FirstOrDefaultAsync(); + // if (entity == null) return null; + // response.IsOldOps = true; + // response.IsBoxInventory = true;//如果是老ops序列号 默认有库存 + // response.BoxId = entity.serial.BoxId; + // response.BoxBillNo = entity?.box?.BoxBillNo ?? ""; + // response.SubStockCode = entity?.boxInventory?.SubStockCode ?? ""; + // response.StockCode = entity?.boxInventory?.StockCode ?? ""; + // response.SerialNumber = entity.serial.SerialNumber; + // response.IsDelete = entity.serial.IsDelete ?? false; + // response.IsActivate = entity.serial.IsActivate ?? false; + // response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber); + // response.MaterialNumber = entity.serial.MaterialNumber; + // response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber); + // //if (entity.boxInventory != null) + // // response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false; + + // response2.Add(response); + // return response2; + //} /// /// 老ops条码批量修改 ///