From d89c4f466c0922287ff88d4f61bfba71461cdbf0 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期二, 02 十二月 2025 15:37:58 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs | 93 ++++++++++++++++++++++++++--------------------
1 files changed, 52 insertions(+), 41 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/OutboundPickingService.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/OutboundPickingService.cs"
index 448d71e..aaf10c0 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/OutboundPickingService.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/OutboundPickingService.cs"
@@ -27,11 +27,13 @@
using WIDESEA_DTO.Outbound;
using WIDESEA_IAllocateService;
using WIDESEA_IBasicService;
+using WIDESEA_ICheckService;
using WIDESEA_IInboundService;
using WIDESEA_IOutboundService;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
using WIDESEA_Model.Models.Basic;
+using WIDESEA_Model.Models.Check;
namespace WIDESEA_OutboundService
{
@@ -59,7 +61,7 @@
private readonly IRepository<Dt_InboundOrder> _inboundOrderRepository;
private readonly IInboundOrderDetailService _inboundOrderDetailService;
private readonly IRepository<Dt_WarehouseArea> _warehouseAreaRepository;
-
+ private readonly IReCheckOrderService _reCheckOrderService;
private readonly ILogger<OutboundPickingService> _logger;
private Dictionary<string, string> stations = new Dictionary<string, string>
@@ -79,7 +81,7 @@
public OutboundPickingService(IRepository<Dt_PickingRecord> BaseDal, IUnitOfWorkManage unitOfWorkManage, IStockInfoService stockInfoService, IStockService stockService,
IOutStockLockInfoService outStockLockInfoService, IStockInfoDetailService stockInfoDetailService, ILocationInfoService locationInfoService,
IOutboundOrderDetailService outboundOrderDetailService, ISplitPackageService splitPackageService, IOutboundOrderService outboundOrderService,
- IRepository<Dt_Task> taskRepository, IESSApiService eSSApiService, ILogger<OutboundPickingService> logger, IInvokeMESService invokeMESService, IDailySequenceService dailySequenceService, IAllocateService allocateService, IRepository<Dt_InboundOrder> inboundOrderRepository, IInboundOrderDetailService inboundOrderDetailService, IRepository<Dt_WarehouseArea> warehouseAreaRepository) : base(BaseDal)
+ IRepository<Dt_Task> taskRepository, IESSApiService eSSApiService, ILogger<OutboundPickingService> logger, IInvokeMESService invokeMESService, IDailySequenceService dailySequenceService, IAllocateService allocateService, IRepository<Dt_InboundOrder> inboundOrderRepository, IInboundOrderDetailService inboundOrderDetailService, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IReCheckOrderService reCheckOrderService) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_stockInfoService = stockInfoService;
@@ -99,6 +101,7 @@
_inboundOrderRepository = inboundOrderRepository;
_inboundOrderDetailService = inboundOrderDetailService;
_warehouseAreaRepository = warehouseAreaRepository;
+ _reCheckOrderService = reCheckOrderService;
}
@@ -1673,7 +1676,7 @@
// 鍒犻櫎鍘熷鍑哄簱浠诲姟
_taskRepository.DeleteAndMoveIntoHty(originalTask, OperateTypeEnum.鑷姩瀹屾垚);
- // await _taskRepository.Db.Deleteable(originalTask).ExecuteCommandAsync();
+ await _taskRepository.Db.Deleteable(originalTask).ExecuteCommandAsync();
@@ -1802,11 +1805,7 @@
_logger.LogInformation($"璁㈠崟鐘舵�佹洿鏂� - OrderNo: {orderNo}, 鏃х姸鎬�: {outboundOrder.OrderStatus}, 鏂扮姸鎬�: {newStatus}");
- // 鍙湁姝e父鍒嗘嫞瀹屾垚鏃舵墠鍚慚ES鍙嶉
- if (allCompleted && newStatus == (int)OutOrderStatusEnum.鍑哄簱瀹屾垚)
- {
- await HandleOrderCompletion(outboundOrder, orderNo);
- }
+
}
}
catch (Exception ex)
@@ -1936,7 +1935,7 @@
{
ReqCode = Guid.NewGuid().ToString(),
ReqTime = DateTime.Now.ToString(),
- BusinessType = "3",
+ BusinessType = "2",
FactoryArea = outboundOrder.FactoryArea,
OperationType = 1,
@@ -2015,25 +2014,25 @@
// 鍙幏鍙栧凡鎷i�夊畬鎴愮殑閿佸畾璁板綍
var lists = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
- .Where(x => x.OrderNo == orderNo && x.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴�)
+ .Where(x => x.OrderNo == orderNo && (x.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴� || x.Status == (int)OutLockStockStatusEnum.宸插洖搴�))
.ToListAsync();
- var groupedData = lists.GroupBy(item => new { item.MaterielCode, item.lineNo, item.Unit, item.WarehouseCode })
+ var groupedData = lists.GroupBy(item => new { item.MaterielCode, item.lineNo, item.BarcodeUnit, item.WarehouseCode })
.Select(group => new FeedbackOutboundDetailsModel
{
materialCode = group.Key.MaterielCode,
lineNo = group.Key.lineNo,
warehouseCode = group.Key.WarehouseCode,
- qty = group.Sum(x => x.PickedQty),
- currentDeliveryQty = group.Sum(x => x.PickedQty),
- unit = group.Key.Unit,
+ qty = group.Sum(x => x.BarcodeQty),
+ currentDeliveryQty = group.Sum(x => x.BarcodeQty),
+ unit = group.Key.BarcodeUnit,
barcodes = group.Select(row => new WIDESEA_DTO.Outbound.BarcodesModel
{
barcode = row.CurrentBarcode,
supplyCode = row.SupplyCode,
batchNo = row.BatchNo,
- unit = row.Unit,
- qty = row.PickedQty
+ unit = row.BarcodeUnit,
+ qty = row.BarcodeQty
}).ToList()
}).ToList();
@@ -2202,7 +2201,7 @@
_logger.LogInformation($"璁㈠崟 {orderNo} 宸叉爣璁颁负鍑哄簱瀹屾垚");
// 鍚慚ES鍙嶉璁㈠崟瀹屾垚锛堝鏋滈渶瑕侊級
- await HandleOrderCompletion(outboundOrder, orderNo);
+ //await HandleOrderCompletion(outboundOrder, orderNo);
}
}
@@ -2808,7 +2807,7 @@
business_type = outboundOrder.BusinessType,
factoryArea = outboundOrder.FactoryArea,
operationType = 1,
- Operator = outboundOrder.Operator,
+ Operator = App.User.UserName,
orderNo = outboundOrder.UpperOrderNo,
documentsNO = outboundOrder.OrderNo,
status = outboundOrder.OrderStatus,
@@ -2822,28 +2821,29 @@
var detailLocks = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
.Where(x => x.OrderNo == outboundOrder.OrderNo &&
x.OrderDetailId == detail.Id &&
- x.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴�)
+ (x.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴� || x.Status == (int)OutLockStockStatusEnum.宸插洖搴�))
.ToListAsync();
- var detailModel = new FeedbackOutboundDetailsModel
- {
- materialCode = detail.MaterielCode,
- lineNo = detail.lineNo, // 娉ㄦ剰锛氳繖閲屽彲鑳介渶瑕佽皟鏁村瓧娈靛悕
- warehouseCode = detail.WarehouseCode,
- qty = detail.OverOutQuantity, // 浣跨敤璁㈠崟鏄庣粏鐨勫凡鍑哄簱鏁伴噺
- currentDeliveryQty = detail.OverOutQuantity,
- unit = detail.Unit,
- barcodes = detailLocks.Select(lockInfo => new WIDESEA_DTO.Outbound.BarcodesModel
- {
- barcode = lockInfo.CurrentBarcode,
- supplyCode = lockInfo.SupplyCode,
- batchNo = lockInfo.BatchNo,
- unit = lockInfo.Unit,
- qty = lockInfo.PickedQty // 鏉$爜绾у埆鐨勬暟閲忎粛鐢ㄩ攣瀹氳褰�
- }).ToList()
- };
+ var groupdata = detailLocks.GroupBy(item => new { item.MaterielCode, item.lineNo, item.BarcodeUnit, item.WarehouseCode })
+ .Select(group => new FeedbackOutboundDetailsModel
+ {
- feedmodel.details.Add(detailModel);
+ materialCode = group.Key.MaterielCode,
+ lineNo = group.Key.lineNo,
+ warehouseCode = group.Key.WarehouseCode,
+ qty = group.Sum(x => x.BarcodeQty),
+ currentDeliveryQty = group.Sum(x => x.BarcodeQty),
+ unit = group.Key.BarcodeUnit,
+ barcodes = group.Select(lockInfo => new WIDESEA_DTO.Outbound.BarcodesModel
+ {
+ barcode = lockInfo.CurrentBarcode,
+ supplyCode = lockInfo.SupplyCode,
+ batchNo = lockInfo.BatchNo,
+ unit = lockInfo.BarcodeUnit,
+ qty = lockInfo.BarcodeQty
+ }).ToList()
+ }).ToList();
+ feedmodel.details.AddRange(groupdata);
}
var result = await _invokeMESService.FeedbackOutbound(feedmodel);
if (result != null && result.code == 200)
@@ -2934,7 +2934,18 @@
return content = WebResponseContent.Instance.Error($"浠撳簱涓病鏈夎{materielGroupDTO.WarehouseType}缂栧彿銆�");
}
-
+ if (materielGroupDTO.orderTypes == InOrderTypeEnum.ReCheck.ObjToInt())
+ {
+ var dborder = _reCheckOrderService.Db.Queryable<Dt_ReCheckOrder>().First(x => x.OrderNo == materielGroupDTO.OrderNo);
+ if (dborder != null && dborder.SignSeq == 0)
+ {
+ return content.Error("鍙湁鎷垮埌閲嶆缁撴灉鎵嶈兘鍏ュ簱锛�");
+ }
+ else
+ {
+ return content.Error("娌℃湁鎵惧埌閲嶆鍗曟嵁鏁版嵁銆�");
+ }
+ }
// Dt_InboundOrder inboundOrder = GetInboundOrder(materielGroupDTO.OrderNo);
var dbinboundOrderDetails = Db.Queryable<Dt_PickingRecord>().Where(x => x.OrderNo == materielGroupDTO.OrderNo && !x.IsCancelled && x.Barcode == materielGroupDTO.Barcodes).ToList();
@@ -2968,9 +2979,9 @@
InboundOrderNo = dbinboundOrderDetails.First()?.OrderNo,
UpperOrderNo = dbinboundOrderDetails.First()?.OrderNo,
SupplierId = dbinboundOrderDetails.First()?.SupplyCode,
- OrderType = InOrderTypeEnum.InternalAllocat.ObjToInt(),
+ OrderType = materielGroupDTO.orderTypes,
- BusinessType = InOrderTypeEnum.InternalAllocat.ObjToInt().ToString(),
+ BusinessType = materielGroupDTO.orderTypes.ToString(),
FactoryArea = dbinboundOrderDetails.First()?.FactoryArea,
Remark = "",
@@ -2980,7 +2991,7 @@
}
else
{
- dt_InboundOrder = new Dt_InboundOrder { Details = new List<Dt_InboundOrderDetail>() };
+ dt_InboundOrder = new Dt_InboundOrder { Details = new List<Dt_InboundOrderDetail>() };
inboindId = dbinbound.Id;
}
--
Gitblit v1.9.3