From 20a71f4bafb8cda355948cc061827b8d4752966f Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期三, 17 十二月 2025 10:44:17 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs | 90 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 80 insertions(+), 10 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/OutboundService.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/OutboundService.cs"
index 5f48f16..aa37561 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/OutboundService.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/OutboundService.cs"
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json;
+锘縰sing AutoMapper;
+using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using SqlSugar;
using WIDESEA_Common.LocationEnum;
@@ -21,7 +22,7 @@
{
public partial class OutboundService : IOutboundService
{
-
+ private readonly IMapper _mapper;
public IUnitOfWorkManage _unitOfWorkManage { get; }
public IOutboundOrderDetailService OutboundOrderDetailService { get; }
@@ -42,9 +43,11 @@
private readonly IRepository<Dt_LocationInfo> _locationInfoRepository;
private readonly IRepository<Dt_StockQuantityChangeRecord> _stockChangeRepository;
private readonly IRepository<Dt_StockInfoDetail_Hty> _stockDetailHistoryRepository;
+ private readonly IFeedbackMesService _feedbackMesService;
- public OutboundService(IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> detailRepository, IRepository<Dt_OutboundOrder> outboundRepository, IRepository<Dt_OutStockLockInfo> outboundLockInfoRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_StockQuantityChangeRecord> stockChangeRepository, IRepository<Dt_StockInfoDetail_Hty> stockDetailHistoryRepository, IBasicService basicService, IOutboundOrderDetailService outboundOrderDetailService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService)
+ public OutboundService(IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> detailRepository, IRepository<Dt_OutboundOrder> outboundRepository, IRepository<Dt_OutStockLockInfo> outboundLockInfoRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_StockQuantityChangeRecord> stockChangeRepository, IRepository<Dt_StockInfoDetail_Hty> stockDetailHistoryRepository, IBasicService basicService, IOutboundOrderDetailService outboundOrderDetailService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService, IFeedbackMesService feedbackMesService)
{
+ _mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
Db = _unitOfWorkManage.GetDbClient();
OutboundOrderDetailService = outboundOrderDetailService;
@@ -59,8 +62,10 @@
_stockChangeRepository = stockChangeRepository;
_stockDetailHistoryRepository = stockDetailHistoryRepository;
_basicService = basicService;
+ _feedbackMesService = feedbackMesService;
}
+ #region 鍑哄簱鍒嗛厤
/// <summary>
/// 鍒嗘嫞鍑哄簱鎿嶄綔
/// </summary>
@@ -783,6 +788,7 @@
return false;
}
}
+ #endregion
/// <summary>
@@ -888,7 +894,7 @@
// 8. 鍒ゆ柇鏄惁闇�瑕佹媶鍖咃紙褰撳嚭搴撴暟閲忓皬浜庡簱瀛樻暟閲忔椂闇�瑕佹媶鍖咃級
bool isUnpacked = actualOutboundQuantity < stockDetail.StockQuantity;
- string newBarcode = string.Empty;
+ List<MaterialCodeReturnDTO> returnDTOs = new List<MaterialCodeReturnDTO>();
// 9. 寮�鍚簨鍔�
_unitOfWorkManage.BeginTran();
@@ -899,7 +905,7 @@
// 鏍规嵁鏄惁鎷嗗寘鎵ц涓嶅悓鐨勬搷浣�
if (isUnpacked)
{
- newBarcode = PerformUnpackOperation(stockDetail, stockInfo, actualOutboundQuantity, request, beforeQuantity, lockInfo.TaskNum.GetValueOrDefault());
+ returnDTOs = PerformUnpackOperation(stockDetail, stockInfo, actualOutboundQuantity, request, beforeQuantity, lockInfo.TaskNum.GetValueOrDefault());
}
else
{
@@ -993,14 +999,14 @@
BeforeQuantity = beforeQuantity,
AfterQuantity = isUnpacked ? actualOutboundQuantity : 0,
ChangeQuantity = -actualOutboundQuantity,
- IsUnpacked = isUnpacked
+ IsUnpacked = isUnpacked,
+ MaterialCodes = returnDTOs
};
response.Success = true;
- response.Message = isUnpacked ? $"鎷嗗寘鍑哄簱瀹屾垚锛屽凡鐢熸垚鏂版潯鐮侊細{newBarcode}" : "鍑哄簱瀹屾垚";
+ response.Message = "鍑哄簱瀹屾垚";
response.ScannedDetail = scannedDetail;
response.UpdatedDetails = updateDetails;
- response.NewBarcode = newBarcode;
// 妫�鏌ュ嚭搴撳崟鏄惁瀹屾垚
if (CheckOutboundOrderCompleted(request.OrderNo))
@@ -1074,10 +1080,16 @@
/// <param name="beforeQuantity"></param>
/// <param name="taskNum"></param>
/// <returns></returns>
- private string PerformUnpackOperation(Dt_StockInfoDetail stockDetail, Dt_StockInfo stockInfo,
+ private List<MaterialCodeReturnDTO> PerformUnpackOperation(Dt_StockInfoDetail stockDetail, Dt_StockInfo stockInfo,
decimal actualOutboundQuantity, OutboundCompleteRequestDTO request, decimal beforeQuantity, int taskNum)
{
string newBarcode = GenerateNewBarcode();
+
+ string remark = $"鎷嗗寘璁板綍锛屽師鏉$爜锛歿request.Barcode}锛屽師鏁伴噺锛歿stockDetail.StockQuantity}锛屽嚭搴撴潯鐮侊細{newBarcode}锛� 鍑哄簱鏁伴噺锛歿actualOutboundQuantity}锛屽洖搴撴潯鐮侊細{request.Barcode}锛屽洖搴撴暟閲忥細{stockDetail.StockQuantity - actualOutboundQuantity},鎿嶄綔鑰咃細{request.Operator}";
+
+ List<Dt_MaterialCodeInfo> materialCodeInfos = CreateMaterialCodeInfos(stockDetail, newBarcode, actualOutboundQuantity, remark);
+
+ List<MaterialCodeReturnDTO> returnDTOs = _mapper.Map<List<MaterialCodeReturnDTO>>(materialCodeInfos);
// 淇濆瓨鍘熷搴撳瓨鏄庣粏鍒板巻鍙茶褰�
Dt_StockInfoDetail_Hty originalHistoryRecord = new Dt_StockInfoDetail_Hty
@@ -1138,7 +1150,7 @@
};
_stockChangeRepository.AddData(unpackChangeRecord);
- return newBarcode;
+ return returnDTOs;
}
/// <summary>
@@ -1214,6 +1226,64 @@
}
/// <summary>
+ ///
+ /// </summary>
+ /// <param name="stockDetail"></param>
+ /// <param name="newBarcode"></param>
+ /// <param name="splitQuantity"></param>
+ /// <param name="afterQuantity"></param>
+ /// <param name="remark"></param>
+ /// <returns></returns>
+ private List<Dt_MaterialCodeInfo> CreateMaterialCodeInfos(Dt_StockInfoDetail stockDetail, string newBarcode, decimal splitQuantity, string remark)
+ {
+ List<Dt_MaterialCodeInfo> materialCodeInfos = new List<Dt_MaterialCodeInfo>();
+
+ Dt_MaterielInfo? materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == stockDetail.MaterielCode);
+
+ Dt_MaterialCodeInfo outMaterialCodeInfo = new Dt_MaterialCodeInfo()
+ {
+ AfterQuantity = splitQuantity,
+ BatchNo = stockDetail.BatchNo,
+ FactoryArea = stockDetail.FactoryArea,
+ MaterialName = materielInfo?.MaterielName ?? stockDetail.MaterielName,
+ MaterialSpec = materielInfo?.MaterielSpec ?? "",
+ MaterialCode = stockDetail.MaterielCode,
+ NewBarcode = newBarcode,
+ OldBarcode = stockDetail.Barcode,
+ OriginalQuantity = stockDetail.StockQuantity,
+ PruchaseOrderNo = stockDetail.OrderNo,
+ SuplierCode = stockDetail.SupplyCode,
+ Unit = stockDetail.Unit,
+ Date = DateTime.Now.ToString("yyyy-MM-dd"),
+ Remark = remark
+ };
+ materialCodeInfos.Add(outMaterialCodeInfo);
+
+ Dt_MaterialCodeInfo returnMaterialCodeInfo = new Dt_MaterialCodeInfo()
+ {
+ AfterQuantity = stockDetail.StockQuantity - splitQuantity,
+ BatchNo = stockDetail.BatchNo,
+ FactoryArea = stockDetail.FactoryArea,
+ MaterialName = materielInfo?.MaterielName ?? stockDetail.MaterielName,
+ MaterialSpec = materielInfo?.MaterielSpec ?? "",
+ MaterialCode = stockDetail.MaterielCode,
+ NewBarcode = stockDetail.Barcode,
+ OldBarcode = stockDetail.Barcode,
+ OriginalQuantity = stockDetail.StockQuantity,
+ PruchaseOrderNo = stockDetail.OrderNo,
+ SuplierCode = stockDetail.SupplyCode,
+ Unit = stockDetail.Unit,
+ Date = DateTime.Now.ToString("yyyy-MM-dd"),
+ Remark = remark
+ };
+
+ materialCodeInfos.Add(returnMaterialCodeInfo);
+
+ _basicService.MaterielCodeInfoService.Repository.AddData(materialCodeInfos);
+ return materialCodeInfos;
+ }
+
+ /// <summary>
/// 鏇存柊璇ユ墭鐩樿鐗╂枡鐨勬墍鏈夐攣瀹氳褰曠殑绱宸插嚭搴撴暟閲�
/// </summary>
/// <param name="stockId">搴撳瓨ID</param>
--
Gitblit v1.9.3