From e755a1c79f29b42f9344e6ab87475e9a4d6c7dc6 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期四, 15 一月 2026 13:52:25 +0800
Subject: [PATCH] 合托功能
---
WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs | 80 +++++++++++++++++++++++++++++----------
1 files changed, 59 insertions(+), 21 deletions(-)
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs
index 8febdad..5d1dbbf 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs
@@ -37,6 +37,8 @@
using WIDESEA_Model.Models;
using WIDESEA_Model.Models.Inbound;
using static WIDESEA_Common.HouseInventoryIn;
+using static WIDESEA_Common.HouseSyncretism;
+using static WIDESEA_Common.InventoryAllocate;
using Parameter = WIDESEA_Common.Parameter;
namespace WIDESEA_InboundService
@@ -453,6 +455,11 @@
.Where(x => orderDetailIds.Contains(x.Id))
.ToList();
+ if (inboundOrderDetails.Sum(x => x.OrderQuantity) <= inboundOrderDetails.Sum(x => x.ReceiptQuantity))
+ {
+ return WebResponseContent.Instance.Error($"姝ゅ崟鎹凡鍏ㄩ儴缁勭洏瀹屾垚");
+ }
+
// 鎸夎鍗曟槑缁咺D鍒嗙粍锛屾鏌ユ瘡涓槑缁嗙殑鎵�鏈夌鍙锋槸鍚﹂兘鎵弿浜�
var detailsByOrderDetailId = CPinboundOrderDetails
.GroupBy(x => x.OrderDetailId)
@@ -486,7 +493,7 @@
// 鏍囪璇ユ槑缁嗕负宸插畬鎴愮粍鐩�
orderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
var recqty = orderDetail.ReceiptQuantity;
- float totalQty = cpDetails.FirstOrDefault().QtyOfpcs;
+ float totalQty = cpDetails.Sum(item => item.QtyOfpcs);
orderDetail.ReceiptQuantity = (decimal)totalQty + recqty; // 鏀惰揣鏁伴噺绛変簬璁㈠崟鏁伴噺
detailsToUpdate.Add(orderDetail);
@@ -498,7 +505,6 @@
Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db
.Queryable<Dt_StockInfo>()
.Where(x => x.PalletCode == palletCode)
- .Includes(x => x.Details)
.First();
if (stockInfo == null)
@@ -570,7 +576,7 @@
BatchNo = orderDetail.BatchNo,
SupplierBatch = orderDetail.SupplierBatch,
LinId = orderDetail.LinId,
- StockQuantity = (decimal)cPInboundOrderDetail.FirstOrDefault().QtyOfpcs,
+ StockQuantity = (decimal)cPInboundOrderDetail.Sum(item => item.QtyOfpcs),
Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
Creater = "WMS",
CreateDate = DateTime.Now,
@@ -645,7 +651,7 @@
}
public string ReceiveWMSTaskin = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskin"];
/// <summary>
- /// 鍚堟墭
+ /// 缁勭洏鍚堟墭
/// </summary>
/// <param name="saveModel"></param>
/// <returns></returns>
@@ -659,32 +665,64 @@
var targetAddress = saveModel.MainData["targetAddress"];
Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.PalletCode == soussAddress).First();
- Dt_StockInfo stockInfo1 = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.PalletCode == targetAddress).First();
- Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == stockInfo1.WarehouseId);
- if (stockInfo == null || stockInfo1 == null)
+ Dt_StockInfo targetstockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.PalletCode == targetAddress).First();
+ Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == targetstockInfo.WarehouseId);
+ if (stockInfo == null || targetstockInfo == null)
{
throw new Exception("搴撳瓨鏈壘鍒版墭鐩樺彿");
}
foreach (var item in stockInfo.Details)
{
- item.StockId = stockInfo1.Id;
+ item.StockId = targetstockInfo.Id;
+ }
+ if (warehouse.WarehouseCode == "SC02_CP")
+ {
+ warehouse.WarehouseCode = "SC01_CP";
+ }
+ if (warehouse.WarehouseCode == "SC02_BC")
+ {
+ warehouse.WarehouseCode = "SC01_BC";
}
var houseSyncretism = new HouseSyncretism
{
- ApiType = "AsnController",
- Method = "AsrsGroudingAsn",
- Parameters = new List<HouseSyncretism.data>
+ ApiType = "InventoryMoveController",
+ Method = "AsrsSubmitMoveDatas",
+
+ Parameters = new List<HouseSyncretism.Parame>
{
- new HouseSyncretism.data
+ new HouseSyncretism.Parame {
+ Value = stockInfo.Details.Select(g => new Parame.Syncretism
{
- Lpn=stockInfo.PalletCode,
- MoveType=0,
- WareHouseCode=warehouse.WarehouseCode,
+ Lpn = stockInfo.PalletCode,
+ MoveType = 0,
+ WareHouseCode = warehouse.WarehouseCode,
+ ItemCode = g.MaterielCode,
+ MoveNumber = g.StockQuantity,
+ LotNo = g.BatchNo,
+ WipBatch = g.BatchNo,
+ LocationName = stockInfo.LocationCode,
+ TargetLocName = targetstockInfo.LocationCode,
+ TargetLpn = targetstockInfo.PalletCode,
- }
+ }).ToList()
+ }
}
- };
+ // Parameters = stockInfo.Details.Select(g => new HouseSyncretism.data
+ // {
+ // Lpn = stockInfo.PalletCode,
+ // MoveType = 0,
+ // WareHouseCode = warehouse.WarehouseCode,
+ // ItemCode = g.MaterielCode,
+ // MoveNumber = g.StockQuantity,
+ // //LotNo = g.,
+ // WipBatch = g.BatchNo,
+ // LocationName = stockInfo.PalletCode,
+ // TargetLocName = targetstockInfo.PalletCode,
+ // TargetLpn = targetstockInfo.PalletCode,
+ // }).ToList()
+ //};
+ };
var authResult = AuthenticateWithWMS();
if (authResult.IsSuccess)
{
@@ -704,10 +742,10 @@
}
_unitOfWorkManage.BeginTran();
- stockInfo1.Details.AddRange(stockInfo.Details);
- _stockRepository.StockInfoRepository.UpdateData(stockInfo1);
- stockInfo.Details.Clear();
- _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+ targetstockInfo.Details.AddRange(stockInfo.Details);
+ _stockRepository.StockInfoRepository.UpdateData(targetstockInfo);
+ _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
+ _stockRepository.StockInfoRepository.DeleteData(stockInfo);
_unitOfWorkManage.CommitTran();
webResponseContent = WebResponseContent.Instance.OK("鍚堟墭鎴愬姛");
}
--
Gitblit v1.9.3