From 696edbff3c8812e4b820f624d66a02ae6ddb1a06 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期四, 16 四月 2026 13:40:18 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 155 insertions(+), 13 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/InboundService.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/InboundService.cs"
index ca8c34e..84eba5c 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/InboundService.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/InboundService.cs"
@@ -1,6 +1,8 @@
锘縰sing LogLibrary.Log;
using MailKit;
+using MailKit.Net.Smtp;
using MailKit.Search;
+using Microsoft.AspNetCore.Http;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Bcpg;
@@ -58,7 +60,8 @@
private readonly ILocationInfoService _locationInfoService;
private readonly IRepository<Dt_TakeStockOrder> _takeStockOrder;
private readonly IRepository<Dt_StockInfoDetail> _stockInfoDetailRepository;
- public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord,ILocationInfoService locationInfoService,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfoDetail> stockInfoDetailRepository)
+ private readonly IRepository<Dt_AllocateOrder> _allocateOrderRepository;
+ public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord,ILocationInfoService locationInfoService,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfoDetail> stockInfoDetailRepository, IRepository<Dt_AllocateOrder> allocateOrderRepository)
{
_unitOfWorkManage = unitOfWorkManage;
InboundOrderDetailService = inboundOrderDetailService;
@@ -76,9 +79,11 @@
_locationInfoService = locationInfoService;
_takeStockOrder = takeStockOrder;
_stockInfoDetailRepository = stockInfoDetailRepository;
+ _allocateOrderRepository = allocateOrderRepository;
}
- public async Task<WebResponseContent> GroupPallet(GroupPalletDto palletDto)
+ public async Task<WebResponseContent>
+ GroupPallet(GroupPalletDto palletDto)
{
WebResponseContent content = new WebResponseContent();
try
@@ -148,10 +153,22 @@
return content.Error($"褰撳墠鍘傚尯涓嶄竴鑷�");
}
- if(inboundOrder.BusinessType != "11"&& inboundOrder.Details.FirstOrDefault().WarehouseCode != palletDto.WarehouseType)
+ if(inboundOrder.BusinessType != "11")
{
- return content.Error($"璇ユ潯鐮佹墍灞炰粨搴撲负{inboundOrder.Details.FirstOrDefault().WarehouseCode}涓庡綋鍓嶄粨搴搟palletDto.WarehouseType}涓嶄竴鑷达紝涓嶅厑璁哥粍鐩�");
+ var warehouseType = _inboundOrderDetailRepository.Db.Queryable<Dt_InboundOrderDetail>().Where(x => (x.Barcode == palletDto.Barcode || x.OutBoxbarcodes == palletDto.Barcode)&& x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()).Select(x => x.WarehouseCode).First();
+
+ if (string.IsNullOrEmpty(warehouseType))
+ {
+ return content.Error($"鏈煡璇㈠埌鏉$爜[{palletDto.Barcode}]瀵瑰簲鐨勪粨搴撲俊鎭紝涓嶅厑璁哥粍鐩�");
+ }
+
+ if (!warehouseType.Equals(palletDto.WarehouseType))
+ {
+ return content.Error($"璇ユ潯鐮佹墍灞炰粨搴撲负{warehouseType}涓庡綋鍓嶄粨搴搟palletDto.WarehouseType}涓嶄竴鑷达紝涓嶅厑璁哥粍鐩�");
+ }
}
+
+
Dt_StockInfo? stockInfo = await _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.PalletCode == palletDto.PalletCode).FirstAsync();
@@ -166,6 +183,20 @@
stockInfo = new Dt_StockInfo() { PalletType = (int)PalletTypeEnum.None, LocationType = Convert.ToInt32(palletDto.locationType) };
stockInfo.Details = new List<Dt_StockInfoDetail>();
}
+ //else
+ //{
+ // var allowStatus = new[]
+ // {
+ // (int)StockStatusEmun.缁勭洏鏆傚瓨,
+ // (int)StockStatusEmun.鏅轰粨鍏ユ櫤浠撶粍鐩樻殏瀛�,
+ // (int)StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨
+ // };
+
+ // if (!allowStatus.Contains(stockInfo.StockStatus))
+ // {
+ // return content.Error($"璇ユ墭鐩榹stockInfo.PalletCode}鐘舵�佷笉鍏佽缁勭洏");
+ // }
+ //}
if (inboundOrder.BusinessType != MESDocumentType.PurchaseInbound.ToString() && stockInfo != null && stockInfo.Details.Count > 0 && stockInfo.Details.FirstOrDefault()?.WarehouseCode != palletDto.WarehouseType)
{
@@ -177,9 +208,13 @@
return content.Error($"涓�涓噰璐崟鎹噷闈笉鍏佽缁勭洏涓や釜浠撳簱锛岃閲嶆柊閫夋嫨浠撳簱锛屼笂涓�涓粍鐩樹粨搴撲负{isWarehouse.WarehouseCode}");
}
- if (inboundOrder.BusinessType == "11" && inboundOrder.IsTestMaterials == 1 && (palletDto.WarehouseType != "1076" || palletDto.WarehouseType != "5057"))
+ if (inboundOrder.BusinessType == "11" && inboundOrder.IsTestMaterials == 1 && palletDto.WarehouseType != "1076" && palletDto.WarehouseType != "5057")
{
return content.Error($"璇ュ崟鎹负璇曚骇鐗╂枡锛岄渶瑕佸叆搴撳埌璇曚骇浠擄紝璇烽噸鏂版牴鎹巶鍖洪�夋嫨璇曚骇浠撳簱杩涜缁勭洏鍏ュ簱");
+ }
+ if (inboundOrder.IsTestMaterials == 0 && (palletDto.WarehouseType == "1076" || palletDto.WarehouseType == "5057"))
+ {
+ return content.Error($"璇ュ崟鎹负闈炶瘯浜х墿鏂欙紝涓嶈兘鍏ュ埌璇曚骇浠擄紝璇烽噸鏂版牴鎹粨搴撹繘琛岀粍鐩樺叆搴�");
}
if (!_locationInfoService.QueryLocationCount(Convert.ToInt32(palletDto.locationType)))
{
@@ -318,7 +353,10 @@
{
return content.Error($"鏈壘鍒拌鏉$爜{palletDto.Barcode}闇�璋冨叆鏅轰粨鐨勪俊鎭�");
}
-
+ if(allocateMaterialInfo.WarehouseCode != palletDto.WarehouseType)
+ {
+ return content.Error($"璇ユ潯鐮佽皟鍏ヤ粨搴撲负{allocateMaterialInfo.WarehouseCode},涓庨�夋嫨鐨剓palletDto.WarehouseType}浠撳簱涓嶄竴鑷�");
+ }
stockInfo.Details.Add(new Dt_StockInfoDetail
{
StockId = stockInfo == null ? 0 : stockInfo.Id,
@@ -440,9 +478,27 @@
WebResponseContent content = new WebResponseContent();
try
{
- var inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>()
+ Dt_InboundOrder inboundOrder = null;
+ var allocateOrder = _allocateOrderRepository.Db.Queryable<Dt_AllocateOrder>().Where(x => x.Id == id).First();
+ if (allocateOrder != null)
+ {
+ inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == allocateOrder.OrderNo).First();
+ if (inboundOrder.IsBatch == 0 && inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ return content = WebResponseContent.Instance.OK($"璇ュ崟鎹睘浜庝笉鍒嗘壒鑷姩鍥炰紶锛屼笉鍙墜鍔ㄥ垎鎵瑰洖浼�");
+ }
+ }else
+ {
+ inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>()
.Where(x => x.Id == id)
.First();
+ if (inboundOrder.IsBatch == 0 && inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ return content = WebResponseContent.Instance.OK($"璇ュ崟鎹睘浜庝笉鍒嗘壒鑷姩鍥炰紶锛屼笉鍙墜鍔ㄥ垎鎵瑰洖浼�");
+ }
+ }
+
+
List<Dt_MesReturnRecord> returnRecords = _mesReturnRecord.QueryData(x => x.OrderNo == inboundOrder.InboundOrderNo && x.OrderId == inboundOrder.Id && x.ReturnStatus == 2);
foreach (var item in returnRecords)
@@ -533,7 +589,18 @@
{
if (returnRecords.Count() == returnRecords.Count(x => x.ReturnStatus == 1))
{
- inboundOrder.ReturnToMESStatus = 1;
+ if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+ {
+ inboundOrder.ReturnToMESStatus = 1;
+ }
+ else if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ inboundOrder.ReturnToMESStatus = 3;
+ }
+ else
+ {
+ inboundOrder.ReturnToMESStatus = 0;
+ }
}
else if (returnRecords.Count(x => x.ReturnStatus == 2) > 0)
{
@@ -544,15 +611,31 @@
inboundOrder.ReturnToMESStatus = 2;
}
_inboundOrderRepository.UpdateData(inboundOrder);
- return WebResponseContent.Instance.OK($"璇ュ崟鎹病鏈夐渶瑕佸洖浼犳槑缁嗭紝澶辫触鏁版嵁鍥炰紶{returnRecords.Count()}鏉★紝鍥炰紶鎴愬姛{returnRecords.Count(x => x.ReturnStatus == 1)}鏉★紝鍥炰紶澶辫触{returnRecords.Count(x => x.ReturnStatus == 2)}鏉�");
+ return WebResponseContent.Instance.OK($"璇ュ崟鎹病鏈夐渶瑕佸洖浼犳槑缁嗭紝鍥炰紶{returnRecords.Count()}鏉★紝鍥炰紶鎴愬姛{returnRecords.Count(x => x.ReturnStatus == 1)}鏉★紝鍥炰紶澶辫触{returnRecords.Count(x => x.ReturnStatus == 2)}鏉�");
}
var response = responseModel(inboundOrder, 3, null, allocatefeedmodel);
- if (response != null && response.IsSuccess)
+ if (response != null && response.IsSuccess && response.Data.Code == "200")
{
_inboundOrderRepository.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = 1 })
.Where(it => it.OrderId == inboundOrder.Id && inbounddetailID.Contains(it.Id)).ExecuteCommand();
+
+ if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 1 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 3 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 0 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
_stockInfoRepository.Db.Updateable<Dt_StockInfoDetail>().SetColumns(it => new Dt_StockInfoDetail
{
@@ -563,6 +646,22 @@
{
_inboundOrderRepository.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = 2 })
.Where(it => inbounddetailID.Contains(it.Id)).ExecuteCommand();
+
+ if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 2 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 4 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 0 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
return content.Error("鍥炰紶MES澶辫触");
}
}
@@ -585,7 +684,18 @@
{
if (returnRecords.Count() == returnRecords.Count(x => x.ReturnStatus == 1))
{
- inboundOrder.ReturnToMESStatus = 1;
+ if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+ {
+ inboundOrder.ReturnToMESStatus = 1;
+ }
+ else if(inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ inboundOrder.ReturnToMESStatus = 3;
+ }
+ else
+ {
+ inboundOrder.ReturnToMESStatus = 0;
+ }
}
else if (returnRecords.Count(x => x.ReturnStatus == 2) > 0)
{
@@ -596,14 +706,30 @@
inboundOrder.ReturnToMESStatus = 2;
}
_inboundOrderRepository.UpdateData(inboundOrder);
- return WebResponseContent.Instance.OK($"璇ュ崟鎹病鏈夐渶瑕佸洖浼犳槑缁嗭紝澶辫触鏁版嵁鍥炰紶{returnRecords.Count()}鏉★紝鍥炰紶鎴愬姛{returnRecords.Count(x => x.ReturnStatus == 1)}鏉★紝鍥炰紶澶辫触{returnRecords.Count(x => x.ReturnStatus == 2)}鏉�");
+ return WebResponseContent.Instance.OK($"璇ュ崟鎹病鏈夐渶瑕佸洖浼犳槑缁嗭紝鍥炰紶{returnRecords.Count()}鏉★紝鍥炰紶鎴愬姛{returnRecords.Count(x => x.ReturnStatus == 1)}鏉★紝鍥炰紶澶辫触{returnRecords.Count(x => x.ReturnStatus == 2)}鏉�");
}
var response = responseModel(inboundOrder, 3, feedmodel);
- if (response != null && response.IsSuccess)
+ if (response != null && response.IsSuccess && response.Data.Code == "200")
{
_inboundOrderRepository.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = 1 })
.Where(it => inbounddetailID.Contains(it.Id)).ExecuteCommand();
+
+ if(inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 1 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else if(inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 3})
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 0 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
_stockInfoRepository.Db.Updateable<Dt_StockInfoDetail>().SetColumns(it => new Dt_StockInfoDetail
{
@@ -614,6 +740,22 @@
{
_inboundOrderRepository.Db.Updateable<Dt_InboundOrderDetail>().SetColumns(it => new Dt_InboundOrderDetail { ReturnToMESStatus = 2 })
.Where(it => inbounddetailID.Contains(it.Id)).ExecuteCommand();
+
+ if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 2 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 4 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
+ else
+ {
+ _inboundOrderRepository.Db.Updateable<Dt_InboundOrder>().SetColumns(it => new Dt_InboundOrder { ReturnToMESStatus = 0 })
+ .Where(it => it.Id == inboundOrder.Id).ExecuteCommand();
+ }
return content.Error("鍥炰紶MES澶辫触");
}
}
--
Gitblit v1.9.3