From a9a3f943efb083de8ed88b293897886b3ef612a2 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 11 八月 2025 17:37:09 +0800
Subject: [PATCH] 功能增添优化
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs | 61 ++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 5 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs"
index 26a6b2b..42aba4b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs"
@@ -21,6 +21,7 @@
using WIDESEA_Common.LocationEnum;
using WIDESEA_IRecordService;
using WIDESEA_Common.StockEnum;
+using WIDESEA_Common.TaskEnum;
namespace WIDESEA_OutboundService
{
@@ -59,18 +60,19 @@
float originalNeedQuantity = mesOutboundOrder.OrderQuantity;
float needQuantity = originalNeedQuantity;
-
+ //鑾峰彇搴撳瓨
List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.GetUseableStocks(mesOutboundOrder.MaterialCode, "", mesOutboundOrder.WarehouseId);
if (!stockInfos.Any())
{
throw new Exception($"鏈壘鍒板彲鍒嗛厤搴撳瓨");
}
List<Dt_StockInfo> autoAssignStocks = _stockService.StockInfoService.GetOutboundStocks(stockInfos, mesOutboundOrder.MaterialCode, needQuantity, out float residueQuantity);
- mesOutboundOrder.LockQuantity += needQuantity - residueQuantity;
+ if (residueQuantity>0)
+ {
+ throw new Exception($"搴撳瓨涓嶈冻");
+ }
+ autoAssignStocks.OrderBy(x => x.Details.FirstOrDefault()?.StockQuantity).ToList();
outStocks.AddRange(autoAssignStocks);
- float assignQuantity = needQuantity - residueQuantity;
-
- float orderQuantity = mesOutboundOrder.OrderQuantity;
for (int j = 0; j < autoAssignStocks.Count; j++)
{
float detailAssignQuantity = outStockLockInfos.Where(x => x.MaterielCode == mesOutboundOrder.MaterialCode).Sum(x => x.AssignQuantity);//鍑哄簱璁㈠崟鏄庣粏宸插垎閰嶆暟閲�
@@ -144,5 +146,54 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
+
+ public WebResponseContent AddMesOrder(SubstrateOutModel substrateOutModel)
+ {
+ try
+ {
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA57.ToString());
+ if (warehouse == null)
+ {
+ return WebResponseContent.Instance.Error($"浠撳簱鍩虹淇℃伅鏈厤缃�");
+ }
+
+ Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == substrateOutModel.MaterialCode);
+ if (materielInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡淇℃伅");
+ }
+ int orderType = 0;
+ if(substrateOutModel.Line == "1011")
+ {
+ orderType = MesOutboundOrderTypeEnum.HandSubstrateOutPick.ObjToInt();
+ }
+ else
+ {
+ orderType = MesOutboundOrderTypeEnum.HandSubstrateOut.ObjToInt();
+ }
+
+ Dt_MesOutboundOrder mesOutboundOrder = new Dt_MesOutboundOrder()
+ {
+ CreateType = OrderCreateTypeEnum.CreateInSystem.ObjToInt(),
+ Line = substrateOutModel.Line,
+ MaterialCode = substrateOutModel.MaterialCode,
+ MaterialName = materielInfo.MaterielName,
+ OrderQuantity = substrateOutModel.RequiredQuantity,
+ TaskNo = DateTime.Now.ToString("yyyyMMddHHmmss"),
+ Unit = substrateOutModel.Unit,
+ OrderType = orderType,
+ OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(),
+ WarehouseId = warehouse.WarehouseId
+ };
+
+ AddData(mesOutboundOrder);
+
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
}
}
--
Gitblit v1.9.3