tjx
2025-11-21 7d13b041f6cf87bddb0e3523c4cf1a328fc159f6
增加立库的出库接口
已修改8个文件
已添加4个文件
611 ■■■■■ 文件已修改
StandardPda/MES.Service/Dto/webApi/ItemStockQueryDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/webApi/ReturnableStockDto.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemStocks.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesItems.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesUnit.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MessageCenter.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/XbRackingTaskSyxtLog.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/obj/Debug/net8.0/MES.Service.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs 287 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/Warehouse/MesInvItemStocksController.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/obj/Debug/net8.0/MESApplication.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/webApi/ItemStockQueryDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
namespace MES.Service.Dto.webApi;
/// <summary>
///     ç‰©æ–™åº“存查询请求DTO
/// </summary>
public class ItemStockQueryDto
{
    /// <summary>
    ///     ç”¨æˆ·ç¼–码
    /// </summary>
    public string? UserCode { get; set; }
    /// <summary>
    ///     å­—符串集合(如条码、物料编号等)
    /// </summary>
    public List<string>? ItemBarcodes { get; set; }
}
StandardPda/MES.Service/Dto/webApi/ReturnableStockDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
namespace MES.Service.Dto.webApi;
/// <summary>
///     å¯é€€è´§ç‰©æ–™åº“å­˜DTO
/// </summary>
public class ReturnableStockDto
{
    /// <summary>
    ///     è‰¯å“çŠ¶æ€ (0=不良品, 1=良品)
    /// </summary>
    public string? IqcStatus { get; set; }
    /// <summary>
    ///     æ˜¯å¦æˆå“ (0=非成品, 1=成品)
    /// </summary>
    public string? ItemType { get; set; }
    /// <summary>
    ///     æ¯æ‰˜ç›˜ç¼–号
    /// </summary>
    public string? StackCode { get; set; }
    /// <summary>
    ///     ä»“库
    /// </summary>
    public string? DepotCode { get; set; }
    /// <summary>
    ///     ä»“库名称
    /// </summary>
    public string? DepotName { get; set; }
    /// <summary>
    ///     è™šæ‹Ÿåº“位
    /// </summary>
    public string? DepotSectionsCode { get; set; }
    /// <summary>
    ///     ç‰©æ–™ç¼–号
    /// </summary>
    public string? ItemNo { get; set; }
    /// <summary>
    ///     ç‰©æ–™åç§°
    /// </summary>
    public string? ItemName { get; set; }
    /// <summary>
    ///     ç‰©æ–™è§„æ ¼
    /// </summary>
    public string? ItemModel { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ•°é‡
    /// </summary>
    public decimal? Quantity { get; set; }
    /// <summary>
    ///     ç‰©æ–™å•位
    /// </summary>
    public string? ItemUnit { get; set; }
    /// <summary>
    ///     ç‰©æ–™å•位中文名称
    /// </summary>
    public string? ItemUnitName { get; set; }
    /// <summary>
    ///     å…¥åº“æ—¶é—´
    /// </summary>
    public DateTime? IndepDate { get; set; }
    /// <summary>
    ///     ç»„织编码
    /// </summary>
    public string? OrgCode { get; set; }
    /// <summary>
    ///     ç»„织名称
    /// </summary>
    public string? OrgName { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç 
    /// </summary>
    public string? ItemBarcode { get; set; }
}
StandardPda/MES.Service/Modes/MesInvItemStocks.cs
@@ -200,4 +200,82 @@
    /// </summary>
    [SugarColumn(ColumnName = "LINE_K3ID")]
    public decimal? LineK3id { get; set; }
    /// <summary>
    ///     ç‰©æ–™ID
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_ID")]
    public decimal? ItemId { get; set; }
    /// <summary>
    ///     æ˜¯å¦å ç”¨
    /// </summary>
    [SugarColumn(ColumnName = "IS_ZY")]
    public decimal? IsZy { get; set; }
    /// <summary>
    ///     é”€å”®è®¢å•
    /// </summary>
    [SugarColumn(ColumnName = "SALES_ORDER")]
    public string? SalesOrder { get; set; }
    /// <summary>
    ///     å¯è§æ€§(0-可见,1-不可见)
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE")]
    public short? Visable { get; set; }
    /// <summary>
    ///     æ˜¯å¦å€Ÿå‡º
    /// </summary>
    [SugarColumn(ColumnName = "IS_JC")]
    public decimal? IsJc { get; set; }
    /// <summary>
    ///     å€Ÿå‡ºå•号
    /// </summary>
    [SugarColumn(ColumnName = "JC_BILL_NO")]
    public string? JcBillNo { get; set; }
    /// <summary>
    ///     è®¡åˆ’跟踪号
    /// </summary>
    [SugarColumn(ColumnName = "FMTONO")]
    public string? Fmtono { get; set; }
    /// <summary>
    ///     ä¸­ç®±ç 
    /// </summary>
    [SugarColumn(ColumnName = "MEDIUMBOXCODE")]
    public string? MediumBoxCode { get; set; }
    /// <summary>
    ///     æ ˆæ¿ç 
    /// </summary>
    [SugarColumn(ColumnName = "STACKCODE")]
    public string? StackCode { get; set; }
    /// <summary>
    ///     ä»“库ID
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_ID")]
    public decimal? DepotId { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç D
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_BARCODE_D")]
    public string? ItemBarcodeD { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç Z
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_BARCODE_Z")]
    public string? ItemBarcodeZ { get; set; }
    /// <summary>
    ///     æ˜¯å¦æŽ¨é€
    /// </summary>
    [SugarColumn(ColumnName = "IS_TS")]
    public decimal? IsTs { get; set; }
}
StandardPda/MES.Service/Modes/MesItems.cs
@@ -534,4 +534,10 @@
    /// </summary>
    [SugarColumn(ColumnName = "WAREHOUSEKEEPER")]
    public string? WarehouseKeeper { get; set; }
    /// <summary>
    ///     å®¢æˆ·ç‰©æ–™ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "KHWLBM")]
    public string? Khwlbm { get; set; }
}
StandardPda/MES.Service/Modes/MesUnit.cs
@@ -9,7 +9,7 @@
public class MesUnit
{
    /// <summary>
    ///     BASEINFO
    ///     ä¸»é”®ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public decimal Id { get; set; }
@@ -63,11 +63,13 @@
    public string? LastupdateBy { get; set; }
    /// <summary>
    ///     å…¬å¸ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///     å·¥åŽ‚ç¼–å·
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
StandardPda/MES.Service/Modes/MessageCenter.cs
@@ -130,6 +130,12 @@
    [SugarColumn(ColumnName = "UPDATE_DATE")]
    public string? UpdateDate { get; set; }
    /// <summary>
    ///     æœªè½¬ç json
    /// </summary>
    [SugarColumn(ColumnName = "DATA_INSERTED")]
    public string? DataInserted { get; set; }
    [SugarColumn(IsIgnore = true)] public int? isShow { get; set; }
StandardPda/MES.Service/Modes/XbRackingTaskSyxtLog.cs
@@ -121,4 +121,16 @@
    /// </summary>
    [SugarColumn(ColumnName = "LOCCODECHINESE")]
    public string? LocCodeChinese { get; set; }
    /// <summary>
    ///     è´¨æ£€çŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "QCSTATUS")]
    public decimal? QcStatus { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç 
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_BARCODE")]
    public string? ItemBarcode { get; set; }
}
StandardPda/MES.Service/obj/Debug/net8.0/MES.Service.AssemblyInfo.cs
@@ -13,7 +13,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("MES.Service")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f4699ff377f0e5ea3640bb3670b2fbfbd56e3fb")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+03013bae1636497e8ea1946eb44831d8794fa055")]
[assembly: System.Reflection.AssemblyProductAttribute("MES.Service")]
[assembly: System.Reflection.AssemblyTitleAttribute("MES.Service")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs
@@ -16,6 +16,11 @@
        return UseTransaction(db =>
        {
            // æ ¹æ®Type执行不同的逻辑
            switch (itemOutFrom.Type)
            {
                case "1":
                {
            // æ ¹æ®AsnNo和MesNo对明细进行分组
            var groupedItems = itemOutLists
                .GroupBy(item => new { item.AsnNo, item.MesNo, item.SqNo })
@@ -24,11 +29,6 @@
            var result = 1;
            foreach (var group in groupedItems)
            {
                // if (group.Key.AsnNo == null)
                // {
                //     throw new NotImplementedException("AsnNo不能为空");
                // }
                if (group.Key.MesNo == null)
                    throw new NotImplementedException("入库单单号不能为空");
@@ -50,11 +50,6 @@
                    SupperId = itemOutFrom.SupperId
                };
                // æ ¹æ®Type执行不同的逻辑
                switch (tempItemOutFrom.Type)
                {
                    case "1":
                    {
                        var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
                            .Where(s => s.BillTypeId == BILL_TYPE_ID
                                        && s.TransactionNo == TRANSACTION_NO
@@ -71,21 +66,17 @@
                        // ä¸ºå½“前分组保存数据
                        var groupResult = Save(tempItemOutFrom, group.ToList());
                        if (!groupResult) result = 0;
                        break;
                    }
                    case "4":
                        var removeResult = Remove(tempItemOutFrom);
                        if (!removeResult) result = 0;
                        break;
                    default:
                        result = 0;
                        break;
                }
            }
            return result;
                }
                case "4":
                    // åˆ é™¤æ“ä½œä¸éœ€è¦åˆ†ç»„,直接根据RtnNo删除即可
                    var removeResult = Remove(itemOutFrom);
                    return removeResult ? 1 : 0;
                default:
                    return 0;
            }
        }) > 0;
    }
StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,287 @@
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using Newtonsoft.Json;
using System.Text;
namespace MES.Service.service.Warehouse;
public class MesInvItemStocksManager : Repository<MesInvItemStocks>
{
    /// <summary>
    ///     æŸ¥è¯¢å¯ä»¥é€€è´§çš„物料
    /// </summary>
    /// <returns>可退货物料库存列表</returns>
    public List<ReturnableStockDto> GetReturnableStocks()
    {
        // 1. æŸ¥è¯¢XB_RACKING_TASK_SYXT_LOG中所有的条码并去重
        var distinctBarcodes = Db.Queryable<XbRackingTaskSyxtLog>()
            .Where(x => !string.IsNullOrEmpty(x.ItemBarcode))
            .Select(x => x.ItemBarcode)
            .Distinct()
            .ToList();
        if (distinctBarcodes == null || !distinctBarcodes.Any())
        {
            return new List<ReturnableStockDto>();
        }
        // 2. ä½¿ç”¨æ¡ç æŸ¥è¯¢MES_INV_ITEM_STOCKS中的数据,关联MES_ITEMS、MES_DEPOTS、ORGANIZE、MES_UNIT表
        var queryResult = Db.Queryable<MesInvItemStocks>()
            .LeftJoin<MesItems>((stock, item) => stock.ItemId == item.Id)
            .LeftJoin<MesDepots>((stock, item, depot) =>
                stock.DepotsCode == depot.DepotCode)
            .LeftJoin<Organize>((stock, item, depot, org) =>
                item.UseOrg == org.Id.ToString())
            .LeftJoin<MesUnit>((stock, item, depot, org, unit) =>
                item.ItemUnit == unit.Id.ToString())
            .Where((stock, item, depot, org, unit) =>
                distinctBarcodes.Contains(stock.ItemBarcode) &&
                stock.Quantity > 0)
            .Select((stock, item, depot, org, unit) => new
            {
                IqcStatus = stock.IqcStatus,
                StackCode = stock.StackCode,
                DepotCode = stock.DepotsCode,
                DepotName = depot.DepotName,
                DepotSectionsCode = stock.DepotSectionsCode,
                ItemNo = item.ItemNo,
                ItemName = item.ItemName,
                ItemModel = item.ItemModel,
                Quantity = stock.Quantity,
                ItemUnit = item.ItemUnit,
                ItemUnitName = unit.Fname,
                IndepDate = stock.IndepDate,
                OrgCode = org.Fnumber,
                OrgName = org.Fname,
                ItemBarcode = stock.ItemBarcode
            })
            .ToList();
        // 3. åœ¨å†…存中进行数据转换
        var result = queryResult.Select(x => new ReturnableStockDto
        {
            IqcStatus = x.IqcStatus == "已检" ? "1" : "0",
            ItemType = x.DepotName == "原材料仓" ? "0" : "1",
            StackCode = x.StackCode,
            DepotCode = x.DepotCode,
            DepotName = x.DepotName,
            DepotSectionsCode = x.DepotSectionsCode,
            ItemNo = x.ItemNo,
            ItemName = x.ItemName,
            ItemModel = x.ItemModel,
            Quantity = x.Quantity,
            ItemUnit = x.ItemUnit,
            ItemUnitName = x.ItemUnitName,
            IndepDate = x.IndepDate,
            OrgCode = x.OrgCode,
            OrgName = x.OrgName,
            ItemBarcode = x.ItemBarcode
        }).ToList();
        return result;
    }
    /// <summary>
    ///     æ ¹æ®ç”¨æˆ·ç¼–码和字符串生成退料请求单
    /// </summary>
    /// <param name="dto">查询参数DTO</param>
    /// <returns>是否成功</returns>
    public bool CreateReturnMaterialRequest(ItemStockQueryDto dto)
    {
        // è¯·æ±‚地址: http://172.20.5.5:50080/Services/Wmcs/RetrieveTask
        // å‚数格式: [{"taskCode":"xxx", "taskType":"1", "palletCode":"xxx", "widthType":"180", "station":"3"}]
        if (dto?.ItemBarcodes == null || !dto.ItemBarcodes.Any())
        {
            return false;
        }
        try
        {
            // å¯¹æ¯ä¸ªæ¡ç å•独处理
            foreach (var barcode in dto.ItemBarcodes)
            {
                decimal messageId = 0;
                string taskCode = "";
                try
                {
                    // 1. æŸ¥è¯¢è¯¥æ¡ç å¯¹åº”的库存信息,按物料和批号汇总
                    var stockItems = Db.Queryable<MesInvItemStocks>()
                        .LeftJoin<MesItems>((stock, item) =>
                            stock.ItemId == item.Id)
                        .Where((stock, item) =>
                            stock.ItemBarcode == barcode && stock.Quantity > 0)
                        .GroupBy((stock, item) =>
                            new { stock.ItemId, stock.LotNo })
                        .Select((stock, item) => new
                        {
                            ItemNo = SqlFunc.AggregateMax(item.ItemNo),
                            ItemName = SqlFunc.AggregateMax(item.ItemName),
                            LotNo = stock.LotNo ?? "",
                            Quantity = SqlFunc.AggregateSum(stock.Quantity),
                            StackCode = SqlFunc.AggregateMax(stock.DepotSectionsCode)
                        })
                        .ToList();
                    if (!stockItems.Any())
                    {
                        continue; // è·³è¿‡æ²¡æœ‰åº“存的条码
                    }
                    // 2. ç”Ÿæˆä»»åŠ¡å·
                    taskCode =
                        Db.Ado.GetString(
                            "SELECT getbillcode1(1000, 1000, 'LKRK') FROM DUAL");
                    // 3. èŽ·å–ç¬¬ä¸€æ¡è®°å½•ç”¨äºŽä¸»è¡¨
                    var firstStock = stockItems.First();
                    // 4. æž„建请求参数(数组格式)
                    var requestData = new
                    {
                        taskCode = taskCode,
                        taskType = "1",
                        palletCode = firstStock.StackCode ?? "",
                        widthType = "180",
                        station = "3"
                    };
                    var requestList = new[] { requestData };
                    var jsonRequest = JsonConvert.SerializeObject(requestList);
                    // 5. è®°å½•到MessageCenter表(请求前)
                    var messageCenter = new MessageCenter
                    {
                        TableName = "XB_RACKING_TASK_SYXT_LOG",
                        Url =
                            "http://172.20.5.5:50080/Services/Wmcs/RetrieveTask",
                        Method = "POST",
                        Status = 1,
                        CreateBy = dto.UserCode,
                        CreateDate =
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        Title = "立库出库任务",
                        PageName = taskCode,
                        Data = jsonRequest,
                        DataInserted = jsonRequest
                    };
                    messageId = Db.Insertable(messageCenter).ExecuteReturnIdentity();
                    // 6. è°ƒç”¨HTTP接口
                    var apiUrl =
                        "http://172.20.5.5:50080/Services/Wmcs/RetrieveTask";
                    using var http = new HttpClient();
                    http.Timeout = TimeSpan.FromSeconds(30);
                    var content = new StringContent(jsonRequest, Encoding.UTF8,
                        "application/json");
                    var response = http.PostAsync(apiUrl, content).Result;
                    var responseStr =
                        response.Content.ReadAsStringAsync().Result;
                    //接口的响应是 {"Code":"200","JsonMessage":null,"CodeMessage":null,"Data":null}
                    //只有当Code为200时,才插入XbRackingTaskSyxtLog表  ä¸ç„¶å°±æ˜¯æŠ›å‡ºå¼‚常,异常的内容为JsonMessage中的内容
                    // 6. è§£æžå“åº”JSON
                    dynamic responseJson = null;
                    try
                    {
                        responseJson =
                            JsonConvert.DeserializeObject<dynamic>(responseStr);
                    }
                    catch
                    {
                        throw new Exception($"解析响应失败: {responseStr}");
                    }
                    var code = responseJson?.Code?.ToString();
                    var jsonMessage = responseJson?.JsonMessage?.ToString();
                    // 7. æ ¹æ®Code判断成功或失败
                    if (code == "200")
                    {
                        // æˆåŠŸï¼šæ’å…¥ä»»åŠ¡è®°å½•åˆ°XB_RACKING_TASK_SYXT_LOG表
                        var taskLog = new XbRackingTaskSyxtLog
                        {
                            CreateBy = dto.UserCode,
                            CreateDate = DateTime.Now,
                            TaskCode = taskCode,
                            TaskType = "立库出库请求",
                            PalletCode = firstStock.StackCode,
                            WidthType = 180,
                            MaterialName = firstStock.ItemName,
                            MaterialCode = firstStock.ItemNo,
                            BatchNo = firstStock.LotNo,
                            Quantity = firstStock.Quantity,
                            WarehousingJson = responseStr,
                            QcStatus = 2,
                            ItemBarcode = barcode,
                            Code = "200",
                            JsonMessage = jsonMessage ?? "成功"
                        };
                        Db.Insertable(taskLog).ExecuteCommand();
                        // æ›´æ–°MessageCenter表为成功状态
                        var successMessage = "立库任务下发成功,任务号为" + taskCode;
                        Db.Updateable<MessageCenter>()
                            .SetColumns(it => it.Result == 1)
                            .SetColumns(it => it.ResultData == successMessage)
                            .SetColumns(it => it.DealWith == 1)
                            .Where(it => it.Id == messageId)
                            .ExecuteCommand();
                    }
                    else
                    {
                        // å¤±è´¥ï¼šæ›´æ–°MessageCenter表为失败状态
                        var errorMessage = string.IsNullOrEmpty(jsonMessage)
                            ? "任务请求失败"
                            : jsonMessage;
                        var failureMessage =
                            (string)("立库任务下发失败: " + errorMessage);
                        Db.Updateable<MessageCenter>()
                            .SetColumns(it => it.Result == 0)
                            .SetColumns(it => it.ResultData == failureMessage)
                            .SetColumns(it => it.DealWith == 0)
                            .Where(it => it.Id == messageId)
                            .ExecuteCommand();
                        // æŠ›å‡ºå¼‚常,异常内容为JsonMessage
                        throw new Exception(errorMessage);
                    }
                }
                catch (Exception ex)
                {
                    // å¼‚常时也要更新MessageCenter表
                    if (messageId > 0)
                    {
                        var exceptionMessage =
                            (string)("立库任务异常: " + ex.Message);
                        Db.Updateable<MessageCenter>()
                            .SetColumns(it => it.Result == 0)
                            .SetColumns(it =>
                                it.ResultData == exceptionMessage)
                            .SetColumns(it => it.DealWith == 0)
                            .Where(it => it.Id == messageId)
                            .ExecuteCommand();
                    }
                    // ç»§ç»­æŠ›å‡ºå¼‚常
                    throw;
                }
            }
            return true;
        }
        catch (Exception ex)
        {
            // è®°å½•日志并重新抛出异常,让Controller层获取具体错误信息
            Console.WriteLine($"生成退料请求单失败: {ex.Message}");
            throw;
        }
    }
}
StandardPda/MESApplication/Controllers/Warehouse/MesInvItemStocksController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
using System.Dynamic;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvItemStocksController : ControllerBase
{
    private readonly MesInvItemStocksManager m = new();
    /// <summary>
    ///     èŽ·å–å¯é€€è´§ç‰©æ–™åº“å­˜
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetReturnableStocks")]
    public ResponseResult GetReturnableStocks()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetReturnableStocks();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ç”Ÿæˆé€€æ–™è¯·æ±‚单
    /// </summary>
    /// <param name="dto">退料请求参数</param>
    /// <returns></returns>
    [HttpPost("CreateReturnMaterialRequest")]
    public ResponseResult CreateReturnMaterialRequest([FromBody] ItemStockQueryDto dto)
    {
        try
        {
            var result = m.CreateReturnMaterialRequest(dto);
            if (result)
            {
                return new ResponseResult
                {
                    status = 0,
                    message = "退料请求单生成成功",
                    data = null
                };
            }
            else
            {
                return new ResponseResult
                {
                    status = 1,
                    message = "退料请求单生成失败",
                    data = null
                };
            }
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
StandardPda/MESApplication/obj/Debug/net8.0/MESApplication.AssemblyInfo.cs
@@ -13,7 +13,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("MESApplication")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2f4699ff377f0e5ea3640bb3670b2fbfbd56e3fb")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+03013bae1636497e8ea1946eb44831d8794fa055")]
[assembly: System.Reflection.AssemblyProductAttribute("MESApplication")]
[assembly: System.Reflection.AssemblyTitleAttribute("MESApplication")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]