From 5fc251a847ccc0540da8b112ed2bddba846455d8 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期一, 17 十一月 2025 20:39:49 +0800
Subject: [PATCH] 提交
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/SplitPackageService.cs | 53 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 42 insertions(+), 11 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/SplitPackageService.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/SplitPackageService.cs"
index 8d496b8..54ae514 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/SplitPackageService.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/SplitPackageService.cs"
@@ -1,4 +1,5 @@
锘縰sing Microsoft.AspNetCore.Http;
+using Org.BouncyCastle.Asn1.Ocsp;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -56,31 +57,61 @@
return WebResponseContent.Instance.Error("鏈壘鍒版湁鏁堢殑鍑哄簱閿佸畾淇℃伅");
// 2. 妫�鏌ュ墿浣欓攣瀹氭暟閲�
- decimal remainingLockQuantity = lockInfo.AssignQuantity - lockInfo.PickedQty;
+ decimal remainingLockQuantity = lockInfo.OriginalQuantity - lockInfo.PickedQty;
if (request.SplitQuantity > remainingLockQuantity)
return WebResponseContent.Instance.Error($"鎷嗗寘鏁伴噺涓嶈兘澶т簬鍓╀綑閿佸畾鏁伴噺锛屽墿浣欙細{remainingLockQuantity}");
var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
- .Where(x => x.Barcode == request.OriginalBarcode)
+ .Where(x => x.Barcode == request.OriginalBarcode && x.StockId == lockInfo.StockId)
.FirstAsync();
+ if (stockDetail == null)
+ throw new Exception($"鏈壘鍒版潯鐮亄request.OriginalBarcode}瀵瑰簲鐨勫簱瀛樿褰�");
+
+ stockDetail.StockQuantity = request.SplitQuantity;
+ stockDetail.OutboundQuantity = request.SplitQuantity;
+ _stockInfoDetailService.Db.Updateable<Dt_StockInfoDetail>(stockDetail).ExecuteCommand();
+
var seq = await _dailySequenceService.GetNextSequenceAsync();
// 3. 鐢熸垚鏂版潯鐮�
- string newBarcode = "WSLOT" + DateTime.Now.ToString("yyyyMMdd") + seq.ToString()?.PadLeft(5, '0');
+ string newBarcode = "WSLOT" + DateTime.Now.ToString("yyyyMMdd") + seq.ToString()?.PadLeft(5, '0');
+
+ decimal remainingQty = remainingLockQuantity - request.SplitQuantity;
+
+ // 涓烘媶鍖呬骇鐢熺殑鏂版潯鐮佸垱寤哄簱瀛樿褰�
+ var newStockDetail = new Dt_StockInfoDetail
+ {
+ SupplyCode = stockDetail.SupplyCode,
+ WarehouseCode = stockDetail.WarehouseCode,
+ BarcodeQty = stockDetail.BarcodeQty,
+ BarcodeUnit = stockDetail.Barcode,
+ BusinessType = stockDetail.BusinessType,
+ Unit = stockDetail.Unit,
+ StockId = lockInfo.StockId,
+ MaterielCode = stockDetail.MaterielCode,
+ OrderNo = stockDetail.OrderNo,
+ BatchNo = stockDetail.BatchNo,
+ StockQuantity = remainingQty,
+ OutboundQuantity = remainingQty, // 閿佸畾鍏ㄩ儴鏁伴噺
+ Barcode = newBarcode,
+ InboundOrderRowNo = stockDetail.InboundOrderRowNo,
+
+ };
+ await _outStockLockInfoService.Db.Insertable(newStockDetail).ExecuteCommandAsync();
// 4. 鍒涘缓鏂扮殑鍑哄簱閿佸畾淇℃伅锛堟柊鏉$爜锛�
var newLockInfo = new Dt_OutStockLockInfo
{
-
+
OrderNo = lockInfo.OrderNo,
OrderDetailId = lockInfo.OrderDetailId,
BatchNo = lockInfo.BatchNo,
MaterielCode = lockInfo.MaterielCode,
MaterielName = lockInfo.MaterielName,
StockId = lockInfo.StockId,
- OrderQuantity = lockInfo.OrderQuantity,
- OriginalQuantity = lockInfo.OriginalQuantity,
- AssignQuantity = request.SplitQuantity, // 鏂版潯鐮佸垎閰嶆暟閲�
+ OrderQuantity = remainingQty,
+ OriginalQuantity = remainingQty,
+ AssignQuantity = remainingQty, // 鏂版潯鐮佸垎閰嶆暟閲�
PickedQty = 0, // 鏂版潯鐮佹湭鎷i��
LocationCode = lockInfo.LocationCode,
PalletCode = lockInfo.PalletCode,
@@ -88,7 +119,7 @@
Status = (int)OutLockStockStatusEnum.鍑哄簱涓�,
Unit = lockInfo.Unit,
SupplyCode = lockInfo.SupplyCode,
- OrderType=lockInfo.OrderType,
+ OrderType = lockInfo.OrderType,
CurrentBarcode = newBarcode, // 鏂版潯鐮�
OriginalLockQuantity = request.SplitQuantity,
IsSplitted = 1,
@@ -97,14 +128,14 @@
await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteCommandAsync();
// 5. 鏇存柊鍘熼攣瀹氫俊鎭殑鍒嗛厤鏁伴噺锛堝噺灏戞媶鍖呮暟閲忥級
- lockInfo.AssignQuantity -= request.SplitQuantity;
+ lockInfo.AssignQuantity = request.SplitQuantity;
await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
// 6. 璁板綍鎷嗗寘鍘嗗彶锛堢敤浜庤拷韪級
var splitHistory = new Dt_SplitPackageRecord
{
FactoryArea = lockInfo.FactoryArea,
- TaskNum=lockInfo.TaskNum,
+ TaskNum = lockInfo.TaskNum,
OutStockLockInfoId = lockInfo.Id,
StockId = stockDetail?.StockId ?? 0,
Operator = App.User.UserName,
@@ -112,7 +143,7 @@
OriginalBarcode = lockInfo.CurrentBarcode,
NewBarcode = newBarcode,
SplitQty = request.SplitQuantity,
- RemainQuantity = lockInfo.RemainQuantity - request.SplitQuantity,
+ RemainQuantity = lockInfo.OriginalQuantity - request.SplitQuantity,
MaterielCode = lockInfo.MaterielCode,
SplitTime = DateTime.Now,
OrderNo = request.OrderNo,
--
Gitblit v1.9.3