pan
2025-11-13 1f72ccdc6093a5b44910bd73a78a27f7226325b2
提交
已修改3个文件
186 ■■■■■ 文件已修改
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/Basic/SupplierDTO.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/Outbound/OutboundOrderGetDTO.cs 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_DTO/Basic/SupplierDTO.cs
@@ -82,8 +82,7 @@
    public class WarehouseRequest
    {
        public List<WarehouseAreaDto> warehouses { get; set; }   
        public List<string> delWarehouseCodes {  get; set; }
    }
     
@@ -93,5 +92,7 @@
        public string Code { get; set; }
        public string Name { get; set; }
        public string FactoryArea { get; set; }
        public int IsDelete { get; set; }
    }
}
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_DTO/Outbound/OutboundOrderGetDTO.cs
@@ -1,4 +1,5 @@
using System;
using Microsoft.AspNetCore.Components.Forms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -22,7 +23,7 @@
        public string Operator { get; set; }
    }
    public class PickingConfirmRequest
    {
        public int OrderDetailId { get; set; }
@@ -33,7 +34,7 @@
        public string PalletCode { get; set; }
        public int StockId { get; set; } // åº“å­˜ID
        public int OutStockLockInfoId { get; set; } // å‡ºåº“锁定信息ID
    }
    }
    public class DirectOutboundRequest
    {
@@ -59,4 +60,157 @@
        public string TargetLocation { get; set; }
        public DateTime CompleteTime { get; set; }
    }
    public class InputDto { }
    public class OutputDto { }
    #region å…¥å‚DTO
    public class ScanCodeValidateInput : InputDto
    {
        public string ScanCode { get; set; } = string.Empty; // æ‰«æçš„æ¡ç 
        public string OrderNo { get; set; } = string.Empty; // å‡ºåº“单号
    }
    public class PickingConfirmInput : InputDto
    {
        public string TaskNum { get; set; } = string.Empty; // ä»»åŠ¡å·
        public string PalletCode { get; set; } = string.Empty; // æ‰˜ç›˜ç 
        public string MaterielBarcode { get; set; } = string.Empty; // ç‰©æ–™æ¡ç 
    }
    public class SplitPackageInput : InputDto
    {
        public long OutStockLockId { get; set; } // å¾…拆分的出库详情ID
        public string NewBarcode { get; set; } = string.Empty; // æ–°æ¡ç 
        public decimal SplitQty { get; set; } // æ–°æ¡ç åˆ†é…æ•°é‡
    }
    public class StockReturnInput : InputDto
    {
        public string OrderNo { get; set; } = string.Empty; // å‡ºåº“单号
        public string TaskNum { get; set; } = string.Empty; // ä»»åŠ¡å·ï¼ˆå¯é€‰ï¼‰
    }
    public class OutStockLockDetailInput : InputDto
    {
        public long OutStockLockId { get; set; } // å‡ºåº“详情ID
    }
    #endregion
    #region å‡ºå‚DTO
    //[AutoMapFrom(typeof(OutStockLockInfo))]
    public class OutStockLockInfoOutput : OutputDto
    {
        public string TaskNum { get; set; } = string.Empty;
        public string PalletCode { get; set; } = string.Empty;
        public string CurrentBarcode { get; set; } = string.Empty;
        public decimal AssignQuantity { get; set; }
        public decimal PickedQty { get; set; }
        public int Status { get; set; }
        public bool IsSplitted { get; set; }
    }
    //[AutoMapFrom(typeof(OutStockLockInfo))]
    public class OutStockLockDetailOutput : OutputDto
    {
        public string CurrentBarcode { get; set; } = string.Empty;
        public decimal AssignQuantity { get; set; }
    }
    public class MaterielBarcodeValidateOutput : OutputDto
    {
        public bool IsValid { get; set; }
        public long OutStockLockId { get; set; }
        public decimal PackageQty { get; set; } // åˆ†é…æ•°é‡
        public string Message { get; set; } = string.Empty;
    }
    //[AutoMapFrom(typeof(PickingRecord))]
    public class PickingRecordOutput : OutputDto
    {
        public string Barcode { get; set; } = string.Empty;
        public string PalletCode { get; set; } = string.Empty;
        public decimal PickQuantity { get; set; }
        public string PickTime { get; set; } = string.Empty;
    }
    #endregion
    public class ScanCodeValidateReq
    {
        public string ScanCode { get; set; } = string.Empty; // æ‰«æçš„æ¡ç 
        public string OrderNo { get; set; } = string.Empty; // å‡ºåº“单号
    }
    public class PickingConfirmReq
    {
        public string TaskNum { get; set; } = string.Empty; // ä»»åŠ¡å·
        public string PalletCode { get; set; } = string.Empty; // æ‰˜ç›˜ç 
        public string MaterielBarcode { get; set; } = string.Empty; // ç‰©æ–™æ¡ç 
    }
    public class SplitPackageReq
    {
        public long OutStockLockId { get; set; } // å¾…拆分的出库详情ID
        public string NewBarcode { get; set; } = string.Empty; // æ–°æ¡ç 
        public decimal SplitQty { get; set; } // æ–°æ¡ç åˆ†é…æ•°é‡
    }
    public class StockReturnReq
    {
        public string OrderNo { get; set; } = string.Empty; // å‡ºåº“单号
        public string TaskNum { get; set; } = string.Empty; // ä»»åŠ¡å·ï¼ˆå¯é€‰ï¼‰
    }
    public class OutStockLockDetailReq
    {
        public long OutStockLockId { get; set; } // å‡ºåº“详情ID
    }
    public class MaterielBarcodeValidateResp
    {
        public bool IsValid { get; set; }
        public long OutStockLockId { get; set; }
        public decimal PackageQty { get; set; } // æ•´åŒ…数量(分配数量)
        public string Message { get; set; } = string.Empty;
    }
    public class OutStockLockDetailResp
    {
        public string CurrentBarcode { get; set; } = string.Empty;
        public decimal AssignQuantity { get; set; }
    }
    public class OutStockLockListResp
    {
        public long Id { get; set; }
        public string TaskNum { get; set; } = string.Empty;
        public string PalletCode { get; set; } = string.Empty;
        public string CurrentBarcode { get; set; } = string.Empty;
        public decimal AssignQuantity { get; set; }
        public decimal PickedQty { get; set; }
        public int Status { get; set; }
        public bool IsSplitted { get; set; }
    }
    public class PickedRecordListResp
    {
        public string barcode { get; set; } = string.Empty;
        public string palletCode { get; set; } = string.Empty;
        public decimal pickQuantity { get; set; }
        public string pickTime { get; set; } = string.Empty;
    }
}
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs
@@ -46,6 +46,27 @@
            _splitPackageService = splitPackageService;
        }
        #region æŸ¥è¯¢å‡ºåº“详情列表
        public async Task<List<OutStockLockListResp>> GetOutStockLockListAsync(string orderNo)
        {
            var locks = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
                .Where(t => t.OrderNo == orderNo)
                .ToListAsync();
            return locks.Select(t => new OutStockLockListResp
            {
                Id = t.Id,
               // TaskNum = t.TaskNum,
                PalletCode = t.PalletCode,
                CurrentBarcode = t.CurrentBarcode,
                AssignQuantity = t.AssignQuantity,
                PickedQty = t.PickedQty,
                Status = t.Status,
              //  IsSplitted = t.IsSplitted
            }).ToList();
        }
        #endregion
        public async Task<WebResponseContent> ValidateBarcode(string barcode)
        {
            try