pan
2025-12-03 151047cd890684f9b4e27f947d1852178719ea8c
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/InvokeMESService.cs
@@ -129,7 +129,7 @@
            _client.DefaultRequestHeaders.Clear();
            _client.DefaultRequestHeaders.Add("Accept", "application/json");
            _logger.LogInformation("InvokeMESService  FeedbackOutbound :  " + json);
            _logger.LogInformation("InvokeMESService  FeedbackOutbound :  "+ model.orderNo +"  , " + json);
            var response = await _client.PostAsync("AldMaterialOutbound/MaterialOutbound", content);
            string body = await response.Content.ReadAsStringAsync();
@@ -248,58 +248,7 @@
            }
        }
        /// <summary>
        /// å‡†å¤‡å›žä¼ æ•°æ®
        /// </summary>
        private TransferDataDto PrepareTransferData(List<Dt_PickingRecord> pickingRecords)
        {
            var transferData = new TransferDataDto
            {
                TransferTime = DateTime.Now,
                Items = new List<TransferItemDto>()
            };
            // æŒ‰ç‰©æ–™åˆ†ç»„
            var materialGroups = pickingRecords
                .GroupBy(x => x.MaterielCode)
                .ToList();
            foreach (var group in materialGroups)
            {
                var item = new TransferItemDto
                {
                    MaterialCode = group.Key,
                    TotalQuantity = group.Sum(x => x.PickQuantity),
                    Locations = new List<LocationInfoDto>()
                };
                // æŒ‰è´§ä½åˆ†ç»„
                var locationGroups = group
                    .GroupBy(x => x.LocationCode)
                    .ToList();
                foreach (var locationGroup in locationGroups)
                {
                    var location = new LocationInfoDto
                    {
                        LocationCode = locationGroup.Key,
                        Quantity = locationGroup.Sum(x => x.PickQuantity),
                        Barcodes = locationGroup.Select(x => new BarcodeInfoDto
                        {
                            Barcode = x.Barcode,
                            Quantity = x.PickQuantity
                        }).ToList()
                    };
                    item.Locations.Add(location);
                }
                transferData.Items.Add(item);
            }
            return transferData;
        }
        /// <summary>
        /// 
        /// </summary>
@@ -828,6 +777,11 @@
                            .Where(x => x.OrderNo == orderNo)
                            .ExecuteCommandAsync();
                        await _pickingRecoreRepository.Db.Updateable<Dt_PickingRecord>()
                                 .SetColumns(x => x.ReturnToMESStatus == 1)
                            .Where(x => x.OrderNo == orderNo)
                            .ExecuteCommandAsync();
                        return WebResponseContent.Instance.OK("回传MES成功");
                    }
                    else
@@ -847,7 +801,7 @@
                return WebResponseContent.Instance.Error("处理回传MES时发生异常,请联系管理员");
            }
        }
    }
    }
    public static class UniqueValueGenerator
    {
@@ -861,14 +815,23 @@
        public static string Generate()
        {
            var now = DateTime.Now;
            string datePart = now.ToString("yyyyMMdd");
            string datePart = now.ToString("MMdd");
            long ticksPart = now.Ticks;
            // æ‹¼æŽ¥ï¼šè®¡æ•°å™¨è¡¥0为3位(避免位数不一致)
            return $"{datePart}{ticksPart}";
        }
        public static string GenerateCount()
        {
            var now = DateTime.Now;
            string datePart = now.ToString("yyyyMMddHHmmss");
            // åŽŸå­é€’å¢žè®¡æ•°å™¨ï¼ˆå–æ¨¡1000,确保计数器仅3位,控制长度)
            long counterPart = Interlocked.Increment(ref _counter) % 1000;
            // æ‹¼æŽ¥ï¼šè®¡æ•°å™¨è¡¥0为3位(避免位数不一致)
            return $"{datePart}{ticksPart}{counterPart:D3}";
            return $"{datePart}{counterPart:D3}";
        }
    }
}