From 29f01b0f46e056212c83513ca59be8c3b70d6b41 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期五, 21 十一月 2025 08:07:26 +0800
Subject: [PATCH] 提交
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs | 117 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 91 insertions(+), 26 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
index 6d672b9..3c03457 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
@@ -1,6 +1,7 @@
锘縰sing Dm.filter;
using MailKit.Search;
using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using SqlSugar;
using System;
@@ -230,8 +231,16 @@
}).ToList();
feedmodel.details = groupedData;
- _invokeMESService.FeedbackOutbound(feedmodel);
+ var result = await _invokeMESService.FeedbackOutbound(feedmodel);
+ if (result != null && result.code == 200)
+ {
+ await _outboundOrderDetailService.Db.Updateable<Dt_OutboundOrderDetail>().SetColumns(x => x.ReturnToMESStatus == 1) // 宸插畬鎴�
+ .Where(x => x.OrderId == outboundOrder.Id).ExecuteCommandAsync();
+ await _outboundOrderService.Db.Updateable<Dt_OutboundOrder>() .SetColumns(x => x.ReturnToMESStatus == 1) // 宸插畬鎴�
+ .Where(x => x.OrderNo == orderNo) .ExecuteCommandAsync();
+ }
}
+
}
}
catch (Exception ex)
@@ -244,6 +253,32 @@
public async Task<WebResponseContent> ConfirmPicking(string orderNo, string palletCode, string barcode)
{
+ #region "娴嬭瘯鎵撳嵃"
+ // var splitResults=new List<SplitResult>();
+ // splitResults.Add(new SplitResult
+ //{
+ // materialCode = "AAAAbbb",
+ // supplierCode = "CVBG",
+ // quantityTotal = "1234",
+ // batchNumber = "WMLOT25111900032",
+ // batch = "A234re",
+ // factory = "01",
+ // date = DateTime.Now.ToString("yyyy-MM-dd"),
+ //});
+
+ //splitResults.Add(new SplitResult
+ //{
+ // materialCode = "CCDF",
+ // supplierCode = "QWCVBG",
+ // quantityTotal = "1234",
+ // batchNumber = "WMLOT25111900032",
+ // batch = "A234re",
+ // factory = "01",
+ // date = DateTime.Now.ToString("yyyy-MM-dd"),
+ //});
+
+ // return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔燂紝宸茶嚜鍔ㄦ媶鍖�", new { SplitResults = splitResults });
+ #endregion
try
{
_unitOfWorkManage.BeginTran();
@@ -287,6 +322,9 @@
decimal stockQuantity = stockDetail.StockQuantity;
List<SplitResult> splitResults = new List<SplitResult>();
+ Dt_OutStockLockInfo finalLockInfo = lockInfo;
+ var finalBarcode = barcode;
+ var finalStockId = stockDetail.Id;
if (actualQty < stockQuantity)
{
@@ -328,7 +366,9 @@
IsSplitted = 1,
ParentLockId = lockInfo.Id
};
- await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteCommandAsync();
+ // 鎻掑叆鏂伴攣瀹氫俊鎭苟鑾峰彇ID
+ var newLockId = await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteReturnIdentityAsync();
+ newLockInfo.Id = newLockId; // 纭繚ID琚纭缃�
// 璁板綍鎷嗗寘鍘嗗彶锛堢敤浜庤拷韪級
var splitHistory = new Dt_SplitPackageRecord
@@ -353,21 +393,37 @@
// 鏇存柊鍘熼攣瀹氫俊鎭负鍓╀綑搴撳瓨鏁伴噺
lockInfo.AssignQuantity = remainingStockQty;
- lockInfo.PickedQty = 0;
-
+ lockInfo.PickedQty = 0;
+
await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
splitResults.Add(new SplitResult
{
- OriginalBarcode = barcode,
- NewBarcode = newBarcode,
- SplitQuantity = actualQty,
- RemainQuantity = remainingStockQty
- });
+ materialCode = lockInfo.MaterielCode,
+ supplierCode = lockInfo.SupplyCode,
+ quantityTotal = actualQty.ToString("F2"),
+ batchNumber = newBarcode,
+ batch = lockInfo.BatchNo,
+ factory = lockInfo.FactoryArea,
+ date = DateTime.Now.ToString("yyyy-MM-dd"),
+ });
+ splitResults.Add(new SplitResult
+ {
+ materialCode = lockInfo.MaterielCode,
+ supplierCode = lockInfo.SupplyCode,
+ quantityTotal = remainingStockQty.ToString("F2"),
+ batchNumber = barcode,
+ batch = lockInfo.BatchNo,
+ factory = lockInfo.FactoryArea,
+ date = DateTime.Now.ToString("yyyy-MM-dd"),
+ });
// 鏇存柊鎷i�夎褰曚腑鐨勬潯鐮佷负鏂版潯鐮�
barcode = newBarcode;
lockInfo = newLockInfo;
+ finalLockInfo = newLockInfo;
+ finalBarcode = newBarcode;
+ finalStockId = stockDetail.Id; // 浣跨敤鍘熷簱瀛業D
}
else if (actualQty == stockQuantity)
{
@@ -379,6 +435,9 @@
lockInfo.PickedQty += actualQty;
lockInfo.Status = (int)OutLockStockStatusEnum.鎷i�夊畬鎴�;
await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
+ finalLockInfo = lockInfo;
+ finalBarcode = barcode;
+ finalStockId = stockDetail.Id;
}
else
{
@@ -399,18 +458,21 @@
await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
var _relatedSplitRecords = await _splitPackageService.Db.Queryable<Dt_SplitPackageRecord>()
- .Where(it => it.OriginalBarcode == barcode || it.NewBarcode == barcode)
- .Where(it => !it.IsReverted)
- .ToListAsync();
+ .Where(it => it.OriginalBarcode == barcode || it.NewBarcode == barcode)
+ .Where(it => !it.IsReverted)
+ .ToListAsync();
foreach (var record in _relatedSplitRecords)
{
record.Status = (int)SplitPackageStatusEnum.宸叉嫞閫�;
await _splitPackageService.Db.Updateable(record).ExecuteCommandAsync();
}
+ finalLockInfo = lockInfo;
+ finalBarcode = barcode;
+ finalStockId = stockDetail.Id;
}
-
+
await _outboundOrderDetailService.Db.Updateable<Dt_OutboundOrderDetail>()
.SetColumns(it => it.PickedQty == it.PickedQty + actualQty)
@@ -421,23 +483,26 @@
// 鏌ヨ浠诲姟琛�
var task = _taskRepository.QueryData(x => x.OrderNo == orderNo && x.PalletCode == palletCode).FirstOrDefault();
-
+ if (finalLockInfo.Id <= 0)
+ {
+ throw new Exception($"閿佸畾淇℃伅ID鏃犳晥: {finalLockInfo.Id}锛屾棤娉曡褰曟嫞閫夊巻鍙�");
+ }
// 璁板綍鎷i�夊巻鍙�
var pickingHistory = new Dt_PickingRecord
{
- FactoryArea = lockInfo.FactoryArea,
+ FactoryArea = finalLockInfo.FactoryArea,
TaskNo = task?.TaskNum ?? 0,
LocationCode = task?.SourceAddress ?? "",
- StockId = stockDetail.Id,
+ StockId = finalStockId,
OrderNo = orderNo,
- OrderDetailId = lockInfo.OrderDetailId,
+ OrderDetailId = finalLockInfo.OrderDetailId,
PalletCode = palletCode,
- Barcode = barcode,
- MaterielCode = lockInfo.MaterielCode,
+ Barcode = finalBarcode,
+ MaterielCode = finalLockInfo.MaterielCode,
PickQuantity = actualQty,
PickTime = DateTime.Now,
Operator = App.User.UserName,
- OutStockLockId = lockInfo.Id
+ OutStockLockId = finalLockInfo.Id
};
await Db.Insertable(pickingHistory).ExecuteCommandAsync();
@@ -449,7 +514,7 @@
return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔燂紝宸茶嚜鍔ㄦ媶鍖�", new { SplitResults = splitResults });
}
- return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔�");
+ return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔�", new { SplitResults = splitResults });
}
catch (Exception ex)
@@ -458,7 +523,7 @@
return WebResponseContent.Instance.Error($"鎷i�夌‘璁ゅけ璐ワ細{ex.Message}");
}
}
-
+
/// <summary>
/// 鍥炲簱鎿嶄綔
/// </summary>
@@ -566,7 +631,7 @@
.Where(it => lockIds.Contains(it.Id))
.ExecuteCommandAsync();
-
+
// 澶勭悊搴撳瓨璁板綍
foreach (var lockInfo in palletLocks)
@@ -664,9 +729,9 @@
CreateReturnTask(tasks, task, palletCode, newLocation);
}
-
+
}
-
+
var allSplitRecords = await _splitPackageService.Db.Queryable<Dt_SplitPackageRecord>()
.Where(it => it.OrderNo == orderNo && it.PalletCode == palletCode && !it.IsReverted)
.ToListAsync();
@@ -1082,7 +1147,7 @@
private async Task RecordCancelHistory(string orderNo, string palletCode, string barcode,
decimal cancelQty, int pickingRecordId, string materielCode, string reason)
{
-
+
//var cancelHistory = new Dt_PickingCancelRecord
//{
// OrderNo = orderNo,
--
Gitblit v1.9.3