From 733c975cd8647f6d006736f1863bad731e32e6fb Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期日, 26 十月 2025 17:15:52 +0800
Subject: [PATCH] 上传最新代码,ERP接口,MES接口优化,WMS业务优化等
---
项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs | 64 +++++++++++++++++++++++++-------
1 files changed, 50 insertions(+), 14 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs"
index 4f27480..3d8336d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs"
@@ -5,12 +5,13 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.OrderEnum;
using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
-using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.ERP;
using WIDESEA_IBasicRepository;
using WIDESEA_IOutboundRepository;
using WIDESEA_IOutboundService;
@@ -24,12 +25,14 @@
private readonly IBasicRepository _basicRepository;
private readonly IMapper _mapper;
private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IOutBSTOrderDetailRepository _outBSTOrderDetailRepository;
- public OutBSTOrderService(IOutBSTOrderRepository BaseDal,IBasicRepository basicRepository,IMapper mapper,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+ public OutBSTOrderService(IOutBSTOrderRepository BaseDal,IBasicRepository basicRepository,IMapper mapper,IUnitOfWorkManage unitOfWorkManage,IOutBSTOrderDetailRepository outBSTOrderDetailRepository) : base(BaseDal)
{
_basicRepository = basicRepository;
_mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
+ _outBSTOrderDetailRepository = outBSTOrderDetailRepository;
}
/// <summary>
/// 娣诲姞鍑哄簱鎺掔▼淇℃伅
@@ -39,20 +42,25 @@
WebResponseContent content = new WebResponseContent();
try
{
- //鑾峰彇鎵�鏈夊嚭搴撳崟
- List<Dt_OutBSTOrder> OldoutBSTOrders = BaseDal.Db.Queryable<Dt_OutBSTOrder>().Includes(x => x.Details).ToList();
//鏂板
List<BSTOutOrderDTO> outOrderDTOsAdd = bSTOutOrderDTOs.Where(x => x.Way == 1).ToList();
//淇敼
List<BSTOutOrderDTO> outOrderDTOsUpdate = bSTOutOrderDTOs.Where(x => x.Way == 2).ToList();
//鍒犻櫎
List<BSTOutOrderDTO> outOrderDTOsDel = bSTOutOrderDTOs.Where(x => x.Way == 3).ToList();
+ if (outOrderDTOsAdd.Count==0 && outOrderDTOsUpdate.Count==0 && outOrderDTOsDel.Count==0)
+ {
+ return content.Error($"鍑哄簱鎺掔▼淇℃伅浼犲叆涓虹┖");
+ }
+ //鑾峰彇鎵�鏈夊嚭搴撳崟
+ List<Dt_OutBSTOrder> OldoutBSTOrders = BaseDal.Db.Queryable<Dt_OutBSTOrder>().Includes(x => x.Details).ToList();
//鑾峰彇鎵�鏈夌墿鏂�
List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt() && x.MaterialSourceId != 0);
List<Dt_OutBSTOrder> outBSTAddOrders = new List<Dt_OutBSTOrder>();
List<Dt_OutBSTOrder> outBSTUpOrders = new List<Dt_OutBSTOrder>();
List<Dt_OutBSTOrder> outBSTDelOrders = new List<Dt_OutBSTOrder>();
+ List<Dt_OutBSTOrderDetail> outBSTOrderDetailsDel = new List<Dt_OutBSTOrderDetail>();
//鏂板
if (outOrderDTOsAdd.Count>0)
{
@@ -62,8 +70,8 @@
{
return content.Error($"鍑哄簱鎺掔▼Id{nameof(BSTOutOrderDTO.BoardMpsId)}:{ExistAddOutOrder.BoardMpsId}宸插瓨鍦�");
}
- List<BstBoardMpsDetailItem> bstBoardMpsDetailItems = outOrderDTOsAdd.SelectMany(x => x.BstBoardMpsDetails).ToList();
//鍒ゆ柇鏄惁瀛樺湪鐗╂枡
+ List<BstBoardMpsDetailItem> bstBoardMpsDetailItems = outOrderDTOsAdd.SelectMany(x => x.BstBoardMpsDetails).ToList();
BstBoardMpsDetailItem? bstBoardMpsDetailItem = bstBoardMpsDetailItems.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId));
if (bstBoardMpsDetailItem != null)
{
@@ -71,6 +79,10 @@
}
foreach (var item in outOrderDTOsAdd)
{
+ if (outOrderDTOsUpdate.FirstOrDefault(x => x.BoardMpsId == item.BoardMpsId) != null)
+ {
+ continue;
+ }
List<Dt_OutBSTOrderDetail> bSTOrderDetails = item.BstBoardMpsDetails.Select(x => _mapper.Map<Dt_OutBSTOrderDetail>(x)).ToList();
Dt_OutBSTOrder outBSTOrder = _mapper.Map<Dt_OutBSTOrder>(item);
outBSTOrder.Details=bSTOrderDetails;
@@ -80,16 +92,38 @@
//淇敼
if (outOrderDTOsUpdate.Count > 0)
{
- List<Dt_OutBSTOrder>? ExistUpdateoutBSTOrders = OldoutBSTOrders.Where(x => outOrderDTOsUpdate.Select(x => x.BoardMpsId).Contains(x.BoardMpsId)).ToList();
- //鏇存柊鐨勫崟鎹槸鍚﹀瓨鍦�
- if (ExistUpdateoutBSTOrders.Count == outOrderDTOsUpdate.Count)
+ List<Dt_OutBSTOrder>? ExistUpdateOutBSTOrders = OldoutBSTOrders.Where(x => outOrderDTOsUpdate.Select(x => x.BoardMpsId).Contains(x.BoardMpsId)).ToList();
+
+ foreach (var item in outOrderDTOsUpdate)
{
-
- }
- else
- {
- BSTOutOrderDTO? bSTOutOrderDTO = outOrderDTOsUpdate.FirstOrDefault(x => !ExistUpdateoutBSTOrders.Select(x => x.BoardMpsId).Contains(x.BoardMpsId));
- return content.Error($"鏈壘鍒版寚瀹氱敓浜ф帓绋嬪崟Id{nameof(BSTOutOrderDTO.BoardMpsId)}:{bSTOutOrderDTO?.BoardMpsId}");
+ Dt_OutBSTOrder? outBSTOrderUpdate = ExistUpdateOutBSTOrders.FirstOrDefault(x=>x.BoardMpsId==item.BoardMpsId);
+ //濡傛灉璁㈠崟宸插瓨鍦ㄥ垯杩涜鏇存敼
+ if (outBSTOrderUpdate != null)
+ {
+ if (outBSTOrderUpdate.OutBSTOrderStatus != OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ return content.Error($"閲囪喘{nameof(outBSTOrderUpdate.BoardMpsId)}:{outBSTOrderUpdate.BoardMpsId}璁㈠崟鍑哄簱涓紝涓嶅彲鏇存敼");
+ }
+ //鏇存柊鏁版嵁
+ outBSTOrderDetailsDel.AddRange(outBSTOrderUpdate.Details);
+ List<Dt_OutBSTOrderDetail> bSTOrderDetails = item.BstBoardMpsDetails.Select(x => _mapper.Map<Dt_OutBSTOrderDetail>(x)).ToList();
+ bSTOrderDetails.ForEach(x =>
+ {
+ x.OutBSTOrderId = outBSTOrderUpdate.Id;
+ });
+ outBSTOrderUpdate.Details = bSTOrderDetails;
+ outBSTOrderUpdate.BoardMpsId= item.BoardMpsId;
+ outBSTOrderUpdate.BoardMpsNo= item.BoardMpsNo;
+ outBSTOrderUpdate.ProductionDate = DateTimeOffset.FromUnixTimeMilliseconds(item.ProductionDate).DateTime;
+ outBSTUpOrders.Add(outBSTOrderUpdate);
+ }
+ else//濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+ {
+ List<Dt_OutBSTOrderDetail> bSTOrderDetails = item.BstBoardMpsDetails.Select(x => _mapper.Map<Dt_OutBSTOrderDetail>(x)).ToList();
+ Dt_OutBSTOrder outBSTOrder = _mapper.Map<Dt_OutBSTOrder>(item);
+ outBSTOrder.Details = bSTOrderDetails;
+ outBSTAddOrders.Add(outBSTOrder);
+ }
}
}
//鍒犻櫎
@@ -109,6 +143,8 @@
}
_unitOfWorkManage.BeginTran();
BaseDal.Db.InsertNav(outBSTAddOrders).Include(x => x.Details).ExecuteCommand();
+ _outBSTOrderDetailRepository.DeleteData(outBSTOrderDetailsDel);
+ BaseDal.Db.UpdateNav(outBSTUpOrders).Include(x => x.Details).ExecuteCommand();
_unitOfWorkManage.CommitTran();
content.OK("鎺ユ敹鎴愬姛");
}
--
Gitblit v1.9.3