From 48e2278d7ac330c7f05deda6f884acb6f01206b4 Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期一, 13 四月 2026 17:13:51 +0800
Subject: [PATCH] 1
---
WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs | 209 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 171 insertions(+), 38 deletions(-)
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs
index 89cd668..1fa3a06 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs
@@ -41,11 +41,13 @@
private readonly IOutboundOrder_HtyService _outboundOrder_HtyService;
private readonly IOutboundOrderDetail_HtyService _outboundOrderDetail_HtyService;
private readonly IOutboundOrderDetailService _outboundOrderDetailService;
+ private readonly INewOutboundOrderDetailService _newOutboundOrderDetailService;
+ private readonly INewOutboundOrderService _newOutboundOrderService;
//private readonly ITaskService _taskService;
public IOutboundOrderRepository Repository => BaseDal;
- public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper, IMaterielInfoService materielInfoService, IUnitOfWorkManage unitOfWorkManage, IOutboundOrderDetailService outboundOrderDetailService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService) : base(BaseDal)
+ public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper, IMaterielInfoService materielInfoService, IUnitOfWorkManage unitOfWorkManage, IOutboundOrderDetailService outboundOrderDetailService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService, INewOutboundOrderDetailService newOutboundOrderDetailService, INewOutboundOrderService newOutboundOrderService) : base(BaseDal)
{
_mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
@@ -53,8 +55,10 @@
_stockDetailService = stockDetailService;
_stockService = stockInfoService;
_outboundOrder_HtyService = outboundOrder_HtyService;
- _outboundOrderDetail_HtyService = outboundOrderDetail_HtyService;
+ _outboundOrderDetail_HtyService = outboundOrderDetail_HtyService;
_outboundOrderDetailService = outboundOrderDetailService;
+ _newOutboundOrderDetailService = newOutboundOrderDetailService;
+ _newOutboundOrderService = newOutboundOrderService;
//_taskService = taskService;
}
@@ -66,7 +70,7 @@
{
BatchNo = x.FirstOrDefault()?.BatchNo ?? "",
MaterielCode = x.Key,
- MaterielName = x.FirstOrDefault()?.MaterielName??"",
+ MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
OrderQuantity = x.Sum(x => x.OrderQuantity),
Remark = x.FirstOrDefault(v => !string.IsNullOrEmpty(v.Remark))?.Remark ?? ""
}).ToList();
@@ -169,56 +173,185 @@
OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
orderAddDTO1.OrderNo = houseCancelOut.No;
orderAddDTO1.Details = houseCancelOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
- Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
- Dt_OutboundOrderDetail OutboundOrderDetail = BaseDal.Db.Queryable<Dt_OutboundOrderDetail>().Where(x => x.OrderId == oldOutboundOrder.Id).First();
+ Dt_OutboundOrder? oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
if (oldOutboundOrder == null)
{
return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
}
- if (oldOutboundOrder.OrderStatus == OutboundStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
+ if (oldOutboundOrder != null)
{
- return WebResponseContent.Instance.OK();
- }
- oldOutboundOrder.OrderStatus = InboundStatusEnum.鍙栨秷.ObjToInt();
- BaseDal.UpdateData(oldOutboundOrder);
+ Dt_OutboundOrderDetail OutboundOrderDetail = BaseDal.Db.Queryable<Dt_OutboundOrderDetail>().Where(x => x.OrderId == oldOutboundOrder.Id).First();
- Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty
- {
- OrderStatus = oldOutboundOrder.OrderStatus,
- CreateType = oldOutboundOrder.CreateType,
- //SourceId = oldOutboundOrder.SourceId,
- UpperOrderNo = oldOutboundOrder.UpperOrderNo,
- OrderNo = oldOutboundOrder.OrderNo,
- OutWareHouse = oldOutboundOrder.OutWareHouse,
- TransactionCode = oldOutboundOrder.TransactionCode,
- InoutType = oldOutboundOrder.InoutType,
- OrderType = oldOutboundOrder.OrderType,
- Creater = "WMS",
- CreateDate = DateTime.Now,
- };
- _outboundOrder_HtyService.AddData(inboundOrder_Hty);
-
- foreach (var item in oldOutboundOrder.Details)
- {
- Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty
+ if (oldOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
{
- OrderId = OutboundOrderDetail.OrderId,
- MaterielCode = OutboundOrderDetail.MaterielCode,
- MaterielName = OutboundOrderDetail.MaterielName,
- BatchNo = OutboundOrderDetail.BatchNo,
- OrderQuantity = OutboundOrderDetail.OrderQuantity,
- OrderDetailStatus = OutboundOrderDetail.OrderDetailStatus,
+ return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+ }
+ oldOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ BaseDal.UpdateData(oldOutboundOrder);
+
+ Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty
+ {
+ OrderStatus = oldOutboundOrder.OrderStatus,
+ CreateType = oldOutboundOrder.CreateType,
+ //SourceId = oldOutboundOrder.SourceId,
+ UpperOrderNo = oldOutboundOrder.UpperOrderNo,
+ OrderNo = oldOutboundOrder.OrderNo,
+ OutWareHouse = oldOutboundOrder.OutWareHouse,
+ TransactionCode = oldOutboundOrder.TransactionCode,
+ InoutType = oldOutboundOrder.InoutType,
+ OrderType = oldOutboundOrder.OrderType,
Creater = "WMS",
CreateDate = DateTime.Now,
};
- _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty);
- _outboundOrderDetailService.DeleteData(item);
+ _outboundOrder_HtyService.AddData(inboundOrder_Hty);
+
+ foreach (var item in oldOutboundOrder.Details)
+ {
+ Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty
+ {
+ OrderId = OutboundOrderDetail.OrderId,
+ MaterielCode = OutboundOrderDetail.MaterielCode,
+ MaterielName = OutboundOrderDetail.MaterielName,
+ BatchNo = OutboundOrderDetail.BatchNo,
+ OrderQuantity = OutboundOrderDetail.OrderQuantity,
+ OrderDetailStatus = OutboundOrderDetail.OrderDetailStatus,
+ Creater = "WMS",
+ CreateDate = DateTime.Now,
+ };
+ _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty);
+ _outboundOrderDetailService.DeleteData(item);
+ }
+ BaseDal.DeleteData(oldOutboundOrder);
}
- BaseDal.DeleteData(oldOutboundOrder);
+ _unitOfWorkManage.CommitTran();
+ //Dt_NewOutboundOrder dt_NewOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
+ //if (dt_NewOutboundOrder == null)
+ //{
+ // return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
+ //}
+ //if (dt_NewOutboundOrder != null)
+ //{
+
+ // if (dt_NewOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+ // {
+ // return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+ // }
+ // List<Dt_NewOutboundOrderDetail> newOutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == dt_NewOutboundOrder.Id).ToList();
+ // dt_NewOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+ // foreach (var item in newOutboundOrderDetail)
+ // {
+ // item.OrderDetailStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+ // }
+ // _newOutboundOrderService.UpdateData(dt_NewOutboundOrder);
+ // _newOutboundOrderDetailService.UpdateData(newOutboundOrderDetail);
+ //}
content = WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
+ _unitOfWorkManage.RollbackTran();
+ content = WebResponseContent.Instance.Error(ex.Message);
+ }
+ finally
+ {
+
+ }
+ return content;
+ }
+
+
+ /// <summary>
+ /// 鎴愬搧鍑哄簱鍗曟嵁鍙栨秷
+ /// </summary>
+ /// <param name="houseCancelOut"></param>
+ /// <returns></returns>
+ public WebResponseContent NewCancelOut(HouseCancelOut houseCancelOut)
+ {
+ WebResponseContent content = new();
+ try
+ {
+ OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
+ orderAddDTO1.OrderNo = houseCancelOut.No;
+ orderAddDTO1.Details = houseCancelOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
+ Dt_NewOutboundOrder? oldOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
+ if (oldOutboundOrder == null)
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
+ }
+ if (oldOutboundOrder != null)
+ {
+ Dt_NewOutboundOrderDetail OutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == oldOutboundOrder.Id).First();
+
+ if (oldOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+ }
+ oldOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ _newOutboundOrderService.UpdateData(oldOutboundOrder);
+
+ Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty
+ {
+ OrderStatus = oldOutboundOrder.OrderStatus,
+ CreateType = oldOutboundOrder.CreateType,
+ //SourceId = oldOutboundOrder.SourceId,
+ UpperOrderNo = oldOutboundOrder.UpperOrderNo,
+ OrderNo = oldOutboundOrder.OrderNo,
+ OutWareHouse = oldOutboundOrder.OutWareHouse,
+ TransactionCode = oldOutboundOrder.TransactionCode,
+ InoutType = oldOutboundOrder.InoutType,
+ OrderType = oldOutboundOrder.OrderType,
+ Creater = "WMS",
+ CreateDate = DateTime.Now,
+ };
+ _outboundOrder_HtyService.AddData(inboundOrder_Hty);
+
+ foreach (var item in oldOutboundOrder.Details)
+ {
+ Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty
+ {
+ OrderId = OutboundOrderDetail.OrderId,
+ MaterielCode = OutboundOrderDetail.MaterielCode,
+ MaterielName = OutboundOrderDetail.MaterielName,
+ BatchNo = OutboundOrderDetail.BatchNo,
+ OrderQuantity = OutboundOrderDetail.OrderQuantity,
+ OrderDetailStatus = OutboundOrderDetail.OrderDetailStatus,
+ Creater = "WMS",
+ CreateDate = DateTime.Now,
+ };
+ _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty);
+ _newOutboundOrderDetailService.DeleteData(item);
+ }
+ _newOutboundOrderService.DeleteData(oldOutboundOrder);
+ }
+ _unitOfWorkManage.CommitTran();
+ //Dt_NewOutboundOrder dt_NewOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
+ //if (dt_NewOutboundOrder == null)
+ //{
+ // return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
+ //}
+ //if (dt_NewOutboundOrder != null)
+ //{
+
+ // if (dt_NewOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+ // {
+ // return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+ // }
+ // List<Dt_NewOutboundOrderDetail> newOutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == dt_NewOutboundOrder.Id).ToList();
+ // dt_NewOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+ // foreach (var item in newOutboundOrderDetail)
+ // {
+ // item.OrderDetailStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+ // }
+ // _newOutboundOrderService.UpdateData(dt_NewOutboundOrder);
+ // _newOutboundOrderDetailService.UpdateData(newOutboundOrderDetail);
+ //}
+ content = WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
content = WebResponseContent.Instance.Error(ex.Message);
}
finally
--
Gitblit v1.9.3