647556386
2025-08-10 75e3bca44b111c167b9389e4e51b2ce577a9f9e0
WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -462,7 +462,8 @@
        {
            // 更新入库单明细状态
            UpdateInboundOrderDetails(stockInfo, inboundOrder, ref inboundOrderDetail);
            ///更新库存状态
            stockInfo.StockStatus = StockStatusEmun.入库完成.ObjToInt();
            // 更新库存明细状态
            stockInfo.Details.ForEach(x => x.Status = StockStatusEmun.入库完成.ObjToInt());
@@ -840,8 +841,6 @@
                int lastStatus = locationInfo.LocationStatus;
                locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
                Dt_OutboundOrderDetail outboundOrderDetails = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrderDetail>()
                    .Where(x => x.BatchNo == stockInfo.Details.FirstOrDefault().BatchNo)
                    .First();
@@ -859,7 +858,7 @@
                UpdateOutboundOrderDetails(stockInfo, inboundOrder, ref outboundOrderDetails);
                // 3. 执行核心出库逻辑
                return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails);
                return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails, inboundOrder);
            }
            catch (Exception ex)
            {
@@ -917,18 +916,18 @@
        //}
        private WebResponseContent ExecuteOutboundLogic(Dt_Task task, Dt_StockInfo stockInfo,
            Dt_LocationInfo locationInfo, Dt_OutboundOrderDetail outboundOrderDetails)
            Dt_LocationInfo locationInfo, Dt_OutboundOrderDetail outboundOrderDetails,Dt_OutboundOrder inboundOrder)
        {
            try
            {
                _unitOfWorkManage.BeginTran();
                ///更新出库单
                _outboundService.OutboundOrderService.Repository.UpdateData(inboundOrder);
                // 更新出库订单详情
                _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
                // 更新库存状态
                UpdateStockStatus(stockInfo, locationInfo);
                DeleteAndMoveIntoHtStockStatus(stockInfo);
                // 更新货位状态
                UpdateLocationStatus(locationInfo);
@@ -971,8 +970,7 @@
                throw;
            }
        }
        private void UpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder,
    ref Dt_OutboundOrderDetail inboundOrderDetail)
        private void UpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder,ref Dt_OutboundOrderDetail inboundOrderDetail)
        {
            int overCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
            inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == stockInfo.Details.FirstOrDefault()?.BatchNo);
@@ -1000,16 +998,10 @@
            }
        }
        private void UpdateStockStatus(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo)
        private void DeleteAndMoveIntoHtStockStatus(Dt_StockInfo stockInfo)
        {
            stockInfo.LocationCode = "";
            stockInfo.StockStatus = StockStatusEmun.出库完成.ObjToInt();
            stockInfo.Details.ForEach(x =>
            {
                x.Status = StockStatusEmun.出库完成.ObjToInt();
            });
            _stockRepository.StockInfoRepository.UpdateData(stockInfo);
            _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
            _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.自动完成 : OperateType.人工完成);
            _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.自动完成 : OperateType.人工完成);
        }
        private void UpdateLocationStatus(Dt_LocationInfo locationInfo)
@@ -1021,6 +1013,7 @@
        private void CompleteTask(Dt_Task task)
        {
            task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
            BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.自动完成 : OperateType.人工完成);
        }
@@ -1131,10 +1124,8 @@
            Dt_StockInfoDetail stockInfoDetail, Dt_OutboundOrderDetail outDetail)
        {
            //List<Dt_StockInfo> StockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == task.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(v => v.BatchNo == outDetail.BatchNo)).ToList();
            List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.OrderNo == outboundOrder.OrderNo);
            if (outStockLockInfos.Count == 0) throw new Exception("未找到库存信息");