| | |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using WIDESEA_Common.Constants; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseController; |
| | | using WIDESEA_DTO.MES; |
| | | using WIDESEA_IStockService; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IStockService; |
| | | using WIDESEA_ISystemService; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_Common.Constants; |
| | | using WIDESEA_Common.StockEnum; |
| | | |
| | | namespace WIDESEA_WMSServer.Controllers.Stock |
| | | { |
| | |
| | | |
| | | try |
| | | { |
| | | // 1. 参数验证 |
| | | if (dto.SfcList == null || !dto.SfcList.Any()) |
| | | { |
| | | return response.Error("电芯码列表不能为空"); |
| | | } |
| | | //// 1. 参数验证 |
| | | //if (dto.SfcList == null || !dto.SfcList.Any()) |
| | | //{ |
| | | // return response.Error("电芯码列表不能为空"); |
| | | //} |
| | | |
| | | // 2. 验证电芯状态(非'已锁定'状态允许绑定) |
| | | var stockDetail = await Service.Repository.QueryFirstAsync(x => dto.SfcList.Contains(x.SerialNumber)); |
| | | if (stockDetail != null && stockDetail.Status == 99) |
| | | { |
| | | return response.Error("当前库存明细包含已锁定状态,不允许执行绑定操作"); |
| | | } |
| | | var stockInfo = await _stockInfoService.Repository.QueryFirstAsync(x => stockDetail.StockId == x.Id); |
| | | //var stockDetail = await Service.Repository.QueryFirstAsync(x => dto.SfcList.Contains(x.SerialNumber)); |
| | | //if (stockDetail != null && stockDetail.Status == 99) |
| | | //{ |
| | | // return response.Error("当前库存明细包含已锁定状态,不允许执行绑定操作"); |
| | | //} |
| | | var stockInfo = await _stockInfoService.Repository.QueryDataNavFirstAsync(x => x.PalletCode == dto.PalletCode); |
| | | |
| | | // 3. 动态获取MES凭证 |
| | | var mesConfig = _mesDeviceConfigService.GetByDeviceName("组盘机械手"); |
| | |
| | | ResourceCode = resourceCode, |
| | | LocalTime = DateTime.Now, |
| | | ContainerCode = stockInfo.PalletCode, |
| | | ContainerSfcList = dto.SfcList.Select(sfc => new ContainerSfcItem |
| | | ContainerSfcList = stockInfo.Details.Select(sfc => new ContainerSfcItem |
| | | { |
| | | Sfc = sfc, |
| | | Location = dto.Location ?? "" |
| | | Sfc = sfc.SerialNumber, |
| | | Location = sfc.InboundOrderRowNo.ToString() ?? "" |
| | | }).ToList(), |
| | | OperationType = dto.OperationType |
| | | }; |
| | |
| | | ? _mesService.BindContainer(mesRequest) |
| | | : _mesService.BindContainer(mesRequest, token); |
| | | return ( |
| | | result?.IsSuccess ?? false, |
| | | result?.Data?.IsSuccess ?? false, |
| | | System.Text.Json.JsonSerializer.Serialize(result), |
| | | result?.ErrorMessage ?? "未知错误" |
| | | result?.Data?.Msg ?? result?.ErrorMessage ?? "未知错误" |
| | | ); |
| | | }, |
| | | App.User.UserName); |
| | |
| | | try |
| | | { |
| | | // 1. 参数验证 |
| | | if (dto.SfcList == null || !dto.SfcList.Any()) |
| | | { |
| | | return response.Error("电芯码列表不能为空"); |
| | | } |
| | | //if (dto.SfcList == null || !dto.SfcList.Any()) |
| | | //{ |
| | | // return response.Error("电芯码列表不能为空"); |
| | | //} |
| | | |
| | | // 2. 验证电芯状态(非'已锁定'状态允许解绑) |
| | | var stockDetail = await Service.Repository.QueryFirstAsync(x => dto.SfcList.Contains(x.SerialNumber)); |
| | | if (stockDetail != null && stockDetail.Status == 99) |
| | | { |
| | | return response.Error("当前库存明细包含已锁定状态,不允许执行解绑操作"); |
| | | } |
| | | var stockInfo = await _stockInfoService.Repository.QueryFirstAsync(x => stockDetail.StockId == x.Id); |
| | | //// 2. 验证电芯状态(非'已锁定'状态允许解绑) |
| | | //var stockDetail = await Service.Repository.QueryFirstAsync(x => dto.SfcList.Contains(x.SerialNumber)); |
| | | //if (stockDetail != null && stockDetail.Status == 99) |
| | | //{ |
| | | // return response.Error("当前库存明细包含已锁定状态,不允许执行解绑操作"); |
| | | //} |
| | | var stockInfo = await _stockInfoService.Repository.QueryDataNavFirstAsync(x => dto.PalletCode == x.PalletCode); |
| | | |
| | | // 3. 动态获取MES凭证 |
| | | var mesConfig = _mesDeviceConfigService.GetByDeviceName("组盘机械手"); |
| | |
| | | ResourceCode = resourceCode, |
| | | LocalTime = DateTime.Now, |
| | | ContainCode = stockInfo.PalletCode, |
| | | SfcList = dto.SfcList |
| | | SfcList = stockInfo.Details.Select(x => x.SerialNumber).ToList(), |
| | | }; |
| | | |
| | | string requestJson = System.Text.Json.JsonSerializer.Serialize(mesRequest); |
| | |
| | | ? _mesService.UnBindContainer(mesRequest) |
| | | : _mesService.UnBindContainer(mesRequest, token); |
| | | return ( |
| | | result?.IsSuccess ?? false, |
| | | result?.Data?.IsSuccess ?? false, |
| | | System.Text.Json.JsonSerializer.Serialize(result), |
| | | result?.ErrorMessage ?? "未知错误" |
| | | result?.Data?.Msg ?? result?.ErrorMessage ?? "未知错误" |
| | | ); |
| | | }, |
| | | App.User.UserName); |
| | |
| | | return defaultValue; |
| | | } |
| | | } |
| | | } |
| | | } |