| | |
| | | _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(); |
| | |
| | | } |
| | | } |
| | | |
| | | /// <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> |
| | |
| | | .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 |
| | |
| | | return WebResponseContent.Instance.Error("å¤çåä¼ MESæ¶åçå¼å¸¸ï¼è¯·è系管çå"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static class UniqueValueGenerator |
| | | { |
| | |
| | | public static string Generate() |
| | | { |
| | | var now = DateTime.Now; |
| | | string datePart = now.ToString("yyyyMMdd"); |
| | | string datePart = now.ToString("MMdd"); |
| | | long ticksPart = now.Ticks; |
| | | |
| | | // ååéå¢è®¡æ°å¨ï¼å模1000ï¼ç¡®ä¿è®¡æ°å¨ä»
3ä½ï¼æ§å¶é¿åº¦ï¼ |
| | | long counterPart = Interlocked.Increment(ref _counter) % 1000; |
| | | |
| | | // æ¼æ¥ï¼è®¡æ°å¨è¡¥0为3ä½ï¼é¿å
使°ä¸ä¸è´ï¼ |
| | | return $"{datePart}{ticksPart}{counterPart:D3}"; |
| | | return $"{datePart}{ticksPart}"; |
| | | } |
| | | } |
| | | } |