啊鑫
8 天以前 0aa54059b26e6641196e9953490dd18616e916e3
service/Warehouse/InventoryManager.cs
@@ -1,14 +1,12 @@
using NewPdaSqlServer.DB;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.@base;
using NewPdaSqlServer.util;
using SqlSugar;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace NewPdaSqlServer.service.Warehouse;
@@ -63,7 +61,10 @@
                ))
            .Where((a, b) => a.DepotSectionCode == p_section_code)
            .Select((a, b) => new
                { a.DepotSectionName, b.DepotCode, b.DepotName, b.DepotId,b.FSubsidiary })
            {
                a.DepotSectionName, b.DepotCode, b.DepotName, b.DepotId,
                b.FSubsidiary
            })
            .Single();
        // 如果库位代码不存在,则返回错误信息
@@ -101,17 +102,17 @@
        var wmsManager = new WmsBaseMangeer();
        // 新增入库校验(调用存储过程)
        var checkResult = wmsManager.pdaInvJY(
            db: Db,
            edtUserNo: query.userName,
            barcode: p_item_barcode,
            sectionCode: p_section_code,
            stockId: depotSection.DepotId.ToString(),
            stockOrgId: depotSection.FSubsidiary,
            billNo: "", // 根据实际单据号传值
            transactionNo: "601" // 事务类型与存储过程匹配
            Db,
            query.userName,
            p_item_barcode,
            p_section_code,
            depotSection.DepotId.ToString(),
            depotSection.FSubsidiary,
            "", // 根据实际单据号传值
            "601" // 事务类型与存储过程匹配
        );
        if ( Convert.ToInt32(checkResult.result) < 1)
        if (Convert.ToInt32(checkResult.result) < 1)
            throw new Exception($"入库校验失败:{checkResult.strMsg}");
        UseTransaction(db =>
@@ -149,15 +150,14 @@
                    SuppId = c_mes_inv_item_barcodes.SuppId,
                    SuppNo = c_mes_inv_item_barcodes.SuppNo,
                    UrgentFlag = c_mes_inv_item_barcodes.UrgentFlag == null
                        ?
                        null
                        ? null
                        : c_mes_inv_item_barcodes.UrgentFlag.Value
                            ? "1"
                            : "0",
                    CbillNo = c_mes_inv_item_barcodes.BillNo,
                    Fstatus = 0,
                    ReceiveOrgId = depotSection.FSubsidiary,
                    InType = "期初入库",
                    InType = "期初入库"
                };
                db.Insertable(newMesInvItemIns)
                    .IgnoreColumns(true)
@@ -198,7 +198,7 @@
                BoardStyle = c_mes_inv_item_barcodes.BoardStyle,
                TaskNo = c_mes_inv_item_barcodes.TaskNo,
                ItemId = c_mes_inv_item_barcodes.ItemId,
                ReceiveOrgId = depotSection.FSubsidiary,
                ReceiveOrgId = depotSection.FSubsidiary
            }).IgnoreColumns(true).ExecuteCommand();
@@ -254,7 +254,7 @@
                SuppNo = c_mes_inv_item_barcodes.SuppNo,
                ItemId = c_mes_inv_item_barcodes.ItemId,
                IndepUserCode = c_user,
                StockOrgId = depotSection.FSubsidiary,
                StockOrgId = depotSection.FSubsidiary
                // Fsubsidiary = c_organize
            }).IgnoreColumns(true).ExecuteCommand();
@@ -277,11 +277,12 @@
    public dynamic GetDepoptsInfo(dynamic unity)
    {
        //// 使用参数化查询防止SQL注入
        var sqlParams = new List<SugarParameter> { new("@sectionCode", unity.sectionCode) };
        var sqlParams = new List<SugarParameter>
            { new("@sectionCode", unity.sectionCode) };
        var sql2 = @"        SELECT TOP 1  B.depot_code + '('+B.depot_name+')' depotsInfo,
        var sql2 =
            @"        SELECT TOP 1  B.depot_code + '('+B.depot_name+')' depotsInfo,
                     B.FSubsidiary,
                     C.FNumber + '('+C.NAME+')' orgInfo
        FROM MES_DEPOT_SECTIONS A
@@ -290,17 +291,16 @@
            LEFT JOIN SYS_ORGANIZATION C ON C.FID = B.FSubsidiary
        WHERE a.depot_section_code = @sectionCode;";
        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).FirstOrDefault();
        var XcslItem =
            Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).FirstOrDefault();
        // 检查结果有效性
        if (XcslItem == null)
        {
            throw new Exception($"库位 [{unity.sectionCode}] 不存在,或所属仓库状态异常(可能被禁用或删除)。");
        }
            throw new Exception(
                $"库位 [{unity.sectionCode}] 不存在,或所属仓库状态异常(可能被禁用或删除)。");
        return XcslItem; // 返回第一行数据,如果没有则返回 null
    }
    public dynamic GetItemsList(dynamic unity)
@@ -323,10 +323,7 @@
        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
        if (XcslItem == null)
        {
            throw new Exception("该条件下无对应物料信息,请重新输入!");
        }
        if (XcslItem == null) throw new Exception("该条件下无对应物料信息,请重新输入!");
        return XcslItem;
    }
@@ -351,11 +348,15 @@
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(new[]
            {
                new SqlParameter("@inUser", SqlDbType.NVarChar, 50) { Value = query.userName },
                new SqlParameter("@inItemId", SqlDbType.NVarChar, 50) { Value = query.itemid },
                new SqlParameter("@inUser", SqlDbType.NVarChar, 50)
                    { Value = query.userName },
                new SqlParameter("@inItemId", SqlDbType.NVarChar, 50)
                    { Value = query.itemid },
                new SqlParameter("@isDesign", SqlDbType.Int) { Value = 0 },
                new SqlParameter("@in4", SqlDbType.NVarChar, 20) { Value = query.in4 ?? DBNull.Value },
                new SqlParameter("@in5", SqlDbType.NVarChar, 20) { Value = query.num ?? DBNull.Value }
                new SqlParameter("@in4", SqlDbType.NVarChar, 20)
                    { Value = query.in4 ?? DBNull.Value },
                new SqlParameter("@in5", SqlDbType.NVarChar, 20)
                    { Value = query.num ?? DBNull.Value }
            });
            try
@@ -366,28 +367,30 @@
                    while (reader.Read())
                    {
                        var barcode = reader.GetString(0);
                        // 构建符合方法签名的参数对象
                        var scanQuery = new WarehouseQuery
                        var scanQuery = new WarehouseQuery
                        {
                            barcode = barcode,
                            DepotCode = query.sectionCode, // 从原始query获取库位编码
                            userName = query.userName // 从原始query获取用户账号
                        };
                        try
                        {
                            // 调用正式签名方法
                            ScanBarcode(scanQuery);
                            var printData = GetPrintBar(barcode);
                            var printData = GetPrintBar(barcode);
                            resultList.Add(printData);
                        }
                        catch (Exception ex)
                        {
                            throw new Exception($"期初条码打印入库存在异常{ex.Message},请重新打印!");
                            throw new Exception(
                                $"期初条码打印入库存在异常{ex.Message},请重新打印!");
                        }
                    }
                }
                return resultList;
            }
            catch (Exception ex)
@@ -401,7 +404,8 @@
    {
        var sqlParams = new List<SugarParameter> { new("@barcode", barcode) };
        var sql1 = @"    SELECT TOP 1 C.ITEM_NO,C.item_name,C.item_model,B.OLDQTY as QUANTITY,B.CREATE_DATE, '期初条码' AS BarType,A.ITEM_BARCODE,GETDATE() as print_date
        var sql1 =
            @"    SELECT TOP 1 C.ITEM_NO,C.item_name,C.item_model,B.OLDQTY as QUANTITY,B.CREATE_DATE, '期初条码' AS BarType,A.ITEM_BARCODE,GETDATE() as print_date
            FROM MES_INV_ITEM_STOCKS A
            LEFT JOIN MES_INV_ITEM_BARCODES B ON A.ITEM_BARCODE = B.ITEM_BARCODE
            LEFT JOIN MES_ITEMS C ON C.item_id = B.ITEM_ID