From 51bd4ac4f323fab99ff9ac20763ca15af0e53a57 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期四, 22 一月 2026 21:51:15 +0800
Subject: [PATCH] 1
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs | 124 ++++++++++++-----------------------------
1 files changed, 36 insertions(+), 88 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_InboundService/TakeStockOrderService.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_InboundService/TakeStockOrderService.cs"
index 3b0dbe7..ded4b28 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_InboundService/TakeStockOrderService.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_InboundService/TakeStockOrderService.cs"
@@ -30,6 +30,7 @@
using WIDESEA_DTO.CalcOut;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
+using WIDESEA_DTO.Basic;
namespace WIDESEA_InboundService
{
@@ -50,7 +51,8 @@
private readonly IRepository<Dt_StockInfoDetail> _stockInfoDetailRepository;
private readonly IOutboundService _outboundService;
private readonly IFeedbackMesService _feedbackMesService;
- public TakeStockOrderService(IRepository<Dt_TakeStockOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfo> stockInfoRepository,IRepository<Dt_TakeStockOrderDetail> takeStockOrderDetail,IRepository<Dt_Task> taskRepository,ILocationInfoService locationInfoService, IRepository<Dt_InboundOrder> inboundOrderRepository,IRepository<Dt_OutboundOrder> outboundOrderRepository,IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository, IOutboundPickingService outboundPickingService, IRepository<Dt_StockInfoDetail> stockInfoDetailRepository, IOutboundService outboundService,IFeedbackMesService feedbackMesService) : base(BaseDal)
+ private readonly IESSApiService _eSSApiService;
+ public TakeStockOrderService(IRepository<Dt_TakeStockOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfo> stockInfoRepository,IRepository<Dt_TakeStockOrderDetail> takeStockOrderDetail,IRepository<Dt_Task> taskRepository,ILocationInfoService locationInfoService, IRepository<Dt_InboundOrder> inboundOrderRepository,IRepository<Dt_OutboundOrder> outboundOrderRepository,IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository, IOutboundPickingService outboundPickingService, IRepository<Dt_StockInfoDetail> stockInfoDetailRepository, IOutboundService outboundService,IFeedbackMesService feedbackMesService,IESSApiService eSSApiService) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_takeStockOrder = takeStockOrder;
@@ -66,8 +68,20 @@
_stockInfoDetailRepository = stockInfoDetailRepository;
_outboundService = outboundService;
_feedbackMesService = feedbackMesService;
+ _eSSApiService = eSSApiService;
}
+ private Dictionary<string, string> stations = new Dictionary<string, string>
+ {
+ {"2-1","2-9" },
+ {"3-1","3-9" },
+ };
+
+ private Dictionary<string, string> movestations = new Dictionary<string, string>
+ {
+ {"2-1","2-5" },
+ {"3-1","3-5" },
+ };
public WebResponseContent ValidateBoxNo(string orderNo, string boxNo)
{
try
@@ -210,7 +224,7 @@
{
return content.Error("鏈壘鍒拌鐩樼偣鍗曟嵁");
}
- var stock = _stockInfoRepository.QueryFirst(x => x.PalletCode == boxNo);
+ var stock = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == boxNo).Includes(x=>x.Details).First();
if (stock == null)
{
@@ -253,24 +267,29 @@
NextAddress = "",
OrderNo = takeStockOrder.OrderNo,
Roadway = newLocation.RoadwayNo,
- SourceAddress = sourceAddress,
+ SourceAddress = stations.GetValueOrDefault(sourceAddress)??"",
TargetAddress = newLocation.LocationCode,
TaskStatus = (int)TaskStatusEnum.New,
TaskType = TaskTypeEnum.InInventory.ObjToInt(),
PalletType = stock.PalletType,
WarehouseId = stock.WarehouseId
};
+ if (stock.Details.Count <= 0)
+ {
+ stock.PalletType = (int)PalletTypeEnum.Empty;
+ newTask.TaskType = TaskTypeEnum.InEmpty.ObjToInt();
+ }
_unitOfWorkManage.BeginTran();
_stockInfoRepository.UpdateData(stock);
_takeStockOrder.UpdateData(takeStockOrder);
_taskRepository.AddData(newTask);
_unitOfWorkManage.CommitTran();
- //var moveResult = await _eSSApiService.MoveContainerAsync(new MoveContainerRequest
- //{
- // slotCode = movestations[station],
- // containerCode = palletCode
- //});
+ var moveResult = _eSSApiService.MoveContainerAsync(new MoveContainerRequest
+ {
+ slotCode = movestations[sourceAddress],
+ containerCode = boxNo
+ });
return content.OK();
}
@@ -399,83 +418,6 @@
{
return WebResponseContent.Instance.Error("鏈壘鍒拌鐩樼偣宸紓鏁版嵁");
}
- //if(takeStockOrderDetail.Remark == "鐩樼泩")
- //{
- // Dt_InboundOrderDetail inboundOrderDetail = _inboundOrderDetailRepository.QueryFirst(x => x.Id == orderId);
- // if(inboundOrderDetail == null)
- // {
- // return WebResponseContent.Instance.Error("鏈壘鍒伴�夋嫨鐨勬潅鏀跺钩璐﹀崟鎹�");
- // }
- // Dt_InboundOrder inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x=>x.Id == inboundOrderDetail.OrderId).Includes(x=>x.Details).First();
- // Dt_StockInfo stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x=>x.PalletCode == takeStockOrderDetail.TakePalletCode && x.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt()).Includes(x=>x.Details).First();
- // if(stockInfo== null)
- // {
- // return WebResponseContent.Instance.Error($"鐩樼偣鎵樼洏{takeStockOrderDetail.TakePalletCode}鐨勫簱瀛樹俊鎭湭鎵惧埌锛屾垨鎵樼洏鐘舵�佷笉姝g‘");
- // }
- // var datevaliDate = _inboundOrderRepository.Db.Queryable<Dt_MaterialExpirationDate>().Where(x => x.MaterialCode.Contains(inboundOrderDetail.MaterielCode.Substring(0, 6))).First();
- // var newStockDetail = new Dt_StockInfoDetail
- // {
- // StockId = stockInfo == null ? 0 : stockInfo.Id,
- // Barcode = inboundOrderDetail.Barcode,
- // MaterielCode = inboundOrderDetail.MaterielCode,
- // MaterielName = inboundOrderDetail.MaterielName,
- // BatchNo = inboundOrderDetail.BatchNo,
- // Unit = inboundOrderDetail.Unit,
- // InboundOrderRowNo = inboundOrderDetail.lineNo,
- // SupplyCode = inboundOrderDetail.SupplyCode,
- // WarehouseCode = inboundOrderDetail.WarehouseCode,
- // StockQuantity = inboundOrderDetail.OrderQuantity,
- // BarcodeQty = inboundOrderDetail.BarcodeQty,
- // BarcodeUnit = inboundOrderDetail.BarcodeUnit,
- // FactoryArea = inboundOrder.FactoryArea,
- // Status = 0,
- // OrderNo = inboundOrder.InboundOrderNo,
- // BusinessType = inboundOrder.BusinessType,
- // ValidDate = inboundOrder.BusinessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠�.ToString() ? inboundOrderDetail.ValidDate : datevaliDate == null ? null : Convert.ToDateTime(DateTime.Now).AddDays(Convert.ToDouble(datevaliDate.ValidityDays)),
- // };
- // stockInfo.Details.Add(newStockDetail);
-
- // inboundOrderDetail.ReceiptQuantity = inboundOrderDetail.OrderQuantity;
- // inboundOrderDetail.OverInQuantity = inboundOrderDetail.OrderQuantity;
- // inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
- // int overCount = 1;
- // int moreOverCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
- // if (inboundOrder.Details.Count() == overCount + moreOverCount)
- // {
- // inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
- // }
- // else
- // {
- // inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
- // }
- // takeStockOrderDetail.DifferenceQty -= inboundOrderDetail.OrderQuantity;
- // if(takeStockOrderDetail.DifferenceQty > 0)
- // {
- // takeStockOrderDetail.TakeDetalStatus = TakeStockDetailStatusEnum.鏉傛敹鏉傚彂骞宠处澶勭悊涓�.ObjToInt();
- // }
- // else if (takeStockOrderDetail.DifferenceQty == 0)
- // {
- // takeStockOrderDetail.TakeDetalStatus = TakeStockDetailStatusEnum.鏉傛敹鏉傚彂骞宠处澶勭悊.ObjToInt();
- // }
- // else
- // {
- // return WebResponseContent.Instance.Error("璇ユ潅鏀跺崟鎹槑缁嗘潯鐮佹暟閲忓ぇ浜庡緟骞宠处鏁伴噺锛岃鍙﹂�夊叾浠栧崟鎹钩璐�");
- // }
-
- // _unitOfWorkManage.BeginTran();
- // _inboundOrderRepository.UpdateData(inboundOrder);
- // _inboundOrderDetailRepository.UpdateData(inboundOrderDetail);
- // _takeStockOrderDetail.UpdateData(takeStockOrderDetail);
- // BaseDal.Db.Insertable(newStockDetail).ExecuteCommand();
- // _unitOfWorkManage.CommitTran();
- // List<string> barcodes = new List<string>();
- // barcodes.Add(inboundOrderDetail.Barcode);
- // _outboundPickingService.NoStockOutBatchInOrderFeedbackToMes(inboundOrder.Id, barcodes);
-
-
- //}
- //else
- //{
Dt_OutboundOrderDetail outboundOrderDetail = _outboundOrderDetailRepository.QueryFirst(x => x.Remark == takeStockOrderDetail.TakeStockNo && (x.OrderQuantity-x.LockQuantity-x.MoveQty)>0);
if (outboundOrderDetail == null)
{
@@ -706,10 +648,16 @@
if (!string.IsNullOrEmpty(newBarcode))
{
// 鐗╂枡鏂版潯鐮佸洖浼�
- //_feedbackMesService.BarcodeFeedback(newBarcode);
+ _feedbackMesService.BarcodeFeedback(newBarcode);
}
-
- //_feedbackMesService.OutboundFeedback(outboundOrder.OrderNo);
+ List<Dt_OutboundOrderDetail> details = _outboundOrderDetailRepository.QueryData(x => x.OrderId == outboundOrder.Id);
+ if(details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty))
+ {
+ _feedbackMesService.OutboundFeedback(outboundOrder.OrderNo);
+ outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+ _outboundOrderRepository.UpdateData(outboundOrder);
+ }
+
}
catch (Exception ex)
--
Gitblit v1.9.3