zjh
4 天以前 cad9f911a2f0c7a14d62f1503aadd279423caccc
退料单接口BUG修复
已修改2个文件
162 ■■■■ 文件已修改
StandardPda/MES.Service/Modes/MesInvItemOutItems.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs 154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemOutItems.cs
@@ -247,13 +247,13 @@
    /// </summary>
    [SugarColumn(ColumnName = "FMTONO")]
    public string? Fmtono { get; set; }
    // <summary>
    ///     申请行号
    /// </summary>
    //[SugarColumn(ColumnName = "SQ_NO")]
    //public string? SqNo { get; set; }
    [SugarColumn(ColumnName = "SQ_NO")]
    public string? SqNo { get; set; }
    //[SugarColumn(ColumnName = "ZZITEM_ID")]
    //public string? ZzitemId{ get; set; }
}
StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs
@@ -14,88 +14,94 @@
        var itemOutFrom = oItemOut.from;
        var itemOutLists = oItemOut.items;
        // 根据AsnNo和MesNo对明细进行分组
        var groupedItems = itemOutLists
            .GroupBy(item => new {   item.MesNo, item.SqNo })
            .ToList();
        bool result = true;
        foreach (var group in groupedItems)
        return UseTransaction(db =>
        {
            //if (group.Key.AsnNo == null)
            //{
            //    throw new NotImplementedException("AsnNo不能为空");
            //}
            // 根据AsnNo和MesNo对明细进行分组
            var groupedItems = itemOutLists
                .GroupBy(item => new {  item.MesNo, item.SqNo })
                .ToList();
            if (group.Key.MesNo == null)
            int result = 1;
            int count = 1;
            foreach (var group in groupedItems)
            {
                throw new NotImplementedException("入库单单号不能为空");
            }
                //if (group.Key.AsnNo == null)
                //{
                //    throw new NotImplementedException("AsnNo不能为空");
                //}
            if (group.Key.SqNo == null)
            {
                throw new NotImplementedException("退货申请单行号不能为空");
            }
            // 创建一个临时的itemOutFrom对象,使用分组的Key作为主要属性
            var tempItemOutFrom = new ItemOutFrom
            {
                MesNo = group.Key.MesNo,
                SqNo = group.Key.SqNo,
                // 继承原始itemOutFrom的其他属性
                RtnNo = itemOutFrom.RtnNo,
                Type = itemOutFrom.Type,
                CreateBy = itemOutFrom.CreateBy,
                FMRMODE = itemOutFrom.FMRMODE,
                DepotId = itemOutFrom.DepotId,
                SupperId = itemOutFrom.SupperId
            };
            // 根据Type执行不同的逻辑
            switch (tempItemOutFrom.Type)
            {
                case "1":
                if (group.Key.MesNo == null)
                {
                    var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
                        .Where(s => s.BillTypeId == BILL_TYPE_ID
                                    && s.TransactionNo == TRANSACTION_NO
                                    && s.ItemOutNo == tempItemOutFrom.RtnNo
                        )
                        .Count();
                    if (mesInvItemOuts > 0)
                    {
                        throw new NotImplementedException(
                            tempItemOutFrom.RtnNo +
                            "的退料申请单已经存在");
                    }
                    // 为当前分组保存数据
                    var groupResult = Save(tempItemOutFrom, group.ToList());
                    if (!groupResult)
                    {
                        result = false;
                    }
                    break;
                    throw new NotImplementedException("入库单单号不能为空");
                }
                case "4":
                    var removeResult = Remove(tempItemOutFrom);
                    if (!removeResult)
                    {
                        result = false;
                    }
                    break;
                default:
                    result = false;
                    break;
                if (group.Key.SqNo == null)
                {
                    throw new NotImplementedException("退货申请单行号不能为空");
                }
                // 创建一个临时的itemOutFrom对象,使用分组的Key作为主要属性
                var tempItemOutFrom = new ItemOutFrom
                {
                    //AsnNo = group.Key.AsnNo,
                    MesNo = group.Key.MesNo,
                    SqNo = group.Key.SqNo,
                    // 继承原始itemOutFrom的其他属性
                    RtnNo = itemOutFrom.RtnNo+ "-"+count.ToString(),
                    Type = itemOutFrom.Type,
                    CreateBy = itemOutFrom.CreateBy,
                    FMRMODE = itemOutFrom.FMRMODE,
                    DepotId = itemOutFrom.DepotId,
                    SupperId = itemOutFrom.SupperId
                };
                count++;
                // 根据Type执行不同的逻辑
                switch (tempItemOutFrom.Type)
                {
                    case "1":
                        {
                            var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
                                .Where(s => s.BillTypeId == BILL_TYPE_ID
                                            && s.TransactionNo == TRANSACTION_NO
                                            && s.ItemOutNo == tempItemOutFrom.RtnNo
                                            && s.Sapno == tempItemOutFrom.SqNo
                                )
                                .Count();
                            if (mesInvItemOuts > 0)
                            {
                                throw new NotImplementedException(
                                    tempItemOutFrom.RtnNo +
                                    "的退料申请单已经存在");
                            }
                            // 为当前分组保存数据
                            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;
            return result;
        }) > 0;
    }
    private bool Save(ItemOutFrom from, List<ItemOutList> items)
@@ -286,7 +292,7 @@
                RkQty = mesInvItemInCItems.Quantity,
                TlQty = 0,
                ItemId = Decimal.Parse(itemIdLinkU9.MesId), // 确保ItemId有值
                //SqNo = itemOutList.SqNo, // 确保ItemId有值
                SqNo = itemOutList.SqNo, // 确保ItemId有值
                //ZzitemId = itemOutList.AsnLineNo, // 确保ItemId有值
                // Unit = item.Unit,
            });